Manufacturing SPC (Cpk / Xbar-R)

5 processes, 450 subgroups, 2,250 measurements, where process capability and out-of-control detection come from a real Xbar-R control chart -- including one process with an engineered tool-wear drift that actually trips Western Electric rules where it happens.

A measurement column of independently random floats can't sit at a declared Cp/Cpk, can't split into the right within/between variance an Xbar-R chart actually estimates from, and can't trigger a Western Electric Rule violation at a believable rate. Here, sigma is estimated from Rbar/d2 (the real Xbar-R estimator, not pooled standard deviation), control limits are grand_mean +/- A2 x Rbar set during a Phase I baseline, and one process is built off-center on purpose so Cp measurably exceeds Cpk. A fifth process carries a genuine engineered tool-wear drift over its last third of subgroups, tripping Rule 1 and Rule 4 on 100% of its final subgroups and 0% before the drift starts -- the actual signature these rules exist to catch.

2,710 rows across 4 tables, 23 KB zipped. Public domain (CC0), no signup, no attribution required.

What is in it

processes5 rows

process_id, part_name, characteristic, unit, lsl, usl, target_cpk

real spec limits and target Cpk spanning excellent to failing

subgroups450 rows

subgroup_id, process_id, subgroup_seq, timestamp, xbar, r, rule1_beyond_3sigma, rule3_2of3_beyond_2sigma, rule4_8_consecutive_same_side, out_of_control

Western Electric rule flags, recomputable from the raw measurements

measurements2,250 rows

measurement_id, subgroup_id, process_id, sample_index, value

5 per subgroup, one production shift each

capability_summary5 rows

process_id, n_subgroups_baseline, grand_mean, rbar, sigma_within, ucl_xbar, lcl_xbar, cp, cpk, target_cpk

measured Cp/Cpk from the baseline Xbar-R chart

What holds, and how it was checked

Each line was measured against these exact files rather than asserted. The same checks ship inside the zip as INTEGRITY.txt, so you can re-run them yourself.

  • measured Cpk reconciles to the declared target within sampling tolerance, on all 5 processes
  • Cp >= Cpk on every process; 'Housing Bolt Torque' shows Cp 1.94 vs Cpk 1.41 (built off-center)
  • 'Valve Seal Thickness' measures Cpk 0.83, below the 1.33 capability minimum -- a real failing example
  • stable processes trip a Western Electric rule on 3.3% of subgroups or fewer (a low false-alarm rate)
  • 'Bearing Race Width' (tool-wear drift): 100% of its final subgroups trip a rule vs 0% before the drift started
  • every subgroup's xbar and r reconcile exactly to its own 5 raw measurements

Questions it can answer

  • Does the measured Cpk (from Rbar/d2) actually reconcile with the declared target?
  • How much does an off-center mean cost a process in Cpk vs its potential Cp?
  • Can a control-chart rule catch a gradual tool-wear drift before it becomes a defect?
  • What does a genuinely failing process (below the 1.33 capability minimum) look like in real subgroup data?

Generate a custom version

This dataset is fixed. Different borrower counts, a different rating mix, or a different seed all come from the same underlying schema, so start on the canvas and shape the loan and borrower tables to what you need.

This dataset solves each process's underlying sigma from a declared target Cpk, estimates it back out via a Phase I Xbar-R baseline, and engineers a tool-wear drift into one process's final subgroups -- none of which a per-column declared schema can express, so it ships as a runnable script rather than a schema.yaml a bare misata generate could regenerate honestly.

pip install misata
curl -O https://raw.githubusercontent.com/rasinmuhammed/misata/main/examples/manufacturing_spc.py
python -c "from manufacturing_spc import build, verify; t = build(seed=19); verify(t)"
Read the docs

Other datasets

  • Retail star schema

    A dimensional model you can actually practise joins on: one fact table, four dimensions, 63,170 rows, and every join resolving.

  • Machine degradation

    100 machines monitored from commissioning to failure, with an exact remaining-useful-life label on every one of 23,118 readings.

  • Ecommerce storefront

    A year of orders across five joined tables, with a real Q4 peak and totals that reconcile to the cent.

  • B2B SaaS subscription analytics

    Accounts, seats, MRR, churn and support load, where company size actually drives the plan.

  • Credit risk portfolio

    3,000 borrowers and 4,200 commercial loans, where a credit rating actually predicts whether the loan defaults, at the rate S&P's own data says it should.

  • Network intrusion / netflow

    500 hosts and 20,000 labeled flows, where a port scan, a DDoS flood, and a brute-force attempt each carry the real statistical signature their MITRE ATT&CK technique actually leaves in traffic.

  • Contact center queueing (Erlang C)

    4 queues, 2,400 half-hour intervals over a full business month, where agents_staffed is what Erlang C (1917) says is actually required to clear each queue's own SLA target, not a plausible-looking number.