A four-state raincloud that stacks a half-violin density, a Tukey box summary and the jittered raw readings in three lanes on one shared scale — id-hashed jitter, keyboard-walkable rows with landmark announcements, and an out-loud sampling notice.
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" · 472 requests across four releases on one shared scale. v2.2.0 is the case for the cloud: its box draws a single wide middle half with the median sitting in the valley between two humps — a latency almost nobody actually got — while the cloud shows two populations. v2.3.0 hides four named stalls past the upper fence, drawn as diamonds rather than as a colour, and the readout names them. Click a row to pin its median as the dashed comparison baseline.
Checkout latency by release
4 rows · 472 requests · every one drawn as its own drop · highest median v2.2.0 at 357.5 ms · 12 past a 1.5 IQR fence
cloud · density
box · middle half, whiskers at 1.5 IQR, median
rain · one drop per request, diamonds past a fence
drops are jittered across the lane, never along the axis
Point at a row for its summary, or tab in and use ↑↓ between rows and ←→ along the box. Click or press Enter to pin a row's median as the comparison baseline; Escape releases it.
Checkout latency by release — one row per group. The cloud is a gaussian kernel density estimated from the whole sample; quartiles are linearly interpolated (R type 7); whiskers stop on the most extreme reading still within 1.5×IQR of the nearest quartile, so a whisker always sits on an observation rather than on the fence; everything beyond a fence is listed as an outlier.
Group
requests
Median
Q1
Q3
Whiskers
Outliers
v2.1.0
140
324 ms
276.5 ms
385.8 ms
177 ms to 537 ms
1, from 590 ms to 590 ms
v2.2.0
160
357.5 ms
294 ms
625.3 ms
211 ms to 965 ms
none
v2.3.0
124
302.5 ms
265.8 ms
348.3 ms
184 ms to 457 ms
9, from 481 ms to 3,120 ms
v2.3.1 hotfix
48
299 ms
278.8 ms
332.3 ms
207 ms to 394 ms
2, from 429 ms to 436 ms
onGroupSelect → no baseline pinned
status="empty" · a valid contract with not one reading, worded so it cannot be mistaken for a failed fetch or for a summary that arrived pre-aggregated.
Checkout latency by release
Density, five-number summary and the raw readings on one shared scale
No requests to plot
A raincloud estimates the density, the quartiles and the fences from the sample itself, so it needs the raw readings — not a five-number summary, an average or a percentile per category.
status="loading" · three skeleton rows with a cloud, a box bar and rain, aria-hidden, honouring prefers-reduced-motion, with no timer involved.
Checkout latency by release
Density, five-number summary and the raw readings on one shared scale
Loading requests
status="error" · the fetch failed. Try again only appears when onRetry is passed; pressing it flips the card to ready and moves focus to the first row, so focus never lands on the body.
Checkout latency by release
Density, five-number summary and the raw readings on one shared scale
Couldn't load these requests
The data source didn't respond.
Awkward data · canary is one reading and smoke test is three, which is where a density estimate starts inventing a shape and Tukey fences start calling half a sample outliers — so those rows get their drops and a median tick, and the card says why. retired shard was measured and returned nothing, so it keeps its row. cached fixture is forty requests that all landed on 250 ms: no spread, no density, a box collapsed to a sliver. The last row's label is far too long for the gutter and clamps to two lines with the full text in its tooltip, and three of its entries arrived with no usable number — counted out loud rather than dropped quietly.
Awkward samples
5 rows · 78 requests · every one drawn as its own drop · highest median smoke test at 399 ms · 3 past a 1.5 IQR fence · 3 carried no usable number and were dropped
cloud · density
box · middle half, whiskers at 1.5 IQR, median
rain · one drop per request, diamonds past a fence
drops are jittered across the lane, never along the axis
Point at a row for its summary, or tab in and use ↑↓ between rows and ←→ along the box. Click or press Enter to pin a row's median as the comparison baseline; Escape releases it.
canary, smoke test carry fewer than 5 requests, which is where a density estimate starts inventing a shape and Tukey fences start calling half the sample outliers — so those rows get their raw drops and a median tick, never a cloud or a box.
3 requests arrived without a usable number and could not be placed. They are counted here rather than dropped quietly, and they are excluded from every figure on this card.
Awkward samples — one row per group. The cloud is a gaussian kernel density estimated from the whole sample; quartiles are linearly interpolated (R type 7); whiskers stop on the most extreme reading still within 1.5×IQR of the nearest quartile, so a whisker always sits on an observation rather than on the fence; everything beyond a fence is listed as an outlier.
Group
requests
Median
Q1
Q3
Whiskers
Outliers
canary
1
296 ms
too few for quartiles — readings 296 ms
smoke test
3
399 ms
too few for quartiles — readings 311 ms, 399 ms, 578 ms
retired shard
0
no requests recorded
cached fixture
40
250 ms
250 ms
250 ms
250 ms to 250 ms
none
provisioned-concurrency-warm-pool (eu-west-1)
34
219.5 ms
192.5 ms
239 ms
168 ms to 262 ms
3, from 108 ms to 349 ms
Too many to draw, said out loud · 900 + 260 invocations against the default maxPoints=300. burst traffic draws 300 of 900 as a rank sample — every k-th value of the sorted sample with both extremes kept — and the summary, the gutter (rain 300/900), the row's accessible label and the data table all say so. The cloud, the quartiles and the fences are computed from all 900: only the rain is ever a subsample.
Invocation duration, one week
2 rows · 1,160 invocations · 560 drawn as rain (rank sample) · highest median burst traffic at 357.5 ms · 25 past a 1.5 IQR fence
cloud · density
box · middle half, whiskers at 1.5 IQR, median
rain · one drop per invocation, diamonds past a fence
drops are jittered across the lane, never along the axis
Point at a row for its summary, or tab in and use ↑↓ between rows and ←→ along the box. Click or press Enter to pin a row's median as the comparison baseline; Escape releases it.
Too many invocations to give every one its own drop, so these rows draw a rank sample — every k-th value of the sorted sample, both extremes kept: burst traffic 300 of 900. The cloud, the box and every figure on this card still use the whole sample.
Invocation duration, one week — one row per group. The cloud is a gaussian kernel density estimated from the whole sample; quartiles are linearly interpolated (R type 7); whiskers stop on the most extreme reading still within 1.5×IQR of the nearest quartile, so a whisker always sits on an observation rather than on the fence; everything beyond a fence is listed as an outlier.
Group
invocations
Median
Q1
Q3
Whiskers
Outliers
burst traffic
900 (300 drawn as rain)
357.5 ms
299.8 ms
434.3 ms
146 ms to 636 ms
18, from 638 ms to 880 ms
steady traffic
260
297 ms
260 ms
340.3 ms
159 ms to 456 ms
7, from 463 ms to 554 ms
widthScale="count" · the same four releases, with each cloud weighted by its own n. v2.3.1 hotfix has 48 requests against v2.2.0's 160 and now looks it, which is the honest reading when sample size is part of the argument. The default "area" gives every row the same enclosed area; "width" normalises each row to its own peak and compares shape alone.
Checkout latency by release
4 rows · 472 requests · every one drawn as its own drop · highest median v2.2.0 at 357.5 ms · 12 past a 1.5 IQR fence
cloud · density
box · middle half, whiskers at 1.5 IQR, median
rain · one drop per request, diamonds past a fence
drops are jittered across the lane, never along the axis
Point at a row for its summary, or tab in and use ↑↓ between rows and ←→ along the box. Click or press Enter to pin a row's median as the comparison baseline; Escape releases it.
Checkout latency by release — one row per group. The cloud is a gaussian kernel density estimated from the whole sample; quartiles are linearly interpolated (R type 7); whiskers stop on the most extreme reading still within 1.5×IQR of the nearest quartile, so a whisker always sits on an observation rather than on the fence; everything beyond a fence is listed as an outlier.
Group
requests
Median
Q1
Q3
Whiskers
Outliers
v2.1.0
140
324 ms
276.5 ms
385.8 ms
177 ms to 537 ms
1, from 590 ms to 590 ms
v2.2.0
160
357.5 ms
294 ms
625.3 ms
211 ms to 965 ms
none
v2.3.0
124
302.5 ms
265.8 ms
348.3 ms
184 ms to 457 ms
9, from 481 ms to 3,120 ms
v2.3.1 hotfix
48
299 ms
278.8 ms
332.3 ms
207 ms to 394 ms
2, from 429 ms to 436 ms
rain="none" + rowHeight=76 · the compact dashboard build: cloud and box only, no raw layer. The readings past a fence survive as diamonds on the box lane, because an outlier that disappeared with the rain would let the box lie about the tail. The sampling notice disappears with the rain it was describing.
Checkout latency by release
4 rows · 472 requests · rain off — cloud, box and the readings past a fence · highest median v2.2.0 at 357.5 ms · 12 past a 1.5 IQR fence
cloud · density
box · middle half, whiskers at 1.5 IQR, median
rain off · the readings past a fence stay, as diamonds
Point at a row for its summary, or tab in and use ↑↓ between rows and ←→ along the box. Click or press Enter to pin a row's median as the comparison baseline; Escape releases it.
Checkout latency by release — one row per group. The cloud is a gaussian kernel density estimated from the whole sample; quartiles are linearly interpolated (R type 7); whiskers stop on the most extreme reading still within 1.5×IQR of the nearest quartile, so a whisker always sits on an observation rather than on the fence; everything beyond a fence is listed as an outlier.
Group
requests
Median
Q1
Q3
Whiskers
Outliers
v2.1.0
140
324 ms
276.5 ms
385.8 ms
177 ms to 537 ms
1, from 590 ms to 590 ms
v2.2.0
160
357.5 ms
294 ms
625.3 ms
211 ms to 965 ms
none
v2.3.0
124
302.5 ms
265.8 ms
348.3 ms
184 ms to 457 ms
9, from 481 ms to 3,120 ms
v2.3.1 hotfix
48
299 ms
278.8 ms
332.3 ms
207 ms to 394 ms
2, from 429 ms to 436 ms
Negative values + trim=false + bandwidth=2600 · revenue change per account against control, so the axis grows a dashed rule at zero and you can see how much of each cloud falls on the losing side. trim=false lets the gaussian tails run past the observed extremes, which is only honest where the quantity really is unbounded — on a latency chart it would paint mass below 0 ms. One fixed bandwidth is what makes the three shapes comparable: per-row Silverman would smooth each of them by a different amount.
Revenue change per account vs. control
3 rows · 240 accounts · every one drawn as its own drop · highest median Variant B at 4,820 USD · 1 past a 1.5 IQR fence
cloud · density
box · middle half, whiskers at 1.5 IQR, median
rain · one drop per account, diamonds past a fence
drops are jittered across the lane, never along the axis
Point at a row for its summary, or tab in and use ↑↓ between rows and ←→ along the box. Click or press Enter to pin a row's median as the comparison baseline; Escape releases it.
Revenue change per account vs. control — one row per group. The cloud is a gaussian kernel density estimated from the whole sample; quartiles are linearly interpolated (R type 7); whiskers stop on the most extreme reading still within 1.5×IQR of the nearest quartile, so a whisker always sits on an observation rather than on the fence; everything beyond a fence is listed as an outlier.