Learn

What a VIN tells you

Last updated:

The 17 characters of a VIN, read position by position: who made the vehicle, what it is, its model year and plant, and what a VIN never tells you.

A Vehicle Identification Number (VIN) is 17 characters that tell you who made a vehicle, what kind of vehicle it is, its model year, the plant that built it, and its place in that plant's production run. It does not tell you the paint colour, most of the optional equipment, who has owned it or what has happened to it since it left the factory. In Canada and the United States the layout is set by regulation, and the two countries use the same positions for the same things.

Written by Cardog. Where we describe a public authority's rules we link its own page, checked on 2026-10-26.

The 17 positions

Read a VIN left to right and it narrows from the manufacturer, to the model, to one vehicle. The example below is 2T3R1RFV7MW180266, a 2021 Toyota RAV4.

Close-up line drawing of a riveted VIN plate on the dashboard, seen through the lower corner of the windshield; its seventeen characters are blank cells.
Seventeen characters on a riveted plate, read through the glass.
PositionsWhat they holdIn 2T3R1RFV7MW180266
1 to 3World Manufacturer Identifier (WMI): the manufacturer and the type of vehicle2T3
4 to 8Vehicle Descriptor Section (VDS): model, body, engine, restraints, in the manufacturer's own codeR1RFV
9Check digit, computed from the other 16 characters7
10Model yearM (2021)
11Plant of manufactureW
12 to 17Production sequence number180266

Canada's Motor Vehicle Safety Regulations, section 115(3), list these sections in this order: the first three characters identify the manufacturer and class of vehicle, the fourth to eighth the vehicle's attributes, the ninth the check digit, the tenth the model year, the eleventh the plant, and the twelfth to seventeenth the sequence number (Motor Vehicle Safety Regulations, s. 115). The US rule in 49 CFR 565.15 sets out the same sections (49 CFR Part 565).

Only capital letters and digits are used, and the letters I, O and Q never appear, so they cannot be misread as 1 and 0 (49 CFR 565.13(g)). A "VIN" containing one of them is a typo.

Positions 1 to 3: who made it

The WMI identifies the manufacturer and the type of vehicle. The first character is a region block, which usually reflects where the vehicle was built rather than where the brand is from: a RAV4 built in Ontario starts with 2.

Codes are assigned, not chosen. In Canada, section 115(11) of the Motor Vehicle Safety Regulations says manufacturers apply to the Canadian Vehicle Manufacturers' Association for these characters (MVSR, s. 115). In the United States, NHTSA has contracted with SAE International to assign them (49 CFR 565.16(a)).

Small manufacturers

A manufacturer that builds fewer than 1,000 vehicles of a type a year does not get a three-character code of its own. Its code has a 9 in position 3, and positions 12 to 14 complete it. A 9 in position 3 always means this six-character form, and the production sequence is then only positions 15 to 17 (49 CFR 565.15(a) and (d); MVSR, s. 115(3)(a.1) and (g)). Trailer and specialty builders are common examples.

Positions 4 to 8: what was built

The VDS describes the vehicle. The regulations list what it must make decipherable for each vehicle type. For a passenger car that is the make, line, series, body type, engine type and restraint devices; for a truck it adds the chassis, cab type, brake system and gross vehicle weight rating (49 CFR 565.15(b), Table I).

The manufacturer chooses which characters mean what. In the United States it supplies NHTSA with the information to decipher them (49 CFR 565.15(b) and 565.16); in Canada the Minister may require the same (MVSR, s. 115(9)). There is no shared table across makers, which is why decoding a VIN means looking it up against that maker's patterns, not doing arithmetic. On passenger cars, MPVs and trucks up to 4,536 kg GVWR, position 7 must be a letter.

Position 9: the check digit

The check digit lets anyone catch a mistyped VIN. Both countries define it the same way (49 CFR 565.15(c); MVSR, s. 115(7) and (8)):

  1. Give each digit its own value and each letter an assigned value (A=1, B=2, ... H=8, J=1, K=2, L=3, M=4, N=5, P=7, R=9, S=2, T=3, U=4, V=5, W=6, X=7, Y=8, Z=9).
  2. Multiply each value by its position's weight.
  3. Add the products and divide by 11. The remainder is the check digit, written X when it is 10.
Position1234567891011121314151617
Weight876543210098765432

Position 9 has weight 0, so the digit never checks itself. Because the serial characters are part of the sum, two vehicles from the same build usually have different check digits.

Position 10: the model year

Thirty codes cover thirty model years, then repeat. The letters skip I, O, Q, U and Z, and the digit 0 is not used. Both regulations print the 2010 to 2039 cycle (49 CFR 565.15(d)(1), Table VII; MVSR, s. 115, Table II), and the note to the US table says the same codes stood for 1980 to 2009 one cycle earlier.

CodeYearsCodeYearsCodeYears
A1980, 2010L1990, 2020Y2000, 2030
B1981, 2011M1991, 202112001, 2031
C1982, 2012N1992, 202222002, 2032
D1983, 2013P1993, 202332003, 2033
E1984, 2014R1994, 202442004, 2034
F1985, 2015S1995, 202552005, 2035
G1986, 2016T1996, 202662006, 2036
H1987, 2017V1997, 202772007, 2037
J1988, 2018W1998, 202882008, 2038
K1989, 2019X1999, 202992009, 2039

To tell 1991 from 2021, look at position 7. For passenger cars, MPVs and trucks up to 4,536 kg GVWR, a digit in position 7 means 1980 to 2009 and a letter means 2010 to 2039 (49 CFR 565.15, note to Table VII). In 2T3R1RFV7MW180266 position 7 is F, so M is 2021. The model year is the manufacturer's, and it need not match the calendar year the vehicle was built.

Positions 11 to 17: the plant and the one vehicle

Position 11 identifies the plant of manufacture. Its meaning is the manufacturer's own; the code alone does not name a city. Positions 12 to 17 are the number the manufacturer assigns in sequence during production (15 to 17 for a small manufacturer). This is the only part of the VIN that separates one vehicle from the others of the same build.

What a VIN does not tell you

The VIN describes the vehicle as built, at the level the regulation requires. It does not carry:

  • Colour. Paint and interior colour are not among the attributes the regulations list for any vehicle type (49 CFR 565.15(b), Table I).
  • Most options. For a passenger car, Table I asks for the make, line, series, body type, engine type and restraints. It does not ask for packages, wheels or audio.
  • History. Owners, registrations, accidents, odometer readings and repairs happen after the VIN is stamped, so none of it is in the 17 characters.
  • Recall status. A VIN tells you the model year and maker, which is how recall campaigns are scoped. Whether a recall applies to this exact vehicle, and whether it was repaired, is something only the manufacturer can confirm. See Canadian vs US recalls.

In the API

GET /v2/vin/{vin} turns the 17 characters into named, joinable fields. Its full shape is in VIN structure and Decode a Canadian VIN.

  • valid: whether the VIN decodes to a vehicle. When it is false, reasons says why with a named code such as UNSEEN_BUILD, and the identity fields are null.
  • year, make, model, trim: the model year as a number, display names, and the catalogue trim decoded from the VIN pattern.
  • refs: join keys for the same facts, such as refs.make (make:toyota), refs.model, refs.modelYear (model-year:toyota/rav4/2021), refs.bodyStyle, refs.fuelType, refs.driveType and refs.gvwr.
  • refs.country: the plant country, filled since 2026-10-26 as a country ref such as country:canada or country:united-states-usa, and null when the decoder states none. It is the plant's country as the decoder states it, not the region block in position 1.
  • nano and squish: two keys cut from the VIN itself. squish is positions 1 to 8 plus 10; nano adds position 11 (and 12 to 14 for small manufacturers). Squish and nano build codes explains both.
  • attributes: the rest of what the decoder resolved for the build that is not an entity. Its shape is the decoder's, not part of the contract.

Cardog decodes a VIN whatever its check digit says, since a VIN with a bad digit can still be on a real vehicle. To enforce the digit, check it before you call: checkDigitOk in the @cardog/entities package does it offline.

FAQ

Is the VIN the same in Canada and the United States? Yes in layout. Canada's section 115 and the US 49 CFR 565 use the same 17 positions, the same check digit arithmetic and the same model-year codes. Codes are assigned through different bodies in each country.

Can I get the colour of a car from its VIN? No. Colour is not one of the attributes the VIN must encode. A build sheet or window sticker for that vehicle is where colour appears.

Why does my VIN fail the check digit? Most often a character was misread or mistyped: 8 for B, 5 for S, or a letter where a digit belongs. Recheck the plate on the dashboard or the door label before assuming the VIN itself is wrong.

What does a 9 in position 3 mean? That the manufacturer builds fewer than 1,000 vehicles of that type a year, and its identifier continues in positions 12 to 14.

Does the VIN say where the car was built? Position 11 identifies the plant, but only through the manufacturer's own key. Cardog's refs.country gives the plant country when the decoder states it.

Does a VIN tell me if the car has been in an accident? No. Nothing that happens after manufacture is encoded in the VIN.

Sources

Checked on 2026-10-26:

If something here is wrong, tell us and we will fix it.