blog

Standardized vs Local Downtime Reason Codes Across Plants

By: Lauren Dunford

By: Guidewheel
Updated: 
12 min read
Standardized vs Local Downtime Reason Codes Across Plants

No items found.

Standardized vs local downtime reason codes across plants

Standardise the loss families centrally and let each plant keep its own detail underneath, mapped upward.

Full standardisation fails because a list long enough to describe every plant's reality is too long for an operator to complete accurately at 2am, and a taxonomy nobody completes is worse than a short one they do. Full localisation fails because nothing rolls up: three plants report "changeover" three different ways and the enterprise number is fiction. The workable answer is two levels with an explicit mapping between them, plus a measure of completion quality so you know whether any of it is working.

The standardise-or-localise decision at a glance

  • Fix a short list of enterprise loss families. Short enough that operators complete it consistently.
  • Let plants keep local codes underneath, as much detail as their process needs.
  • Every local code maps to exactly one family. No code maps to two, and none maps to none.
  • Measure completion quality, not just compliance: share of downtime minutes carrying a reason, and the size of the "other" bucket.
  • The instruction to "unify your taxonomy" is not enough. The decision is how much to unify, and at which level.
DecisionFix centrallyLeave to the plant
Loss family names and definitionsYes. This is the rollup axisNo
Number of top-level familiesYes. Keep it short enough to completeNo
Detailed reason codes under each familyNoYes, as detailed as the process needs
Which family a local code rolls intoYes. One family per code, no exceptionsNo
Planned versus unplanned classificationYes, with a separate rule for intended production time; planned stops are not automatically excludedNo
Event capture and reason thresholdsGovern each separately; reason coverage and captured event counts are different measuresNo
Who may create a new local codeYes. Name the approverPlant proposes, centre approves
Language and wording of local codesNoYes, whatever the floor actually says

Why full standardisation fails

Because the list gets long enough to be accurate and too long to be used.

The logic that produces a single enterprise taxonomy is sound on paper. One list, one meaning, perfect comparability. It breaks on contact with the floor for a reason that has nothing to do with discipline: an operator at 2am, standing at a stopped machine with a queue behind them, will pick the nearest plausible option in about three seconds. If the list has ninety entries across four nested levels, the nearest plausible option is whatever is at the top of the screen, or "other".

The failure is not that people refuse. It is that the list asks too much of someone standing at a stopped machine, and the data degrades quietly. You still get a reason on every stop. The reasons are just wrong, which is worse than missing, because wrong reasons get acted on. This is a gap in how the taxonomy was built, not a fault of the operators.

The corporate symptom is recognisable: an enterprise report where "other" is the largest single category, or where one implausibly generic code accounts for a third of downtime. Both mean the taxonomy lost its argument with the floor.

There is a second failure mode. A single list built centrally will describe some plants better than others, because processes genuinely differ. A code set designed around injection moulding will not fit an assembly operation, and forcing it produces reasons that are technically completed and semantically empty.

The scale of what is at stake is worth remembering. Staffing gaps and material or supply delays are often long events, and they are not mechanical. A taxonomy that fits badly tends to dump exactly these stops into a generic bucket.

So localisation is the obvious correction, and it fails differently.

Why full localisation fails

Because nothing rolls up, and the enterprise number becomes a sum of things that are not the same.

Let each plant write its own list and every plant will produce something workable for itself. Plant A logs "waiting on material". Plant B distinguishes "no raw material", "wrong material staged" and "material in QA hold". Plant C files all three under "supply". Each is locally sensible. Together they cannot be added.

The consequence is not merely a reporting inconvenience. It removes the organisation's ability to learn from itself. If plant B's material losses are a third of plant A's, that is either a genuine performance difference worth copying or a coding artefact, and with local taxonomies nobody can tell which. Multi-site improvement programmes stall at exactly this point, and the usual response is to commission a data-quality project rather than to notice the taxonomy was never governed.

There is a subtler cost. Local codes tend to accrete. A code gets added for a specific incident, nobody retires it, and after three years the plant has forty codes of which twelve are used. Completion quality falls for the same reason it falls under an over-long central list, and now it falls differently at every site.

✅

Distinguish event capture from reason assignment. If plant A captures stops over one minute and plant B captures only stops over ten minutes, event totals differ by construction. If both capture the same events but require reasons at different durations, total captured downtime can still match while reason completeness differs. Govern and report both thresholds.

Retain a common event threshold and report reason completeness beside the totals. A benchmark of measured loss categories does not establish which events a particular plant omitted.

Neither extreme works, which points at the actual answer: fix the level that must be comparable, and free the level that must be usable.

Fixing the enterprise loss families

Define six to eight loss families centrally, and treat that list as immovable.

A workable default set: equipment failure, changeover and setup, material and supply, staffing and labour, quality and rework, planned maintenance, no demand or scheduling, and utilities or services. Adjust the names to your industry, but resist expanding the count. Every family you add costs completion quality at the point of capture and buys less comparability than it appears to.

Three rules make the list hold.

Define each family by what it excludes, not only by what it includes. "Material and supply" is ambiguous. "Material and supply: the machine is available and staffed but the correct material is not at the machine. Excludes material rejected at inspection, which is quality" is not. Ambiguity at the family level propagates into every local code beneath it.

Govern the event-capture threshold and the reason-required threshold separately. Comparable event totals need comparable capture rules; comparable reason coverage needs a common reason-assignment rule or an explicitly reconciled view. Record both in the definition standard.

Define planned and unplanned consistently, and separately define which time the business intended for production. A planned changeover or maintenance stop inside intended production time can still reduce OEE Availability. Exclude genuine schedule loss consistently and report it separately. Guidewheel's multi-plant machine-monitoring guidance covers the need for an agreed network-wide formula.

Name an owner for the family list and a change process for it. Without one, families drift by accretion in the same way local codes do, only more slowly and more damagingly.

Underneath the families, plants need room.

Mapping local codes upward

One rule: every local code maps to exactly one family. Not zero, not two.

Below the fixed families, a plant may create whatever codes its process needs, in whatever language the floor actually uses. If operators say "die stuck", the code says "die stuck", not "tooling-related stoppage, category 3". Local vocabulary is the thing that makes completion accurate, and there is no enterprise value in overriding it.

What the centre governs is the mapping. A worked example:

Local code (Plant B)Maps to family
No raw material at machineMaterial and supply
Wrong material stagedMaterial and supply
Material in QA holdQuality and rework
Operator break, uncoveredStaffing and labour
Waiting on forkliftMaterial and supply
Die stuckEquipment failure

Note that "material in QA hold" maps to quality rather than material, even though the operator experiences it as a material problem. That is exactly the kind of judgement the mapping exists to make consistently, and exactly the kind that will be made differently at every site if nobody governs it.

Handling codes that seem to fit two families. They do not, once the family definitions specify exclusions. If a code genuinely cannot be placed, that is a signal the family definitions are underspecified, and the fix belongs at the family level rather than in a special case.

Creating a new local code. Plant proposes, centre approves the mapping. The approval is not about whether the plant needs the code; it is about which family it belongs to. Make that approval fast, or plants will route around it by misusing an existing code.

Retiring codes. Review annually. Any code unused for a year goes, unless someone argues for it.

The mapping only earns its keep if the capture underneath it is actually happening.

Measuring completion quality

Three measures, reported alongside the downtime numbers themselves, because a downtime report without them is unaudited.

Reason completion rate. The share of downtime minutes carrying any reason. Track it by plant and by shift. A site at 95% and a site at 55% are not producing comparable data, and the enterprise report should say so rather than averaging them.

Generic-bucket share. The proportion of reasoned downtime landing in "other" or in the most generic available family. Rising generic share is the earliest signal that the taxonomy no longer fits, and it usually appears months before anyone complains.

Unmapped-code rate. Local codes in use that have no approved family mapping. Should be zero. Anything above zero means data is being captured that cannot roll up, which is the failure this whole structure exists to prevent.

Set a review cadence and an owner. Quarterly is enough for the family list; monthly for the three measures above. The review should be able to retire a code, correct a mapping and escalate a plant whose completion rate is falling.

Automatic capture establishes event timing; it does not establish every reason. Validate the current signal, state thresholds and minimum stop duration. Operators or a connected system can add the reason, which should remain distinguishable from a verified root cause. Reducing the manual burden helps completion, which is what automated downtime reason tracking addresses, but the judgement remains human.

Second, this is governance as much as software. A well-governed taxonomy on a mediocre platform outperforms a poor taxonomy on an excellent one, and the best results come from pairing clear rules with a platform and a team that help you follow them.

For constructing the taxonomy itself, see building a downtime reason tree . For the neighbouring definitional decisions, see the OEE data governance definition sheet, and for benchmark context, Guidewheel's 2026 Factory Uptime Report .

Guidewheel can establish machine-state timelines across mixed equipment. AI-powered software and manufacturing experts help the team investigate losses and prioritize improvements. Talk to the team about state definitions, reason-code ownership and validation across your sites.

Frequently asked questions

Should downtime reason codes be the same at every plant?

The loss families should be identical everywhere; the detailed codes underneath should not. Fix six to eight enterprise families centrally so the rollup works, and let each plant write local codes in the language its floor actually uses, with every local code mapped to exactly one family. Full standardisation degrades completion quality and full localisation makes the enterprise number meaningless.

How many downtime reason codes should we have?

Six to eight at the enterprise level, and as many locally as the process genuinely needs. The constraint at the top level is completion accuracy: an operator at a stopped machine picks the nearest plausible option in a few seconds, so a long nested list produces reasons that are recorded and wrong, which is worse than reasons that are missing.

How do we compare downtime reasons across plants?

Through the mapping, not through the codes. Every local code rolls into exactly one enterprise loss family, and the comparison happens at family level. Use comparable event-capture thresholds for event totals, and report the separate threshold that requires a reason. Different reason-assignment rules affect completeness even when captured downtime totals match.

What is a good downtime reason completion rate?

Track it rather than targeting a universal number, and report it alongside the downtime figures themselves so readers know how much of the data is reasoned. Watch two companion measures: the share landing in a generic bucket, which signals a taxonomy that no longer fits, and the unmapped-code rate, which should be zero because unmapped codes cannot roll up at all.

Who should own the reason taxonomy?

Split it. A named corporate owner governs the loss families, the mapping approvals and the minimum stop duration. Plants own their local codes and propose new ones, with the centre approving only which family a new code belongs to. Keep that approval turnaround short, because a slow one pushes plants toward reusing a code that does not fit.

About the author

Lauren Dunford is the CEO and Co-Founder of Guidewheel, a FactoryOps platform that empowers factories to reach a sustainable peak of performance. A graduate of Stanford, she is a JOURNEY Fellow and World Economic Forum Tech Pioneer. Watch her TED Talk, the future isn't just coded, it's built .

GradientGradient