ControlStrip
React control strip chart — process readings against control limits for out-of-control signals. Tiny accessible SVG microchart; RSC-safe static or /interactive.
ControlStrip answers "is the process in control — or did something leave the band?". It's a Shewhart individuals chart: the control band is the process center ± 3σ̂, where σ̂ = mean moving range ÷ 1.128 — the individuals estimator, stated outright (sample SD is not used; it inflates the limits under drift). In-control points are bare vertices; only out-of-control points are marked (ringed, in the negative color), because an in-control process should look boring.
Install
import { ControlStrip } from "@microcharts/react/control-strip";// weights — real values under “Sample data” below<ControlStrip data={weights} title="Line 3 fill weight" />Sample data
// 30 fill-weight readings (g); mostly in control, two excursionsconst weights = [74, 73, 75, 74, 76, 73, 74, 75, 74, 73, 82, 74, 75, 73, 74, 76, 74, 73, 75, 74, 66, 74, 75, 74, 73, 76, 74, 75, 74, 73];Try it
When to use it
- Good for — a production line or metric in a table cell, an SPC control chart in a KPI card, flagging out-of-control excursions at a glance.
- Avoid for — a plain trend (Sparkline) or a strongly trending series (ChangePoint — control limits assume a stationary process).
Sizing
Variants
The chart draws no in-chart numbers, so format/locale shape the accessible summary and the interactive announcements
— the strip above reads "All 12 points within control limits (center 2,5, limits 2,1–2,9)." with German decimal commas.
Edge cases
Four homes
Why this default
Flag only the out-of-band points, because an in-control process should look boring — the eye should land on the
exception, not scan every dot. The σ̂ estimator is the moving-range one (MR̄ / 1.128), never a vague "±3 sigma";
limits="percentile" states its exact quantiles for skewed processes. Western Electric rules are conventions, so the
implemented subset is enumerated (WE-1 beyond 3σ, WE-2 two-of-three beyond 2σ, WE-4 eight on one side) and none fires
silently. With fewer than 10 points the band is dashed and the summary says "limits provisional".
Accessibility
The accessible name states the excursion count, the center, and the limits — "2 of 30 points outside control limits (center 74.17, limits 67.84–80.49)."; an in-control run reads "All N points within control limits …". The interactive entry steps the points and out-of-control points announce which limit they crossed.
The interactive entry follows the shared interaction contract:
arrow keys rove between units on both axes, Home and End jump to the ends, and a click, tap, Enter or
Space selects a unit — pinning its readout so it survives blur, until you select it again or press Escape.
On touch, a tap pins and a drag scrubs.
Props
| Prop | Type | Notes |
|---|---|---|
| data* | number[] | Sequential measurements. |
| limits | "sigma" | "percentile" | ±3σ̂ (default) or empirical p0.135/p99.865 for skewed processes. |
| baseline | number | Known process center from a reference period (else = mean). |
| rules | "none" | "we" | Western Electric secondary run rules (WE-1/2/4 subset). |
| dots | "out" | "all" | "none" | Mark only out-of-control points (default), every point, or none. |
| animate | boolean | interactiveOpt-in entrance motion when the chart mounts client-side — add import "@microcharts/react/motion" once. Inert on the server, on hydrated server HTML, and under prefers-reduced-motion. |
Plus the shared grammar — data, domain, color, title, summary, format — and the layout props (width, height, className, style) that every chart accepts. Interactive entries also share animate and live, and — wherever a chart has more than one navigable unit — onActive, onSelect, selectedIndex and defaultSelectedIndex; and — wherever the chart shows a hover value — readout. See the shared grammar.
Related charts
ErrorBudget
React error-budget chart — SLO budget remaining against the steady-burn diagonal and burn-rate lines. Tiny accessible SVG microchart; RSC-safe static or /interactive.
ForecastCone
React forecast cone chart — history plus a widening prediction cone for landing risk. Tiny accessible SVG microchart; RSC-safe static or /interactive.