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. +
+Kevin Bell · Summer 2026 development prototype
+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? ++
-
+
- + Attempts ≤ 30 days apart form one episode — rapid + fail/retest sequences never become repeated target rows. + +
- + The target is the first attempt of a returning + vehicle's next episode. + +
- + Non-pass combines fail, reject, and abort; blanks + stay unlabeled. + +
Development data
+Complete histories for a non-representative sample
++ 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
++ 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
+| 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
+-
+
-
+ Final model: calibrated logistic regression
+ (
C=0.03, Platt scaling). +
+ - + Benchmark only: histogram gradient boosting — not a + second final model. + +
- + The tree did not improve the declared sample metrics enough to + justify its complexity. + +
- Logistic regression is easier to audit and explain. +
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.
+
Privacy architecture
+A deliberately narrow public boundary
+-
+
- + No VINs, plates, ZIPs, stations, technician IDs, private tokens, raw + JSON, credentials, operational records, or row-level predictions. + +
- The browser has no database connection. +
- + The dashboard fails closed if its aggregate + contract does not validate. + +
Limitations
+What this sample cannot claim
+-
+
- The page-sampled cohort is not population-representative. +
- Feeds are partial and change over time. +
- Geography and source era are confounded. +
- Reject / abort do not necessarily mean mechanical failure. +
- 2025 is a one-time development holdout, not external validation. +
- + Sample associations do not support county rankings or causal + conclusions. + +
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. +
+