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.
Decision Fix centrally Leave to the plant
Loss family names and definitions Yes. This is the rollup axis No
Number of top-level families Yes. Keep it short enough to complete No
Detailed reason codes under each family No Yes, as detailed as the process needs
Which family a local code rolls into Yes. One family per code, no exceptions No
Planned versus unplanned classification Yes. It changes availability No
Minimum stop duration that requires a reason Yes. Otherwise counts are not comparable No
Who may create a new local code Yes. Name the approver Plant proposes, centre approves
Language and wording of local codes No Yes, 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 completion cost exceeds the perceived value of completing it accurately, 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.

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. Guidewheel's downtime analysis puts staffing issues at roughly 197 minutes per event and material or supply delays at roughly 119 minutes, against roughly 72 minutes for mechanical breakdowns. Those long, expensive, non-mechanical events are exactly the ones a badly fitting taxonomy tends to dump 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.

The threshold question makes or breaks cross-plant comparability. If plant A logs any stop over one minute and plant B logs stops over ten, their downtime totals differ by construction before a single reason is compared. Guidewheel's 2026 Factory Uptime Report found 48% of measured downtime sitting in three under-instrumented categories — precisely the material that goes missing when thresholds are set locally and generously. Fix the minimum stop duration centrally, and review it alongside your loss families.

The threshold question makes it worse. If plant A logs any stop over one minute and plant B logs stops over ten, their downtime totals differ by construction before a single reason is compared. Guidewheel's 2026 Factory Uptime Report found 48% of measured downtime sitting in three under-instrumented categories, which is precisely the material that goes missing when thresholds are set locally and generously.

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.

Fix the minimum stop duration centrally. This is not a reason-code decision and it is routinely forgotten, but two plants using different thresholds cannot be compared regardless of how well their taxonomies align. Pick one number, apply it everywhere, and record it in the definition standard.

Fix planned versus unplanned at family level. Which families count against availability and which are excluded from planned production time is an enterprise decision with a direct effect on every OEE figure. Guidewheel's own guidance on multi-plant machine monitoring covers agreeing one formula network-wide; this is the part of that agreement that most often gets left implicit.

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 machine Material and supply
Wrong material staged Material and supply
Material in QA hold Quality and rework
Operator break, uncovered Staffing and labour
Waiting on forklift Material and supply
Die stuck Equipment 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.

Two honest caveats. First, automatic capture fixes durations, not reasons. The stop, its start, its end and its frequency come from the machine signal without anyone typing. The reason still comes from a person, and no vendor claim should suggest otherwise. Reducing the manual burden helps completion, which is what automated downtime reason tracking addresses, but the judgement remains human.

Second, this is governance rather than software. A well-governed taxonomy on a mediocre platform outperforms a poor taxonomy on an excellent one.

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.

To work through this against your own sites, talk to the Guidewheel team.

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. You also have to fix the minimum stop duration centrally, because two plants logging stops above different thresholds produce incomparable totals before a single reason is examined.

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