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.
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 chain — P0011/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:
- Motohours — divide by 25 → approximate real mileage
- Ignition cycles — divide by 2 × car age in days
- Mileage in ABS/ECU vs cluster — should match
- Freeze frame mileage — must not exceed odometer
- 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.