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
Exercise notice acceptance cutoff: the time cutoff is applied to the day before expiry · case 01
Early exercise notices filed the evening before expiry are rejected.
Exercise notice acceptance cutoff: the time cutoff is applied to the day before expiry · case 02
Early exercise notices filed the evening before expiry are rejected.
Exercise notice acceptance cutoff: the time cutoff is applied to the day before expiry · case 03
Early exercise notices filed the evening before expiry are rejected.
Exercise notice acceptance cutoff: the time cutoff is applied to the day before expiry · case 04
Early exercise notices filed the evening before expiry are rejected.
Exercise notice acceptance cutoff: the time cutoff is applied to the day before expiry · case 05
Early exercise notices filed the evening before expiry are rejected.
Put-call parity violation detector: the strike is not discounted · case 01
Parity checks flag every fairly priced pair when rates are positive.
Put-call parity violation detector: the strike is not discounted · case 02
Parity checks flag every fairly priced pair when rates are positive.
Put-call parity violation detector: the strike is not discounted · case 03
Parity checks flag every fairly priced pair when rates are positive.
Put-call parity violation detector: the strike is not discounted · case 04
Parity checks flag every fairly priced pair when rates are positive.
Put-call parity violation detector: the strike is not discounted · case 05
Parity checks flag every fairly priced pair when rates are positive.
Put-call parity violation detector: the trade labels are swapped · case 01
Rich calls are reported as a buy-call trade.
Put-call parity violation detector: the trade labels are swapped · case 02
Rich calls are reported as a buy-call trade.
Put-call parity violation detector: the trade labels are swapped · case 03
Rich calls are reported as a buy-call trade.
Put-call parity violation detector: the trade labels are swapped · case 04
Rich calls are reported as a buy-call trade.
Put-call parity violation detector: the trade labels are swapped · case 05
Rich calls are reported as a buy-call trade.
Put-call parity violation detector: the dividend yield is ignored · case 01
Pairs on dividend-paying underlyings are flagged as violations.
Put-call parity violation detector: the dividend yield is ignored · case 02
Pairs on dividend-paying underlyings are flagged as violations.
Put-call parity violation detector: the dividend yield is ignored · case 03
Pairs on dividend-paying underlyings are flagged as violations.
Put-call parity violation detector: the dividend yield is ignored · case 04
Pairs on dividend-paying underlyings are flagged as violations.
Put-call parity violation detector: the dividend yield is ignored · case 05
Pairs on dividend-paying underlyings are flagged as violations.
Option order price tick rounding: the 3.00 threshold is expressed in cents while prices are in mills · case 01
Almost every order is priced on the large tick.
Option order price tick rounding: the 3.00 threshold is expressed in cents while prices are in mills · case 02
Almost every order is priced on the large tick.
Option order price tick rounding: the 3.00 threshold is expressed in cents while prices are in mills · case 03
Almost every order is priced on the large tick.
Option order price tick rounding: the 3.00 threshold is expressed in cents while prices are in mills · case 04
Almost every order is priced on the large tick.
Option order price tick rounding: the 3.00 threshold is expressed in cents while prices are in mills · case 05
Almost every order is priced on the large tick.
Option order price tick rounding: buy orders round up and sell orders round down · case 01
Orders become more aggressive than the trader's limit.
Option order price tick rounding: buy orders round up and sell orders round down · case 02
Orders become more aggressive than the trader's limit.
Option order price tick rounding: buy orders round up and sell orders round down · case 03
Orders become more aggressive than the trader's limit.
Option order price tick rounding: buy orders round up and sell orders round down · case 04
Orders become more aggressive than the trader's limit.
Option order price tick rounding: buy orders round up and sell orders round down · case 05
Orders become more aggressive than the trader's limit.
Option order price tick rounding: penny classes keep a one-cent tick above 3.00 · case 01
Penny-class orders above 3.00 are priced in cents.
Option order price tick rounding: penny classes keep a one-cent tick above 3.00 · case 02
Penny-class orders above 3.00 are priced in cents.
Option order price tick rounding: penny classes keep a one-cent tick above 3.00 · case 03
Penny-class orders above 3.00 are priced in cents.
Option order price tick rounding: penny classes keep a one-cent tick above 3.00 · case 04
Penny-class orders above 3.00 are priced in cents.
Option order price tick rounding: penny classes keep a one-cent tick above 3.00 · case 05
Penny-class orders above 3.00 are priced in cents.
Option order price tick rounding: sell prices already on a tick are bumped up · case 01
Valid sell limits are moved one tick higher.
Option order price tick rounding: sell prices already on a tick are bumped up · case 02
Valid sell limits are moved one tick higher.
Option order price tick rounding: sell prices already on a tick are bumped up · case 03
Valid sell limits are moved one tick higher.
Option order price tick rounding: sell prices already on a tick are bumped up · case 04
Valid sell limits are moved one tick higher.
Option order price tick rounding: sell prices already on a tick are bumped up · case 05
Valid sell limits are moved one tick higher.
Every currency is rounded to a hard-coded cent quantum · case 01
Yen amounts gain two fraction digits and dinar amounts lose their third minor digit.
Every currency is rounded to a hard-coded cent quantum · case 02
Yen amounts gain two fraction digits and dinar amounts lose their third minor digit.
Every currency is rounded to a hard-coded cent quantum · case 03
Yen amounts gain two fraction digits and dinar amounts lose their third minor digit.
Every currency is rounded to a hard-coded cent quantum · case 04
Yen amounts gain two fraction digits and dinar amounts lose their third minor digit.
Every currency is rounded to a hard-coded cent quantum · case 05
Yen amounts gain two fraction digits and dinar amounts lose their third minor digit.
A padded lower-case currency code is treated as unknown · case 01
Valid amounts tagged ' usd' are rejected as unknown currencies.
A padded lower-case currency code is treated as unknown · case 02
Valid amounts tagged ' usd' are rejected as unknown currencies.
A padded lower-case currency code is treated as unknown · case 03
Valid amounts tagged ' usd' are rejected as unknown currencies.
A padded lower-case currency code is treated as unknown · case 04
Valid amounts tagged ' usd' are rejected as unknown currencies.
A padded lower-case currency code is treated as unknown · case 05
Valid amounts tagged ' usd' are rejected as unknown currencies.
A negative amount that rounds to zero prints as minus zero · case 01
A refund of -0.004 USD is rendered as '-0.00'.
A negative amount that rounds to zero prints as minus zero · case 02
A refund of -0.004 USD is rendered as '-0.00'.
A negative amount that rounds to zero prints as minus zero · case 03
A refund of -0.004 USD is rendered as '-0.00'.
A negative amount that rounds to zero prints as minus zero · case 04
A refund of -0.004 USD is rendered as '-0.00'.
A negative amount that rounds to zero prints as minus zero · case 05
A refund of -0.004 USD is rendered as '-0.00'.
An unknown currency silently defaults to two minor digits · case 01
An unsupported code such as 'GBX' is formatted as if it were a cent currency.
An unknown currency silently defaults to two minor digits · case 02
An unsupported code such as 'GBX' is formatted as if it were a cent currency.
An unknown currency silently defaults to two minor digits · case 03
An unsupported code such as 'GBX' is formatted as if it were a cent currency.
An unknown currency silently defaults to two minor digits · case 04
An unsupported code such as 'GBX' is formatted as if it were a cent currency.
An unknown currency silently defaults to two minor digits · case 05
An unsupported code such as 'GBX' is formatted as if it were a cent currency.
The amount passes through binary floating point before minor-unit rounding · case 01
'2.675' USD rounds to 2.67 because the binary value is slightly below the tie.
The amount passes through binary floating point before minor-unit rounding · case 02
'2.675' USD rounds to 2.67 because the binary value is slightly below the tie.
The amount passes through binary floating point before minor-unit rounding · case 03
'2.675' USD rounds to 2.67 because the binary value is slightly below the tie.
The amount passes through binary floating point before minor-unit rounding · case 04
'2.675' USD rounds to 2.67 because the binary value is slightly below the tie.
The amount passes through binary floating point before minor-unit rounding · case 05
'2.675' USD rounds to 2.67 because the binary value is slightly below the tie.
The source leg multiplies by the per-USD rate instead of dividing · case 01
Converting euros to yen overstates the result by the square of the euro rate relationship.
The source leg multiplies by the per-USD rate instead of dividing · case 02
Converting euros to yen overstates the result by the square of the euro rate relationship.
The source leg multiplies by the per-USD rate instead of dividing · case 03
Converting euros to yen overstates the result by the square of the euro rate relationship.
The source leg multiplies by the per-USD rate instead of dividing · case 04
Converting euros to yen overstates the result by the square of the euro rate relationship.
The source leg multiplies by the per-USD rate instead of dividing · case 05
Converting euros to yen overstates the result by the square of the euro rate relationship.
The USD pivot amount is rounded to cents before the second leg · case 01
Won or yen targets drift by one unit because an intermediate cent rounding is scaled by a large rate.
The USD pivot amount is rounded to cents before the second leg · case 02
Won or yen targets drift by one unit because an intermediate cent rounding is scaled by a large rate.
The USD pivot amount is rounded to cents before the second leg · case 03
Won or yen targets drift by one unit because an intermediate cent rounding is scaled by a large rate.
The USD pivot amount is rounded to cents before the second leg · case 04
Won or yen targets drift by one unit because an intermediate cent rounding is scaled by a large rate.
The USD pivot amount is rounded to cents before the second leg · case 05
Won or yen targets drift by one unit because an intermediate cent rounding is scaled by a large rate.
The converted amount is rounded with the source currency exponent · case 01
Euro converted to yen is printed with two decimals, and yen converted to dinar loses decimals.
The converted amount is rounded with the source currency exponent · case 02
Euro converted to yen is printed with two decimals, and yen converted to dinar loses decimals.
The converted amount is rounded with the source currency exponent · case 03
Euro converted to yen is printed with two decimals, and yen converted to dinar loses decimals.
The converted amount is rounded with the source currency exponent · case 04
Euro converted to yen is printed with two decimals, and yen converted to dinar loses decimals.
The converted amount is rounded with the source currency exponent · case 05
Euro converted to yen is printed with two decimals, and yen converted to dinar loses decimals.
A missing cross rate is silently treated as parity · case 01
Converting into a currency with no published rate returns the USD amount relabelled.
A missing cross rate is silently treated as parity · case 02
Converting into a currency with no published rate returns the USD amount relabelled.
A missing cross rate is silently treated as parity · case 03
Converting into a currency with no published rate returns the USD amount relabelled.
A missing cross rate is silently treated as parity · case 04
Converting into a currency with no published rate returns the USD amount relabelled.
A missing cross rate is silently treated as parity · case 05
Converting into a currency with no published rate returns the USD amount relabelled.
Conversions involving USD require an explicit USD table entry · case 01
USD to EUR fails with ERR:no-rate:USD even though USD is the pivot currency.
Conversions involving USD require an explicit USD table entry · case 02
USD to EUR fails with ERR:no-rate:USD even though USD is the pivot currency.
Conversions involving USD require an explicit USD table entry · case 03
USD to EUR fails with ERR:no-rate:USD even though USD is the pivot currency.
Conversions involving USD require an explicit USD table entry · case 04
USD to EUR fails with ERR:no-rate:USD even though USD is the pivot currency.
Conversions involving USD require an explicit USD table entry · case 05
USD to EUR fails with ERR:no-rate:USD even though USD is the pivot currency.
A zero target rate yields a zero conversion instead of a bad-rate error · case 01
A corrupt zero rate for the target silently produces 0.00.
A zero target rate yields a zero conversion instead of a bad-rate error · case 02
A corrupt zero rate for the target silently produces 0.00.
A zero target rate yields a zero conversion instead of a bad-rate error · case 03
A corrupt zero rate for the target silently produces 0.00.
A zero target rate yields a zero conversion instead of a bad-rate error · case 04
A corrupt zero rate for the target silently produces 0.00.
A zero target rate yields a zero conversion instead of a bad-rate error · case 05
A corrupt zero rate for the target silently produces 0.00.
A customer purchase is priced at the dealer's bid · case 01
Customers buying euros are charged the lower bid rate, giving away the spread.
A customer purchase is priced at the dealer's bid · case 02
Customers buying euros are charged the lower bid rate, giving away the spread.
A customer purchase is priced at the dealer's bid · case 03
Customers buying euros are charged the lower bid rate, giving away the spread.
A customer purchase is priced at the dealer's bid · case 04
Customers buying euros are charged the lower bid rate, giving away the spread.
A customer purchase is priced at the dealer's bid · case 05
Customers buying euros are charged the lower bid rate, giving away the spread.
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 ↗