Ask five technicians to describe the same failed air dryer and you may get five different notes: "air dryer bad," "purge valve leaking," "replaced dryer," "brake air issue," and "air system repair." Each note is understandable in the moment, but none can be counted, compared or trended later. A fleet maintenance code taxonomy fixes that by giving components, defects and repair actions a consistent structure. This guide explains how to design one, how it relates to industry standards such as VMRS, and how it feeds reporting inside fleet maintenance software with structured work orders.
Fleet maintenance codes for defects, repairs and components
Consistent codes turn technician notes into data you can trend: repeat failures, cost by system, parts demand and warranty recovery.
Why free-text work orders cannot answer fleet questions
Free text is fast to write and slow to analyze. The difference becomes obvious the first time a manager asks a simple question about the fleet.
Without a taxonomy
- Searching "brake" misses "air dryer," "chamber" and "slack adjuster" entries
- The same failure appears under several spellings and abbreviations
- Repeat repairs are hard to detect across technicians and shifts
- Warranty claims need manual reading of old notes
- Parts forecasts rely on memory rather than usage patterns
With a taxonomy
- Filter every brake-related job in seconds, by assembly or component
- Each failure is counted once, under one agreed name
- Repeat defects on the same component are flagged automatically
- Warranty candidates are found by component, age and mileage
- Parts demand follows the components that actually fail
The four code families
A practical taxonomy separates four questions. Keeping them separate prevents one list from becoming a thousand-line pick list that nobody uses.
Component codes
A hierarchy of system, assembly and component. This identifies the physical item the work relates to.
Defect or failure codes
A short, controlled list that describes the symptom or failure mode, such as leaking, worn or cracked.
Repair action codes
The work performed, such as adjust, repair, replace or test. It separates corrective work from inspection.
Cause or reason codes
Optional but valuable: normal wear, operator damage, accident, installation error or defective part.
Building the component hierarchy
The component structure follows how technicians think about a vehicle. Three levels are enough for most fleets. The example below is illustrative, so adapt names to your own equipment mix.
- Air supplyCompressor, air dryer, governor, tanks
- Foundation brakesDrums, rotors, pads, shoes, slack adjusters
- ActuationBrake chambers, valves, hoses
- CoolingRadiator, water pump, thermostat, fan
- FuelFilters, injectors, lift pump
- LubricationOil pump, filter, cooler
- Charging and startingBattery, alternator, starter
- LightingHeadlamps, marker lamps, harness
- ControlsSensors, modules, switches
- TiresSteer, drive, trailer positions
- Wheel endsHubs, bearings, seals
- WheelsRims, studs, nuts
- SuspensionSprings, air bags, shocks, bushings
- SteeringGear, linkage, tie rods
- Frame and couplingFifth wheel, crossmembers, hitch
- Cab and HVACClimate controls, seats, mirrors
- Body and doorsPanels, liftgates, roll-up doors
- Trailer systemsLanding gear, reefer unit, ABS
Where industry standards fit
The Technology and Maintenance Council of the American Trucking Associations publishes VMRS, a widely used coding system for vehicle components, failures and repair actions. Many fleets adopt it directly or use a simplified internal version that maps back to it, which keeps data comparable with suppliers and dealers.
Put structured codes on every work order
Standardize how defects, repairs and components are recorded, and see repeat failures and cost by system in Oxmaint.
Defect code list: keep it short and mutually exclusive
A defect list works when a technician can choose in a few seconds and two technicians would choose the same entry. Aim for roughly a dozen well-defined values rather than hundreds.
| Defect code | Use when | Do not confuse with |
|---|---|---|
| Leaking | Fluid or air escapes where it should be contained | Seeping from normal weep holes |
| Worn | Component is past service limits from normal use | Damaged by impact or misuse |
| Damaged | Physical harm from impact, debris or misuse | Cracked from fatigue |
| Cracked or broken | Structure has separated or fractured | Bent or deformed |
| Not operating | Function does not work when commanded | Intermittent fault |
| Intermittent | Function fails only at times or under conditions | Permanently inoperative |
| Fault code active | Electronic diagnostic code drives the repair | Mechanical symptom without a code |
| Overheating | Temperature exceeds normal operating range | Warning lamp with no measured value |
| Noise or vibration | Abnormal sound or shake reported | Confirmed worn component |
| Loose or missing | Fastener, part or guard is not secured or absent | Damaged mounting point |
| Out of adjustment | Setting is outside specification | Worn adjuster |
| Contaminated | Fluid, filter or system has dirt, water or debris | Leaking |
Repair action codes: describe the work, not the opinion
Repair actions answer what the technician physically did. Keep them verbs, and keep inspection separate from corrective work so preventive maintenance statistics stay accurate.
Design rules that keep the taxonomy usable
Do
- Use plain technician language for names and keep short descriptions beside each code
- Make each defect and action value mean one thing
- Require a component and defect on failed inspection items and corrective jobs
- Allow an "other" value but review it every month and promote repeated entries
- Version the list so a code change does not rewrite history
Avoid
- Mixing symptom, cause and action in a single code name
- Creating a code for every part number or every rare failure
- Letting each shop invent local codes
- Using abbreviations that only the author understands
- Deleting retired codes instead of marking them inactive
From coded repair to fleet decision
Codes matter because of what they allow later. Each step below depends on the coding quality at the start of the chain.
Questions coded data can answer
- Which components fail repeatedly within a short period, and on which unit models?
- What share of unplanned work comes from brakes, tires, electrical or cooling systems?
- Which repairs fall inside warranty windows based on age and mileage?
- Should preventive maintenance intervals be tightened for components that fail early?
- Which parts deserve stock because they are replaced often?
Governance: who owns the list
A taxonomy decays without an owner. Treat the code list as a controlled document with a small review cycle.
Common mistakes in the first year
- Launching with too many choices, which pushes technicians toward the first option on the list
- Skipping codes on quick jobs, which hides the small repeat failures that cost the most over time
- Treating codes as a reporting task for the office instead of part of the work order
- Failing to map older records, leaving a break in the trend line
Reading a coded work order line by line
The value of a taxonomy becomes clear on a single work order. Each field answers a different question, and each can be analyzed later without reading the notes.
| Field | Example entry | Question it answers later |
|---|---|---|
| Asset | Unit 4182, day cab tractor | Which vehicles or models have this problem? |
| System and assembly | Brakes, air supply | How much unplanned work comes from this area? |
| Component | Air dryer | Which components fail most often? |
| Defect | Leaking | What failure mode is most common? |
| Repair action | Replace | Do we replace more than we repair? |
| Cause | Normal wear | Is this a warranty, training or quality issue? |
| Labor and parts | Hours, part number, quantity | What did the repair cost and what stock did it use? |
| Meter at repair | Odometer or engine hours | How long did the part last in service? |
Introducing codes without slowing the shop
Technicians will accept codes when they save time. They will resist codes that add typing without a visible benefit, so the rollout needs to be designed with that in mind.
Practical steps
- Start from the twenty or thirty components that account for most of your repairs, then add detail where reports demand it.
- Use pick lists that narrow as the user chooses, so selecting a system shows only its assemblies and components.
- Pre-fill codes from job plans and inspection items wherever the task is already known.
- Review the first fifty closed work orders with the shop team and ask which choices felt unclear.
- Publish a one-page guide with plain-language examples drawn from your own vehicles.
First reports worth building
- Top components by repair count and by cost in the last twelve months
- Repeat repairs on the same component within a chosen number of days or miles
- Planned versus unplanned work by system
- Defects reported on inspection that took longest to repair
- Replacement parts consumed by component, to guide stocking decisions
Code format and naming conventions
Codes should be readable by people and stable for systems. A common approach pairs a short numeric or alphanumeric code with a plain-language label that technicians see on screen.
Good conventions
- Keep codes short and fixed in length so they sort predictably
- Show the label in everyday shop language beside every code
- Reserve ranges for each system so new items fit without renumbering
- Store a mapping to the manufacturer or industry code where one exists
- Mark retired codes inactive and keep their history intact
Conventions to avoid
- Embedding the part number or vendor name in the code
- Using different codes for the same component on different shifts
- Reusing a retired code for something new
- Making the code depend on the repair location
- Requiring technicians to memorize codes instead of choosing from a list
Special cases to design for
- Electronic faults: record the diagnostic trouble code as a separate field, and still code the physical component that was repaired.
- Accident and collision damage: use a distinct cause so it does not pollute wear and reliability analysis.
- Tires: capture position, such as steer, drive or trailer axle, because the same defect has different implications by position.
- Trailers and attachments: give them their own assemblies and keep them linked to the tractor only when they are coupled.
- Electric and alternative-fuel vehicles: add battery, charging and high-voltage assemblies instead of forcing them into engine categories.
Frequently asked questions
Do we need to use VMRS exactly as published?
Not necessarily. Many fleets use a simplified structure aligned to VMRS so data stays comparable, while keeping the pick lists short enough for daily use.
How many codes should a technician choose on each job?
Usually a component, a defect and an action. Cause is optional but useful for warranty and root-cause review.
Can we recode old work orders?
You can map high-value history, such as recent repairs on critical units, and leave the rest archived. A focused mapping is more practical than recoding everything.
Where do codes appear in the maintenance workflow?
On inspection defects and on corrective work orders, so reports use consistent categories. You can book a demo to see them in a live workflow.
How do we start without disrupting the shop?
Pilot the list with one team on a single vehicle class, refine it from their feedback, then expand. You can sign up and configure a pilot set today.
Turn repair notes into reliable fleet data
Use structured components, defects and repair actions to see what really drives downtime and cost across your fleet.







