M Meddalwedd

Home/Our work/VehicleStats

Case study · High-volume analytics

Know what a used car is likely to cost you, before you buy it.

Every MOT test the DVSA publishes, turned into a failure-risk score for any UK registration — benchmarked against every comparable test for that exact model and age. Free, with no account.

137.6M
Vehicles analysed
213,910
Distinct models
17,555
Manufacturers
Free
No account required

The problem

Everyone checks the mileage. Almost nobody checks the odds.

The DVSA publishes the outcome of every MOT test in the country — pass, fail, mileage, advisories and the specific reasons for failure. It is one of the most useful consumer datasets the UK produces, and almost nobody can use it, because it arrives as tens of millions of rows rather than as an answer.

Someone looking at a used car wants to know one thing: is this particular model, at this particular age, likely to cost me money? That question is answerable from the published record. It just needs the whole corpus behind it, because a single car's history tells you about that car, while the model's history tells you what you are buying into.

We made it free and put it behind no sign-up, which was a deliberate constraint: it moves the entire product into the query layer, where a slow answer is the same as no answer.

At a glance

Type
Open-access data platform
Source
DVSA MOT testing data
Scale
137.6 million vehicles
Access
Free, no account
Status
Live, and operated by us

What we built

Tens of millions of rows, one straight answer

1

A harvesting pipeline of its own

The MOT record is large, and it keeps growing. Ingestion runs as a dedicated process rather than as part of the website, so that loading data and serving it never compete, and a bad load never takes the site down with it.

2

Normalising what manufacturers will not

17,555 manufacturer names and 213,910 model descriptions arrive spelled however the testing station typed them. Grouping them into something you can honestly compare is most of the work, and it is the part that decides whether the resulting statistics mean anything at all.

3

Risk scored at model and age

A failure-risk score benchmarked against every comparable test for that exact model at that exact age — because a twelve-year-old car failing is ordinary and a three-year-old car failing is not. The comparison has to hold age constant or it says nothing.

4

Query design as the product

With no sign-up wall, every visitor hits the data directly and expects an answer while they are still standing on the forecourt. Schema, indexing and pre-aggregation are what make that possible across the full corpus.

5

Rankings, guides and comparison

Beyond the single lookup: most and least reliable models, pass rates by make, common failure reasons, side-by-side comparison of two vehicles, and plain-English guides to how MOTs actually work.

How it is built

Separate engines, one site

Harvesting, insight generation and the web application are distinct projects with real boundaries, so each can be changed, tested and run on its own schedule.

ASP.NET Core MVCThe public site and every lookup it serves
SQL ServerThe full MOT corpus, indexed for direct public querying
Dedicated harvesterIngestion isolated from the serving path
Insights engineRankings and benchmarks computed ahead of the request

Similar problem?

Large datasets, answered quickly.

If you have data at a scale where the query plan decides whether you have a product, that is the work we do.

info@meddalwedd.co.uk