Skip to content
Predict.ai

In production

Anomaly detection for business metrics: bands beat thresholds

A fixed threshold treats every Tuesday like every Saturday. A forecast band asks whether today is weird given what the series usually does at this clock. That is the difference between an on-call fire drill and a useful alert.

Updated Aug 5, 2026·8 min read

The threshold trap

“Page if traffic > 1,200” treats every Saturday like a crisis, or it ignores a quiet Wednesday that is actually on fire. Seasonal metrics have a clock. A frozen line does not. Teams either live with noise or they raise the bar until a real incident hides under it.

Bands vs a flat line

Forecast band anomalybreakold threshold
A static threshold would either page every peak or ignore a real break. The lime band is 'normal for this weekday.' Point 23 is not.

Use the forecast as the normal

A calibrated interval is “what this timestamp usually does.” When actuals leave p05–p95 more than they should, something changed — demand, tracking, or a broken feed. The forecast is the definition of normal. That is the whole trick, and it is why a stale forecast makes a bad anomaly detector.

You still need the forecast to be honest. If the band is swaggering, you will page on every peak. If it is timid, you will never page. Calibration first, alerts second.

Tuning so people still listen

  • Require persistence: two intervals in a row, not one noisy hour.
  • Minimum volume, so a SKU that sells two units cannot page the VP.
  • Separate ‘pipe looks dead’ from ‘demand broke.’ Zeros in a file are not a season.

What you do after the page

Check the feed. Then the calendar (did someone forget a holiday). Then a scenario: did we pull a promo. Then, if the world really moved, refit. An anomaly is a question, not an automatic retrain. Automatic retrains on bad data are how you teach the model the outage.

FAQ

Why do static KPI thresholds fail?
Seasonality and growth. A threshold that was 'high' in February is normal in December. You either live with noise or you slowly raise the bar until a real incident hides under it.
How do forecast bands detect anomalies?
If actuals fall outside a calibrated interval (say p05–p95) more than they should, something changed — demand, tracking, or a broken feed. The forecast is the definition of 'normal for this timestamp.'
Won't this alert every time the forecast is wrong?
If the model is poorly calibrated, yes. Fix calibration first. Then require persistence (two intervals in a row) or a minimum volume so a single noisy hour does not page the team.

Keep going

Try it on your data.

Connect an outcome and its history. Predict.ai finds the drivers, races the models, and keeps the forecast live — in the workspace, over the API, and through agents.