SummerProject2026/docs/presentation_outline.md

6.9 KiB

Utah Vehicle Health: 10-minute presentation outline

Presentation rule

Keep this sentence visible on every results or dashboard slide:

Private 10,000-vehicle development sample; sample results, not population estimates.

Do not show county rankings, imply statewide coverage, or describe non-pass as mechanical failure. Refer to calibrated logistic regression as the final model and histogram gradient boosting as the benchmark.

Timed outline

Time Slide / action Core message
0:00-0:40 1. Title and boundary One focused prediction question; development prototype, not a population study or decision tool
0:40-1:25 2. Research question Returning vehicle, next episode, first attempt, binary non-pass
1:25-2:15 3. Development data Private page-sampled 10,000-vehicle histories; complete sampled histories but nonrepresentative selection
2:15-3:10 4. Leakage-safe design 30-day episodes, only pre-episode history, chronological split, never random rows
3:10-4:20 5. Model comparison Logistic final versus prevalence/previous-outcome baselines and boosted-tree benchmark
4:20-4:50 6. Model decision Calibrated logistic wins the declared sample comparison and is easier to explain
4:50-7:35 Live dashboard demo Overview, Sample cohorts, Model & benchmark, Data & methods
7:35-8:30 7. Privacy architecture Private pipeline to suppressed aggregate JSON to dashboard-only Bolt project
8:30-9:20 8. Limitations Sampling, feed coverage, source/time confounding, heterogeneous non-pass, one-time holdout
9:20-10:00 9. Close Prototype is complete and honest about what it can—and cannot—claim

Total: 10:00

Slide notes

1. Title and boundary — 40 seconds

Title: Utah Vehicle Health

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

Say:

This is a presentation-ready development prototype built from a private, page-sampled 10,000-vehicle cohort. Every result I show is sample-based, not a population estimate. The project does not rank counties or diagnose vehicles.

2. Research question — 45 seconds

Show the 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?

Explain that attempts separated by no more than 30 days form one episode. This keeps rapid fail/retest sequences from becoming repeated target rows. Non-pass combines fail, reject, and abort; blanks remain unlabeled.

3. Development data — 50 seconds

Show a compact flow:

sample up to 10,000 vehicles -> retrieve their histories -> build episodes
-> create 44,659 eligible returning targets

Say that 9,996 private tokens remained after validation, producing 83,552 source events and 69,588 episodes in the private sample. Immediately repeat that these are reconciliation counts, not Utah totals. Page sampling over-represents vehicles with more inspection records, and participating feeds do not cover all 29 counties.

4. Leakage-safe design — 55 seconds

Show the chronology:

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

Explain that every feature window ends before the target episode. The model uses prior outcomes, history depth, timing, age, previously observed make/model, public county context, and season. It excludes current-test diagnostics, future records, identifiers, stations, technicians, and later attempts.

Note that the 2025 sample gate was opened once after specifications were frozen; it is a development holdout, not a pristine future test.

5. Model comparison — 70 seconds

Use a two-metric table. Label it “Private 10,000-vehicle development sample; not population performance.”

2025 one-time sample holdout 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

Say that higher PR-AUC and lower Brier are better. Logistic beat both baselines and the boosted-tree benchmark in this one-time sample comparison. Avoid the word “accuracy,” which obscures class imbalance and calibration.

6. Model decision — 30 seconds

Say:

The final model is calibrated logistic regression. The boosted tree is a benchmark only. It did not improve the declared sample metrics enough to justify greater complexity, while logistic regression is easier to audit and explain.

Live dashboard demo — 2 minutes 45 seconds

Follow demo_script.md. Keep the development-preview banner in view at the start. Explicitly show calibrated logistic as final, the tree as benchmark-only, and the absence of a vehicle-level prediction service.

7. Privacy architecture — 55 seconds

Show:

private read-only data -> local modeling -> suppressed aggregate JSON
-> dashboard-only Bolt project

State that the public bundle has no VINs, plates, ZIPs, stations, technician identifiers, private tokens, raw JSON, credentials, operational records, or row-level predictions. The browser has no database connection and fails closed if its aggregate contract does not validate.

8. Limitations — 50 seconds

Name the limitations directly:

  • 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; and
  • sample associations do not support county rankings or causal conclusions.

9. Close — 40 seconds

End with:

The prototype is complete at the development stage: one precise question, a leakage-safe timeline, calibrated logistic regression as the final model, a boosted-tree benchmark, and a privacy-reviewed static dashboard. Its value is not just the sample performance; it is the discipline of making only the claims the data and release boundary can support.

Pause, then invite questions about episode construction, calibration, privacy, or the dashboard—not about county “winners” and “losers,” which this sample cannot establish.

Presentation checklist

  • Start the local dashboard before presenting: node dashboard/server.mjs.
  • Open http://127.0.0.1:4173/#overview and close unrelated browser tabs.
  • Use a fresh page load to confirm aggregate validation succeeds.
  • Keep a screenshot or short recording as a backup, with the sample warning visible.
  • Never open private data, artifacts, terminal environment variables, database tools, or browser developer tools during the talk.
  • Do not type or display a VIN, plate, ZIP, station, technician identifier, raw record, or row-level prediction.