Odometer

Odometer fraud: how OBD-II reveals rolled-back mileage when buying used

What OBD-II shows when the odometer says 50 000 mi but the real number is 150 000: ECU log audit, mismatch between ABS, ECM and cluster, motohours vs mileage, DTC history analysis.

AI-generated 3 min read

Rolled-back odometers are an epidemic of the used-car market. Industry observers note that a significant share of imported used vehicles have under-reported mileage — the gap can be tens of thousands of miles. OBD-II won’t give you 100% certainty, but it can reveal classic fraud signs in a 15-minute pre-purchase check. Below: 6 OBD audit methods.

What’s stored in ECU memory (and doesn’t disappear on “rollback”)

The odometer on the dash is a display that reads a value from the cluster. But simultaneously:

  • ECU (engine) stores its own counter — motohours (engine hours)
  • ABS module stores its own mileage (for brake service)
  • BCM (Body Control Module) stores an Ignition Cycle counter
  • TCM (Transmission Control Module) — its own mileage for ATF program
  • AWS (Airbag) — crash-event data with timestamps

Rollback typically only affects the instrument cluster — other modules keep real numbers. That’s what we catch via OBD-II.

Method 1. Motohours vs declared mileage

Via Mode 22 UDS (manufacturer PID, varies) read Engine Hours — total engine run time.

Norm: average human city/highway speed is 25-40 mph.

If odometer is 60 000 mi and motohours is 2500 → avg 24 mph = plausible. If odometer is 60 000 mi and motohours is 5500 → avg 11 mph = either taxi or rollback (real ~140-190k mi).

Method 2. Ignition Cycle Counter

BCM stores how many times the ignition switch was turned ON. Norm — 1-2 starts per day for a regular driver.

Example: 2018 car, 7 years of service = ~2555 days × 2 = 5110 starts expected. If OBD shows 14 000 — car is either a taxi (5 starts/day), or the odometer is rolled back.

Method 3. Cross-module comparison

Simplest test — read mileage in different modules:

  • ECU
  • ABS
  • Instrument cluster (the one that shows)

Norm: all three within ±5%. If cluster shows 50k, ABS shows 150k — 100% rollback.

Problem: ABS module often doesn’t write mileage (only motohours or cycles). So this method is selective — Toyota, Honda, VW write, Renault, PSA — often don’t.

Method 4. DTC history and their timestamps

OK, this needs a deeper service scanner, but Car Diagnostics stores freeze frame with a timestamp per code. If Freeze Frame has mileage 110k and the odometer shows 55k — everything’s clear.

Available on Mode 09 InfoType 04 (Calibration ID + date) on some modern cars (Ford, GM, VW EA211+).

Method 5. Operating temperature history

Via Mode 22 manufacturer PIDs:

  • Total cold-start count (< 40°C coolant)
  • Number of overheats (> 110°C)
  • Total time above high RPM (>4000)

These counters don’t reset on ECU replacement (except full programming). Sharp mismatches are a signal.

Method 6. Technical state vs claimed mileage

OBD-II won’t say it outright, but:

  • LTFT > +15% — engine with worn MAF or high mileage (see Fuel Trim)
  • Catalyst efficiency in Mode 06 > 60% — old catalyst (see Mode 06 post)
  • Stretched timing chainP0011/P0016 in memory (see chain post)

If all this is present but the odometer looks “as new” — another flag.

Pre-purchase checklist

Before you pay:

  1. Motohours — divide by 25 → approximate real mileage
  2. Ignition cycles — divide by 2 × car age in days
  3. Mileage in ABS/ECU vs cluster — should match
  4. Freeze frame mileage — must not exceed odometer
  5. General wear signs via LTFT, Mode 06

And remember — rolled-back odometer isn’t always a disaster. It’s just information to negotiate with. A real 120k European highway car often beats an 50k city taxi.

Our AI agent (see 8 agents) sums these parameters into a “Plausible Mileage” report — available on the paid tier. Try basic OBD parameters on the free tier + pair an ELM327 adapter.