A four-state UpSet plot for set overlaps a Venn cannot draw — a dots-and-lines membership matrix under sorted size bars, per-set totals on the left, and disjoint columns that add up instead of double-counting.
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,875 accounts, split into 16 buckets that never overlap: every account sits in exactly one column, so the bars add up to the total instead of double-counting it. Dashboards alone is 3,120; the 74 who use all five features are the last column, which a Venn of five sets cannot draw at all. The left bar for Dashboards (8,365) is the sum of the eleven columns with a dot on its row. Point at a column, or tab into the matrix and use the arrow keys, then press Enter to pin.
Accounts by feature adopted
Paid workspaces, last 30 days
5 sets · 16 of 16 combinations drawn · 9,875 accounts · biggest overlap Dashboards at 3,120
Order columns byOrdered by size, largest first.
items in exactly those sets
set total
in the set · not in it
Point at a column, or tab into the matrix and use the arrow keys, for the sets behind it. Click or press Enter to pin one; Escape releases it.
Columns are disjoint: every account is counted once, in exactly one column, so the bars add up to 9,875 accounts instead of overlapping.
The columns are too narrow to print every count. Point at a column, or tab into the matrix and use the arrow keys — and every figure is in the table below.
Accounts by feature adopted — one row per combination. Each row counts the accounts that are in exactly those sets and no others, so the rows are disjoint and their sizes add up to the total. Ordered by size, largest first.
Sets
Sets in this combination
accounts
Share of total
Dashboards only
1
3,120
31.6%
Dashboards and Alerts only
2
1,860
18.8%
Dashboards and API only
2
940
9.5%
Dashboards and Alerts and API only
3
720
7.3%
API only
1
610
6.2%
Alerts only
1
540
5.5%
Dashboards and Mobile app only
2
480
4.9%
Dashboards and Alerts and Mobile app only
3
360
3.6%
Dashboards and API and SSO only
3
300
3%
Dashboards and Alerts and API and SSO only
4
265
2.7%
Mobile app only
1
180
1.8%
Dashboards and Alerts and API and Mobile app only
4
150
1.5%
API and SSO only
2
120
1.2%
Dashboards and Mobile app and SSO only
3
96
1%
Dashboards and Alerts and API and Mobile app and SSO only
5
74
0.7%
Alerts and Mobile app only
2
60
0.6%
Accounts by feature adopted — one row per set. A set's total is every account in it, overlaps included; the listed part is what the combinations above account for.
Set
Total
In listed combinations
In combinations not listed
Dashboards
8,365
8,365
0
Alerts
4,029
4,029
0
API
3,179
3,179
0
Mobile app
1,400
1,400
0
SSO
855
855
0
onCombinationSelect → nothing pinned
Order columns by · the same 16 buckets, sorted by how many sets meet rather than by size. Size answers "which overlap is biggest"; degree answers "how deep does adoption go" — the singles, then the pairs, then the one column where all five meet. The buttons are real buttons, so the order is reachable without a pointer, and each change is announced politely.
Accounts by feature adopted
Paid workspaces, last 30 days
5 sets · 16 of 16 combinations drawn · 9,875 accounts · biggest overlap Dashboards at 3,120
Order columns byOrdered by how many sets meet, fewest first.
items in exactly those sets
set total
in the set · not in it
Point at a column, or tab into the matrix and use the arrow keys, for the sets behind it. Click or press Enter to pin one; Escape releases it.
Columns are disjoint: every account is counted once, in exactly one column, so the bars add up to 9,875 accounts instead of overlapping.
The columns are too narrow to print every count. Point at a column, or tab into the matrix and use the arrow keys — and every figure is in the table below.
Accounts by feature adopted — one row per combination. Each row counts the accounts that are in exactly those sets and no others, so the rows are disjoint and their sizes add up to the total. Ordered by how many sets meet, fewest first.
Sets
Sets in this combination
accounts
Share of total
Dashboards only
1
3,120
31.6%
API only
1
610
6.2%
Alerts only
1
540
5.5%
Mobile app only
1
180
1.8%
Dashboards and Alerts only
2
1,860
18.8%
Dashboards and API only
2
940
9.5%
Dashboards and Mobile app only
2
480
4.9%
API and SSO only
2
120
1.2%
Alerts and Mobile app only
2
60
0.6%
Dashboards and Alerts and API only
3
720
7.3%
Dashboards and Alerts and Mobile app only
3
360
3.6%
Dashboards and API and SSO only
3
300
3%
Dashboards and Mobile app and SSO only
3
96
1%
Dashboards and Alerts and API and SSO only
4
265
2.7%
Dashboards and Alerts and API and Mobile app only
4
150
1.5%
Dashboards and Alerts and API and Mobile app and SSO only
5
74
0.7%
Accounts by feature adopted — one row per set. A set's total is every account in it, overlaps included; the listed part is what the combinations above account for.
Set
Total
In listed combinations
In combinations not listed
Dashboards
8,365
8,365
0
Alerts
4,029
4,029
0
API
3,179
3,179
0
Mobile app
1,400
1,400
0
SSO
855
855
0
status="empty" · a valid contract with no buckets in it, worded so it cannot be mistaken for a failed fetch — and it explains why per-set totals alone are not enough to draw one.
Accounts by feature adopted
Paid workspaces, last 30 days
Every item counted once, in exactly one column
No intersections to plot
An UpSet plot draws the buckets between the sets — how many items are in exactly these sets and no others. Per-set totals on their own cannot be split into columns, because the same item would land in several of them.
status="loading" · a skeleton of bars and a dot matrix, aria-hidden, honouring prefers-reduced-motion, with no timer involved.
Accounts by feature adopted
Paid workspaces, last 30 days
Every item counted once, in exactly one column
Loading set intersections
status="error" · the fetch failed. Try again only appears when onRetry is passed; clicking it flips the card to ready, and focus lands on the chart rather than on the body the button just left.
Accounts by feature adopted
Paid workspaces, last 30 days
Every item counted once, in exactly one column
Couldn't load these intersections
The data source didn't respond.
Awkward data · five of these ten rows cannot be drawn, each for a different reason — one names a set that is not on the list, one names no set at all, one repeats a membership already listed (the same item counted twice), and two carry counts that are not cardinalities (NaN, −12). All five are counted by reason under the chart. What survives is still awkward: a bucket measured at exactly 0 keeps its column and prints the zero, a tie at 240 is broken by degree and then by input order, Retired flag was measured and named by nothing so its row stays at zero, the warm-pool label is far too long for the gutter and elides with the full name in its tooltip, and Audit log states a total of 100 while the columns naming it add up to 260 — a contradiction the card names instead of picking a winner.
Awkward sets
Every awkward shape at once
4 sets · 5 of 5 combinations drawn · 740 runs · biggest overlap Canary cohort at 240
Order columns byOrdered by size, largest first.
items in exactly those sets
set total
in the set · not in it
Point at a column, or tab into the matrix and use the arrow keys, for the sets behind it. Click or press Enter to pin one; Escape releases it.
Columns are disjoint: every run is counted once, in exactly one column, so the bars add up to 740 runs instead of overlapping.
Audit log states a total smaller than the combinations naming it. The bar shows the summed parts, because those are the numbers the columns were drawn from — check whether the payload is sending inclusive intersections rather than disjoint ones.
5 of 10 rows could not be drawn: 1 named a set that is not on the list, 1 repeated a membership already listed, 1 named no set at all, 2 carried no usable count — counted here rather than dropped quietly.
Awkward sets — one row per combination. Each row counts the runs that are in exactly those sets and no others, so the rows are disjoint and their sizes add up to the total. Ordered by size, largest first.
Sets
Sets in this combination
runs
Share of total
Canary cohort only
1
240
32.4%
Canary cohort and provisioned-concurrency-warm-pool (eu-west-1) only
2
240
32.4%
provisioned-concurrency-warm-pool (eu-west-1) and Audit log only
2
160
21.6%
Audit log only
1
100
13.5%
provisioned-concurrency-warm-pool (eu-west-1) only
1
0
0%
Awkward sets — one row per set. A set's total is every run in it, overlaps included; the listed part is what the combinations above account for.
Set
Total
In listed combinations
In combinations not listed
Canary cohort
480
480
0
Retired flag
0
0
0
provisioned-concurrency-warm-pool (eu-west-1)
400
400
0
Audit log
260
260
0
One column · three sets, one measured overlap. The geometry holds — the column takes its maximum width rather than stretching, and Partner referral keeps its row at zero instead of vanishing. With nothing to reorder, the order buttons go aria-disabled rather than native disabled: they keep their tab stop and can still explain why they do nothing.
Signups by source
One overlap, three sets
3 sets · 1 of 1 combinations drawn · 42 signups · biggest overlap Newsletter + Trial at 42
Order columns byOrdered by size, largest first.
items in exactly those sets
set total
in the set · not in it
Point at a column, or tab into the matrix and use the arrow keys, for the sets behind it. Click or press Enter to pin one; Escape releases it.
Columns are disjoint: every signup is counted once, in exactly one column, so the bars add up to 42 signups instead of overlapping.
Signups by source — one row per combination. Each row counts the signups that are in exactly those sets and no others, so the rows are disjoint and their sizes add up to the total. Ordered by size, largest first.
Sets
Sets in this combination
signups
Share of total
Newsletter and Trial only
2
42
100%
Signups by source — one row per set. A set's total is every signup in it, overlaps included; the listed part is what the combinations above account for.
Set
Total
In listed combinations
In combinations not listed
Newsletter
42
42
0
Trial
42
42
0
Partner referral
0
0
0
Too many combinations, said out loud · six sets have 63 possible overlaps and this payload holds all 63. maxCombinations=12 keeps the twelve largest — never the first twelve — and the card states how many it dropped and how many workspaces they held (16,706, or 37.7% of the total). The set totals on the left still count every one of the 63, which is why they are taller than the columns can account for.
Workspaces by feature adopted
Six features, sixty-odd possible overlaps
6 sets · 12 of 63 combinations drawn · 44,291 workspaces · biggest overlap SSO at 4,532
Order columns byOrdered by size, largest first.
items in exactly those sets
set total
in the set · not in it
Point at a column, or tab into the matrix and use the arrow keys, for the sets behind it. Click or press Enter to pin one; Escape releases it.
Columns are disjoint: every workspace is counted once, in exactly one column, so the bars add up to 44,291 workspaces instead of overlapping.
Drawing the 12 largest of 63 combinations — the 51 not drawn hold 16,706 workspaces between them (37.7% of the total). The set totals on the left still count all of them.
Workspaces by feature adopted — one row per combination. Each row counts the workspaces that are in exactly those sets and no others, so the rows are disjoint and their sizes add up to the total. Ordered by size, largest first.
Sets
Sets in this combination
workspaces
Share of total
SSO only
1
4,532
10.2%
Search only
1
4,140
9.3%
Saved filters only
1
3,707
8.4%
Exports only
1
2,671
6%
Exports and API only
2
1,951
4.4%
Search and Alerts only
2
1,766
4%
Saved filters and API only
2
1,757
4%
Search and API only
2
1,610
3.6%
Exports and SSO only
2
1,527
3.4%
Saved filters and SSO only
2
1,478
3.3%
Search and SSO only
2
1,361
3.1%
Search and Saved filters only
2
1,085
2.4%
Workspaces by feature adopted — one row per set. A set's total is every workspace in it, overlaps included; the listed part is what the combinations above account for.
Set
Total
In listed combinations
In combinations not listed
Search
16,165
16,165
0
Saved filters
15,795
15,795
0
Exports
14,113
14,113
0
Alerts
10,762
10,762
0
API
13,299
13,299
0
SSO
16,347
16,347
0
Stated totals vs. listed parts · the payload states each tag's total and then lists only its six biggest overlaps, as a "top N" query would. The gap becomes a hatched tail on every left bar — texture, not a paler shade, so it survives greyscale — and the card says what the hatching is. Silently drawing the parts as if they were the whole is the failure this replaces.
Tickets by tag
The six biggest overlaps of a much longer tail
4 sets · 6 of 6 combinations drawn · 4,430 tickets · biggest overlap How-to at 1,510
Order columns byOrdered by size, largest first.
items in exactly those sets
set total
in the set · not in it
in combinations not listed
Point at a column, or tab into the matrix and use the arrow keys, for the sets behind it. Click or press Enter to pin one; Escape releases it.
Columns are disjoint: every ticket is counted once, in exactly one column, so the bars add up to 4,430 tickets instead of overlapping.
The hatched tail on How-to, Billing, Bug report, Outage is the part of those sets no listed combination accounts for — the stated total minus the parts, not a rounding error.
Tickets by tag — one row per combination. Each row counts the tickets that are in exactly those sets and no others, so the rows are disjoint and their sizes add up to the total. Ordered by size, largest first.
Sets
Sets in this combination
tickets
Share of total
How-to only
1
1,510
34.1%
Billing only
1
1,020
23%
Bug report only
1
740
16.7%
How-to and Billing only
2
430
9.7%
Bug report and Outage only
2
380
8.6%
Outage only
1
350
7.9%
Tickets by tag — one row per set. A set's total is every ticket in it, overlaps included; the listed part is what the combinations above account for.
Set
Total
In listed combinations
In combinations not listed
How-to
2,410
1,940
470
Billing
1,840
1,450
390
Bug report
1,320
1,120
200
Outage
960
730
230
Compact and static · barHeight=88, rowHeight=18, sortable=false and showValues=false turn the same data into a dashboard tile. Nothing is lost: the counts move to the readout, the tooltip and the data table, and the card says where they went. This is the density lever, and it changes what is printed — never what is drawn.
Accounts by feature adopted
Paid workspaces, last 30 days
5 sets · 16 of 16 combinations drawn · 9,875 accounts · biggest overlap Dashboards at 3,120
items in exactly those sets
set total
in the set · not in it
Point at a column, or tab into the matrix and use the arrow keys, for the sets behind it. Click or press Enter to pin one; Escape releases it.
Columns are disjoint: every account is counted once, in exactly one column, so the bars add up to 9,875 accounts instead of overlapping.
Counts are not printed on the bars. Point at a column, or tab into the matrix and use the arrow keys — and every figure is in the table below.
Accounts by feature adopted — one row per combination. Each row counts the accounts that are in exactly those sets and no others, so the rows are disjoint and their sizes add up to the total. Ordered by size, largest first.
Sets
Sets in this combination
accounts
Share of total
Dashboards only
1
3,120
31.6%
Dashboards and Alerts only
2
1,860
18.8%
Dashboards and API only
2
940
9.5%
Dashboards and Alerts and API only
3
720
7.3%
API only
1
610
6.2%
Alerts only
1
540
5.5%
Dashboards and Mobile app only
2
480
4.9%
Dashboards and Alerts and Mobile app only
3
360
3.6%
Dashboards and API and SSO only
3
300
3%
Dashboards and Alerts and API and SSO only
4
265
2.7%
Mobile app only
1
180
1.8%
Dashboards and Alerts and API and Mobile app only
4
150
1.5%
API and SSO only
2
120
1.2%
Dashboards and Mobile app and SSO only
3
96
1%
Dashboards and Alerts and API and Mobile app and SSO only
5
74
0.7%
Alerts and Mobile app only
2
60
0.6%
Accounts by feature adopted — one row per set. A set's total is every account in it, overlaps included; the listed part is what the combinations above account for.