Control Chart Constants Table — A2, A3, d2, d3, c4, B3, B4, D3, D4 to n = 100
A₂, A₃, d₂, d₃, c₄, B₃, B₄, D₃, D₄ and the rest, for subgroup sizes from 2 to 100 — computed from the normal distribution rather than copied from a table, with the derivation and the source shown for each one.
Why compute them instead of printing a table
Three reasons, and the first is the boring one: the printed tables stop at n = 25. If you are charting subgroups of 30 there is nowhere to look the factor up, and the usual workaround — using the n = 25 row — is simply wrong.
The second is that the tables do not agree with each other. Cross-checking two independent public tables cell by cell turns up a disagreement at D₄ for n = 3: the four-decimal source prints 2.5746 and the three-decimal source prints 2.574, where rounding 2.5746 gives 2.575. One of them derived the factor from its own rounded inputs. That is not a scandal, it is what happens to a table that has been retyped for eighty years, and it is exactly why the /validation page names the exception rather than quietly picking a side.
The third is that a constant with no derivation attached is a number you have to trust. Every symbol on this page carries the expression it comes from, so you can check any cell with a gamma function and a numerical integrator of your own.
Loading the calculation engine…
SVG is vector — it stays sharp at any size in a report. PNG 4× is roughly 600 dpi at figure width. Every export carries the estimator, the constants and the rule set drawn inside the figure, so the file is readable on its own.
Downloads carry a small “made with spcplot.com” credit along the bottom edge. The chart on screen is never watermarked, and the credit is a credit rather than a licence restriction — the figures are yours to publish either way. A Pro or Lifetime licence removes it.
Options
This plot has no adjustable options yet.
Your measurements are processed entirely in this browser tab. Nothing you type here is uploaded, so confidential production data stays confidential.
How each family is derived
c₄ is exact: c₄ = √(2/(n−1))·Γ(n/2)/Γ((n−1)/2). It is the expected value of the sample standard deviation of n standard normal observations, and A₃, B₃, B₄, B₅ and B₆ all follow from it algebraically.
d₂ and d₃ have no elementary closed form. They are the mean and the standard deviation of the range of n standard normal observations, and they are obtained here by integrating the range density n(n−1)∫φ(x)φ(x+w)[Φ(x+w)−Φ(x)]ⁿ⁻² dx. A₂, D₁, D₂, D₃, D₄ and E₂ follow from them.
d₄ is the median of that same range distribution — the unbiasing constant for a median moving range — found by solving its CDF for the half-way point. It is not printed by either source cited here, so it is checked against its own closed form at n = 2, where the median range of a pair is √2·Φ⁻¹(0.75) = 0.9539.
The known-sigma family, which most software omits
A, B₅, B₆, D₁ and D₂ are the factors for the case where σ₀ is not estimated from the data but is known in advance — from a long production history, from a specification, or from a previous validated study. Limits are then μ₀ ± A·σ₀ for averages, B₅σ₀ to B₆σ₀ for standard deviations and D₁σ₀ to D₂σ₀ for ranges.
They are rarely offered because most tools assume you are estimating. If you are running a Phase 2 chart against a baseline that was established properly, these are the right factors and the estimated-sigma ones are not.
Naming, and a trap worth knowing about
The symbols collide across sources, and the collisions are not harmless. `d₄` here is the median moving-range constant and has nothing to do with `D₄`, the upper R-chart factor — one is about 1.98 at n = 4 and the other about 2.28. `E₂`, the individuals factor, is routinely mislabelled `A₂` or `A₃`, including inside at least one published international standard. `A₂` for an X̄-R chart and `Ã₂` for a median chart share the value 1.880 at n = 2 and diverge immediately afterwards.
In this site’s source code the constants are named by role at every call site rather than by letter, for exactly this reason.
Common questions
- What is d₂ used for?
- Estimating the process standard deviation from ranges: σ̂ = R̄/d₂ for subgrouped data, or σ̂ = MR̄/d₂(2) for individuals. It is the mean range of n standard normal observations, so dividing by it converts an average range back into a standard deviation.
- Why is D₃ zero for small subgroups?
- D₃ = 1 − 3d₃/d₂, and for n below 7 that expression is negative. A range cannot be negative, so the factor is clamped at zero and the R chart has no lower control limit. Tables print either 0.000 or a dash; they mean the same thing.
- Can I use these for subgroup sizes above 25?
- Yes — that is most of why this page exists. Nothing changes in the arithmetic above 25; what changes is that no published table covers those rows, so they are marked on the figure as not cross-checkable against a printed source.
- Is A₃ the same as A₂?
- No. A₂ = 3/(d₂√n) is for limits from R̄; A₃ = 3/(c₄√n) is for limits from s̄. They are close for small subgroups and diverge as n grows, because the range loses efficiency against the standard deviation.