What is a VIN Really? And Why Your Decoder Can Be Wrong
TL;DR: A VIN is a 17-character code assigned by the manufacturer. Positions 1–11 are standardized; positions 4–8 are not — they're a manufacturer code that means different things at different brands. That's why two decoders give different answers for the same VIN. Here's how to read the parts that are reliable and treat the parts that aren't with appropriate skepticism.
I run a VIN decoder for a living. I'm going to tell you something most companies in this space won't: VIN decoders are imperfect, and any decoder that claims 100% accuracy is either lying or has never been tested on a sufficiently weird VIN.
That's not because the people running the decoders are sloppy. It's because the VIN system was designed to be unique, not to be decoded by outsiders. The manufacturer knows what each character in their own VINs means. Everyone else is reverse-engineering from a sample.
The good news: this honest framing actually makes you a better used-car buyer. Once you understand what a decoder can and can't tell you, you stop expecting magic and start asking the right next questions.
The 17 characters, demystified
A 17-character VIN since 1981 follows ISO 3779, which divides it into three blocks:
Positions 1–3 — WMI (World Manufacturer Identifier)
- Position 1: country/region of manufacture
- Positions 2–3: manufacturer
Standardized globally. A VIN starting with "WBA" is BMW. "VF1" is Renault. "JM1" is Mazda Japan. Decoders rarely disagree on these.
Positions 4–8 — VDS (Vehicle Descriptor Section)
- Five characters that describe the vehicle: model, body type, engine, transmission, restraint system, etc.
This is where decoders disagree. The standard says the manufacturer assigns this section, but it doesn't dictate what each character means. Every brand has its own coding system, and those systems change over time. A "B" in position 5 of a BMW 2010 means something completely different from a "B" in position 5 of a Mercedes 2010 or a BMW 2018.
Position 9 — Check digit
- A mathematical checksum of the other 16 characters. Catches typos. Required in North America, optional in Europe.
European VINs sometimes have a check-digit position that's "wrong" by the North American algorithm. That doesn't make the VIN invalid — it means the European manufacturer didn't follow the optional check-digit rule. Some decoders flag European VINs as invalid for this reason. They're wrong.
Position 10 — Model year
- A letter or number that encodes the model year. The encoding rolls every 30 years: 'A' was 1980, 2010, and will be 2040.
Two model-year errors are common:
- Decoders mistake the 30-year cycle. A VIN with a position-10 of 'B' that's clearly recent is 2011, not 1981. Most decoders get this right but some legacy tools don't.
- Model year ≠ calendar year of manufacture. A 2024-model-year car can be built in mid-2023. The VIN tells you the model year, not the calendar year. The factory build plate or the registration date tells you the calendar year.
Position 11 — Plant code
- Where the car was assembled. Manufacturer-specific.
This one is often more reliable than position 4–8 because the assembly plant codes are visible to the dealer network and rarely change.
Positions 12–17 — Serial number
- A unique production-sequence identifier for that specific vehicle.
Not decodable in any useful way. They're just a counter.
Why two decoders disagree
Take a real example: a Toyota VIN starting "JTM" or "JTD" — both Toyota Japan WMIs.
The "TO" in positions 5–6 of a Toyota VIN historically meant different vehicle families depending on the production year. Toyota changed their VDS assignments around 2010 and again around 2016 to accommodate new platforms (TNGA-K, TNGA-C). A decoder built from a 2009 reference sheet will tell you a 2018 VIN is a model that hasn't been made since 2010. A decoder built on the post-2016 sheet will tell you the right thing for new cars and the wrong thing for 2010-era ones.
Most decoders work by maintaining a manual mapping of "VDS pattern → vehicle attributes" learned from registry data. Two decoders working on different registry samples will produce slightly different mappings. Both can be locally correct and globally inconsistent.
Carlytics's decoder is fed by Finnish Traficom data (5 million VINs), Norwegian Vegvesen data, RDW for the Netherlands, and a few other registries. When we encounter a VDS we haven't seen before, we either fall back to the manufacturer's vPIC entry (where one exists) or we leave the field null. We'd rather show you a gap than guess.
Other decoders make different trade-offs. Some prefer to fabricate the most-likely value and accept a higher error rate. There's a real engineering argument for that — empty fields create UX issues — but we hold the line on "null beats wrong" because a wrong year on a paid report is a refund trigger, and a null year that we explain is just a known limitation.
When the decoder can be wrong
Five specific failure modes you should know about:
1. The "no VDS coverage" case
The decoder has never seen the specific positions-4–8 pattern in your VIN before. Carlytics will tell you which fields we couldn't determine. Other decoders may silently fabricate plausible values. Test for this by entering the same VIN into two or three decoders. If they disagree on year or model, neither has authoritative data — they're guessing.
2. The "manufacturer reused the VDS" case
A manufacturer recycles a VDS pattern between two completely different vehicles separated by years. The decoder sees the pattern and returns the older meaning even though the model year is recent (or vice versa). Cross-check year (position 10) against the rest of the decode. If the decoded model didn't exist in the decoded year, the decoder has a coverage gap.
3. The "regional variant" case
The same model has different VDS encodings in different markets. The European version of a US car can carry a US-pattern VIN if it was originally imported, or a Euro-pattern VIN if it was built in Europe. Decoders trained on one market's data sometimes mislabel imports.
4. The "post-build modification" case
The VIN tells you what left the factory. It does not tell you what the car is now. An engine swap, a body conversion, or a re-VIN at customs all leave the VIN unchanged but make the decode subtly wrong relative to the physical car. The chassis says one thing; the engine bay says another.
5. The "transposed character" case
The seller misread the VIN and gave you a 16- or 18-character string, or transposed a 5 and an S (they look alike on weathered plates) or a B and an 8. Most decoders catch this with a length or character-set check. The honest fix is to compare the seller's stated VIN against three places on the car: the windshield plate, the door-jamb sticker, and the registration document. All three should match exactly.
What the VIN tells you reliably
Despite all of the above, the parts a VIN decoder gets right consistently are the parts that matter most for catching scams:
- Country/region of manufacture (position 1, very reliable)
- Manufacturer (positions 2–3, very reliable)
- Model year (position 10, very reliable for cars built in the standard production years; less so for the edges of model years that overlap two calendar years)
- Make (derived from WMI, reliable)
These four are enough to catch most cross-border scams: if the seller says "2020 Audi A4" and the VIN decodes to a 2017 Skoda, the conversation is over before it starts.
The parts that are less reliable across decoders — the specific engine variant, the body style for vehicles that came in multiple body styles on the same VDS, the trim level — are also the parts where you can verify on the car itself by looking at the build plate in the door jamb or under the hood.
How to read a VIN check honestly
When you run a VIN through any decoder, including ours, mentally split the output into three tiers:
Tier 1 — high confidence: WMI, manufacturer, country of manufacture, model year. Believe these.
Tier 2 — medium confidence: model name, body style, engine displacement. Cross-check against the listing; if they match, believe them. If they don't match, the listing might be wrong, the decoder might be wrong, or the car might not be what the seller thinks it is. All three are useful to know before you travel.
Tier 3 — lower confidence: exact trim, exact engine code, transmission variant for cars with multiple transmissions on the same VDS. These are best verified against the build plate in person.
A good decoder report makes the confidence levels visible. Ours flags any field where the underlying source was a fallback rather than a direct match. Others flatten everything into "decoded" or "not decoded", which is less useful but easier to read.
What we'd change if we could
Honestly: we'd ask manufacturers to publish their VDS encodings. They won't — it's competitive data — but in a fair world it would be a public reference like the WMI list. Until then, the decoder ecosystem improves by trading registry samples (or, for some commercial decoders, by licensing them from each other). We work the open-data lane.
If you ever find a VIN our decoder gets wrong, email the team with the VIN and what we got wrong. We re-run it by hand, fix the underlying mapping, and the next person to enter that VIN gets the correct answer. That feedback loop is the only way the decoder gets less wrong over time.
What to do next
Run a VIN. Look at the result. If a field reads "data not available," that's our honest answer — we don't have authoritative coverage of that VDS pattern, and we'd rather tell you that than guess. If the result decodes cleanly, you can use the high-confidence fields (country, manufacturer, model year) to sanity-check the listing before you spend any more time on the car.
Related reading: How to check a VIN before buying a used car in Europe · Understanding VINs: the complete guide · Free VIN check vs paid report
Ready to Check a VIN?
Enter any 17-character VIN to instantly decode vehicle specs, check for safety recalls, and access vehicle history — free.
Check VIN for FreeRelated Articles
How to Check a VIN Number Before Buying a Used Car in Europe
A step-by-step guide to running a VIN check on any European used car. Learn what to look for, what red flags to watch out for, and how to protect yourself from fraud.
Understanding Your Vehicle Identification Number (VIN) -- Complete Guide
Everything you need to know about VIN numbers: what each character means, how to decode a VIN, and why it matters when buying or selling a car.
Buying a Used Car from Germany -- The Complete Checklist
Germany is Europe's biggest used car exporter. Here's everything you need to know about buying a used car from Germany, from finding the right car to completing the import.