Rank Chart

Positions over time with rank 1 on top: one line per series at real check times, gaps for checks without a rank, notes in the tooltip. Drawn as SVG, rendered on the server and themed by the design tokens.

Part of @tectra-ng/charts (npm install @tectra-ng/charts, also included in tectra-ng).

Features8APIThemingAccessibility

Basic

Pass series with points of { time, rank }. Rank 1 is on top, null leaves a gap (a check without a position), and rankLabel captions the rank in the tooltip. Hover a point or use the arrow keys.

Arrow keys move between values
Search positions for “running shoes”. Rank chart, 3 series, 40 values, from Mar 2, 2026, 9:00 AM to Mar 15, 2026, 9:00 AM
CategoryPosition
runfast.example, Mar 2, 2026, 9:00 AM9
trailhub.example, Mar 2, 2026, 9:00 AM3
stridewear.example, Mar 2, 2026, 9:00 AM14
runfast.example, Mar 3, 2026, 9:00 AM8
trailhub.example, Mar 3, 2026, 9:00 AM3
stridewear.example, Mar 3, 2026, 9:00 AM13
runfast.example, Mar 4, 2026, 9:00 AM8
trailhub.example, Mar 4, 2026, 9:00 AM4
runfast.example, Mar 5, 2026, 9:00 AM6
trailhub.example, Mar 5, 2026, 9:00 AM4
runfast.example, Mar 6, 2026, 9:00 AM5
trailhub.example, Mar 6, 2026, 9:00 AM4
stridewear.example, Mar 6, 2026, 9:00 AM11
runfast.example, Mar 7, 2026, 9:00 AM5
trailhub.example, Mar 7, 2026, 9:00 AM6
stridewear.example, Mar 7, 2026, 9:00 AM9
runfast.example, Mar 8, 2026, 9:00 AM4
trailhub.example, Mar 8, 2026, 9:00 AM7
stridewear.example, Mar 8, 2026, 9:00 AM9
runfast.example, Mar 9, 2026, 9:00 AM3
trailhub.example, Mar 9, 2026, 9:00 AM7
stridewear.example, Mar 9, 2026, 9:00 AM8
runfast.example, Mar 10, 2026, 9:00 AM3
trailhub.example, Mar 10, 2026, 9:00 AM9
stridewear.example, Mar 10, 2026, 9:00 AM6
runfast.example, Mar 11, 2026, 9:00 AM2
trailhub.example, Mar 11, 2026, 9:00 AM8
stridewear.example, Mar 11, 2026, 9:00 AM6
runfast.example, Mar 12, 2026, 9:00 AM2
trailhub.example, Mar 12, 2026, 9:00 AM8
stridewear.example, Mar 12, 2026, 9:00 AM5
runfast.example, Mar 13, 2026, 9:00 AM1
trailhub.example, Mar 13, 2026, 9:00 AM10
stridewear.example, Mar 13, 2026, 9:00 AM5
runfast.example, Mar 14, 2026, 9:00 AM1
trailhub.example, Mar 14, 2026, 9:00 AM11
stridewear.example, Mar 14, 2026, 9:00 AM4
runfast.example, Mar 15, 2026, 9:00 AM1
trailhub.example, Mar 15, 2026, 9:00 AM12
stridewear.example, Mar 15, 2026, 9:00 AM3

Notes

A point's note shows under the rank in the tooltip. Points sit at their real check times, so uneven checks keep their spacing; pointClick reports the clicked check.

Arrow keys move between values
Position of the pricing page. Rank chart, 1 series, 8 values, from Apr 1, 2026, 8:00 AM to Apr 10, 2026, 8:00 AM
CategoryPosition
/pricing, Apr 1, 2026, 8:00 AM7
/pricing, Apr 1, 2026, 8:00 PM6
/pricing, Apr 3, 2026, 8:00 AM6 (Title rewritten)
/pricing, Apr 4, 2026, 8:00 AM4
/pricing, Apr 4, 2026, 2:00 PM3
/pricing, Apr 8, 2026, 8:00 AM5 (Page was down for an hour)
/pricing, Apr 9, 2026, 8:00 AM2
/pricing, Apr 10, 2026, 8:00 AM1 (Featured snippet)
Click a point.

Legend

showLegend adds a legend that hides and shows series (seriesToggle); legendPosition, legendAlign and legendVariant place and style it.

Arrow keys move between values
Positions by keyword. Rank chart, 5 series, 50 values, from May 4, 2026, 9:00 AM to May 13, 2026, 9:00 AM
CategoryRank
angular charts, May 4, 2026, 9:00 AM3
svg charts, May 4, 2026, 9:00 AM9
dashboard kit, May 4, 2026, 9:00 AM12
design tokens, May 4, 2026, 9:00 AM12
ui kit, May 4, 2026, 9:00 AM13
angular charts, May 5, 2026, 9:00 AM4
svg charts, May 5, 2026, 9:00 AM9
dashboard kit, May 5, 2026, 9:00 AM11
design tokens, May 5, 2026, 9:00 AM11
ui kit, May 5, 2026, 9:00 AM12
angular charts, May 6, 2026, 9:00 AM6
svg charts, May 6, 2026, 9:00 AM9
dashboard kit, May 6, 2026, 9:00 AM9
design tokens, May 6, 2026, 9:00 AM10
ui kit, May 6, 2026, 9:00 AM12
angular charts, May 7, 2026, 9:00 AM6
svg charts, May 7, 2026, 9:00 AM8
dashboard kit, May 7, 2026, 9:00 AM8
design tokens, May 7, 2026, 9:00 AM9
ui kit, May 7, 2026, 9:00 AM13
angular charts, May 8, 2026, 9:00 AM6
svg charts, May 8, 2026, 9:00 AM6
dashboard kit, May 8, 2026, 9:00 AM7
design tokens, May 8, 2026, 9:00 AM9
ui kit, May 8, 2026, 9:00 AM14
angular charts, May 9, 2026, 9:00 AM5
svg charts, May 9, 2026, 9:00 AM5
dashboard kit, May 9, 2026, 9:00 AM6
design tokens, May 9, 2026, 9:00 AM10
ui kit, May 9, 2026, 9:00 AM16
angular charts, May 10, 2026, 9:00 AM3
svg charts, May 10, 2026, 9:00 AM4
dashboard kit, May 10, 2026, 9:00 AM6
design tokens, May 10, 2026, 9:00 AM11
ui kit, May 10, 2026, 9:00 AM17
angular charts, May 11, 2026, 9:00 AM2
svg charts, May 11, 2026, 9:00 AM3
dashboard kit, May 11, 2026, 9:00 AM7
design tokens, May 11, 2026, 9:00 AM13
ui kit, May 11, 2026, 9:00 AM18
angular charts, May 12, 2026, 9:00 AM1
svg charts, May 12, 2026, 9:00 AM3
dashboard kit, May 12, 2026, 9:00 AM8
design tokens, May 12, 2026, 9:00 AM14
ui kit, May 12, 2026, 9:00 AM18
angular charts, May 13, 2026, 9:00 AM1
svg charts, May 13, 2026, 9:00 AM4
dashboard kit, May 13, 2026, 9:00 AM10
design tokens, May 13, 2026, 9:00 AM15
ui kit, May 13, 2026, 9:00 AM17

Depth

maxRank sets the depth of the axis: ticks go by 5 up to 20 and by 10 deeper. Ranks below it sit on the bottom line; the tooltip still shows the real rank.

Arrow keys move between values
Weekly position. Rank chart, 1 series, 12 values, from Jan 5, 2026, 9:00 AM to Mar 23, 2026, 9:00 AM
CategoryRank
blog.example/guide, Jan 5, 2026, 9:00 AM68
blog.example/guide, Jan 12, 2026, 9:00 AM54
blog.example/guide, Jan 19, 2026, 9:00 AM47
blog.example/guide, Jan 26, 2026, 9:00 AM41
blog.example/guide, Feb 2, 2026, 9:00 AM33
blog.example/guide, Feb 9, 2026, 9:00 AM28
blog.example/guide, Feb 16, 2026, 9:00 AM22
blog.example/guide, Feb 23, 2026, 9:00 AM19
blog.example/guide, Mar 2, 2026, 9:00 AM14
blog.example/guide, Mar 9, 2026, 9:00 AM11
blog.example/guide, Mar 16, 2026, 9:00 AM9
blog.example/guide, Mar 23, 2026, 9:00 AM7

Own colors

Without color a series takes one of twelve line colours by its index; rankLineColor(index) gives the same colour for your own legend or table. Pass color to pick your own.

ours.examplerival-one.examplerival-two.example
Arrow keys move between values
Our site against rivals. Rank chart, 3 series, 24 values, from Jun 1, 2026, 9:00 AM to Jun 8, 2026, 9:00 AM
CategoryRank
ours.example, Jun 1, 2026, 9:00 AM1
rival-one.example, Jun 1, 2026, 9:00 AM4
rival-two.example, Jun 1, 2026, 9:00 AM7
ours.example, Jun 2, 2026, 9:00 AM2
rival-one.example, Jun 2, 2026, 9:00 AM5
rival-two.example, Jun 2, 2026, 9:00 AM5
ours.example, Jun 3, 2026, 9:00 AM3
rival-one.example, Jun 3, 2026, 9:00 AM3
rival-two.example, Jun 3, 2026, 9:00 AM6
ours.example, Jun 4, 2026, 9:00 AM1
rival-one.example, Jun 4, 2026, 9:00 AM4
rival-two.example, Jun 4, 2026, 9:00 AM7
ours.example, Jun 5, 2026, 9:00 AM2
rival-one.example, Jun 5, 2026, 9:00 AM5
rival-two.example, Jun 5, 2026, 9:00 AM5
ours.example, Jun 6, 2026, 9:00 AM3
rival-one.example, Jun 6, 2026, 9:00 AM3
rival-two.example, Jun 6, 2026, 9:00 AM6
ours.example, Jun 7, 2026, 9:00 AM1
rival-one.example, Jun 7, 2026, 9:00 AM4
rival-two.example, Jun 7, 2026, 9:00 AM7
ours.example, Jun 8, 2026, 9:00 AM2
rival-one.example, Jun 8, 2026, 9:00 AM5
rival-two.example, Jun 8, 2026, 9:00 AM5

Loading and empty

loading shows a skeleton of the same size; series without any ranked check show "No data".

No data

Design tokens

dt sets the tokens of one chart — the rankLine group of the chart tokens: line width, marker sizes and the twelve series colours.

Arrow keys move between values
Positions. Rank chart, 2 series, 12 values, from Aug 3, 2026, 9:00 AM to Aug 8, 2026, 9:00 AM
CategoryRank
alpha.example, Aug 3, 2026, 9:00 AM5
beta.example, Aug 3, 2026, 9:00 AM2
alpha.example, Aug 4, 2026, 9:00 AM4
beta.example, Aug 4, 2026, 9:00 AM3
alpha.example, Aug 5, 2026, 9:00 AM4
beta.example, Aug 5, 2026, 9:00 AM3
alpha.example, Aug 6, 2026, 9:00 AM3
beta.example, Aug 6, 2026, 9:00 AM4
alpha.example, Aug 7, 2026, 9:00 AM2
beta.example, Aug 7, 2026, 9:00 AM6
alpha.example, Aug 8, 2026, 9:00 AM2
beta.example, Aug 8, 2026, 9:00 AM7

Pass through

pt adds classes and styles to the parts: root, plot, svg, grid, axis, line, marker, legend, legendItem, tooltip, empty, skeleton.

Arrow keys move between values
Forecast position. Rank chart, 1 series, 7 values, from Sep 7, 2026, 9:00 AM to Sep 13, 2026, 9:00 AM
CategoryRank
forecast, Sep 7, 2026, 9:00 AM8
forecast, Sep 8, 2026, 9:00 AM7
forecast, Sep 9, 2026, 9:00 AM6
forecast, Sep 10, 2026, 9:00 AM6
forecast, Sep 11, 2026, 9:00 AM5
forecast, Sep 12, 2026, 9:00 AM4
forecast, Sep 13, 2026, 9:00 AM4