Personal Quality Control
An Individuals–Moving Range (I-MR) control chart applied to a metric from your own life - sleep, steps, study hours, mood, anything you log daily.
The same statistical process control logic that flags a defective batch on a factory line can flag the one night your sleep genuinely broke pattern - versus normal day-to-day noise.
01 /
The Problem.
// "was that day actually unusual, or just noise?"
Habit trackers show you a graph, but not whether a bad day was a real signal or just ordinary variation. Without a baseline and control limits, every dip looks alarming and every improvement looks like a trend - so nothing actually changes behavior.
Statistical Process Control solves exactly this problem on a factory floor: separate common-cause variation (normal noise) from special-cause variation (something genuinely changed). This project applies that same logic to a personal daily metric.
02 /
Methodology.
// individuals & moving range, worked daily
Moving Range
MR_i = |X_i − X_i−1|. Since a personal metric is one reading per day (no
natural subgroup), variation is estimated from the difference between consecutive days.
Control Limits
UCL/LCL = X̄ ± 2.66 × MR̄. The 2.66 constant is the standard
d2-based multiplier for individuals charts (equivalent to a subgroup of n=2).
Out-of-Control Flagging
Any day outside the control limits is flagged as a likely special cause - worth investigating, unlike ordinary day-to-day fluctuation inside the band.
Baseline Re-centering
As you log more days, the center line and limits recompute from your actual running history - your personal process, not a generic benchmark.
03 /
What’s in the build.
// shipped features
Any metric, your label
Name the metric and its unit - sleep hours, steps, study hours, mood score - the math doesn't care what you're measuring.
One-line daily log
Add a date and a value; control limits and flags recompute instantly from the full history.
Live control chart
An inline SVG plot of every reading against the center line and control limits - no charting library required.
Out-of-control table
Every day is listed with its moving range and a clear flag for any point outside the limits.
Sample dataset
Loads a 14-day sample with one deliberately planted outlier so you can see a real flag before logging your own data.
Local persistence
Your log is saved in the browser between visits - nothing is sent anywhere.
04 /
Stack & Outcome.
// what it took, what it shipped
Stack
Outcome
A student logging even two weeks of a metric gets a real, personally-calibrated control chart - the fastest way to internalize the difference between "normal variation" and "something actually changed" that SPC theory is built on.
Live Tool