Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
VIN transliterates S as 1 · case 01
VINs containing S get the wrong check digit.
VIN transliterates S as 1 · case 02
VINs containing S get the wrong check digit.
VIN transliterates S as 1 · case 03
VINs containing S get the wrong check digit.
VIN transliterates S as 1 · case 04
VINs containing S get the wrong check digit.
VIN transliterates S as 1 · case 05
VINs containing S get the wrong check digit.
VIN weights drop the zero weight at the check position · case 01
Almost every VIN gets a wrong check digit.
VIN weights drop the zero weight at the check position · case 02
Almost every VIN gets a wrong check digit.
VIN weights drop the zero weight at the check position · case 03
Almost every VIN gets a wrong check digit.
VIN weights drop the zero weight at the check position · case 04
Almost every VIN gets a wrong check digit.
VIN weights drop the zero weight at the check position · case 05
Almost every VIN gets a wrong check digit.
VIN writes remainder ten as the digit 0 · case 01
VINs whose check character is X are rejected.
VIN writes remainder ten as the digit 0 · case 02
VINs whose check character is X are rejected.
VIN writes remainder ten as the digit 0 · case 03
VINs whose check character is X are rejected.
VIN writes remainder ten as the digit 0 · case 04
VINs whose check character is X are rejected.
VIN writes remainder ten as the digit 0 · case 05
VINs whose check character is X are rejected.
VIN compares the model-year character · case 01
Correct VINs are rejected unless positions 9 and 10 happen to match.
VIN compares the model-year character · case 02
Correct VINs are rejected unless positions 9 and 10 happen to match.
VIN compares the model-year character · case 03
Correct VINs are rejected unless positions 9 and 10 happen to match.
VIN compares the model-year character · case 04
Correct VINs are rejected unless positions 9 and 10 happen to match.
VIN compares the model-year character · case 05
Correct VINs are rejected unless positions 9 and 10 happen to match.
ABA weights cycle as 7,3,1 · case 01
Legitimate routing numbers are rejected.
ABA weights cycle as 7,3,1 · case 02
Legitimate routing numbers are rejected.
ABA weights cycle as 7,3,1 · case 03
Legitimate routing numbers are rejected.
ABA weights cycle as 7,3,1 · case 04
Legitimate routing numbers are rejected.
ABA weights cycle as 7,3,1 · case 05
Legitimate routing numbers are rejected.
ABA prefix range stops before 12 · case 01
Routing numbers with prefix 12 are reported malformed.
ABA prefix range stops before 12 · case 02
Routing numbers with prefix 12 are reported malformed.
ABA prefix range stops before 12 · case 03
Routing numbers with prefix 12 are reported malformed.
ABA prefix range stops before 12 · case 04
Routing numbers with prefix 12 are reported malformed.
ABA prefix range stops before 12 · case 05
Routing numbers with prefix 12 are reported malformed.
ABA rejects the electronic prefix 80 · case 01
Traveler-check routing numbers beginning 80 are reported malformed.
ABA rejects the electronic prefix 80 · case 02
Traveler-check routing numbers beginning 80 are reported malformed.
ABA rejects the electronic prefix 80 · case 03
Traveler-check routing numbers beginning 80 are reported malformed.
ABA rejects the electronic prefix 80 · case 04
Traveler-check routing numbers beginning 80 are reported malformed.
ABA rejects the electronic prefix 80 · case 05
Traveler-check routing numbers beginning 80 are reported malformed.
CUSIP folds doubled values by subtracting nine · case 01
CUSIPs with letters in doubled positions get wrong check digits.
CUSIP folds doubled values by subtracting nine · case 02
CUSIPs with letters in doubled positions get wrong check digits.
CUSIP folds doubled values by subtracting nine · case 03
CUSIPs with letters in doubled positions get wrong check digits.
CUSIP folds doubled values by subtracting nine · case 04
CUSIPs with letters in doubled positions get wrong check digits.
CUSIP folds doubled values by subtracting nine · case 05
CUSIPs with letters in doubled positions get wrong check digits.
CUSIP doubles the first character of each pair · case 01
Most CUSIPs are rejected.
CUSIP doubles the first character of each pair · case 02
Most CUSIPs are rejected.
CUSIP doubles the first character of each pair · case 03
Most CUSIPs are rejected.
CUSIP doubles the first character of each pair · case 04
Most CUSIPs are rejected.
CUSIP doubles the first character of each pair · case 05
Most CUSIPs are rejected.
CUSIP rejects private-placement symbols · case 01
Private-placement numbers containing *, @ or # are reported malformed.
CUSIP rejects private-placement symbols · case 02
Private-placement numbers containing *, @ or # are reported malformed.
CUSIP rejects private-placement symbols · case 03
Private-placement numbers containing *, @ or # are reported malformed.
CUSIP rejects private-placement symbols · case 04
Private-placement numbers containing *, @ or # are reported malformed.
CUSIP rejects private-placement symbols · case 05
Private-placement numbers containing *, @ or # are reported malformed.
ORCID fold adds the digit after doubling · case 01
Almost every ORCID iD is rejected.
ORCID fold adds the digit after doubling · case 02
Almost every ORCID iD is rejected.
ORCID fold adds the digit after doubling · case 03
Almost every ORCID iD is rejected.
ORCID fold adds the digit after doubling · case 04
Almost every ORCID iD is rejected.
ORCID fold adds the digit after doubling · case 05
Almost every ORCID iD is rejected.
ORCID complements the remainder against eleven · case 01
Every generated check character is off by one.
ORCID complements the remainder against eleven · case 02
Every generated check character is off by one.
ORCID complements the remainder against eleven · case 03
Every generated check character is off by one.
ORCID complements the remainder against eleven · case 04
Every generated check character is off by one.
ORCID complements the remainder against eleven · case 05
Every generated check character is off by one.
ORCID accepts misplaced hyphens · case 01
Identifiers with shifted or missing group separators are accepted.
ORCID accepts misplaced hyphens · case 02
Identifiers with shifted or missing group separators are accepted.
ORCID accepts misplaced hyphens · case 03
Identifiers with shifted or missing group separators are accepted.
ORCID accepts misplaced hyphens · case 04
Identifiers with shifted or missing group separators are accepted.
ORCID accepts misplaced hyphens · case 05
Identifiers with shifted or missing group separators are accepted.
MOD 11,10 keeps a zero intermediate sum · case 01
Payloads whose running sum hits a multiple of ten get the wrong check digit.
MOD 11,10 keeps a zero intermediate sum · case 02
Payloads whose running sum hits a multiple of ten get the wrong check digit.
MOD 11,10 keeps a zero intermediate sum · case 03
Payloads whose running sum hits a multiple of ten get the wrong check digit.
MOD 11,10 keeps a zero intermediate sum · case 04
Payloads whose running sum hits a multiple of ten get the wrong check digit.
MOD 11,10 keeps a zero intermediate sum · case 05
Payloads whose running sum hits a multiple of ten get the wrong check digit.
MOD 11,10 starts the fold at one · case 01
Check digits disagree with the hybrid system for most payloads.
MOD 11,10 starts the fold at one · case 02
Check digits disagree with the hybrid system for most payloads.
MOD 11,10 starts the fold at one · case 03
Check digits disagree with the hybrid system for most payloads.
MOD 11,10 starts the fold at one · case 04
Check digits disagree with the hybrid system for most payloads.
MOD 11,10 starts the fold at one · case 05
Check digits disagree with the hybrid system for most payloads.
MOD 11,10 emits ten as a check digit · case 01
Some payloads receive a two-digit check value.
MOD 11,10 emits ten as a check digit · case 02
Some payloads receive a two-digit check value.
MOD 11,10 emits ten as a check digit · case 03
Some payloads receive a two-digit check value.
MOD 11,10 emits ten as a check digit · case 04
Some payloads receive a two-digit check value.
MOD 11,10 emits ten as a check digit · case 05
Some payloads receive a two-digit check value.
Resident ID weights use one power of two too few · case 01
Nearly every identity number is rejected.
Resident ID weights use one power of two too few · case 02
Nearly every identity number is rejected.
Resident ID weights use one power of two too few · case 03
Nearly every identity number is rejected.
Resident ID weights use one power of two too few · case 04
Nearly every identity number is rejected.
Resident ID weights use one power of two too few · case 05
Nearly every identity number is rejected.
Resident ID maps the remainder straight to a digit · case 01
Check characters are wrong for all remainders except 10-to-X style coincidences.
Resident ID maps the remainder straight to a digit · case 02
Check characters are wrong for all remainders except 10-to-X style coincidences.
Resident ID maps the remainder straight to a digit · case 03
Check characters are wrong for all remainders except 10-to-X style coincidences.
Resident ID maps the remainder straight to a digit · case 04
Check characters are wrong for all remainders except 10-to-X style coincidences.
Resident ID maps the remainder straight to a digit · case 05
Check characters are wrong for all remainders except 10-to-X style coincidences.
Resident ID rejects a lowercase x check character · case 01
Identity numbers typed with a lowercase x are rejected.
Resident ID rejects a lowercase x check character · case 02
Identity numbers typed with a lowercase x are rejected.
Resident ID rejects a lowercase x check character · case 03
Identity numbers typed with a lowercase x are rejected.
Resident ID rejects a lowercase x check character · case 04
Identity numbers typed with a lowercase x are rejected.
Resident ID rejects a lowercase x check character · case 05
Identity numbers typed with a lowercase x are rejected.
Second control digit uses the supplied first control digit · case 01
When the first control digit is mistyped, the reported expected second control digit is also wrong.
Second control digit uses the supplied first control digit · case 02
When the first control digit is mistyped, the reported expected second control digit is also wrong.
Second control digit uses the supplied first control digit · case 03
When the first control digit is mistyped, the reported expected second control digit is also wrong.
Second control digit uses the supplied first control digit · case 04
When the first control digit is mistyped, the reported expected second control digit is also wrong.
Second control digit uses the supplied first control digit · case 05
When the first control digit is mistyped, the reported expected second control digit is also wrong.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗