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-61901

The payer on a quote-denominated leg is derived from the side alone · case 01

A customer spending a fixed number of dollars on euros has the euros rounded up in their favour.

Currency rounding and FX conversion● Open access↗
FA-61902

The payer on a quote-denominated leg is derived from the side alone · case 02

A customer spending a fixed number of dollars on euros has the euros rounded up in their favour.

Currency rounding and FX conversion◈ Members↗
FA-61903

The payer on a quote-denominated leg is derived from the side alone · case 03

A customer spending a fixed number of dollars on euros has the euros rounded up in their favour.

Currency rounding and FX conversion◈ Members↗
FA-61904

The payer on a quote-denominated leg is derived from the side alone · case 04

A customer spending a fixed number of dollars on euros has the euros rounded up in their favour.

Currency rounding and FX conversion◈ Members↗
FA-61905

The payer on a quote-denominated leg is derived from the side alone · case 05

A customer spending a fixed number of dollars on euros has the euros rounded up in their favour.

Currency rounding and FX conversion◈ Members↗
FA-61906

Customer-facing FX amounts use nearest rounding instead of house-favourable rounding · case 01

Receivable amounts are rounded up to the nearest cent, paying customers fractions the dealer does not hold.

Currency rounding and FX conversion● Open access↗
FA-61907

Customer-facing FX amounts use nearest rounding instead of house-favourable rounding · case 02

Receivable amounts are rounded up to the nearest cent, paying customers fractions the dealer does not hold.

Currency rounding and FX conversion◈ Members↗
FA-61908

Customer-facing FX amounts use nearest rounding instead of house-favourable rounding · case 03

Receivable amounts are rounded up to the nearest cent, paying customers fractions the dealer does not hold.

Currency rounding and FX conversion◈ Members↗
FA-61909

Customer-facing FX amounts use nearest rounding instead of house-favourable rounding · case 04

Receivable amounts are rounded up to the nearest cent, paying customers fractions the dealer does not hold.

Currency rounding and FX conversion◈ Members↗
FA-61910

Customer-facing FX amounts use nearest rounding instead of house-favourable rounding · case 05

Receivable amounts are rounded up to the nearest cent, paying customers fractions the dealer does not hold.

Currency rounding and FX conversion◈ Members↗
FA-61911

A locked quote with equal bid and ask is rejected as crossed · case 01

Legitimate zero-spread promotional quotes fail with ERR:crossed-quote.

Currency rounding and FX conversion● Open access↗
FA-61912

A locked quote with equal bid and ask is rejected as crossed · case 02

Legitimate zero-spread promotional quotes fail with ERR:crossed-quote.

Currency rounding and FX conversion◈ Members↗
FA-61913

A locked quote with equal bid and ask is rejected as crossed · case 03

Legitimate zero-spread promotional quotes fail with ERR:crossed-quote.

Currency rounding and FX conversion◈ Members↗
FA-61914

A locked quote with equal bid and ask is rejected as crossed · case 04

Legitimate zero-spread promotional quotes fail with ERR:crossed-quote.

Currency rounding and FX conversion◈ Members↗
FA-61915

A locked quote with equal bid and ask is rejected as crossed · case 05

Legitimate zero-spread promotional quotes fail with ERR:crossed-quote.

Currency rounding and FX conversion◈ Members↗
FA-61916

The counter amount is rounded with the input currency exponent · case 01

Dollars converted to yen are returned with cents, and yen converted to dollars are whole numbers.

Currency rounding and FX conversion● Open access↗
FA-61917

The counter amount is rounded with the input currency exponent · case 02

Dollars converted to yen are returned with cents, and yen converted to dollars are whole numbers.

Currency rounding and FX conversion◈ Members↗
FA-61918

The counter amount is rounded with the input currency exponent · case 03

Dollars converted to yen are returned with cents, and yen converted to dollars are whole numbers.

Currency rounding and FX conversion◈ Members↗
FA-61919

The counter amount is rounded with the input currency exponent · case 04

Dollars converted to yen are returned with cents, and yen converted to dollars are whole numbers.

Currency rounding and FX conversion◈ Members↗
FA-61920

The counter amount is rounded with the input currency exponent · case 05

Dollars converted to yen are returned with cents, and yen converted to dollars are whole numbers.

Currency rounding and FX conversion◈ Members↗
FA-61921

Triangulation multiplies by a pre-rounded inverse of the legacy rate · case 01

Large lira amounts convert to a EUR intermediate that is off by a few thousandths.

Currency rounding and FX conversion● Open access↗
FA-61922

Triangulation multiplies by a pre-rounded inverse of the legacy rate · case 02

Large lira amounts convert to a EUR intermediate that is off by a few thousandths.

Currency rounding and FX conversion◈ Members↗
FA-61923

Triangulation multiplies by a pre-rounded inverse of the legacy rate · case 03

Large lira amounts convert to a EUR intermediate that is off by a few thousandths.

Currency rounding and FX conversion◈ Members↗
FA-61924

Triangulation multiplies by a pre-rounded inverse of the legacy rate · case 04

Large lira amounts convert to a EUR intermediate that is off by a few thousandths.

Currency rounding and FX conversion◈ Members↗
FA-61925

Triangulation multiplies by a pre-rounded inverse of the legacy rate · case 05

Large lira amounts convert to a EUR intermediate that is off by a few thousandths.

Currency rounding and FX conversion◈ Members↗
FA-61926

The EUR intermediate is rounded to cents instead of three decimals · case 01

Legacy-to-legacy amounts differ from the reference triangulation by a few minor units.

Currency rounding and FX conversion● Open access↗
FA-61927

The EUR intermediate is rounded to cents instead of three decimals · case 02

Legacy-to-legacy amounts differ from the reference triangulation by a few minor units.

Currency rounding and FX conversion◈ Members↗
FA-61928

The EUR intermediate is rounded to cents instead of three decimals · case 03

Legacy-to-legacy amounts differ from the reference triangulation by a few minor units.

Currency rounding and FX conversion◈ Members↗
FA-61929

The EUR intermediate is rounded to cents instead of three decimals · case 04

Legacy-to-legacy amounts differ from the reference triangulation by a few minor units.

Currency rounding and FX conversion◈ Members↗
FA-61930

The EUR intermediate is rounded to cents instead of three decimals · case 05

Legacy-to-legacy amounts differ from the reference triangulation by a few minor units.

Currency rounding and FX conversion◈ Members↗
FA-61931

Legacy pairs use a derived direct cross rate instead of triangulating · case 01

Mark to franc conversions disagree with the triangulated reference amount.

Currency rounding and FX conversion● Open access↗
FA-61932

Legacy pairs use a derived direct cross rate instead of triangulating · case 02

Mark to franc conversions disagree with the triangulated reference amount.

Currency rounding and FX conversion◈ Members↗
FA-61933

Legacy pairs use a derived direct cross rate instead of triangulating · case 03

Mark to franc conversions disagree with the triangulated reference amount.

Currency rounding and FX conversion◈ Members↗
FA-61934

Legacy pairs use a derived direct cross rate instead of triangulating · case 04

Mark to franc conversions disagree with the triangulated reference amount.

Currency rounding and FX conversion◈ Members↗
FA-61935

Legacy pairs use a derived direct cross rate instead of triangulating · case 05

Mark to franc conversions disagree with the triangulated reference amount.

Currency rounding and FX conversion◈ Members↗
FA-61936

A conversion into EUR returns the three-decimal intermediate · case 01

Marks converted to euros are reported with three decimals.

Currency rounding and FX conversion● Open access↗
FA-61937

A conversion into EUR returns the three-decimal intermediate · case 02

Marks converted to euros are reported with three decimals.

Currency rounding and FX conversion◈ Members↗
FA-61938

A conversion into EUR returns the three-decimal intermediate · case 03

Marks converted to euros are reported with three decimals.

Currency rounding and FX conversion◈ Members↗
FA-61939

A conversion into EUR returns the three-decimal intermediate · case 04

Marks converted to euros are reported with three decimals.

Currency rounding and FX conversion◈ Members↗
FA-61940

A conversion into EUR returns the three-decimal intermediate · case 05

Marks converted to euros are reported with three decimals.

Currency rounding and FX conversion◈ Members↗
FA-61941

A same-currency conversion is routed through euro triangulation · case 01

Converting 12345 lira to lira returns 12346 lira.

Currency rounding and FX conversion● Open access↗
FA-61942

A same-currency conversion is routed through euro triangulation · case 02

Converting 12345 lira to lira returns 12346 lira.

Currency rounding and FX conversion◈ Members↗
FA-61943

A same-currency conversion is routed through euro triangulation · case 03

Converting 12345 lira to lira returns 12346 lira.

Currency rounding and FX conversion◈ Members↗
FA-61944

A same-currency conversion is routed through euro triangulation · case 04

Converting 12345 lira to lira returns 12346 lira.

Currency rounding and FX conversion◈ Members↗
FA-61945

A same-currency conversion is routed through euro triangulation · case 05

Converting 12345 lira to lira returns 12346 lira.

Currency rounding and FX conversion◈ Members↗
FA-61946

The converted control total is rebuilt from the already rounded lines · case 01

Invoice totals in the target currency drift from round(sum*rate) and no plug is ever posted.

Currency rounding and FX conversion● Open access↗
FA-61947

The converted control total is rebuilt from the already rounded lines · case 02

Invoice totals in the target currency drift from round(sum*rate) and no plug is ever posted.

Currency rounding and FX conversion◈ Members↗
FA-61948

The converted control total is rebuilt from the already rounded lines · case 03

Invoice totals in the target currency drift from round(sum*rate) and no plug is ever posted.

Currency rounding and FX conversion◈ Members↗
FA-61949

The converted control total is rebuilt from the already rounded lines · case 04

Invoice totals in the target currency drift from round(sum*rate) and no plug is ever posted.

Currency rounding and FX conversion◈ Members↗
FA-61950

The converted control total is rebuilt from the already rounded lines · case 05

Invoice totals in the target currency drift from round(sum*rate) and no plug is ever posted.

Currency rounding and FX conversion◈ Members↗
FA-61951

The rounding plug lands on the largest signed converted line · case 01

When the largest line is a credit, the difference is booked to a small debit line instead.

Currency rounding and FX conversion● Open access↗
FA-61952

The rounding plug lands on the largest signed converted line · case 02

When the largest line is a credit, the difference is booked to a small debit line instead.

Currency rounding and FX conversion◈ Members↗
FA-61953

The rounding plug lands on the largest signed converted line · case 03

When the largest line is a credit, the difference is booked to a small debit line instead.

Currency rounding and FX conversion◈ Members↗
FA-61954

The rounding plug lands on the largest signed converted line · case 04

When the largest line is a credit, the difference is booked to a small debit line instead.

Currency rounding and FX conversion◈ Members↗
FA-61955

The rounding plug lands on the largest signed converted line · case 05

When the largest line is a credit, the difference is booked to a small debit line instead.

Currency rounding and FX conversion◈ Members↗
FA-61956

The rounding difference is subtracted from the plug line · case 01

Converted lines sum to a value two differences away from the control total.

Currency rounding and FX conversion● Open access↗
FA-61957

The rounding difference is subtracted from the plug line · case 02

Converted lines sum to a value two differences away from the control total.

Currency rounding and FX conversion◈ Members↗
FA-61958

The rounding difference is subtracted from the plug line · case 03

Converted lines sum to a value two differences away from the control total.

Currency rounding and FX conversion◈ Members↗
FA-61959

The rounding difference is subtracted from the plug line · case 04

Converted lines sum to a value two differences away from the control total.

Currency rounding and FX conversion◈ Members↗
FA-61960

The rounding difference is subtracted from the plug line · case 05

Converted lines sum to a value two differences away from the control total.

Currency rounding and FX conversion◈ Members↗
FA-61961

A converted credit that rounds to zero is emitted as minus zero · case 01

A one-cent credit converted at 0.3 shows as '-0.00' on the invoice.

Currency rounding and FX conversion● Open access↗
FA-61962

A converted credit that rounds to zero is emitted as minus zero · case 02

A one-cent credit converted at 0.3 shows as '-0.00' on the invoice.

Currency rounding and FX conversion◈ Members↗
FA-61963

A converted credit that rounds to zero is emitted as minus zero · case 03

A one-cent credit converted at 0.3 shows as '-0.00' on the invoice.

Currency rounding and FX conversion◈ Members↗
FA-61964

A converted credit that rounds to zero is emitted as minus zero · case 04

A one-cent credit converted at 0.3 shows as '-0.00' on the invoice.

Currency rounding and FX conversion◈ Members↗
FA-61965

A converted credit that rounds to zero is emitted as minus zero · case 05

A one-cent credit converted at 0.3 shows as '-0.00' on the invoice.

Currency rounding and FX conversion◈ Members↗
FA-61966

A rate published at the trade instant is not eligible · case 01

A trade at t=7 ignores the tick published at t=7 and reports a stale or older rate.

Currency rounding and FX conversion● Open access↗
FA-61967

A rate published at the trade instant is not eligible · case 02

A trade at t=7 ignores the tick published at t=7 and reports a stale or older rate.

Currency rounding and FX conversion◈ Members↗
FA-61968

A rate published at the trade instant is not eligible · case 03

A trade at t=7 ignores the tick published at t=7 and reports a stale or older rate.

Currency rounding and FX conversion◈ Members↗
FA-61969

A rate published at the trade instant is not eligible · case 04

A trade at t=7 ignores the tick published at t=7 and reports a stale or older rate.

Currency rounding and FX conversion◈ Members↗
FA-61970

A rate published at the trade instant is not eligible · case 05

A trade at t=7 ignores the tick published at t=7 and reports a stale or older rate.

Currency rounding and FX conversion◈ Members↗
FA-61971

A rate correction with the same timestamp is ignored · case 01

The originally published rate is used although a correction for the same instant followed it.

Currency rounding and FX conversion● Open access↗
FA-61972

A rate correction with the same timestamp is ignored · case 02

The originally published rate is used although a correction for the same instant followed it.

Currency rounding and FX conversion◈ Members↗
FA-61973

A rate correction with the same timestamp is ignored · case 03

The originally published rate is used although a correction for the same instant followed it.

Currency rounding and FX conversion◈ Members↗
FA-61974

A rate correction with the same timestamp is ignored · case 04

The originally published rate is used although a correction for the same instant followed it.

Currency rounding and FX conversion◈ Members↗
FA-61975

A rate correction with the same timestamp is ignored · case 05

The originally published rate is used although a correction for the same instant followed it.

Currency rounding and FX conversion◈ Members↗
FA-61976

A rate exactly at the maximum age is declared stale · case 01

A tick exactly max_age old is rejected.

Currency rounding and FX conversion● Open access↗
FA-61977

A rate exactly at the maximum age is declared stale · case 02

A tick exactly max_age old is rejected.

Currency rounding and FX conversion◈ Members↗
FA-61978

A rate exactly at the maximum age is declared stale · case 03

A tick exactly max_age old is rejected.

Currency rounding and FX conversion◈ Members↗
FA-61979

A rate exactly at the maximum age is declared stale · case 04

A tick exactly max_age old is rejected.

Currency rounding and FX conversion◈ Members↗
FA-61980

A rate exactly at the maximum age is declared stale · case 05

A tick exactly max_age old is rejected.

Currency rounding and FX conversion◈ Members↗
FA-61981

A zero maximum age is treated as no age limit · case 01

With max_age 0, an hour-old rate is accepted.

Currency rounding and FX conversion● Open access↗
FA-61982

A zero maximum age is treated as no age limit · case 02

With max_age 0, an hour-old rate is accepted.

Currency rounding and FX conversion◈ Members↗
FA-61983

A zero maximum age is treated as no age limit · case 03

With max_age 0, an hour-old rate is accepted.

Currency rounding and FX conversion◈ Members↗
FA-61984

A zero maximum age is treated as no age limit · case 04

With max_age 0, an hour-old rate is accepted.

Currency rounding and FX conversion◈ Members↗
FA-61985

A zero maximum age is treated as no age limit · case 05

With max_age 0, an hour-old rate is accepted.

Currency rounding and FX conversion◈ Members↗
FA-61986

Minor units are converted without rescaling between currency exponents · case 01

1000 US cents convert to 151370 yen instead of 1514 yen.

Currency rounding and FX conversion● Open access↗
FA-61987

Minor units are converted without rescaling between currency exponents · case 02

1000 US cents convert to 151370 yen instead of 1514 yen.

Currency rounding and FX conversion◈ Members↗
FA-61988

Minor units are converted without rescaling between currency exponents · case 03

1000 US cents convert to 151370 yen instead of 1514 yen.

Currency rounding and FX conversion◈ Members↗
FA-61989

Minor units are converted without rescaling between currency exponents · case 04

1000 US cents convert to 151370 yen instead of 1514 yen.

Currency rounding and FX conversion◈ Members↗
FA-61990

Minor units are converted without rescaling between currency exponents · case 05

1000 US cents convert to 151370 yen instead of 1514 yen.

Currency rounding and FX conversion◈ Members↗
FA-61991

The converted minor amount is truncated by int() · case 01

Converted amounts are systematically short by up to one minor unit, and negatives move toward zero.

Currency rounding and FX conversion● Open access↗
FA-61992

The converted minor amount is truncated by int() · case 02

Converted amounts are systematically short by up to one minor unit, and negatives move toward zero.

Currency rounding and FX conversion◈ Members↗
FA-61993

The converted minor amount is truncated by int() · case 03

Converted amounts are systematically short by up to one minor unit, and negatives move toward zero.

Currency rounding and FX conversion◈ Members↗
FA-61994

The converted minor amount is truncated by int() · case 04

Converted amounts are systematically short by up to one minor unit, and negatives move toward zero.

Currency rounding and FX conversion◈ Members↗
FA-61995

The converted minor amount is truncated by int() · case 05

Converted amounts are systematically short by up to one minor unit, and negatives move toward zero.

Currency rounding and FX conversion◈ Members↗
FA-61996

The amount-rate product is formed in binary floating point · case 01

115 cents at 1.1 becomes 127 instead of the half-even 126.

Currency rounding and FX conversion● Open access↗
FA-61997

The amount-rate product is formed in binary floating point · case 02

115 cents at 1.1 becomes 127 instead of the half-even 126.

Currency rounding and FX conversion◈ Members↗
FA-61998

The amount-rate product is formed in binary floating point · case 03

115 cents at 1.1 becomes 127 instead of the half-even 126.

Currency rounding and FX conversion◈ Members↗
FA-61999

The amount-rate product is formed in binary floating point · case 04

115 cents at 1.1 becomes 127 instead of the half-even 126.

Currency rounding and FX conversion◈ Members↗
FA-62000

The amount-rate product is formed in binary floating point · case 05

115 cents at 1.1 becomes 127 instead of the half-even 126.

Currency rounding and FX conversion◈ 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 ↗