BOM and drawing quality
Parts data fails quietly. Nothing errors and nothing turns red — a position stops resolving, and the only signal is a buyer who phoned instead of ordering. These are the checks that make the failures visible before customers find them.
The seven checks
Run all seven weekly. Each one is a filter or a small report, and each one maps to a specific thing a buyer experiences.
1. Positions pointing at nothing. BOM associations whose target product does not exist, is deleted, or is disabled. The buyer clicks callout 030 and gets a blank page. This is the most common failure after a bulk import, because a failed row leaves no trace on the assembly it belonged to.
2. Assemblies with no drawing. A parts list with no exploded drawing is a
table of article numbers — the thing you built this to replace. Filter for
products in the assembly family where exploded_drawing is empty.
3. Drawing callouts with no BOM position. The sheet shows callout 045; the assembly has no position 045. The buyer clicks and nothing happens. This runs from the hotspot map against the association list.
4. BOM positions with no callout. The reverse. A position added to the parts list after the illustration was last updated is invisible to anyone navigating by drawing — which is most of your buyers.
5. Dead supersessions. Follow every replaced_by chain to its end. Three
faults live here: a chain ending on a part that is also disabled, a chain that
loops back on itself, and a superseded part that is still orderable.
6. Quantity anomalies. Sort the associations of an assembly by quantity, ascending and descending. A quantity of 0 is a mapping error. A quantity of 1,800 is 1.8 metres imported without its unit. Both are at the extremes, which is why sorting finds them in seconds.
7. Orphaned assemblies. Assemblies that no machine and no other assembly points at. Either the top-level link was never imported, or the assembly was superseded and nobody said so. Neither is reachable by a buyer.
The coverage report
Beyond the fault checks, one number per machine series tells you whether the series is actually shoppable. Track it per series, not as a total — a total averages a complete series with an empty one and tells you nothing.
| Measure | Target | Meaning |
|---|---|---|
| Positions with a resolvable part | 100 % | Anything less is a dead click |
| Assemblies with a drawing | 100 % | Below this, buyers are reading tables |
| Positions with a customer-language name | 100 % | Internal designations mean the E-BOM was published as-is |
| Positions with a price | 100 % | A part with no price cannot be ordered |
| Parts with a stock figure or a lead time | 100 % | Silence reads as "not available" |
| Positions with an availability decision recorded | 100 % | Orderable, service-only, or supplied as an assembly |
| Parts with compatibility data | as high as you can | Below ~80 % the machine filter misleads |
Add completeness on top of these. A part is a product, so the ordinary catalogue measure applies to it unchanged; these seven are the additional structure a parts list needs.
Fix at the source, not in the shop
Most of these faults arrive from somewhere else, and fixing them in the shop means fixing them again next import.
| Fault | Where it is actually created |
|---|---|
| Positions pointing at nothing | The import ran associations before the products existed. Reorder the import. |
| Quantities all equal to 1 | The quantity column was not mapped. Fix the field mapping. |
| Internal designations in the shop | The E-BOM was published without the editorial pass. This is service's work, not the shop's. |
| Callouts and positions disagreeing | The illustration and the ERP BOM diverged. Fix the release process, not the map. |
| Positions deleted upstream still in the shop | Your re-import merges instead of replacing. Decide, per assembly, which it should do. |
| Superseded parts still orderable | No step in engineering's release routine disables them. Add one. |
Detect it from the buyer's side too
The data checks find structural faults. Buyer behaviour finds the ones that pass every check and still fail.
- Zero-result searches containing a serial or type number. Each one is a machine you have not modelled, named by a customer. See Zero results.
- Zero-result searches containing a part number you do not recognise. Old numbers with no supersession chain, and competitor numbers with no cross-reference.
- Wrong-part returns on shop orders, compared against phoned orders. This is the metric that decides whether the shop is trusted, and it is worth watching weekly for the first months. See Returns.
- Identification calls to the service desk, by series. They tell you which series to model next, and whether the last one worked.
Who owns this
One person in service or technical documentation owns the parts data, the way somebody owns the price list. They run the weekly checks and they handle supersessions on the day engineering releases them.
Where this is nobody's job, the catalogue is accurate at go-live, plausible after a year, and dangerous after two — and the failure is invisible from the inside, because everything still renders. The only signal is that the phone started ringing again.
Next
- Maintain BOMs and drawings — the routine these checks support.
- Data quality in practice — the same discipline across the catalogue.