HOW WE GOT
THE NUMBERS.

Every chart on this site is computed from raw DIMO telemetry that the vehicle owner cryptographically granted us the right to read. Here's exactly how each number was derived, what signals we used, and what we deliberately didn't show.

DATA SOURCES.

Vehicle identityERC-721 #183644 ↗
Query endpointstelemetry-api.dimo.zone, identity-api.dimo.zone
Auth modelDeveloper JWT → Vehicle JWT via SACD-gated token exchange
Raw signals collected3,938,654 across 19 signal types
Behavior events collected3,695 (extreme braking + harsh cornering)
Observation window27 Jul 2025 → 15 Apr 2026 (263 days)

TRIP DETECTION.

DIMO's telemetry API exposes five detection mechanisms. We used frequency analysis, which detects activity by signal-update rate rather than relying on the isIgnitionOn signal (which didn't start reporting until 25 Oct 2025). This gave us a consistent view across the full observation window.

MechanismfrequencyAnalysis
Min duration10 minutes
Max gap merge300 seconds (default)
Detected trips (≥ 10 min)419
Detected trips (all)555

TOWING DETECTION (V2).

Our first detector relied on a single signal: the ratio of engine revolutions per mile per hour. For a 2025 Ram 1500 with the 3.0 L Hurricane twin-turbo I6 and 8HP70 transmission, unloaded highway cruise sits at roughly 26.2 RPM per MPH. When hauling, that ratio climbs because the transmission holds a lower gear. Simple, and mostly correct — except it flagged one February trip that turned out to be a driver who'd bumped the steering-wheel gear-limiter down a step. Same elevated ratio, no trailer.

V2 requires two signals to agree. A real tow burns obviously more fuel (7–10 MPG vs. 17–22 unloaded) and spikes RPM hard when accelerating from stops. Either alone is noise. Both together are unambiguous.

Signal 1 — fuel5 ≤ MPG < 12 (trip distance ≥ 15 mi to beat 1%-tank sensor noise)
Signal 2 — RPM peakmax RPM > 3,300 during low-speed (< 30 mph) acceleration
Signal 2 alt — cruisemedian(RPM/MPH) ≥ 32 at hwy (≥ 30 samples)
Concurrence gateBOTH fuel & RPM signals must fire
Same-day burst bonus+1 if two or more legs of the same day score ≥ 4
Unloaded baseline26.2 RPM/MPH (empirically verified)
Tiersconfirmed (≥5), likely (4), suspect (2–3), normal (≤1)
Confirmed tow trips4 of 419 — all during Oct 16–17, 2025 hauling event
V1 false-positive caughtFeb 7, 2026 — gear-limiter, not tow (MPG 17.3)

MPG ESTIMATION.

The fuel-level signal (powertrainFuelSystemRelativeLevel) returns a dash-gauge percentage. DIMO's refuel-segment detector identifies each time the level jumps up significantly. Between consecutive refuel events, miles travelled are computed from powertrainTransmissionTravelledDistance deltas; gallons used are inferred by multiplying the pre-refuel level decrease by the effective dash-range tank capacity.

Tank-size calibration. The physical fuel tank on this Ram is 33 US gallons (the Max Fuel Tank package on the Laramie 4x4 build). But the dash gauge's 0–100% does not span all 33 nominal gallons. The needle holds at 100 for the first several gallons of consumption after a fill (top buffer), and the low-fuel warning triggers with roughly 3 gallons still in the tank (reserve below 0%). The actual fuel transit across the 0–100 dash swing is closer to 25 gallons. We have to do gallons-from-percent math because the dash percentage is the only fuel-level signal DIMO exposes. We calibrated the effective gauge swing against the owner's pump-receipt log: 29 matched DIMO refuel events totaled 606 gallons of pump fuel against 24.5 tank-equivalents of gauge swing, which gives 25 gallons per 100% swing. Using that effective capacity, our DIMO-derived lifetime MPG lands within 0.17 of receipt truth.

Physical tank capacity33.0 US gallons (Max Fuel Tank pkg)
Effective dash-range capacity25.0 US gallons (calibrated to receipts)
Refuel events detected31
Tanks analyzed29
Sanity filtergallons_used > 0.5 & miles ≥ 5
Lifetime real-world MPG (DIMO)16.40
Lifetime real-world MPG (pump receipts)16.57
EPA combined20.0

COLD-START DETECTION.

A cold start is defined as a trip whose first powertrainCombustionEngineECT (engine coolant temperature) reading is within 10 °C of the first exteriorAirTemperature reading, with ECT subsequently rising by at least 30 °C. That excludes trips where the engine was already warm.

REMOTE-START DETECTION.

We classify an ignition session (isIgnitionOn → ON → OFF) as a remote start when: duration is between 60 seconds and 25 minutes, no speed sample exceeds 3 km/h during the session, and ECT rises by at least 10 °C. That catches the signature of a truck warming up without moving.

DATA GAPS WE FOUND.

Real-world telemetry is not perfectly clean. This is what we noticed and chose to disclose:

WHAT WE DIDN'T SHOW.

The vehicle owner granted us specific signal permissions via an on-chain SACD document, including exact GPS. For privacy reasons in this public write-up we have:

The DIMO protocol exposes a separate privilege:GetApproximateLocation scope that can automatically snap all coordinates to H3 resolution-6 cells (∼3 km across). That's how an owner typically grants "yes, show where I drove, but not my driveway."

REPLICATE EVERY NUMBER.

Every chart on this site is derived from data available via DIMO's public-ish GraphQL APIs. Anyone with a developer license and the owner's SACD grant can query the same data. The complete pipeline is:

1. Get a developer JWT from auth.dimo.zone
2. Exchange for a vehicle JWT (Token Exchange API, scoped to #183644)
3. Query telemetry-api.dimo.zone/query for signals / events / segments
4. Join, aggregate, chart — as shown above

Our raw CSVs are available on the RAW DATA section of the home page.