A four-state dumbbell chart — one row per category, two dots joined by a bar on one shared scale, ranked by valence-aware change with direction carried by shape, arrow and row order as well as colour.
Preview in your theme
Loading preview…
This component is part of Pro
The install command, prompt and concept map are included with a Pro license — one purchase unlocks every Pro component, forever.
status="ready" · 9 markets sorted by improvement. Japan launched mid-year (0% → 12.6%), so its relative change is undefined rather than ∞; Italy read 29.8% twice and gets the ringed "unchanged" marker instead of a lone dot.
Checkout conversion by market
Share of carts that reached payment · Q1 vs Q4
Q1Q4improvementdecline
Rows ordered by improvement, best first. Higher is better, so an improvement is drawn as a rise and carries the up arrow. Bar length is the change on one scale shared by every row; the hollow dot is Q1, the filled dot Q4. Arrow keys move between rows.
Checkout conversion by market: every category at Q1 and Q4, with its change. Rows are ordered by improvement, best first. Rising values are improvements.
Rank
Category
Q1
Q4
Change
Relative
Direction
1
Germany
42.1%
61.8%
+19.7%
+46.8%
up, an improvement
2
Japan
0%
12.6%
+12.6%
undefined (started at zero)
up, an improvement
3
Netherlands
44.5%
52.3%
+7.8%
+17.5%
up, an improvement
4
Spain
38.4%
44%
+5.6%
+14.6%
up, an improvement
5
Sweden
47.7%
49.1%
+1.4%
+2.9%
up, an improvement
6
Italy
29.8%
29.8%
no change
0%
unchanged
7
France
51.2%
47.6%
-3.6%
-7%
down, a decline
8
United Kingdom
58.9%
55.2%
-3.7%
-6.3%
down, a decline
9
Poland
33%
25.4%
-7.6%
-23%
down, a decline
status="empty" · the contract parsed, there is simply nothing to compare yet.
Checkout conversion by market
Share of carts that reached payment · Q1 vs Q4
Nothing to compare yet
A row appears once a category has a value at both Q1 and Q4.
status="loading" · six pulsing bars, aria-hidden, with an sr-only role="status" line. No timers.
Checkout conversion by market
Share of carts that reached payment · Q1 vs Q4
Loading Checkout conversion by market
higherIsBetter={false} · p95 latency: a fall is the good news, so the falls are coloured as improvements and sort to the top while the one regression sinks. Four-digit values widen the delta lane.
p95 latency by endpoint
Before and after the edge cache rollout
BeforeAfterimprovementdecline
/v2/projects/{id}/settings
790 ms
374 ms
-416 ms-52.7%
/v2/webhooks/deliveries
585 ms
212 ms
-373 ms-63.8%
/v2/organizations/{id}/members
1,048 ms
754 ms
-294 ms-28.1%
/v2/invoices/{id}/pdf
1,079 ms
818 ms
-261 ms-24.2%
/v2/search
479 ms
292 ms
-187 ms-39%
/v2/exports
821 ms
681 ms
-140 ms-17.1%
/v2/events:batch
902 ms
1,238 ms
+336 ms+37.3%
500 ms1,000 ms
Rows ordered by improvement, best first. Lower is better, so an improvement is drawn as a fall and carries the down arrow. Bar length is the change on one scale shared by every row; the hollow dot is Before, the filled dot After. Arrow keys move between rows.
p95 latency by endpoint: every category at Before and After, with its change. Rows are ordered by improvement, best first. Falling values are improvements.
Rank
Category
Before
After
Change
Relative
Direction
1
/v2/projects/{id}/settings
790 ms
374 ms
-416 ms
-52.7%
down, an improvement
2
/v2/webhooks/deliveries
585 ms
212 ms
-373 ms
-63.8%
down, an improvement
3
/v2/organizations/{id}/members
1,048 ms
754 ms
-294 ms
-28.1%
down, an improvement
4
/v2/invoices/{id}/pdf
1,079 ms
818 ms
-261 ms
-24.2%
down, an improvement
5
/v2/search
479 ms
292 ms
-187 ms
-39%
down, an improvement
6
/v2/exports
821 ms
681 ms
-140 ms
-17.1%
down, an improvement
7
/v2/events:batch
902 ms
1,238 ms
+336 ms
+37.3%
up, a decline
Negatives that mean something · two lines lost money and Cloud crossed zero between the readings, so a dashed rule marks 0 and the bars are read against it.
Operating margin by product line
FY23 vs FY24 · negative means the line lost money
FY23FY24improvementdecline
Cloud
-3.2%
6.8%
+10%+312.5%
Hardware
-8.4%
-2.1%
+6.3%+75%
Support
21.4%
24%
+2.6%+12.1%
Services
12%
9.5%
-2.5%-20.8%
Legacy licences
4%
-6.5%
-10.5%-262.5%
10%20%0%
Rows ordered by improvement, best first. Higher is better, so an improvement is drawn as a rise and carries the up arrow. Bar length is the change on one scale shared by every row; the hollow dot is FY23, the filled dot FY24. Arrow keys move between rows.
Operating margin by product line: every category at FY23 and FY24, with its change. Rows are ordered by improvement, best first. Rising values are improvements.
Rank
Category
FY23
FY24
Change
Relative
Direction
1
Cloud
-3.2%
6.8%
+10%
+312.5%
up, an improvement
2
Hardware
-8.4%
-2.1%
+6.3%
+75%
up, an improvement
3
Support
21.4%
24%
+2.6%
+12.1%
up, an improvement
4
Services
12%
9.5%
-2.5%
-20.8%
down, a decline
5
Legacy licences
4%
-6.5%
-10.5%
-262.5%
down, a decline
Degenerate · every value is 25 seats. The span is 0, so a linear scale would divide by zero; every marker is centred instead and the summary says the scale carries no information.
Seats per workspace
Every workspace is on the same fixed 25-seat plan
RenewalTodayimprovementdecline
Acme
25 seats
25 seats
no change
Globex
25 seats
25 seats
no change
Initech
25 seats
25 seats
no change
Umbrella
25 seats
25 seats
no change
25 seats
Rows ordered by improvement, best first. Higher is better, so an improvement is drawn as a rise and carries the up arrow. Bar length is the change on one scale shared by every row; the hollow dot is Renewal, the filled dot Today. Arrow keys move between rows.
Seats per workspace: every category at Renewal and Today, with its change. Rows are ordered by improvement, best first. Rising values are improvements.
Rank
Category
Renewal
Today
Change
Relative
Direction
1
Acme
25 seats
25 seats
no change
0%
unchanged
2
Globex
25 seats
25 seats
no change
0%
unchanged
3
Initech
25 seats
25 seats
no change
0%
unchanged
4
Umbrella
25 seats
25 seats
no change
0%
unchanged
Degenerate · a single row: the band, the "1 of 1" readout and the summary all hold at a sample of one, and the arrow-key hint drops out because there is nowhere to move.
Trial-to-paid conversion
The only cohort that has finished its trial window
Jan cohortFeb cohortimprovementdecline
Self-serve
18.4%
23.9%
+5.5%+29.9%
20%22%
Rows ordered by improvement, best first. Higher is better, so an improvement is drawn as a rise and carries the up arrow. Bar length is the change on one scale shared by every row; the hollow dot is Jan cohort, the filled dot Feb cohort.
Trial-to-paid conversion: every category at Jan cohort and Feb cohort, with its change. Rows are ordered by improvement, best first. Rising values are improvements.
Rank
Category
Jan cohort
Feb cohort
Change
Relative
Direction
1
Self-serve
18.4%
23.9%
+5.5%
+29.9%
up, an improvement
sort="magnitude" · 24 cities at rowHeight={24}, valueLabels="never", labelWidth={168}. All 24 rows are rendered — the card grows, it never scrolls a row out of sight.
Weekly active accounts by city
24 cities · week 12 vs week 24
Week 12Week 24improvementdecline
New Buddy metro area
+4,301
Connietown metro area
+3,571
Hartmannboro metro area
+3,047
Mariamtown metro area
+2,475
New Lorenzo metro area
-1,847
Sethfort metro area
+1,686
Cranston metro area
+1,548
Vacaville metro area
+1,460
Christiansenstad metro area
-1,427
Morarport metro area
+1,221
Brendacester metro area
+1,003
Moore metro area
+916
Oak Park metro area
-778
Lake Shea metro area
+626
Reillystad metro area
+553
South Fae metro area
-477
Montebello metro area
+445
Lubbock metro area
+317
Fort Raymond metro area
-315
South Geraldine metro area
+240
Madison metro area
+99
East Lelastad metro area
-62
The Hammocks metro area
+53
Fort Frank metro area
-38
5,00010,000
Rows ordered by how far they moved, largest first. Higher is better, so an improvement is drawn as a rise and carries the up arrow. Bar length is the change on one scale shared by every row; the hollow dot is Week 12, the filled dot Week 24. Arrow keys move between rows. Point at or focus a row to read its two values.
Weekly active accounts by city: every category at Week 12 and Week 24, with its change. Rows are ordered by how far they moved, largest first. Rising values are improvements.
Rank
Category
Week 12
Week 24
Change
Relative
Direction
1
New Buddy metro area
9,713
14,014
+4,301
+44.3%
up, an improvement
2
Connietown metro area
7,393
10,964
+3,571
+48.3%
up, an improvement
3
Hartmannboro metro area
7,339
10,386
+3,047
+41.5%
up, an improvement
4
Mariamtown metro area
5,751
8,226
+2,475
+43%
up, an improvement
5
New Lorenzo metro area
9,231
7,384
-1,847
-20%
down, a decline
6
Sethfort metro area
8,359
10,045
+1,686
+20.2%
up, an improvement
7
Cranston metro area
8,010
9,558
+1,548
+19.3%
up, an improvement
8
Vacaville metro area
2,826
4,286
+1,460
+51.7%
up, an improvement
9
Christiansenstad metro area
6,683
5,256
-1,427
-21.4%
down, a decline
10
Morarport metro area
7,485
8,706
+1,221
+16.3%
up, an improvement
11
Brendacester metro area
7,163
8,166
+1,003
+14%
up, an improvement
12
Moore metro area
3,594
4,510
+916
+25.5%
up, an improvement
13
Oak Park metro area
3,761
2,983
-778
-20.7%
down, a decline
14
Lake Shea metro area
8,104
8,730
+626
+7.7%
up, an improvement
15
Reillystad metro area
1,885
2,438
+553
+29.3%
up, an improvement
16
South Fae metro area
5,323
4,846
-477
-9%
down, a decline
17
Montebello metro area
1,014
1,459
+445
+43.9%
up, an improvement
18
Lubbock metro area
8,346
8,663
+317
+3.8%
up, an improvement
19
Fort Raymond metro area
5,609
5,294
-315
-5.6%
down, a decline
20
South Geraldine metro area
9,046
9,286
+240
+2.7%
up, an improvement
21
Madison metro area
2,217
2,316
+99
+4.5%
up, an improvement
22
East Lelastad metro area
6,750
6,688
-62
-0.9%
down, a decline
23
The Hammocks metro area
229
282
+53
+23.1%
up, an improvement
24
Fort Frank metro area
209
171
-38
-18.2%
down, a decline
status="ready" with two rows sharing an id · the structural check refuses to draw and names the id, because a duplicate id silently detaches a row from its readout and its tab stop.
Checkout conversion by market
Share of carts that reached payment · Q1 vs Q4
This comparison can't be drawn
Two rows share the id "de"; ids are what keeps a row attached to its readout and its tab stop.
status="error" · onRetry wired — Try again swaps in the ready payload.
Checkout conversion by market
Share of carts that reached payment · Q1 vs Q4
Couldn't load this chart
The data source didn't respond.
onSelectItem wired · rows become role="button" and answer to click, Enter and Space; sort="end" ranks by the latest value instead of by change.
Operating margin by product line
FY23 vs FY24 · negative means the line lost money
FY23FY24improvementdecline
Support
21.4%
24%
+2.6%+12.1%
Services
12%
9.5%
-2.5%-20.8%
Cloud
-3.2%
6.8%
+10%+312.5%
Hardware
-8.4%
-2.1%
+6.3%+75%
Legacy licences
4%
-6.5%
-10.5%-262.5%
10%20%0%
Rows ordered by their latest value, largest first. Higher is better, so an improvement is drawn as a rise and carries the up arrow. Bar length is the change on one scale shared by every row; the hollow dot is FY23, the filled dot FY24. Arrow keys move between rows.
Operating margin by product line: every category at FY23 and FY24, with its change. Rows are ordered by their latest value, largest first. Rising values are improvements.
Rank
Category
FY23
FY24
Change
Relative
Direction
1
Support
21.4%
24%
+2.6%
+12.1%
up, an improvement
2
Services
12%
9.5%
-2.5%
-20.8%
down, a decline
3
Cloud
-3.2%
6.8%
+10%
+312.5%
up, an improvement
4
Hardware
-8.4%
-2.1%
+6.3%
+75%
up, an improvement
5
Legacy licences
4%
-6.5%
-10.5%
-262.5%
down, a decline
Nothing selected yet — click a row, or Tab into the chart and press Enter.