PM by engine hours vs mileage — which does your fleet actually need?
Engine hours and odometer miles measure different kinds of wear. Picking the wrong PM trigger costs you reliability or money. Here's the decision tree.
Engine hours and odometer miles are not interchangeable units. They measure different kinds of wear, and the choice between them as your PM trigger decides whether you change oil too early (wasting money) or too late (wasting the engine). Here is the decision tree, the common mistakes, and the rule when you should track both.
What hours measure
An engine hour is one hour of crankshaft rotation, regardless of load or distance. It tracks:
- Engine internal wear — bearings, piston rings, valve train, injectors. All of these tick whether the machine is digging at full throttle or idling.
- Hydraulic system cycles — every pump revolution wears the swashplate, the cylinder seals, the control-valve spools. Hydraulic life correlates almost exactly with engine hours.
- Attachment use — bucket pins, breaker piston hours, grapple cycles. These accumulate while the engine runs.
- Coolant and oil thermal degradation — the oil sees the same heat cycles whether or not the machine is moving.
Idling counts. An excavator that idles 3 hours a day at a job-site lunch and warm-up isn't moving dirt, but it is consuming engine life and oil at the same rate. This is why fleets that meter on miles only consistently under-service idle-heavy equipment.
What miles measure
An odometer mile is one mile of forward motion. It tracks a different bucket of wear:
- Drivetrain — transmission, differential, drive shafts. Wear is proportional to distance under load, not engine time.
- Tires — tread wears with rolling distance, period.
- Brakes — pads, drums, calipers wear with the number of stops, which correlates with miles and route type.
- Suspension and steering — shocks, bushings, tie rods wear with road impacts.
- Road-induced wear — paint, glass, hardware loosened by vibration, all calendar-and-mileage driven.
For an over-the-road truck, hours of engine time are a crude proxy at best for the wear that's actually happening. The drivetrain is what you're paying to rebuild, and miles is the unit that predicts it.
The decision tree
Four common asset types and the primary trigger that matches each:
| Asset type | Primary PM trigger | Why |
|---|---|---|
| Over-the-road truck (long-haul, regional) | Miles | Drivetrain, tires, brakes do most of the wear; engine hours under-count what actually breaks |
| Off-road equipment (excavator, dozer, loader) | Engine hours | No odometer; engine and hydraulics wear with run-time regardless of position |
| Vocational truck (dump, boom, service, plow) | Miles AND hours (whichever hits first) | High idle hours at the work-site mean miles alone under-services the engine; high mileage means hours alone under-services the drivetrain |
| Trailer, light tower, standby genset | Miles or calendar (whichever applies) | No engine in normal operation, or engine runs so rarely the calendar drives wear |
Common mistakes
- Using miles on a standby generator.The unit doesn't move; mileage is zero forever. The PM never trips and the genset eventually fails on the one night you needed it.
- Using engine hours on a long-haul truck. The truck might log 2,000 engine hours and 180,000 miles in a year. The transmission needed service at 120,000 miles; the hour count made it look like the rig was at half life.
- Tracking miles on a dump truck only.A dump truck idles at the pit, idles at the dump, short-trips through congested job sites. The 8,000 engine hours a year don't show in 30,000 miles, and the engine ages faster than the mileage suggests.
- Ignoring the “whichever hits first” rule. Vocational trucks need both triggers armed. Whichever one trips first opens the PM work order; resetting both happens at service close-out.
- Mixing units in one threshold. “Service every 500 hours OR 10,000 miles” is right; “service every 500 hour-miles” (averaging the two) is meaningless and we have seen it attempted.
What about calendar?
Calendar is the third axis, and we covered the calendar vs hours trade-off in a separate post: hour-based PM beats calendar PM. The short version: calendar is the right trigger only when the asset has neither a meter nor an odometer that moves (trailers, standby gensets) or as a backstop on certifications that expire by law. For everything else, meter-driven wins.
How DirtFleet handles either or both
Each asset record carries its own PM configuration: primary trigger (hours, miles, or days), an optional secondary trigger, threshold value, and severity. A truck can be set for “5,000 mi OR 250 hr, whichever first” and the system fires the AUTO_PM flag the moment either crosses. An excavator is hours-only. A trailer is days-only. The meter feeds come from a single log-hours screen that handles both hour meters and odometers; nobody types the reading twice.
If your fleet is mixed across all three axes (on-road miles, off-road hours, calendar-only trailers), the broader playbook is in how to build PM intervals for mixed fleets — including the small table of typical cadences per asset class.
The summary
Hours measure engine and hydraulic wear; miles measure drivetrain and tire wear. Off-road equipment lives on hours, on-road trucks live on miles, vocational trucks need both with the whichever-hits-first rule, and calendar covers the rest. Setting the wrong trigger either wastes a PM or skips one the engine needed — and either way it shows up in your cost-per-hour numbers in about a year.