How the pipeline works
Follow a reading through every stage.
Each stage below runs in your browser on a small, seeded synthetic example, using simplified versions of the real code. The numbers show how each stage works. They are not results from any plant.
Add context, never remove it.
Preparation reads the Z-info export and keeps every row with its source file and row number. Problems are flagged for review, never deleted, filled in, averaged or converted. Click a row to see what happens to it.
Data preparation guide →Illustration · synthetic rows, not real data · column set shortened
Compare today with its own last 28 days.
For each day, the detector takes the previous 28 calendar days of the same series (never today, never another plant), with at least 14 valid days. The score is the distance from the prior median, in robust spreads. Drag across the chart or use the sliders.
History detector guide →Illustration · synthetic series · one threshold for both directions here; the real thresholds are calibrated per series and per direction (minimum 2.0) on data through 2023 for an assumed 1% workload
Catch what a score cannot see.
Three simple rules run next to the score: stuck (the same value on 7 or more days after a history that varied), dropout (a zero after a window without zeros) and negative. Inject an artificial fault, as the project's fault evaluation does, and switch the rules off to compare.
Rules in the methodology →Illustration · synthetic series · recovering artificial faults is not real-world accuracy
Turn flagged days into a review order.
Flagged days of one series become one case when at most one unflagged day separates them. Cases are ranked within the plant: rule hits first, then more flagged days, then a higher peak score. This is a documented review order, not a severity. Click a day to cycle it through not flagged, score flag and rule hit.
Cases in the methodology →Illustration · three synthetic series at one plant · peak scores are invented
Unusual combinations isolate quickly.
The forest splits the data at random. A rare combination of features ends up alone after only a few splits; a typical one takes many. Averaged over 100 trees, fewer splits give a higher ai_score. That means rarer, not faulty. Click any point to isolate it.
Isolation Forest guide →Illustration · two synthetic features shown · the real model uses six history-based features and one forest per measurement group, and never uses identifiers or compares plants
Set the bar on one year, test it on the next.
The forest trains on data through 2023. The alert threshold is set on 2024 validation scores (the 99th percentile by default), then frozen and applied to the held-out 2025. Move the percentile to see how the threshold and workload shift.
Training and thresholds →Illustration · synthetic score distributions · bar height is the square root of the count · a different held-out rate is expected and says nothing about accuracy
To compare the two methods fairly, each one picks its own top readings per plant per day from exactly the same eligible readings. The baseline takes rule hits first, then the history score; the forest takes the highest ai_score. Change the budget for one plant on one day.
Illustration · six synthetic readings from one measurement group · overlap describes the methods; it does not show which is more useful