Zum Inhalt springen

How PlateVIN works: NHTSA data, check digit and recalls

Where PlateVIN’s decoding, specifications and recall lists come from, how the check digit is calculated, how make, model and year pages are built, and what is left out.

Diese Seite ist auf Englisch verfasst.

Decoding happens at NHTSA, from your browser

PlateVIN does not hold a VIN database and has no back end. When you press Decode, JavaScript on the page calls NHTSA’s public vPIC API (Vehicle Product Information Catalog) with your VIN, using the DecodeVinValues endpoint, and renders the answer. The call goes straight from your browser to NHTSA, so the VIN is not sent to PlateVIN and cannot be logged by it.

vPIC applies the coding keys that manufacturers submit to NHTSA under 49 CFR § 565.16. Its response lists dozens of variables for a vehicle, and PlateVIN shows every non-empty one, grouped as vehicle, engine, drivetrain, body, safety and plant. A variable NHTSA returns that PlateVIN has no label for is shown under “Other” with NHTSA’s own name, rather than dropped. Messages from NHTSA, such as a wrong check digit, are shown unchanged.

PlateVIN does not show example results for a made-up VIN. The tool only ever displays a live answer for the VIN you typed; the page explains the positions of a VIN with an empty diagram instead of a sample number.

The local check

Before a VIN is sent, the page checks the things that need no data: 17 characters, no I, O or Q, and the check digit in position 9 calculated with the method of 49 CFR § 565.15(c). A wrong length or an illegal letter stops the lookup and tells you which character is at fault. A wrong check digit does not stop it, because vehicles built for other markets often fail the North American check and NHTSA may still decode them; the result carries a note instead.

The model-year reading uses Table VII of the same section together with the position 7 rule for passenger cars and light trucks. When position 7 cannot decide, both possible years are shown.

Recalls: what is and is not answered

NHTSA’s recalls service takes a make, a model and a model year. It does not take a VIN. PlateVIN therefore lists the campaigns NHTSA has filed for the decoded make, model and year, and says so in the heading of the list. It cannot tell you whether a campaign is still open on your car, which depends on repair records that only NHTSA’s own VIN lookup and the manufacturer hold; the result links to that lookup.

When NHTSA has no campaign for a make, model and year, its service answers with an error status and an empty list instead of a normal response. PlateVIN treats exactly that response as “no campaigns listed” and any other failure as “recalls could not be loaded”, so a network problem is never shown as an empty list.

The make, model and model-year pages

The pages under each make are built at publish time from a snapshot of NHTSA data that is committed to the repository. For a list of makes and the model years 2015 to 2025, the snapshot script fetches the models NHTSA lists for the make and year, the specification rows of NHTSA’s Canadian vehicle specifications dataset (overall length, width and height, wheelbase, track, curb weight and similar), the recall campaigns for each model and year, and the manufacturer identifiers (WMIs) of the make.

A model-year page is published only when NHTSA has at least one specification row for it. A page without data would repeat the same sentences with a different name, so it is not built. The tables on the page show the ranges across the rows NHTSA lists, in both metric and imperial units.

The snapshot dates are shown at the foot of the data pages, and a scheduled job refreshes the snapshot so that new recall campaigns appear after the next publish.

The current data snapshot

NHTSA data fetched on 17 October 2026, for model years 2015 to 2025. The counts below come from the committed snapshot files and change when they are refreshed.

Makes12
Make, model and year pages1,465
Specification rows from NHTSA4,730
Rows not assigned to a model251
Recall campaigns1,800

How the data is cleaned

The Canadian dataset names models by trim as well as by model. A row is attached to a model when its model name starts with the model’s name, taking the longest match, and a row that matches no model NHTSA lists for the make is dropped; the page of the method shows the counts for the current snapshot. Rows are kept as NHTSA gives them: no value is estimated, converted between sources or filled in from another dataset.

The manufacturer identifier list comes from a search by name, and the search also returns companies that merely contain the make’s name. PlateVIN keeps only three-character identifiers whose manufacturer name contains the make as a whole word and drops trailers. For Chevrolet and Jeep NHTSA files the identifiers under the parent company names, so those two make pages show no list. Countries are printed as vPIC gives them and may contain inconsistencies.

Recall summaries are shortened to 320 characters at a word boundary on the model-year pages, with the campaign number linking to NHTSA for the full text. The decode result shows the summaries NHTSA returns in full.

What PlateVIN does not do

PlateVIN is a decoder, not a history report. It does not know any of the following, and it does not guess:

  • Accident, flood, theft or title history, ownership or liens.
  • Mileage, service records or the market value of a vehicle.
  • Whether a recall is open on one specific vehicle.
  • Vehicles built for markets outside North America, which vPIC decodes only in part.

Quellen