By the time a stack alarm fires on SOx, NOx, or particulate matter, the deviation has usually been building for hours — sometimes days. The CEMS was recording it the whole time. Nobody was watching the pattern. That is the exact problem statistical process control was invented to solve: separate the normal breathing of the process from the signal that says something has actually changed, and flag it while the reading is still well inside the permit limit. Power plants that layer SPC on live CEMS data stop reacting to exceedances and start catching drifts — the slow reagent shortfall, the fouling ESP field, the drifting analyzer — while there is still time for a work order instead of a violation notice.
iFactory SPC for CEMS
Catch Emissions Drift Hours Before the Stack Alarm Fires
Run live control charts on SOx, NOx, and PM data with Western Electric and Nelson rules — so drift, shifts, and trends get flagged inside the permit envelope, not after it breaks.
An alarm is a single line — the permit limit. SPC adds two more that the process itself defines: the upper and lower control limits (UCL, LCL), calculated from real CEMS variation, and a warning band inside them. Drift is visible as a pattern long before the reading gets anywhere near the permit line.
SOx SPC Chart — 24 hours, 15-minute data
Permit limitUCL / LCLProcess meanDrift caught
SPC flags the drift at hour 12, when seven consecutive points trend upward past the warning band. The stack alarm would only fire near hour 22 — 10 hours later, with far less time to react.
The Three Pollutants and What SPC Actually Catches
Each regulated pollutant has its own control loop, its own failure modes, and its own SPC signature. The value of running control charts on all three at once is that the same chart language — shifts, trends, runs, points near limits — surfaces very different physical problems.
SOx
Sulphur Oxides
Downstream of FGD scrubber
A slow SOx trend upward usually means slurry pH is drifting, recirculation pump performance is degrading, or reagent dosing is falling behind coal sulphur content.
NOx drift usually points at catalyst deactivation, uneven ammonia injection grid distribution, or reagent supply issues — all of which show up as chart patterns before they show up as exceedances.
SPC catches: Sudden shift in mean, load-linked cycling, widening range on R-chart
PM
Particulate Matter
Downstream of ESP / Bag Filter
PM chart patterns often reveal ESP field failures, rapping issues, or bag filter tears well before opacity reaches an alarm state — protecting the biggest visible compliance risk on the plant.
Every serious SPC implementation runs a fixed set of pattern rules on every data stream. On CEMS data, four rules do most of the useful work — and every one of them fires before the permit limit is crossed.
R1
One Point Beyond 3σ
A single reading past the UCL or LCL. Classic special-cause signal — something has changed. On CEMS this usually means an analyzer fault, calibration drift, or a sudden process upset.
R2
Seven Points in a Row Trending
Seven consecutive points all rising or all falling. Classic drift signature — reagent degradation, catalyst aging, or scrubber pH creeping. This is the rule that catches slow problems early.
R3
Nine Points on One Side of Mean
A sustained shift in the process mean, even without crossing 3σ. On CEMS this often means an ESP field has dropped out, a burner has changed, or a control setpoint has quietly moved.
R4
Two of Three Beyond 2σ
Points clustering in the warning band. A high-sensitivity rule that often fires first — telling operators to check the loop before the process drifts further out.
Want to see these rules running on your own CEMS tags? Book a demo — bring one stack and one week of history.
Traditional Alarms vs. SPC on CEMS
The difference is not more data — it is a different way of reading the data you already have. This is what changes when SPC sits on top of the existing CEMS.
Alarm-only monitoring
Reacting at the Permit Line
One threshold — the permit limit itself
Drift invisible until reading spikes
Analyzer faults confused with process faults
Post-hoc exceedance reports and NOVs
CEMS gaps discovered in monthly review
iFactory SPC on CEMS
Catching the Drift Inside the Envelope
UCL, LCL, warning band, and permit line together
Drift flagged hours before exceedance risk
Analyzer health trended alongside pollutant data
Work order triggered from the rule that fired
95%+ data availability tracked live, not monthly
How iFactory Runs the Loop
SPC on CEMS is only useful if the signal reaches the right person with the right action — otherwise it is just another chart. iFactory closes the loop from analyzer reading to work order to verified return-to-control.
01
Ingest CEMS Data
SOx, NOx, PM, O₂, and flow readings pulled every 15 minutes from the CEMS DAS, with analyzer status flags.
02
Compute Control Limits
UCL, LCL, and warning bands calculated from your unit's real historical variation — not from generic values.
03
Apply Pattern Rules
Western Electric and Nelson rules fire on drift, shifts, trends, and points near the warning band.
04
Route the Right Action
The rule that fired maps to a specific playbook — FGD pH check, SCR ammonia grid, ESP field diagnostic.
05
Verify Return to Control
Chart confirms the mean returned to target and no rule refires — the CAPA closes with statistical proof.
What This Delivers
Layering SPC on the CEMS you already have converts continuous data into continuous protection. These are the outcomes plants typically report after moving from alarm-only monitoring to statistical control on emissions data.
Hours
Earlier warning
on slow drifts before exceedance
Fewer
Excess emission reports
from drifts caught inside the envelope
95%+
CEMS availability
held with live analyzer health tracking
Audit
Ready records
for EPA Part 75, MATS, and CPCB norms
Curious how many of your recent exceedances SPC would have caught early? Talk to our compliance team — we'll replay your CEMS history against control rules.
Frequently Asked Questions
Doesn't the CEMS already have alarms — why add SPC?
CEMS alarms fire at the permit limit. SPC fires on the pattern of readings inside the limit — a drift, a shift, a trend, a run — hours or days before that limit is reached. It's the same data, read differently, so you get warning while there's still time to fix the cause instead of just filing the exceedance report.
Which SPC rules make sense for CEMS data?
The standard Western Electric and Nelson rules — one point beyond 3σ, seven or more points trending, nine or more on one side of the mean, and two of three in the warning band. They were designed to separate common-cause noise from real process shifts, which is exactly the problem on a stack analyzer stream.
Does this replace our existing CEMS or DAS?
No. iFactory sits on top of the CEMS you already have. It ingests SOx, NOx, PM, O₂, and flow readings from the DAS, computes control limits from your own historical variation, and runs the pattern rules continuously. The CEMS keeps doing what regulators require; SPC gives your operators the early-warning layer on top.
How does it handle analyzer drift vs. real emission drift?
By trending analyzer health signals — calibration drift, span check results, sample flow, gap flags — in the same chart context as pollutant readings. When SOx trends upward while O₂, temperature, and analyzer status all look normal, that's real process drift. When analyzer status is degrading, that's a maintenance signal, not a scrubber problem. Separating the two is one of the biggest values SPC adds.
Does this support EPA Part 75, MATS, and CPCB reporting?
Yes. The platform maintains hourly and 15-minute data with analyzer status flags, tracks 95%+ CEMS data availability continuously, and produces the audit trail regulators expect — exceedance events, corrective actions, and verified return-to-control — all in one record. The best way to see the fit is to bring one recent audit and walk it through — book a demo and we'll run it live.
Stop reading permits after the fact.
See SPC Running on Your Own CEMS Data
Bring one stack — SOx, NOx, or PM — and one week of history. We'll compute your real UCL and LCL, run the pattern rules against the data, and show exactly how many drifts, shifts, or trends would have been flagged hours before your alarm system caught them.