Statistical Process Control

The Numerics.NET SPC API is a statistical computation engine for Statistical Process Control analysis. It produces chart-ready result objects, control limits, rule-violation records, capability metrics, and diagnostic messages.

What the SPC API provides

The Numerics.NET SPC API provides:

  • Static, retrospective (Phase I) analysis of process data.

  • Variables control charts: Individuals–Moving Range (I‑MR), XBar–R, and XBar–S.

  • Attribute control charts: P, NP, C, and U.

  • Time-weighted charts: EWMA and CUSUM.

  • Nelson and Western Electric rule evaluation.

  • Capability and performance metrics: Cp, Cpk, Pp, Ppk, and one-sided variants.

  • Assumption diagnostics including normality testing.

  • JSON serialization and round-trip persistence of results.

What the SPC API does not provide

The SPC API is a calculation engine, not a charting control or dashboard framework. It does not include:

  • UI widgets or chart controls.

  • Built-in plotting or report generation.

  • Per-observation incremental (streaming) updates.

  Note

Phase II batch monitoring is supported via the Deploy() / Apply(Vector<Double>) lifecycle: fit a chart from Phase I data, deploy it to freeze the control limits, then call Apply(Vector<Double>) on each new batch of observations. Your application layer is responsible for rendering, displaying, and responding to the results.

The chart-centered model

SPC analyses use a chart-centered API. You create a chart object such as IndividualsMovingRangeChartSet, call Analyze() to fit the control limits, then read results directly from the chart's properties (series values, center lines, control limits, rule violations, capability metrics, and diagnostics). Nothing is drawn automatically. Nothing is displayed automatically.

This design keeps statistical computation cleanly separated from presentation, making it straightforward to use the library in desktop applications, web APIs, batch processing pipelines, or reporting services.

Inputs and outputs

Input

Output

Ordered process measurements (Vector<T>, Matrix<T>, or ReadOnlySpan<double>)

Chart points, center line, and control limits

Optional rule set

Rule violations with window start and length

Optional specification limits

Capability and performance metrics

Optional assumption-diagnostics flag

Normality test result and advisory diagnostics

Where to start

Choose the section that matches your current need:

Documentation map

See Also