CoolFace
Datasetpublic

DonSimpson/uk-vehicle-reliability-dataset

CarHunch UK Vehicle Reliability Dataset — Volvo evaluation sample Cohort-level UK vehicle reliability statistics derived from DVSA MOT test records: first-time pass rates, defect patterns, a severity taxonomy, mileage-band behaviour and survival curves at make × model × manufacture year × fuel type. This is a free evaluation sample covering Volvo only. The full UK bundle covers every make in the MOT record. Aggregates only. No registration marks, no VINs, no keeper or owner… See the full description on the dataset page: https://huggingface.co/datasets/DonSimpson/uk-vehicle-reliability-dataset.

sourceHugging Faceotherupdated 14d agoView on Hugging Face
1likes168downloads
Dataset Card

CarHunch UK Vehicle Reliability Dataset — Volvo evaluation sample

Cohort-level UK vehicle reliability statistics derived from DVSA MOT test records: first-time pass rates, defect patterns, a severity taxonomy, mileage-band behaviour and survival curves at make × model × manufacture year × fuel type.

This is a free evaluation sample covering Volvo only. The full UK bundle covers every make in the MOT record.

Aggregates only. No registration marks, no VINs, no keeper or owner identity, and no per-vehicle rows — none of it is in this dataset at any tier. There is no personal data here for your team to process.

Snapshot: 2026-09-06 · Filter: vehicle_count > 50 · 2,094 cohorts · ~1.14 MB total

  • 🔗 Full dataset, licensing and contact: <https://www.carhunch.com/data/?utmsource=huggingface&utmmedium=dataset&utmcampaign=volvosample>
  • 🔗 Same sample on GitHub: <https://github.com/DonaldSimpson/uk-vehicle-reliability-dataset>
  • 🔗 Methodology: `docs/NORMALISATION.md` · `SCHEMA.md`

⚠️ Licence: evaluation only — this is _not_ an open dataset. You may download, inspect and evaluate it. You may not redistribute it or use it in a production product, underwriting model or paid service without a commercial licence. See `LICENCE.md`.


Why this exists

Nobody should pay for raw DVSA MOT data — the anonymised release is free and open under the Open Government Licence. This dataset is the engineering between that raw feed and a usable cohort statistic.

1. Model normalisation — the expensive part

The DVSA feed has no model taxonomy, only free-text trim strings. For Volvo alone the source holds 4,030 raw model strings which normalise to 347 models:

Raw DVSA `model`→ `model_norm`
XC60 + B5 MHEV AWD AUTOXC60
XC60 ULTRA T8 PHEV AWD AUTOXC60
XC60 + BLK ED B5 MHEV AWD AUTOXC60
XC60 ULTIMTE T8 RECHARGE AWD AXC60

If you have ever tried to group MOT data by model, that ratio is the whole problem. Across the full UK bundle the source holds 216,686 distinct make-and-model combinations; normalisation coverage is 98.72%. The join is documented in `docs/NORMALISATION.md`, which is itself part of the product.

2. Defect severity taxonomy

A hand-built severity model applied at approximately 1.87 billion defect rows in production, rolled up to cohort level. Raw MOT gives you a text blob; this gives you weighted severity by tier (advisory, safety_wear, mechanical_safety, structural_concern, dangerous).

This is the part that is not recoverable from the raw feed. Raw MOT failure text is dominated by consumables — tyres and brakes top almost every cohort, which tells you nothing. The taxonomy separates structural failure (corrosion, mounts, subframes — expensive, often terminal) from routine wear.

3. Corrections already applied

A naive pipeline falls into all of these:

  • Incomplete-outcome suppressionpass_rate_reliable = false where outcome history is partial
  • Mileage anomaly separation — genuine clocking (~4.5% of vehicles) vs typos and unit errors
  • Odometer unit distrustMI/KM labels are ~0.6% mislabelled; do not average across units
  • Hybrid fuel classification — hybrids are classified by their combustion engine
  • Retest exclusion — retests are not counted as first-time outcomes

4. Fuel-level grain, and survival curves

Statistics at make × model × year × fuel, not just model and year. Plus how many vehicles from a manufacture year are still being MOT-tested in later years — useful for warranty reserving and residual-value work.

5. Coverage most MOT products omit

The full bundle covers MOT classes 1–7, so motorcycles and light commercials are present alongside cars — Honda, Yamaha, Kawasaki, Suzuki, Triumph, Ducati and KTM, as are Transit, Sprinter, Vivaro and Caddy. (This Volvo sample is cars only, by definition.)


Files

ConfigFileRowsWhat it is
cohort_statsdata/volvo_cohort_stats.parquet2,094Pass rates, defect averages, mileage percentiles per cohort
defect_patternsdata/volvo_defect_patterns.parquet5,029Most common defects per group, with counts
defect_severitydata/volvo_defect_severity.parquet6,284Cohort rollup of the severity taxonomy by tier
survivaldata/volvo_survival.parquet9,844Vehicles still MOT-tested, by manufacture year × test year
mileage_band_passdata/volvo_mileage_band_pass.parquet2,860Pass rate and severity by mileage band
mileage_percentilesdata/volvo_mileage_percentiles.parquet175p20/p40/p60/p80 mileage per make/model
data/volvo_preview.csv20Human-readable taster

Every file carries snapshot_date, generated_at and source. Full column documentation is in `SCHEMA.md`.


Quickstart

python
import pandas as pd

df = pd.read_parquet("hf://datasets/DonSimpson/uk-vehicle-reliability-dataset/data/volvo_cohort_stats.parquet")

# Least reliable Volvo cohorts with a trustworthy pass rate
print(
    df[df.pass_rate_reliable]
      .nlargest(10, "pct_with_dangerous_defect")
      [["model_norm", "manufacture_year", "fuel_type", "vehicle_count",
        "first_time_pass_rate", "pct_with_dangerous_defect"]]
)
python
from datasets import load_dataset

ds = load_dataset("DonSimpson/uk-vehicle-reliability-dataset", "cohort_stats", split="train")
sql
-- DuckDB
SELECT model_norm, manufacture_year, fuel_type, vehicle_count, first_time_pass_rate
FROM 'data/volvo_cohort_stats.parquet'
WHERE pass_rate_reliable AND vehicle_count > 500
ORDER BY first_time_pass_rate ASC
LIMIT 10;

Who it is for

  • Used-car warranty and underwriting — pricing risk by cohort, with a structural-versus-routine-wear split for reserving
  • Dealer, auction and remarketing tools — filtering stock and informing residual-value models
  • Parts, servicing and repair platforms — predicting what a make/model/year cohort needs next
  • Vehicle data providers and fleet analytics — adding a reliability layer to an existing feed
  • Researchers and journalists — UK vehicle defect data at national scale, from an open-data source

Known limitations

  • MOT records only. No finance, write-off, stolen-marker or keeper history.
  • Cohorts below the floor are excluded (vehicle_count > 50) — small cohorts are statistically noisy.
  • `pass_rate_reliable = false` marks cohorts whose outcome history is partial. Filter on it.
  • Fuel labels come from DVSA and are imperfect; hybrids are classified by combustion engine.
  • `vehicle_count` is not the mileage denominator. Use mileage_sample_count — the vehicles actually contributing an odometer reading. They can differ sharply on older cohorts: the 1988 340 has 14,085 vehicles and zero usable readings, so its avg_mileage is NULL.
  • Snapshot, not a live feed. The production pipeline is daily; this sample is a point-in-time cut.

See it in production

This is not an export made for sale — it is the layer behind a live public site, so you can inspect the same figures rendered for humans at carhunch.com before licensing the files.

Licence and attribution

Evaluation licence — see [`LICENCE.md`](LICENCE.md). Not CC BY, and not redistributable.

Contains public sector information licensed under the Open Government Licence v3.0.

CarHunch is not affiliated with, or endorsed by, DVSA or DVLA. CarHunch-derived fields (normalisation, severity taxonomy, cohort statistics, survival curves and related analysis) are © Donald Simpson Limited.

Commercial licence

Full UK bundle, all makes, classes 1–7 — details and contact at carhunch.com/data or data@carhunch.com.