A four-state violin plot that estimates each group's density itself — Silverman bandwidth, a quartile box inside the silhouette, prominence-tested peak detection and an sr-only stats table.
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" · 5 endpoints, 980 raw observations. GET /search is two populations: 62.5% hit cache (hump at 97 ms) and the rest pay a full scan (hump at 299 ms), and the component marks both with a pair of wedges. The same data in a box plot is only median 110.8 ms, quartiles 90.7–286.9 — the two humps are invisible. Hover, or Tab into the chart and change group with the arrow keys; the readout line carries every number. Click or Enter pins a group.
Response time by endpoint · last 24 h
5 groups · 980 values in ms · gaussian KDE · Silverman bandwidth per group · width by area · GET /search has more than one peak
density (gaussian KDE)
Q1 to Q3
median
full range
peak
Point at a violin, or tab into the plot and use the arrow keys, for its numbers. Click or press Enter to pin one; Escape releases it.
Response time by endpoint · last 24 h — one row per group. Density is a gaussian kernel estimate with Silverman's rule-of-thumb bandwidth per group, cut off at the observed minimum and maximum. Quartiles are linearly interpolated (R type 7). A peak is counted when it stands clear of its deepest neighbouring valley by at least 15percent of the group's tallest peak, which is what makes a two-cluster sample distinguishable from a single skewed one.
Group
n
Median
Q1
Q3
Min
Max
Peaks
Bandwidth
GET /catalog
220
116.8 ms
93.3 ms
141.2 ms
54.7 ms
255.6 ms
103.3 ms
10.9 ms
POST /cart
180
164.6 ms
137.6 ms
208 ms
74.6 ms
460.3 ms
155.8 ms
16.6 ms
GET /search
240
110.8 ms
90.7 ms
286.9 ms
58.5 ms
460 ms
96.5 ms, 299.4 ms
32.5 ms
POST /checkout
140
248.4 ms
202.5 ms
321.2 ms
114.5 ms
626.5 ms
233.1 ms
29.5 ms
GET /profile
200
107.2 ms
91.5 ms
127.7 ms
39.7 ms
262.4 ms
100.6 ms
8.4 ms
status="empty" · a valid contract with not one observation, told apart from loading and from a failed fetch.
Response time by endpoint · last 24 h
Distribution shape per group
No distributions to draw
A violin needs the raw observations behind a category, not a single number per bar.
status="loading" · five skeleton silhouettes, aria-hidden, honouring prefers-reduced-motion, with no timer involved.
Response time by endpoint · last 24 h
Distribution shape per group
Loading distributions
status="error" · the fetch failed. Try again only appears when onRetry is passed, and clicking it flips to ready.
Response time by endpoint · last 24 h
Distribution shape per group
Couldn't load these distributions
The data source didn't respond.
Degenerate data · five groups at once. n=1 (canary) and n=3 (beta) — under five readings nothing estimates a density or reports quartiles; the points are simply drawn. The cached fixture job whose 40 runs all landed on 250 ms has no spread, so it becomes an ingot instead of a curve invented out of nothing. retired shard was measured and returned nothing, so it holds its place with a dashed outline and no data rather than quietly disappearing. The last label is far too long for its band and truncates over two lines, with the full name in the readout and in the sr-only table.
Response time by worker · thin samples
4 groups · 134 values in ms · gaussian KDE · Silverman bandwidth per group · width by area · every group is single-peaked
density (gaussian KDE)
Q1 to Q3
median
full range
Point at a violin, or tab into the plot and use the arrow keys, for its numbers. Click or press Enter to pin one; Escape releases it.
Response time by worker · thin samples — one row per group. Density is a gaussian kernel estimate with Silverman's rule-of-thumb bandwidth per group, cut off at the observed minimum and maximum. Quartiles are linearly interpolated (R type 7). A peak is counted when it stands clear of its deepest neighbouring valley by at least 15percent of the group's tallest peak, which is what makes a two-cluster sample distinguishable from a single skewed one.
Group
n
Median
Q1
Q3
Min
Max
Peaks
Bandwidth
canary
1
canary: 1 observation, every one of them 268 ms. No spread, so no shape to estimate.
beta
3
beta: only 3 observations (214 ms, 268 ms, 302 ms) — too few to estimate a shape, so they are drawn one by one and no quartiles are reported.
cached fixture job
40
250 ms
250 ms
250 ms
250 ms
250 ms
none stands clear
no spread to estimate
retired shard
0
retired shard: measured, no observations recorded.
eu-central-1 · queue-worker-primary
90
284 ms
249.2 ms
311.2 ms
198.4 ms
506 ms
282.6 ms
16.8 ms
Negative values + six figures + widthScale="count" · revenue against control, spanning −159,065 to +297,226: the axis switches to compact notation on its own (−100K all the way to 300K) and adds a dashed baseline at 0. Variant B is really two audiences (humps at −36,111 and +186,114), with a median of −14,722 and a firmly positive mean — two summaries that disagree, and neither of which describes a session anybody actually had. Scaling width by count stops the 40-session Holdout from being as fat as a 160-session variant.
Revenue per session vs control
3 groups · 360 values in USD · gaussian KDE · Silverman bandwidth per group · width by count · Variant B has more than one peak
density (gaussian KDE)
Q1 to Q3
median
full range
peak
Point at a violin, or tab into the plot and use the arrow keys, for its numbers. Click or press Enter to pin one; Escape releases it.
Revenue per session vs control — one row per group. Density is a gaussian kernel estimate with Silverman's rule-of-thumb bandwidth per group, cut off at the observed minimum and maximum. Quartiles are linearly interpolated (R type 7). A peak is counted when it stands clear of its deepest neighbouring valley by at least 15percent of the group's tallest peak, which is what makes a two-cluster sample distinguishable from a single skewed one.
Group
n
Median
Q1
Q3
Min
Max
Peaks
Bandwidth
Variant A
160
42,395 USD
2,122 USD
96,828.3 USD
-159,065 USD
287,850 USD
33,814.1 USD
22,897.3 USD
Variant B
160
-14,722.5 USD
-49,097.5 USD
162,180 USD
-142,593 USD
297,226 USD
-36,110.5 USD, 186,113.8 USD
37,593.7 USD
Holdout
40
4,330.5 USD
-27,271.8 USD
41,923.3 USD
-87,838 USD
152,089 USD
-1,969.4 USD
22,074.6 USD
bandwidth=90 (over-smoothed) + points="jitter" · the same endpoint data: forcing the bandwidth wide erases the second hump in GET /search, and the card summary changes its story to every group is single-peaked — which is exactly why the default takes a Silverman bandwidth per group. The jittered points are placed by frac(i·φ), not Math.random, so two renders are identical, and the points still fall in two clumps that contradict the smoothed silhouette on the spot.
Response time by endpoint · last 24 h
5 groups · 980 values in ms · gaussian KDE · bandwidth 90 ms (fixed) · width by area · every group is single-peaked
density (gaussian KDE)
Q1 to Q3
median
full range
observation
Point at a violin, or tab into the plot and use the arrow keys, for its numbers. Click or press Enter to pin one; Escape releases it.
Points are a rank sample where a group is large: GET /catalog 110/220, POST /cart 90/180, GET /search 120/240, POST /checkout 70/140, GET /profile 100/200. The silhouette and every number below use the full sample.
Response time by endpoint · last 24 h — one row per group. Density is a gaussian kernel estimate with a fixed bandwidth of 90 ms, cut off at the observed minimum and maximum. Quartiles are linearly interpolated (R type 7). A peak is counted when it stands clear of its deepest neighbouring valley by at least 15percent of the group's tallest peak, which is what makes a two-cluster sample distinguishable from a single skewed one.