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
Three-to-four band uses the wrong increment · case 01
Prices between 3.00 and 4.00 snap to 0.02 increments.
Three-to-four band uses the wrong increment · case 02
Prices between 3.00 and 4.00 snap to 0.02 increments.
Three-to-four band uses the wrong increment · case 03
Prices between 3.00 and 4.00 snap to 0.02 increments.
Three-to-four band uses the wrong increment · case 04
Prices between 3.00 and 4.00 snap to 0.02 increments.
Three-to-four band uses the wrong increment · case 05
Prices between 3.00 and 4.00 snap to 0.02 increments.
Prices below the ladder minimum not rejected · case 01
A 1.00 request crashes the snapping loop or the 1.01 minimum is rejected.
Prices below the ladder minimum not rejected · case 02
A 1.00 request crashes the snapping loop or the 1.01 minimum is rejected.
Prices below the ladder minimum not rejected · case 03
A 1.00 request crashes the snapping loop or the 1.01 minimum is rejected.
Prices below the ladder minimum not rejected · case 04
A 1.00 request crashes the snapping loop or the 1.01 minimum is rejected.
Prices below the ladder minimum not rejected · case 05
A 1.00 request crashes the snapping loop or the 1.01 minimum is rejected.
Band boundary tick counted twice or dropped · case 01
Tick distances crossing a band boundary are off by one per boundary crossed.
Band boundary tick counted twice or dropped · case 02
Tick distances crossing a band boundary are off by one per boundary crossed.
Band boundary tick counted twice or dropped · case 03
Tick distances crossing a band boundary are off by one per boundary crossed.
Band boundary tick counted twice or dropped · case 04
Tick distances crossing a band boundary are off by one per boundary crossed.
Band boundary tick counted twice or dropped · case 05
Tick distances crossing a band boundary are off by one per boundary crossed.
Off-ladder prices silently snapped · case 01
A 2.01 request is treated as a valid tick.
Off-ladder prices silently snapped · case 02
A 2.01 request is treated as a valid tick.
Off-ladder prices silently snapped · case 03
A 2.01 request is treated as a valid tick.
Off-ladder prices silently snapped · case 04
A 2.01 request is treated as a valid tick.
Off-ladder prices silently snapped · case 05
A 2.01 request is treated as a valid tick.
Tick distance has the wrong sign · case 01
Moving from 3.10 down to 2.90 reports +7 ticks.
Tick distance has the wrong sign · case 02
Moving from 3.10 down to 2.90 reports +7 ticks.
Tick distance has the wrong sign · case 03
Moving from 3.10 down to 2.90 reports +7 ticks.
Tick distance has the wrong sign · case 04
Moving from 3.10 down to 2.90 reports +7 ticks.
Tick distance has the wrong sign · case 05
Moving from 3.10 down to 2.90 reports +7 ticks.
Traditional display picks the next shorter fraction · case 01
A 3.40 price displays as 9/4 instead of 5/2.
Traditional display picks the next shorter fraction · case 02
A 3.40 price displays as 9/4 instead of 5/2.
Traditional display picks the next shorter fraction · case 03
A 3.40 price displays as 9/4 instead of 5/2.
Traditional display picks the next shorter fraction · case 04
A 3.40 price displays as 9/4 instead of 5/2.
Traditional display picks the next shorter fraction · case 05
A 3.40 price displays as 9/4 instead of 5/2.
Decimal price compared with fractions without removing the stake · case 01
A 3.00 price is displayed as 3/1 instead of 2/1.
Decimal price compared with fractions without removing the stake · case 02
A 3.00 price is displayed as 3/1 instead of 2/1.
Decimal price compared with fractions without removing the stake · case 03
A 3.00 price is displayed as 3/1 instead of 2/1.
Decimal price compared with fractions without removing the stake · case 04
A 3.00 price is displayed as 3/1 instead of 2/1.
Decimal price compared with fractions without removing the stake · case 05
A 3.00 price is displayed as 3/1 instead of 2/1.
Midpoint prices resolved to the longer fraction · case 01
A price exactly between 11/4 and 3/1 displays as 3/1.
Midpoint prices resolved to the longer fraction · case 02
A price exactly between 11/4 and 3/1 displays as 3/1.
Midpoint prices resolved to the longer fraction · case 03
A price exactly between 11/4 and 3/1 displays as 3/1.
Midpoint prices resolved to the longer fraction · case 04
A price exactly between 11/4 and 3/1 displays as 3/1.
Midpoint prices resolved to the longer fraction · case 05
A price exactly between 11/4 and 3/1 displays as 3/1.
Yankee expanded with singles or without the fourfold · case 01
A yankee is settled as 15 lines, or as 10 lines without the fourfold.
Yankee expanded with singles or without the fourfold · case 02
A yankee is settled as 15 lines, or as 10 lines without the fourfold.
Yankee expanded with singles or without the fourfold · case 03
A yankee is settled as 15 lines, or as 10 lines without the fourfold.
Yankee expanded with singles or without the fourfold · case 04
A yankee is settled as 15 lines, or as 10 lines without the fourfold.
Yankee expanded with singles or without the fourfold · case 05
A yankee is settled as 15 lines, or as 10 lines without the fourfold.
Void selection kills or wins every line containing it · case 01
Lines containing a non-runner return nothing, or pay the non-runner price.
Void selection kills or wins every line containing it · case 02
Lines containing a non-runner return nothing, or pay the non-runner price.
Void selection kills or wins every line containing it · case 03
Lines containing a non-runner return nothing, or pay the non-runner price.
Void selection kills or wins every line containing it · case 04
Lines containing a non-runner return nothing, or pay the non-runner price.
Void selection kills or wins every line containing it · case 05
Lines containing a non-runner return nothing, or pay the non-runner price.
System total stake computed per selection or per line size · case 01
A yankee is charged 4 units instead of 11.
System total stake computed per selection or per line size · case 02
A yankee is charged 4 units instead of 11.
System total stake computed per selection or per line size · case 03
A yankee is charged 4 units instead of 11.
System total stake computed per selection or per line size · case 04
A yankee is charged 4 units instead of 11.
System total stake computed per selection or per line size · case 05
A yankee is charged 4 units instead of 11.
Withdrawn price on a band limit takes the next band · case 01
A withdrawn 2.50 shot yields a 35p deduction instead of 40p.
Withdrawn price on a band limit takes the next band · case 02
A withdrawn 2.50 shot yields a 35p deduction instead of 40p.
Withdrawn price on a band limit takes the next band · case 03
A withdrawn 2.50 shot yields a 35p deduction instead of 40p.
Withdrawn price on a band limit takes the next band · case 04
A withdrawn 2.50 shot yields a 35p deduction instead of 40p.
Withdrawn price on a band limit takes the next band · case 05
A withdrawn 2.50 shot yields a 35p deduction instead of 40p.
Deduction taken from the stake as well as the winnings · case 01
Winning bets lose part of their stake to the deduction.
Deduction taken from the stake as well as the winnings · case 02
Winning bets lose part of their stake to the deduction.
Deduction taken from the stake as well as the winnings · case 03
Winning bets lose part of their stake to the deduction.
Deduction taken from the stake as well as the winnings · case 04
Winning bets lose part of their stake to the deduction.
Deduction taken from the stake as well as the winnings · case 05
Winning bets lose part of their stake to the deduction.
Combined deductions exceed the cap · case 01
Two short-priced withdrawals remove more than 75p in the pound.
Combined deductions exceed the cap · case 02
Two short-priced withdrawals remove more than 75p in the pound.
Combined deductions exceed the cap · case 03
Two short-priced withdrawals remove more than 75p in the pound.
Combined deductions exceed the cap · case 04
Two short-priced withdrawals remove more than 75p in the pound.
Combined deductions exceed the cap · case 05
Two short-priced withdrawals remove more than 75p in the pound.
Only one of several withdrawals deducted · case 01
Two withdrawals of 4.00 and 6.00 deduct 25p instead of 40p.
Only one of several withdrawals deducted · case 02
Two withdrawals of 4.00 and 6.00 deduct 25p instead of 40p.
Only one of several withdrawals deducted · case 03
Two withdrawals of 4.00 and 6.00 deduct 25p instead of 40p.
Only one of several withdrawals deducted · case 04
Two withdrawals of 4.00 and 6.00 deduct 25p instead of 40p.
Only one of several withdrawals deducted · case 05
Two withdrawals of 4.00 and 6.00 deduct 25p instead of 40p.
Unsigned 100 read as a decimal price · case 01
Typing "100" produces a 100.00 decimal price instead of even money.
Unsigned 100 read as a decimal price · case 02
Typing "100" produces a 100.00 decimal price instead of even money.
Unsigned 100 read as a decimal price · case 03
Typing "100" produces a 100.00 decimal price instead of even money.
Unsigned 100 read as a decimal price · case 04
Typing "100" produces a 100.00 decimal price instead of even money.
Unsigned 100 read as a decimal price · case 05
Typing "100" produces a 100.00 decimal price instead of even money.
Decimal comma rejected or read as a thousands separator · case 01
"2,50" is rejected or becomes a +250 American line.
Decimal comma rejected or read as a thousands separator · case 02
"2,50" is rejected or becomes a +250 American line.
Decimal comma rejected or read as a thousands separator · case 03
"2,50" is rejected or becomes a +250 American line.
Decimal comma rejected or read as a thousands separator · case 04
"2,50" is rejected or becomes a +250 American line.
Decimal comma rejected or read as a thousands separator · case 05
"2,50" is rejected or becomes a +250 American line.
Explicit plus-sign American lines parsed as decimals · case 01
"+150" is read as a 150.00 decimal price, or empty input crashes.
Explicit plus-sign American lines parsed as decimals · case 02
"+150" is read as a 150.00 decimal price, or empty input crashes.
Explicit plus-sign American lines parsed as decimals · case 03
"+150" is read as a 150.00 decimal price, or empty input crashes.
Explicit plus-sign American lines parsed as decimals · case 04
"+150" is read as a 150.00 decimal price, or empty input crashes.
Explicit plus-sign American lines parsed as decimals · case 05
"+150" is read as a 150.00 decimal price, or empty input crashes.
Cash-out value scaled by profit ratios instead of price ratios · case 01
Offers are far too high or low when prices move.
Cash-out value scaled by profit ratios instead of price ratios · case 02
Offers are far too high or low when prices move.
Cash-out value scaled by profit ratios instead of price ratios · case 03
Offers are far too high or low when prices move.
Cash-out value scaled by profit ratios instead of price ratios · case 04
Offers are far too high or low when prices move.
Cash-out value scaled by profit ratios instead of price ratios · case 05
Offers are far too high or low when prices move.
Settled winning leg dropped from the cash-out value · case 01
A multiple with a leg already won is valued as if that leg did not exist.
Settled winning leg dropped from the cash-out value · case 02
A multiple with a leg already won is valued as if that leg did not exist.
Settled winning leg dropped from the cash-out value · case 03
A multiple with a leg already won is valued as if that leg did not exist.
Settled winning leg dropped from the cash-out value · case 04
A multiple with a leg already won is valued as if that leg did not exist.
Settled winning leg dropped from the cash-out value · case 05
A multiple with a leg already won is valued as if that leg did not exist.
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 ↗