0:00–0:40
Utah Vehicle Health Returning vehicles · next first attempt

Utah Vehicle Health

Predicting a returning vehicle's next-episode first-attempt non-pass outcome.

One focused prediction question — a development prototype, not a population study or decision tool.

Research question

Using only information available before an inspection episode begins, how well can a calibrated logistic regression estimate whether a returning vehicle's next episode will have a first-attempt non-pass outcome?

Development data

Complete histories for a non-representative sample

sample up to 10,000 vehicles ↓ retrieve their full histories ↓ build 30-day episodes ↓ 44,659 eligible returning targets
9,996private tokens after validation
83,552source events
69,588episodes
44,659eligible targets

Pipeline reconciliation counts — not Utah totals. Page sampling over-represents vehicles with more records, and feeds do not cover all 29 counties.

Leakage-safe design

Every feature window ends before the target

2010–15 context 2016–22 train 2023 tune 2024 calibrate 2025 one-time holdout 2026 partial shadow

Uses (all pre-episode)

  • Prior outcomes, history depth, timing
  • Vehicle age, season, public county context
  • Previously observed make / model

Excludes

  • Current-test diagnostics & later attempts
  • Future records, identifiers, stations, technicians

The 2025 gate was opened once after specs were frozen — a development holdout, not a pristine future test.

Model comparison

2025 one-time sample holdout · higher PR-AUC and lower Brier are better · not population performance
Model Role PR-AUC Brier
Training prevalence Baseline 0.123 0.1076
Previous episode Baseline 0.158 0.1731
Logistic + Platt Final 0.261 0.1011
Boosted tree + Platt Benchmark 0.238 0.1024

Logistic beat both baselines and the boosted-tree benchmark. We avoid the word “accuracy,” which hides class imbalance and calibration.

Model decision

Keep calibrated logistic regression

Live dashboard demo · 2:45

Switch to the dashboard

Follow demo_script.md. Keep the development-preview banner in view. Show logistic as final, the tree as benchmark-only, and that there is no vehicle-level prediction service.

1 · Overview 2 · Sample cohorts 3 · Model & benchmark 4 · Data & methods
node dashboard/server.mjs --lan → open the “Other devices” URL + /#overview

Privacy architecture

A deliberately narrow public boundary

private read-only data → local modeling → suppressed aggregate JSON → allowlisted local static server → same-network demo browser

Limitations

What this sample cannot claim

Close

A complete, honest development prototype

One precise question · a leakage-safe timeline · calibrated logistic regression as the final model · a boosted-tree benchmark · a privacy-reviewed static dashboard.

The value is the discipline of making only the claims the data and release boundary can support.

Questions?

Happy to go deep on episode construction, calibration, privacy, or the dashboard.

1 / 10

Deck controls

→ / SpaceNext slide ←Previous slide Home / EndFirst / last slide SToggle speaker notes FToggle fullscreen PPrint / save as PDF (backup) ?Show this help