Industrial AI Analytics

Anomaly Detection in Process Data: Z-score and AI in Practice

Atorcom · June 3, 2026 · 12 min read

Imagine this: your return water temperature has been rising for 45 minutes. No fixed limit has triggered. The next shift starts in two hours — and the fault is only discovered at the morning briefing, when the temperature has climbed two degrees further and the pump has been running under stress for three hours.

This is the scenario that anomaly detection would have flagged within the first 35 minutes. A Z-score threshold would have been crossed, local AI would have contextualized the signal, and maintenance would have received a notification during the same shift. No cloud required — no data transfer outside the plant, no dependency on an external service.

This article walks through how to implement practical anomaly detection in an industrial process: why fixed limits fail, how Z-score works, where it falls short — and how local AI closes the gap.

Why anomaly detection is the most critical industrial capability in 2026

In 2026, most industrial facilities already collect process data via OPC UA. But actual anomaly detection is still largely missing or limited to fixed SCADA alarms. A typical plant has high and low alarm limits in the automation system — and nothing beyond that.

Fixed limits are necessary but insufficient. They catch obvious faults — sensor failures, sudden pressure spikes. They do not catch a slowly developing fault that stays inside the allowed range but moves in the wrong direction for the wrong context.

In an industrial process, an anomaly never exists in isolation. It occurs in context:

  • Load level: the same temperature reading is normal at full load but anomalous at idle.
  • Time of day: overnight behavior differs from daytime operation for most processes.
  • Weather conditions: outside temperature, humidity, and solar exposure affect especially energy production facilities.
  • Process state: startup, steady-state, shutdown, and maintenance cycles each define their own normal range.

When anomaly detection accounts for these context variables, it finds deviations that fixed limits will never catch — and finds them early, not weeks later in a weekly report.

Six reasons why fixed alarm limits fail at anomaly detection

Many plants rely entirely on SCADA fixed alarms for anomaly detection. Here is why that approach consistently underperforms.

1. Context blindness

A fixed limit has no awareness of operating mode, load level, or startup vs. steady-state conditions. The same value can be perfectly normal in one situation and clearly problematic in another — and a fixed limit treats them identically.

2. Slowly developing faults remain invisible

Bearing wear, valve seal leakage, and heat exchanger fouling develop over weeks or months. Values stay inside limits the entire time — but the trend tells a clear story if you know how to read it. Fixed limits never trigger until it is too late.

3. Too many false positives

To avoid nuisance alarms, fixed limits are often set wide. The result is the opposite problem: alarm floods during mode transitions and startups. Operators start ignoring alerts — and then miss the one that matters.

4. Multi-signal interactions go unseen

Pressure may look fine. Temperature may look fine. Flow may look fine. But their combination can clearly indicate a process fault. Monitoring individual limits never reveals this — only multi-signal analysis does.

5. No actionable path after detection

Even when a SCADA alarm fires, it typically does not say: how serious is this, what is it related to, and who should do what? Without prioritized, contextualized information, an alarm creates extra workload rather than triggering a corrective response.

6. No history or root-cause support

An alarm log records when a limit was exceeded. It does not provide surrounding process data, the trend before the event, or an analysis framework for root-cause investigation. Every investigation starts from scratch.

Anomaly detection with Z-score: formula, logic, and implementation

Z-score is a statistical measure of how many standard deviations a data point falls from the expected mean. The formula is simple:

Z = (value − mean) / standard deviation

A Z-score below 2 is within normal variation. Above 3, a value is statistically rare — 99.7% of values in a normal distribution fall within ±3 standard deviations. In industrial process data, typical thresholds are 2.5 for a warning and 3.5 for a critical alert.

The formula alone does not create value. Practical implementation requires four building blocks:

1. Context-specific baseline

Calculate mean and standard deviation separately for different process states: load class, time of day, season, startup vs. steady-state. A single global baseline produces too many false positives across mode transitions.

2. Clean and representative reference window

Baseline is typically calculated from 30–90 days of representative data. Remove known fault periods and scheduled maintenance windows before calculating. If the baseline includes anomalies, the model learns them as normal.

3. Persistence rule for confirmation

A single Z-score exceedance can be measurement noise. Require 3–5 consecutive exceedances before generating an alert. This eliminates the majority of false positives without losing detection sensitivity for genuine faults.

4. Responsibility model and action path

An anomaly without a response model is just noise. Connect each alert type to: the responsible role, reference data for root-cause analysis, and a logging mechanism for action taken. Only then does Z-score become operationally useful.

Step Action Why it matters
1. Baseline window 30–90 days of clean history, known fault periods removed Baseline must not include anomalies — the model will learn them as normal
2. Context grouping Separate baselines for load class, time of day, season, process state One global limit generates dozens of false alarms per day during transitions
3. Alert thresholds Warning Z > 2.5 — Critical Z > 3.5 Separates a watchable deviation from an immediate action trigger
4. Persistence rule 3–5 consecutive exceedances required before alerting Measurement noise does not generate alerts; sustained deviations do
5. Action path Owner notification, supporting data, logging capability Detection without response is just additional noise for the operator
70–90%

reduction in false positive alarms when shifting from fixed limits to context-specific Z-score with a persistence rule. Operators can trust alerts again — and act on them.

Where Z-score falls short — and how local AI closes the gap

Z-score is an excellent first layer. It is fast, explainable, and easy to audit. But it evaluates each measurement point in isolation. In a complex process, anomalies often emerge from the interaction of multiple signals — and this is precisely where local AI adds value.

A practical detection model works in three tiers:

  • Tier 1 — Z-score: fast, per-tag anomaly detection. Response time in seconds.
  • Tier 2 — correlation analysis: AI identifies which other measurement points moved simultaneously, and what causal patterns have been observed historically.
  • Tier 3 — prioritization: AI assesses whether the deviation is operationally significant or transient, and suggests probable root causes.

Critically, the AI runs locally. Process data in industrial environments is often sensitive — it can reveal production volumes, recipes, capacity utilization, or energy efficiency figures. Analysis must happen inside the plant network, not in a cloud service.

DataPortia uses Ollama language models running directly on the facility's own server. Data never leaves the plant network — and yet engineers get natural-language explanations of anomalies, likely causes, and recommended actions.

Practical example: the fault that fixed limits never found

Consider a district heating plant with three boilers, return-side heat exchangers, and multiple pump and valve groups.

Case Example

District Heating Plant: from fixed limits to context-aware anomaly detection

❌ Before (fixed limits)

  • Return water temperature rose slowly over four hours
  • Absolute value stayed within allowed limits throughout
  • SCADA produced zero alarms
  • Fault detected at start of morning shift — four hours later
  • Heat exchanger fouling had already progressed significantly
  • Cleaning required an unplanned production stoppage

✅ After (Z-score + local AI)

  • Z-score crossed warning level 2.5 after just 35 minutes
  • Persistence rule confirmed: four consecutive exceedances
  • AI identified: pump flow dropped 4% simultaneously
  • Suggested cause: heat exchanger fouling most probable
  • Maintenance inspected during the same shift
  • Cleaning performed on schedule — no unplanned stoppage
3.5 h

earlier detection — that is how long the plant was running under stress before the fault would have been found with fixed limits. Context-aware anomaly detection converted that risk into a planned maintenance action within the same shift.

How to build anomaly detection without a heavyweight data science project

The biggest misconception about anomaly detection is that it requires a multi-year data science engagement, a large budget, or a cloud AI platform. In practice, a production-ready model can be built incrementally without external consultants.

Step 1: Select 5–10 critical measurement points

Start with tags where deviations carry the highest financial or safety risk. Focus beats breadth — a tight model on the right signals outperforms a wide model with poor baselining.

Step 2: Build a context-specific baseline

Use 60–90 days of clean historical data. Segment by operating state: load class, time of day, season. Verify that the baseline window excludes known fault events and maintenance periods.

Step 3: Set thresholds and persistence rule

Start with warning Z > 2.5 and critical Z > 3.5. Require 3–5 consecutive exceedances. Monitor for one week, measure false positive rate, and adjust thresholds as needed.

Step 4: Add local AI for context and explanation

Connect anomaly events to a local language model that explains the context: which other signals moved, what this has historically indicated, and what action is recommended. This converts detection into operational guidance.

Step 5: Expand incrementally

Once the first 5–10 tags are performing reliably, extend to the next priority group. Avoid expanding too fast — every new tag requires proper baselining to avoid false positive fatigue.

When anomaly detection pays — and when it does not yet help

Situation Fixed limits Z-score + local AI
Sudden sensor fault or pressure spike ✅ Detects well ✅ Also detects well
Slowly developing bearing wear ❌ Does not detect ✅ Detects weeks earlier
Deviation during load transitions ❌ False alarms ✅ Context-aware assessment
Multi-signal interaction fault ❌ Does not identify ✅ Correlation analysis
Under 5 tags, simple process ✅ Sufficient May be over-engineered
10–2,000 tags, continuous production ❌ Not sufficient ✅ Built for this scale
Data governance requirements ✅ SCADA-local ✅ On-premises, data stays in plant network

Summary: anomaly detection from theory to daily operations

In 2026, anomaly detection no longer requires a massive data science project. It requires the right structure: context-specific Z-score, a persistence rule, and local AI that contextualizes the signal — plus a response model that converts detection into corrective action.

Key takeaways:

  • Fixed limits are not enough — they only catch obvious deviations, not slowly developing faults or context-dependent anomalies.
  • Z-score is the best starting point — explainable, fast, and auditable.
  • Context-specific baseline is decisive — a single global threshold generates too much alert noise.
  • Local AI completes the model — it contextualizes multi-signal interactions without any cloud dependency.
  • Start small, expand in stages — 5–10 critical measurement points is enough to start.

When data collection, visualization, anomaly detection, and AI analysis are all in one workflow, the model shifts from theory to daily operational practice — without an IT project.

Test anomaly detection with your own process data

DataPortia collects OPC UA data, calculates Z-scores, and analyzes deviations with local AI — no cloud dependency. Try it free for 30 days.

Start free trial →

Shar On Social Media

Facebook
X
LinkedIn

Ready to Transform Your Industrial Data?

Contact us for a personalized demo or request a free 30-day trial with all features.

DataPortia Reviews
DataPortia Reviews
DataPortia Reviews

Get Started Today

Whether you're monitoring a single process line or managing a multi-site operation, DataPortia scales to fit your needs.

Email: myynti@atorcom.fi

Phone: +358 45 882 1525

Business ID: 3010969-9

Official reseller:
By pressing “Submit”, I agree that my data will be processed in accordance with the privacy policy.

© Atorcom. All rights reserved. Privacy Policy