FAILURE MAP

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 ↗
100840Executable case variants
20168Distinct failure mechanisms
302520Executed implementations
20168Open-access cases

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

Python · Standard library
REFERENCEFAILURE MECHANISMDOMAINACCESS
FA-72501

VIN transliterates S as 1 · case 01

VINs containing S get the wrong check digit.

Check-digit algorithms● Open access↗
FA-72502

VIN transliterates S as 1 · case 02

VINs containing S get the wrong check digit.

Check-digit algorithms◈ Members↗
FA-72503

VIN transliterates S as 1 · case 03

VINs containing S get the wrong check digit.

Check-digit algorithms◈ Members↗
FA-72504

VIN transliterates S as 1 · case 04

VINs containing S get the wrong check digit.

Check-digit algorithms◈ Members↗
FA-72505

VIN transliterates S as 1 · case 05

VINs containing S get the wrong check digit.

Check-digit algorithms◈ Members↗
FA-72506

VIN weights drop the zero weight at the check position · case 01

Almost every VIN gets a wrong check digit.

Check-digit algorithms● Open access↗
FA-72507

VIN weights drop the zero weight at the check position · case 02

Almost every VIN gets a wrong check digit.

Check-digit algorithms◈ Members↗
FA-72508

VIN weights drop the zero weight at the check position · case 03

Almost every VIN gets a wrong check digit.

Check-digit algorithms◈ Members↗
FA-72509

VIN weights drop the zero weight at the check position · case 04

Almost every VIN gets a wrong check digit.

Check-digit algorithms◈ Members↗
FA-72510

VIN weights drop the zero weight at the check position · case 05

Almost every VIN gets a wrong check digit.

Check-digit algorithms◈ Members↗
FA-72511

VIN writes remainder ten as the digit 0 · case 01

VINs whose check character is X are rejected.

Check-digit algorithms● Open access↗
FA-72512

VIN writes remainder ten as the digit 0 · case 02

VINs whose check character is X are rejected.

Check-digit algorithms◈ Members↗
FA-72513

VIN writes remainder ten as the digit 0 · case 03

VINs whose check character is X are rejected.

Check-digit algorithms◈ Members↗
FA-72514

VIN writes remainder ten as the digit 0 · case 04

VINs whose check character is X are rejected.

Check-digit algorithms◈ Members↗
FA-72515

VIN writes remainder ten as the digit 0 · case 05

VINs whose check character is X are rejected.

Check-digit algorithms◈ Members↗
FA-72516

VIN compares the model-year character · case 01

Correct VINs are rejected unless positions 9 and 10 happen to match.

Check-digit algorithms● Open access↗
FA-72517

VIN compares the model-year character · case 02

Correct VINs are rejected unless positions 9 and 10 happen to match.

Check-digit algorithms◈ Members↗
FA-72518

VIN compares the model-year character · case 03

Correct VINs are rejected unless positions 9 and 10 happen to match.

Check-digit algorithms◈ Members↗
FA-72519

VIN compares the model-year character · case 04

Correct VINs are rejected unless positions 9 and 10 happen to match.

Check-digit algorithms◈ Members↗
FA-72520

VIN compares the model-year character · case 05

Correct VINs are rejected unless positions 9 and 10 happen to match.

Check-digit algorithms◈ Members↗
FA-72521

ABA weights cycle as 7,3,1 · case 01

Legitimate routing numbers are rejected.

Check-digit algorithms● Open access↗
FA-72522

ABA weights cycle as 7,3,1 · case 02

Legitimate routing numbers are rejected.

Check-digit algorithms◈ Members↗
FA-72523

ABA weights cycle as 7,3,1 · case 03

Legitimate routing numbers are rejected.

Check-digit algorithms◈ Members↗
FA-72524

ABA weights cycle as 7,3,1 · case 04

Legitimate routing numbers are rejected.

Check-digit algorithms◈ Members↗
FA-72525

ABA weights cycle as 7,3,1 · case 05

Legitimate routing numbers are rejected.

Check-digit algorithms◈ Members↗
FA-72526

ABA prefix range stops before 12 · case 01

Routing numbers with prefix 12 are reported malformed.

Check-digit algorithms● Open access↗
FA-72527

ABA prefix range stops before 12 · case 02

Routing numbers with prefix 12 are reported malformed.

Check-digit algorithms◈ Members↗
FA-72528

ABA prefix range stops before 12 · case 03

Routing numbers with prefix 12 are reported malformed.

Check-digit algorithms◈ Members↗
FA-72529

ABA prefix range stops before 12 · case 04

Routing numbers with prefix 12 are reported malformed.

Check-digit algorithms◈ Members↗
FA-72530

ABA prefix range stops before 12 · case 05

Routing numbers with prefix 12 are reported malformed.

Check-digit algorithms◈ Members↗
FA-72531

ABA rejects the electronic prefix 80 · case 01

Traveler-check routing numbers beginning 80 are reported malformed.

Check-digit algorithms● Open access↗
FA-72532

ABA rejects the electronic prefix 80 · case 02

Traveler-check routing numbers beginning 80 are reported malformed.

Check-digit algorithms◈ Members↗
FA-72533

ABA rejects the electronic prefix 80 · case 03

Traveler-check routing numbers beginning 80 are reported malformed.

Check-digit algorithms◈ Members↗
FA-72534

ABA rejects the electronic prefix 80 · case 04

Traveler-check routing numbers beginning 80 are reported malformed.

Check-digit algorithms◈ Members↗
FA-72535

ABA rejects the electronic prefix 80 · case 05

Traveler-check routing numbers beginning 80 are reported malformed.

Check-digit algorithms◈ Members↗
FA-72536

CUSIP folds doubled values by subtracting nine · case 01

CUSIPs with letters in doubled positions get wrong check digits.

Check-digit algorithms● Open access↗
FA-72537

CUSIP folds doubled values by subtracting nine · case 02

CUSIPs with letters in doubled positions get wrong check digits.

Check-digit algorithms◈ Members↗
FA-72538

CUSIP folds doubled values by subtracting nine · case 03

CUSIPs with letters in doubled positions get wrong check digits.

Check-digit algorithms◈ Members↗
FA-72539

CUSIP folds doubled values by subtracting nine · case 04

CUSIPs with letters in doubled positions get wrong check digits.

Check-digit algorithms◈ Members↗
FA-72540

CUSIP folds doubled values by subtracting nine · case 05

CUSIPs with letters in doubled positions get wrong check digits.

Check-digit algorithms◈ Members↗
FA-72541

CUSIP doubles the first character of each pair · case 01

Most CUSIPs are rejected.

Check-digit algorithms● Open access↗
FA-72542

CUSIP doubles the first character of each pair · case 02

Most CUSIPs are rejected.

Check-digit algorithms◈ Members↗
FA-72543

CUSIP doubles the first character of each pair · case 03

Most CUSIPs are rejected.

Check-digit algorithms◈ Members↗
FA-72544

CUSIP doubles the first character of each pair · case 04

Most CUSIPs are rejected.

Check-digit algorithms◈ Members↗
FA-72545

CUSIP doubles the first character of each pair · case 05

Most CUSIPs are rejected.

Check-digit algorithms◈ Members↗
FA-72546

CUSIP rejects private-placement symbols · case 01

Private-placement numbers containing *, @ or # are reported malformed.

Check-digit algorithms● Open access↗
FA-72547

CUSIP rejects private-placement symbols · case 02

Private-placement numbers containing *, @ or # are reported malformed.

Check-digit algorithms◈ Members↗
FA-72548

CUSIP rejects private-placement symbols · case 03

Private-placement numbers containing *, @ or # are reported malformed.

Check-digit algorithms◈ Members↗
FA-72549

CUSIP rejects private-placement symbols · case 04

Private-placement numbers containing *, @ or # are reported malformed.

Check-digit algorithms◈ Members↗
FA-72550

CUSIP rejects private-placement symbols · case 05

Private-placement numbers containing *, @ or # are reported malformed.

Check-digit algorithms◈ Members↗
FA-72551

ORCID fold adds the digit after doubling · case 01

Almost every ORCID iD is rejected.

Check-digit algorithms● Open access↗
FA-72552

ORCID fold adds the digit after doubling · case 02

Almost every ORCID iD is rejected.

Check-digit algorithms◈ Members↗
FA-72553

ORCID fold adds the digit after doubling · case 03

Almost every ORCID iD is rejected.

Check-digit algorithms◈ Members↗
FA-72554

ORCID fold adds the digit after doubling · case 04

Almost every ORCID iD is rejected.

Check-digit algorithms◈ Members↗
FA-72555

ORCID fold adds the digit after doubling · case 05

Almost every ORCID iD is rejected.

Check-digit algorithms◈ Members↗
FA-72556

ORCID complements the remainder against eleven · case 01

Every generated check character is off by one.

Check-digit algorithms● Open access↗
FA-72557

ORCID complements the remainder against eleven · case 02

Every generated check character is off by one.

Check-digit algorithms◈ Members↗
FA-72558

ORCID complements the remainder against eleven · case 03

Every generated check character is off by one.

Check-digit algorithms◈ Members↗
FA-72559

ORCID complements the remainder against eleven · case 04

Every generated check character is off by one.

Check-digit algorithms◈ Members↗
FA-72560

ORCID complements the remainder against eleven · case 05

Every generated check character is off by one.

Check-digit algorithms◈ Members↗
FA-72561

ORCID accepts misplaced hyphens · case 01

Identifiers with shifted or missing group separators are accepted.

Check-digit algorithms● Open access↗
FA-72562

ORCID accepts misplaced hyphens · case 02

Identifiers with shifted or missing group separators are accepted.

Check-digit algorithms◈ Members↗
FA-72563

ORCID accepts misplaced hyphens · case 03

Identifiers with shifted or missing group separators are accepted.

Check-digit algorithms◈ Members↗
FA-72564

ORCID accepts misplaced hyphens · case 04

Identifiers with shifted or missing group separators are accepted.

Check-digit algorithms◈ Members↗
FA-72565

ORCID accepts misplaced hyphens · case 05

Identifiers with shifted or missing group separators are accepted.

Check-digit algorithms◈ Members↗
FA-72566

MOD 11,10 keeps a zero intermediate sum · case 01

Payloads whose running sum hits a multiple of ten get the wrong check digit.

Check-digit algorithms● Open access↗
FA-72567

MOD 11,10 keeps a zero intermediate sum · case 02

Payloads whose running sum hits a multiple of ten get the wrong check digit.

Check-digit algorithms◈ Members↗
FA-72568

MOD 11,10 keeps a zero intermediate sum · case 03

Payloads whose running sum hits a multiple of ten get the wrong check digit.

Check-digit algorithms◈ Members↗
FA-72569

MOD 11,10 keeps a zero intermediate sum · case 04

Payloads whose running sum hits a multiple of ten get the wrong check digit.

Check-digit algorithms◈ Members↗
FA-72570

MOD 11,10 keeps a zero intermediate sum · case 05

Payloads whose running sum hits a multiple of ten get the wrong check digit.

Check-digit algorithms◈ Members↗
FA-72571

MOD 11,10 starts the fold at one · case 01

Check digits disagree with the hybrid system for most payloads.

Check-digit algorithms● Open access↗
FA-72572

MOD 11,10 starts the fold at one · case 02

Check digits disagree with the hybrid system for most payloads.

Check-digit algorithms◈ Members↗
FA-72573

MOD 11,10 starts the fold at one · case 03

Check digits disagree with the hybrid system for most payloads.

Check-digit algorithms◈ Members↗
FA-72574

MOD 11,10 starts the fold at one · case 04

Check digits disagree with the hybrid system for most payloads.

Check-digit algorithms◈ Members↗
FA-72575

MOD 11,10 starts the fold at one · case 05

Check digits disagree with the hybrid system for most payloads.

Check-digit algorithms◈ Members↗
FA-72576

MOD 11,10 emits ten as a check digit · case 01

Some payloads receive a two-digit check value.

Check-digit algorithms● Open access↗
FA-72577

MOD 11,10 emits ten as a check digit · case 02

Some payloads receive a two-digit check value.

Check-digit algorithms◈ Members↗
FA-72578

MOD 11,10 emits ten as a check digit · case 03

Some payloads receive a two-digit check value.

Check-digit algorithms◈ Members↗
FA-72579

MOD 11,10 emits ten as a check digit · case 04

Some payloads receive a two-digit check value.

Check-digit algorithms◈ Members↗
FA-72580

MOD 11,10 emits ten as a check digit · case 05

Some payloads receive a two-digit check value.

Check-digit algorithms◈ Members↗
FA-72581

Resident ID weights use one power of two too few · case 01

Nearly every identity number is rejected.

Check-digit algorithms● Open access↗
FA-72582

Resident ID weights use one power of two too few · case 02

Nearly every identity number is rejected.

Check-digit algorithms◈ Members↗
FA-72583

Resident ID weights use one power of two too few · case 03

Nearly every identity number is rejected.

Check-digit algorithms◈ Members↗
FA-72584

Resident ID weights use one power of two too few · case 04

Nearly every identity number is rejected.

Check-digit algorithms◈ Members↗
FA-72585

Resident ID weights use one power of two too few · case 05

Nearly every identity number is rejected.

Check-digit algorithms◈ Members↗
FA-72586

Resident ID maps the remainder straight to a digit · case 01

Check characters are wrong for all remainders except 10-to-X style coincidences.

Check-digit algorithms● Open access↗
FA-72587

Resident ID maps the remainder straight to a digit · case 02

Check characters are wrong for all remainders except 10-to-X style coincidences.

Check-digit algorithms◈ Members↗
FA-72588

Resident ID maps the remainder straight to a digit · case 03

Check characters are wrong for all remainders except 10-to-X style coincidences.

Check-digit algorithms◈ Members↗
FA-72589

Resident ID maps the remainder straight to a digit · case 04

Check characters are wrong for all remainders except 10-to-X style coincidences.

Check-digit algorithms◈ Members↗
FA-72590

Resident ID maps the remainder straight to a digit · case 05

Check characters are wrong for all remainders except 10-to-X style coincidences.

Check-digit algorithms◈ Members↗
FA-72591

Resident ID rejects a lowercase x check character · case 01

Identity numbers typed with a lowercase x are rejected.

Check-digit algorithms● Open access↗
FA-72592

Resident ID rejects a lowercase x check character · case 02

Identity numbers typed with a lowercase x are rejected.

Check-digit algorithms◈ Members↗
FA-72593

Resident ID rejects a lowercase x check character · case 03

Identity numbers typed with a lowercase x are rejected.

Check-digit algorithms◈ Members↗
FA-72594

Resident ID rejects a lowercase x check character · case 04

Identity numbers typed with a lowercase x are rejected.

Check-digit algorithms◈ Members↗
FA-72595

Resident ID rejects a lowercase x check character · case 05

Identity numbers typed with a lowercase x are rejected.

Check-digit algorithms◈ Members↗
FA-72596

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.

Check-digit algorithms● Open access↗
FA-72597

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.

Check-digit algorithms◈ Members↗
FA-72598

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.

Check-digit algorithms◈ Members↗
FA-72599

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.

Check-digit algorithms◈ Members↗
FA-72600

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.

Check-digit algorithms◈ Members↗

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 ↗