VIN & Vehicle Data Quality
freeValidate Vehicle Identification Numbers against NHTSA and ISO 3779 standards — format, check digit, year code, and country of origin.
Checks included (12)
VIN Format Validation(vin)
Validates that values conform to the standard Vehicle Identification Number (VIN) format as defined by NHTSA and ISO 3779. A VIN must be exactly 17 characters composed of digits 0-9 and uppercase letters A-Z, excluding I, O, and Q (which are visually ambiguous with 1, 0, and 9).
VIN Check Digit Validation (Position 9)(vin)
Validates the VIN check digit at position 9 using the NHTSA mod-11 algorithm. Each character is transliterated to a numeric value, multiplied by a positional weight, summed, and divided by 11. The remainder must equal the check digit (0-9 or X for remainder 10). This catches transcription errors and detects counterfeit VINs.
VIN Model Year Code Validation (Position 10)(vin)
Validates that position 10 of the VIN contains a valid model year character. The year code follows a 30-year cycle defined by NHTSA: digits 1-9 and letters A-H, J-N, P, R-T, V-Y (excluding I, O, Q, U, and Z). For example, 'R' = 2024, 'S' = 2025, 'T' = 2026, '1' = 2027 in the current cycle.
VIN Country of Manufacture Code (Position 1)(vin)
Validates that position 1 of the VIN contains a recognized World Manufacturer Identifier (WMI) country code per ISO 3780. Position 1 indicates the country or region of manufacture: 1-5 = North America, 6-7 = Oceania, 8-9 = South America, A-H = Africa, J-R = Asia, S-Z = Europe.
Valid Date String Format(event_date)
Validates that date string values match the expected format. Supports configurable formats including YYYY-MM-DD (ISO 8601), MM/DD/YYYY, DD/MM/YYYY, YYYY/MM/DD, and DD-Mon-YYYY. Validates month (01-12), day (01-31), and reasonable year ranges.
Column Not Null
Asserts that a specified column contains no null values. This is the most fundamental completeness check — every row must have a value present in the target column.
Column Completeness Threshold
Asserts that a column meets a minimum completeness threshold, measured as the percentage of non-null values. Useful when some nulls are acceptable but the overall population rate must stay above a defined level (e.g., 95%).
String Not Empty
Asserts that a string column contains no empty strings. This is distinct from a null check — a value can be non-null but still empty ('') or whitespace-only. Catches cases where upstream systems insert blank strings instead of proper nulls.
Column Unique
Validates that all non-null values in a specified column are unique. Useful for natural keys, email addresses, identifiers, and any column where duplicates indicate a data quality issue.
Duplicate Detection
Detects and counts duplicate rows based on specified columns. Returns the number of duplicates found and identifies the offending rows. Supports threshold-based alerting for acceptable duplicate rates.
Date Not In Future
Validates that a date or timestamp column contains no values in the future. Catches data entry errors, timezone issues, and ETL bugs that produce future-dated records for columns like birth_date, transaction_date, or created_at.
Enum Value Valid
Asserts that all values in a column belong to a predefined set of allowed values. Catches typos, unexpected category values, or upstream system changes that introduce new enum variants without coordination.