Skip to main content
TruckCodex
Hubs

VIN Methodology & Data Dictionary

How the TruckCodex VIN reference is built — sources, coverage, field definitions, refresh cadence, limitations, and a citation guide for academic and journalistic use.

What this section is

The TruckCodex VIN subsystem is a free public reference that decodes every vehicle identification number we encounter, aggregates the results, and cross-pollinates them with FMCSA inspection, crash, and NHTSA recall data. It is not a SaaS product. There are no signup gates or paywalls; the site may show disclosed ads or partner offers elsewhere. The VIN reference itself stays free to browse. The audience is fleet managers, owner-operators, mechanics, researchers, journalists, regulators, and curious members of the public.

The bar for every page in this subsystem is simple: does it give a real human a real answer they can trust and cite? If a page is sparse, we say so plainly rather than pad it with filler.

Data sources

Source Operator What it provides Refresh
NHTSA vPIC API NHTSA Vehicle Product Information Catalog. Primary VIN decoder. Translates 17-character VINs into 140+ structured fields including make, model, year, body class, fuel type, brake system, plant of manufacture, and dozens of safety-equipment flags. Daily-updated reference data. On-demand at first lookup; weekly batch refresh
FMCSA Inspection Unit reports FMCSA Roadside inspection records. Each inspection lists the vehicle's VIN, make, year, plate, carrier (USDOT), inspection date, level, violations cited, and out-of-service status. The discovery feed for VINs we hadn't seen before. Daily, with 24h upstream lag
NHTSA Recalls NHTSA Recall campaigns indexed by make, model, and model year. Used to cross-reference each decoded VIN against active recall campaigns. Daily
FMCSA Crash File FMCSA Reportable crashes involving commercial motor vehicles. Joined to VINs via the vehicle unit table when the crash record carries a VIN. Daily, with 24h upstream lag

How they combine: FMCSA inspections supply the population of VINs (the "discovery" feed). NHTSA vPIC supplies the structured decode for each VIN. Recalls and crashes are joined back via (make, model, year) and the unit table. Every VIN page footer displays two timestamps per source: when TruckCodex captured the data, and when the upstream database was current.

Coverage statistics

Counts are queried live from the database and cached for 1 hour. Last decode batch: Oct 26, 2026 .

6,745,162
Total VINs
6,640,094
Decoded successfully
98.4% of total
815,290
High confidence (100)
12.3% of decoded
52,667
Medium confidence (50)
21,225,878
VIN ↔ recall matches

Decode confidence model

Every decoded VIN carries a decode_confidence score derived from the vPIC response. The score is recorded on the VINRecord row at decode time and never recomputed unless the VIN is re-decoded.

Score Meaning Typical cause
100 vPIC returned ErrorCode "0" — clean decode with no warnings. Standard 17-character VIN, post-1981, valid check digit.
50 vPIC returned warnings (e.g. invalid check digit, unrecognized WMI, suspicious model year) but still produced Make/Model. Typo in roadside-inspection data entry; obscure WMI from re-manufactured or imported vehicles; partial decode.
0 vPIC could not decode the string into any vehicle attributes. Pre-1981 VINs (5-13 chars), data-entry errors, or placeholders like "123456" used by inspectors when no readable VIN was on the vehicle.

Confidence-0 VINs with decoded_at set are sentinelled and never re-queried — they are known-undecodable. All aggregations (field stats, recall matches, peer comparisons) operate only on confidence-50 and confidence-100 records.

Field Catalog

Phase 1 surfaces hub pages for 19 vPIC fields. Each field has a directory of distinct values and per-value detail page with VIN counts, inspection rate, OOS rate, and recall coverage. "Bucketing" indicates that TruckCodex groups raw values into ranges (e.g. continuous horsepower into power-class brackets) for the hub URL.

Field vPIC source Description Bucketed? Distinct values
Brake System
brake_system
BrakeSystemType The braking system installed on the vehicle, as decoded from the VIN. Air brakes are standard on Class 7-8 trucks; hydraulic brakes are common on Class 1-6. NHTSA vPIC field name: BrakeSystemType. no 5
Fuel Type
fuel_type
FuelTypePrimary Primary fuel the vehicle runs on. Diesel dominates Class 7-8 trucking; gasoline is common in Class 1-3. Electric and natural-gas variants are growing share but remain uncommon in commercial trucking. NHTSA vPIC field name: FuelTypePrimary. no 12
Body Class
body_class
BodyClass The NHTSA body classification for the vehicle. Common values for commercial trucks include Truck-Tractor, Cab Chassis, and Truck. NHTSA vPIC field: BodyClass. no 55
Vehicle Type
vehicle_type
VehicleType The general type of vehicle as classified by NHTSA. For trucking, the dominant types are Truck and Trailer. NHTSA vPIC field: VehicleType. no 9
Drive Type
drive_type
DriveType The drivetrain configuration. 6x4 and 4x2 are standard for Class 7-8 on-highway trucks; AWD appears in vocational applications. NHTSA vPIC field: DriveType. no 23
GVWR Class
gvwr
GVWR (bucketed) The gross vehicle weight rating class (1 through 8). Class 7-8 are heavy-duty trucks; Class 3-6 are medium-duty. NHTSA vPIC field: GVWR, bucketed by TruckCodex. yes 8
Engine Displacement
engine_displacement
DisplacementL (bucketed) Engine displacement in liters, bucketed by TruckCodex into 4 ranges. Class 8 long-haul trucks typically run 12L+ engines. NHTSA vPIC field: DisplacementL. yes 4
Engine Cylinders
engine_cylinders
EngineCylinders Number of engine cylinders. Inline-6 (6 cylinders) dominates Class 8 trucking. NHTSA vPIC field: EngineCylinders. no 9
Engine Model
engine_model
EngineModel The specific engine model designation from the manufacturer, e.g. X15, DD15, MX-13. NHTSA vPIC field: EngineModel. no 1,486
Manufacturer
manufacturer_name
Manufacturer The parent company that manufactured the vehicle, which may differ from the retail make. NHTSA vPIC field: Manufacturer. no 3,950
Plant Country
plant_country
PlantCountry The country where the vehicle was manufactured. USA, Canada, and Mexico dominate Class 7-8 production. NHTSA vPIC field: PlantCountry. no 44
Plant State
plant_state
PlantState U.S. state or Canadian province where the vehicle was assembled (NHTSA vPIC PlantState). This is assembly-plant geography, not FMCSA inspection state or carrier domicile — use /inspections/states/ or /usdot/ for those. no 187
Plant City
plant_city
PlantCity City where the vehicle was assembled (NHTSA vPIC PlantCity). Assembly-plant geography only — not where the truck was inspected or where the carrier is domiciled. no 2,154
Trim
trim
Trim The trim level or configuration code. For commercial trucks, trim often encodes cab/sleeper configuration. NHTSA vPIC field: Trim. no 1,289
WMI
wmi
WMI World Manufacturer Identifier — the first 3 characters of the VIN. Useful for tracing manufacturer origin and assembly region. NHTSA vPIC field: WMI. no —
Transmission Style
transmission_style
TransmissionStyle The transmission type (automatic, manual, AMT). Automated manuals (AMT) dominate modern Class 8 trucks for fuel economy. NHTSA vPIC field: TransmissionStyle. no 10
Axle Configuration
axle_configuration
AxleConfiguration The axle layout and steering configuration. Standard heavy-haul setups include 6x4 (3 axles, 2 driven) and 8x4. NHTSA vPIC field: AxleConfiguration. no 4
Cab Type
body_cab_type
BodyCabType Cab style and configuration relative to the engine — conventional (cab behind engine), COE (cab over engine), or sleeper variants. NHTSA vPIC field: BodyCabType. no 11
Engine Horsepower
engine_hp
EngineHP (bucketed) Engine horsepower output, bucketed by TruckCodex into power-class ranges. Heavy-haul Class 8 typically runs 400-600 HP. NHTSA vPIC field: EngineHP. yes 4

Bucketed fields use these ranges: GVWR Class rolls up vPIC sub-classes (1A/1B → class-1) into the eight standard Class 1–8 buckets. Engine Displacement: under-3L, 3–6L, 6–12L, 12L-plus. Engine HP: under-200, 200–400, 400–600, 600-plus.

What vPIC tells you

vPIC translates the 17-character VIN into a structured set of vehicle attributes. Encoding by VIN position:

  • Chars 1–3 (WMI) — manufacturer + region
  • Chars 4–8 (VDS) — model + configuration
  • Char 9 — check digit (validation)
  • Char 10 — model year
  • Char 11 — assembly plant
  • Chars 12–17 (VIS) — sequential serial number

What vPIC doesn't tell you

vPIC describes how a vehicle was built, not what has happened to it since. It does not include:

  • Current odometer reading or mileage history
  • Title, lien, or ownership records
  • Modifications or aftermarket equipment
  • Accident history beyond the FMCSA crash file
  • Service or maintenance records

Recall matching

We match a VIN to a recall campaign when its decoded make, model, and model year all match the campaign's affected range. A match indicates the vehicle may be affected; only the manufacturer can confirm a specific VIN against the campaign's serial-number range. For a VIN-specific recall lookup, consult NHTSA's recall lookup.

Inspection signals

The "OOS rate" displayed on hub pages is computed directly from FMCSA inspection records: the number of inspections that resulted in an out-of-service order, divided by total inspections involving vehicles with the configuration in question. We do not editorialize. We do not compute a "safety score" or "risk rating." Numbers and medians are shown side by side; readers draw their own conclusions.

Update cadence

Job Frequency What it does
FMCSA inspection import Daily (cron) Pulls the previous day's roadside inspections. Newly-seen VINs are upserted into VINRecord and queued for vPIC decoding.
VIN re-decode Weekly (Sun 03:00 UTC) Re-queries vPIC for any VIN with a decode older than 90 days. NHTSA periodically backfills make/model decoding for previously-undecodable VINs, and this catches those.
Aggregation refresh Quarterly Rebuilds field_value_stats, field_pair_stats, vin_recall_match, and model_year_inspection_stats. Hub pages read exclusively from these.
Recall + crash import Daily NHTSA recall campaigns and FMCSA crash records are pulled and joined to existing VINs by (make, model, year).

Limitations & known gaps

We list these openly because trust requires it. None of these affect the published numbers — but researchers framing analyses against this dataset should know what's in scope and what isn't.

  • Pre-1981 VINs are undecodable. Before 1981 the VIN standard was 5–13 characters and varied by manufacturer; vPIC cannot decode them. Our database includes ~216,198 confidence-0 records, most of which are short placeholders (e.g. "123456") entered by inspectors when no readable VIN was on the vehicle. These are excluded from all aggregations.
  • Safety equipment fields (FCW, ABS, ESC, lane-keep) are sparse for older trucks. NHTSA only began requiring these fields in vPIC after the 2018 reporting standard, so model years prior to ~2014 typically show "Not Applicable" or null.
  • Engine HP is populated for roughly 7% of decoded VINs. Manufacturers are not required to encode horsepower in the WMI/VDS positions, and many opt out. Our HP hub pages reflect the populated subset only.
  • Trailers carry minimal engine and active-safety data. This is structurally correct (a trailer has no engine), and detail pages omit these sections rather than show empty fields.
  • WMI mismatches at the VIN-decode boundary. A small fraction of VINs decode to a make-slug that has no corresponding ModelYear aggregate page (e.g. unusual sub-brand slugs). The detail page handles this gracefully by linking only to pages that exist.
  • Recall match is configuration-level, not unit-level. A VIN matches a recall when its (make, model, year) overlaps the campaign — this is necessary because NHTSA recalls publish ranges, not full VIN lists. Per-VIN serial-range confirmation requires the manufacturer's lookup tool.

NHTSA correction policy

When NHTSA corrects a vPIC decode after we have published it, we update the page in place with a footnote noting the prior decode and the correction date. URLs never change. A VIN page published in 2026 will remain at the same URL in 2030, with whatever the current best decoding is at that time.

How to cite TruckCodex

For academic, journalistic, or regulatory use, the following citation block is suitable. Replace YYYY-MM-DD with your access date.

General citation (the VIN subsystem)
TruckCodex VIN Database (truckcodex.com/vin/). Decoded via NHTSA vPIC API; FMCSA inspection records. Accessed YYYY-MM-DD.
An individual VIN page
TruckCodex. (2026). VIN {VIN} decode. Retrieved YYYY-MM-DD from https://truckcodex.com/vin/{VIN}/
An aggregate (spec hub) page
TruckCodex. (2026). {Field label}: {Value}. Retrieved YYYY-MM-DD from https://truckcodex.com/vin/specs/{field}/{value}/

License

Government-source data (FMCSA, NHTSA) is uncopyrightable. TruckCodex's compiled aggregations are released under CC0 (public domain dedication). No restrictions on reuse, modification, or redistribution. Citation is appreciated but not required.

Corrections

For data errors that originate upstream, file a correction with the relevant agency: