Support Matrix

This page is a reference for the implementation constraints and supported configurations of the Numerics.NET SPC API. Use it to verify that your data shape, chart type, and analysis options are compatible before writing production code.

Each table is self-contained. Cross-references to conceptual pages are listed in Chart type vs input representations and in the Choosing the Right Analysis page, which contains decision guidance to accompany the tables here.

Chart type vs input representations

The following table lists which input representations are accepted for each chart type. "Sequence" means a flat IEnumerable<double> or array. "Subgrouped" means a jagged or grouped collection where each element represents one subgroup. "Count/size pair" means a pair of parallel sequences (observed count and sample size).

Chart

Input types

Notes

I‑MR

Sequence

One observation per period. Subgroup size is always 1. Moving range window defaults to 2.

XBar‑R

Subgrouped

Subgroup size must be between 2 and 8 inclusive. See subgroup-size constraints.

XBar‑S

Subgrouped

Subgroup size must be at least 2; no upper bound. Preferred over XBar‑R for subgroup sizes larger than 8.

P

Count/size pair

Defective count and sample size per period. Sample size may vary between periods (variable subgroup).

NP

Count/size pair (equal size required)

All sample sizes must be equal. Limits are expressed as a count, not a proportion.

C

Sequence (integer counts)

Defect count per inspection unit. Inspection area must be constant. Fractional counts are accepted but unusual.

U

Count/size pair

Defects per unit. Inspection area (size) may vary between periods (variable subgroup).

EWMA

Sequence or subgrouped (means)

When subgrouped data is provided the subgroup mean is charted. The smoothing parameter λ must be in the open interval (0, 1].

CUSUM

Sequence or subgrouped (means)

Tabular CUSUM. Reference value k and decision interval h are required. Subgroup means are standardized before accumulation.

Subgroup-size constraints

For variables charts that require subgroups, the subgroup size determines which within-group dispersion estimator is used and affects the unbiasing constants applied to control limits.

Chart

Min subgroup size

Max subgroup size

Notes

I‑MR

N/A (individuals)

N/A (individuals)

Moving range span is configurable; default is 2 consecutive observations.

XBar‑R

2

8

The range statistic loses efficiency rapidly for subgroups larger than 8. Use XBar‑S for larger subgroup sizes.

XBar‑S

2

Unlimited

The c4 unbiasing constant is computed analytically for all subgroup sizes ≥ 2.

Equal vs variable subgroup support

Variable subgroup sizes (where sample size differs from period to period) require pointwise control limits. Charts that require equal subgroup sizes will throw if unequal sizes are provided.

Chart

Equal-size

Variable-size

Notes

I‑MR

Always (n = 1)

Subgroup concept does not apply.

XBar‑R

Yes

No

All subgroups must have the same size. Use XBar‑S if subgroup sizes are unequal.

XBar‑S

Yes

Yes

Variable-size subgroups produce pointwise limits because c4 depends on the individual subgroup size.

P

Yes (scalar limits)

Yes (pointwise limits)

When all sample sizes are equal the scalar limit is exact. When sizes vary, use the pointwise limit vectors for rendering.

NP

Yes (required)

No

NP limits depend on a single constant n. Unequal sizes are not permitted.

C

Always (area = 1)

Inspection area is implicitly constant. Use U for variable inspection areas.

U

Yes (scalar limits)

Yes (pointwise limits)

Same pattern as P: equal areas produce scalar limits; variable areas produce pointwise limits.

EWMA

Yes

No

EWMA limits are time-varying by design (they widen until steady state). Variable subgroup sizes are not supported.

CUSUM

Yes

No

Standardization requires a fixed subgroup size. Variable subgroup sizes are not supported.

Minimum sample requirements

These are the absolute minimums below which the library will refuse to compute limits or will return double.NaN for limit fields. For reliable statistical inference, 20–25 subgroups are conventionally recommended.

Chart

Minimum subgroup count

Minimum total observations

Notes

I‑MR

2

2

At least 2 observations are required to compute a moving range.

XBar‑R

2

4 (2 subgroups × min size 2)

Conventional minimum is 20 subgroups for stable limit estimates.

XBar‑S

2

4 (2 subgroups × min size 2)

Same conventional guidance as XBar‑R.

P

1

1

A p̄ can be computed from a single subgroup, but limits are unreliable with fewer than 20 subgroups.

NP

1

n (one full sample)

Same guidance as P.

C

1

1

c̄ computed from all periods; limits are Poisson-based and valid from a single period mathematically.

U

1

1

Same guidance as C.

EWMA

2

2

A single observation produces a trivial chart. At least 2 observations are needed for meaningful smoothing.

CUSUM

2

2

The cumulative sum starts at 0; meaningful interpretation requires at least 2 periods.

Scalar vs pointwise limit representation

Scalar limits are single double values that apply uniformly to every point on the chart. Pointwise limits are parallel vectors of the same length as Values, one limit value per plotted point. Always prefer the pointwise vectors when rendering charts for variable-sample charts; the scalar value on those charts represents an average limit and is suitable only for summary reporting.

Chart

Scalar limits

Pointwise limits

When to use pointwise

I‑MR (X chart)

Yes

No

Scalar limits are exact; no pointwise vectors are populated.

I‑MR (MR chart)

Yes

No

Scalar limits are exact.

XBar‑R (XBar chart)

Yes

No

Scalar limits are exact.

XBar‑R (R chart)

Yes

No

Scalar limits are exact.

XBar‑S (XBar chart)

Yes (equal sizes) / average (variable)

Yes (variable sizes)

Use pointwise vectors whenever subgroup sizes differ across periods.

P (equal n)

Yes

No

Scalar limits are exact.

P (variable n)

Yes (average)

Yes

Always use the pointwise UpperControlLimits / LowerControlLimits vectors when rendering. The scalar average limit is misleading for individual points.

NP

Yes

No

Equal sizes required; scalar limits are exact.

C

Yes

No

Scalar limits are exact.

U (equal area)

Yes

No

Scalar limits are exact.

U (variable area)

Yes (average)

Yes

Same guidance as P (variable n): always render from pointwise vectors.

EWMA

Yes (steady-state)

Yes (transient phase)

Limits widen during the initial transient before reaching steady state. Use the pointwise vectors for accurate rendering of the full chart.

CUSUM

Yes (decision interval h)

No

The scalar decision interval applies uniformly. The upper and lower CUSUM statistics are in the UpperCusumValues and LowerCusumValues vectors on CusumChart.

Sigma-estimator validity by context

The SigmaEstimator enum controls how within-process variation is estimated for limit calculation. Not all estimators are valid in every context. Supplying an incompatible estimator throws an ArgumentException.

Estimator

Individuals (I‑MR)

Subgrouped (XBar‑R, XBar‑S)

Notes

MovingRange

Yes (default)

No

Estimates σ from the average moving range of consecutive individuals. Invalid for subgrouped data.

WithinRange

No

XBar‑R (default for n ≤ 8)

Estimates σ from the average subgroup range R¯ using the d2 unbiasing constant. Appropriate for subgroup sizes 2–8.

WithinStandardDeviation

No

XBar‑S (default for all n)

Estimates σ from the average subgroup standard deviation S¯ using the c4 unbiasing constant. More efficient than range for n > 4.

OverallStandardDeviation

Yes

Yes

Uses the overall (long-term) standard deviation of all observations. Produces performance limits (Pp, Ppk) rather than capability limits (Cp, Cpk). Not recommended for Shewhart control limits.

Persistence support

All top-level result types produced by the SPC API are decorated for System.Text.Json serialization. Deserialization requires the same assembly version as the serializing runtime; no migration shims are provided across major versions.

Result type

JSON serialize

JSON deserialize

ControlChart (I‑MR)

Yes

Yes

ControlChart (XBar‑R)

Yes

Yes

ControlChart (XBar‑S)

Yes

Yes

ControlChart (P)

Yes

Yes

ControlChart (NP)

Yes

Yes

ControlChart (C)

Yes

Yes

ControlChart (U)

Yes

Yes

ControlChart (EWMA)

Yes

Yes

ControlChart (CUSUM)

Yes

Yes

CapabilityAnalysisResult

Yes

Yes

RuleSetEvaluation

Yes

Yes

Rule evaluation by chart type

Control rules (Nelson, Western Electric) are defined for classic Shewhart charts whose points are approximately normally distributed around a stable center. Applying Shewhart-derived rules to time-weighted charts (EWMA, CUSUM) produces a high false-alarm rate because those chart statistics are autocorrelated by construction.

  Caution

Do not apply Nelson or Western Electric rules to EWMA or CUSUM statistics. The autocorrelation built into those statistics invalidates the independence assumption that makes the run rules meaningful. Use the chart's own decision interval or the ARL-based threshold instead.

Chart

Nelson rules

Western Electric rules

Notes / cautions

I‑MR (X chart)

Yes

Yes

Run rules apply to the X chart. Applying rules to the MR chart is unusual and not recommended.

XBar‑R (XBar chart)

Yes

Yes

Run rules apply to the XBar chart. Rules on the R chart have limited statistical basis; apply with caution.

XBar‑S (XBar chart)

Yes

Yes

Same guidance as XBar‑R.

P

Yes (with caution)

Yes (with caution)

Attribute data is approximately normal only when np̄ ≥ 5 and n(1−p̄) ≥ 5. Rule sensitivity is reduced for sparse defective rates.

NP

Yes (with caution)

Yes (with caution)

Same normality caveat as P.

C

Yes (with caution)

Yes (with caution)

Poisson approximation to normal improves as c̄ increases. Rules are unreliable when c̄ < 5.

U

Yes (with caution)

Yes (with caution)

Same caveat as C.

EWMA

Not recommended

Not recommended

EWMA statistics are serially correlated. Applying Shewhart run rules substantially inflates the false-alarm rate. Use the decision interval only.

CUSUM

Not recommended

Not recommended

CUSUM statistics accumulate deviations and are never independent. Run rules are meaningless on the cumulative sum series.

See Also