FA-62441 / Tax bracket computation / Open access
Joint filers' 20% band starts at twice the single threshold · case 01
Married couples with large gains pay 15% where the joint schedule charges 20%.
ROOT CAUSE
The mfj preferential thresholds are derived by doubling the single thresholds.
VERIFIED REPAIR
Use the stipulated mfj thresholds (94050, 583750).
Unsuccessful approach: Using the single thresholds for joint returns pushes gains into higher bands too early.
Case contract
solve(ordinary, stcg, ltcg, status): stipulated two-schedule computation for status 'single' or 'mfj'. Net short- and long-term results against each other first. If the combined capital result is a loss, up to 3000 of it reduces ordinary income (floored at 0) and nothing is preferential. Otherwise positive net short-term gain is ordinary income, and net long-term gain is preferential. Ordinary income uses the status bracket table. Preferential gain is stacked on top of ordinary income: 0% up to T1, 15% up to T2, 20% above (single T1 47025, T2 518900; mfj 94050, 583750). Return total tax in integer cents (half-up).
Why this case matters
Tax computations hinge on which slice, threshold, ordering and rounding rule applies at each step; a misplaced boundary silently misstates liabilities.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(ordinary, stcg, ltcg, status):
def prog(x, br):
tax, lower = Fraction(0), 0
for upper, rate in br:
top = x if upper is None else min(x, upper)
if top > lower: tax += (top - lower) * Fraction(rate) / 100
if upper is None or x <= upper: break
lower = upper
return tax
def cents(v):
v = v * 100
return int(v + Fraction(1, 2)) if v >= 0 else -int(-v + Fraction(1, 2))
brs = {'single': [[11600, '10'], [47150, '12'], [100525, '22'], [191950, '24'], [243725, '32'], [609350, '35'], [None, '37']], 'mfj': [[23200, '10'], [94300, '12'], [201050, '22'], [383900, '24'], [487450, '32'], [731200, '35'], [None, '37']]}
bands = {'single': (47025, 518900), 'mfj': (94050, 1037800)}
t1, t2 = bands[status]
st, lt = stcg, ltcg
if st + lt < 0:
ord_inc, pref = max(0, ordinary - min(3000, -(st + lt))), 0
else:
if st < 0: lt, st = lt + st, 0
if lt < 0: st, lt = st + lt, 0
ord_inc, pref = ordinary + st, lt
lo, hi = ord_inc, ord_inc + pref
fifteen = max(0, min(hi, t2) - max(lo, t1))
twenty = max(0, hi - max(lo, t2))
tax = prog(ord_inc, brs[status]) + Fraction(15, 100) * fifteen + Fraction(20, 100) * twenty
return cents(tax)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('regression joint-band-thresholds 1', (500000, 0, 100000, 'mfj'), 13156200),
('regression joint-band-thresholds 2', (560000, 0, 60000, 'mfj'), 14756200),
('control: stacked partly in zero band', (40000, 0, 20000, 'single'), 651425),
('control: gain only', (0, 0, 50000, 'single'), 44625),
('control: net capital loss', (60000, -5000, 1000, 'single'), 759300),
('control: short-term gain', (30000, 10000, 5000, 'single'), 456800)],
[('regression joint-band-thresholds 1', (550000, 0, 320650, 'mfj'), 19569200),
('regression joint-band-thresholds 2', (550000, 5000, 100000, 'mfj'), 15356200),
('partial repair guard 1', (430707, -1500, 100000, 'mfj'), 10797424),
('partial repair guard 2', (90000, 0, 20000, 'mfj'), 1272850),
('control: high mfj', (500000, 0, 100000, 'mfj'), 13156200),
('control: short-term gain', (30000, 10000, 5000, 'single'), 456800),
('control: short loss offsets long', (100000, -8000, 20000, 'mfj'), 1390600),
('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300)],
[('regression joint-band-thresholds 1', (588832, 0, 373196, 'mfj'), 22147990),
('regression joint-band-thresholds 2', (550000, 0, 243937, 'mfj'), 18034940),
('partial repair guard 1', (40000, -8000, 20000, 'mfj'), 433600),
('partial repair guard 2', (550000, 0, 320650, 'mfj'), 19569200),
('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300),
('control: big loss capped', (2000, -9000, -1000, 'mfj'), 0),
('control: stacked partly in zero band', (40000, 0, 20000, 'single'), 651425),
('control: gain only', (0, 0, 50000, 'single'), 44625)],
[('regression joint-band-thresholds 1', (550000, 0, 100000, 'mfj'), 15156200),
('regression joint-band-thresholds 2', (561699, 0, 328035, 'mfj'), 20184860),
('partial repair guard 1', (10000, 0, 100000, 'mfj'), 339250),
('partial repair guard 2', (40000, -6055, 100000, 'mfj'), 1032025),
('control: gain only', (0, 0, 50000, 'single'), 44625),
('control: net capital loss', (60000, -5000, 1000, 'single'), 759300),
('control: high mfj', (500000, 0, 100000, 'mfj'), 13156200),
('control: short-term gain', (30000, 10000, 5000, 'single'), 456800)],
[('regression joint-band-thresholds 1', (550000, -1500, 270123, 'mfj'), 18528660),
('regression joint-band-thresholds 2', (583930, 45863, 100000, 'mfj'), 18117705),
('partial repair guard 1', (550000, 0, 20000, 'mfj'), 13624950),
('partial repair guard 2', (40000, 5000, 100000, 'mfj'), 1257850),
('control: short-term gain', (30000, 10000, 5000, 'single'), 456800),
('control: short loss offsets long', (100000, -8000, 20000, 'mfj'), 1390600),
('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300),
('control: big loss capped', (2000, -9000, -1000, 'mfj'), 0)]]
for label, args, expected in cases[N - 1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression joint-band-thresholds 1 | 13074950 | 13156200 | Failed |
| regression joint-band-thresholds 2 | 14574950 | 14756200 | Failed |
| control: stacked partly in zero band | 651425 | 651425 | Passed |
| control: gain only | 44625 | 44625 | Passed |
| control: net capital loss | 759300 | 759300 | Passed |
| control: short-term gain | 456800 | 456800 | Passed |
SHA-256 / 04b14943e104ee8a486231cf6659c805e63fdc6e5a02519effd55a4d97262f71
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(ordinary, stcg, ltcg, status):
def prog(x, br):
tax, lower = Fraction(0), 0
for upper, rate in br:
top = x if upper is None else min(x, upper)
if top > lower: tax += (top - lower) * Fraction(rate) / 100
if upper is None or x <= upper: break
lower = upper
return tax
def cents(v):
v = v * 100
return int(v + Fraction(1, 2)) if v >= 0 else -int(-v + Fraction(1, 2))
brs = {'single': [[11600, '10'], [47150, '12'], [100525, '22'], [191950, '24'], [243725, '32'], [609350, '35'], [None, '37']], 'mfj': [[23200, '10'], [94300, '12'], [201050, '22'], [383900, '24'], [487450, '32'], [731200, '35'], [None, '37']]}
bands = {'single': (47025, 518900), 'mfj': (47025, 518900)}
t1, t2 = bands[status]
st, lt = stcg, ltcg
if st + lt < 0:
ord_inc, pref = max(0, ordinary - min(3000, -(st + lt))), 0
else:
if st < 0: lt, st = lt + st, 0
if lt < 0: st, lt = st + lt, 0
ord_inc, pref = ordinary + st, lt
lo, hi = ord_inc, ord_inc + pref
fifteen = max(0, min(hi, t2) - max(lo, t1))
twenty = max(0, hi - max(lo, t2))
tax = prog(ord_inc, brs[status]) + Fraction(15, 100) * fifteen + Fraction(20, 100) * twenty
return cents(tax)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('regression joint-band-thresholds 1', (500000, 0, 100000, 'mfj'), 13156200),
('regression joint-band-thresholds 2', (560000, 0, 60000, 'mfj'), 14756200),
('control: stacked partly in zero band', (40000, 0, 20000, 'single'), 651425),
('control: gain only', (0, 0, 50000, 'single'), 44625),
('control: net capital loss', (60000, -5000, 1000, 'single'), 759300),
('control: short-term gain', (30000, 10000, 5000, 'single'), 456800)],
[('regression joint-band-thresholds 1', (550000, 0, 320650, 'mfj'), 19569200),
('regression joint-band-thresholds 2', (550000, 5000, 100000, 'mfj'), 15356200),
('partial repair guard 1', (430707, -1500, 100000, 'mfj'), 10797424),
('partial repair guard 2', (90000, 0, 20000, 'mfj'), 1272850),
('control: high mfj', (500000, 0, 100000, 'mfj'), 13156200),
('control: short-term gain', (30000, 10000, 5000, 'single'), 456800),
('control: short loss offsets long', (100000, -8000, 20000, 'mfj'), 1390600),
('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300)],
[('regression joint-band-thresholds 1', (588832, 0, 373196, 'mfj'), 22147990),
('regression joint-band-thresholds 2', (550000, 0, 243937, 'mfj'), 18034940),
('partial repair guard 1', (40000, -8000, 20000, 'mfj'), 433600),
('partial repair guard 2', (550000, 0, 320650, 'mfj'), 19569200),
('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300),
('control: big loss capped', (2000, -9000, -1000, 'mfj'), 0),
('control: stacked partly in zero band', (40000, 0, 20000, 'single'), 651425),
('control: gain only', (0, 0, 50000, 'single'), 44625)],
[('regression joint-band-thresholds 1', (550000, 0, 100000, 'mfj'), 15156200),
('regression joint-band-thresholds 2', (561699, 0, 328035, 'mfj'), 20184860),
('partial repair guard 1', (10000, 0, 100000, 'mfj'), 339250),
('partial repair guard 2', (40000, -6055, 100000, 'mfj'), 1032025),
('control: gain only', (0, 0, 50000, 'single'), 44625),
('control: net capital loss', (60000, -5000, 1000, 'single'), 759300),
('control: high mfj', (500000, 0, 100000, 'mfj'), 13156200),
('control: short-term gain', (30000, 10000, 5000, 'single'), 456800)],
[('regression joint-band-thresholds 1', (550000, -1500, 270123, 'mfj'), 18528660),
('regression joint-band-thresholds 2', (583930, 45863, 100000, 'mfj'), 18117705),
('partial repair guard 1', (550000, 0, 20000, 'mfj'), 13624950),
('partial repair guard 2', (40000, 5000, 100000, 'mfj'), 1257850),
('control: short-term gain', (30000, 10000, 5000, 'single'), 456800),
('control: short loss offsets long', (100000, -8000, 20000, 'mfj'), 1390600),
('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300),
('control: big loss capped', (2000, -9000, -1000, 'mfj'), 0)]]
for label, args, expected in cases[N - 1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression joint-band-thresholds 1 | 13480450 | 13156200 | Failed |
| regression joint-band-thresholds 2 | 14874950 | 14756200 | Failed |
| control: stacked partly in zero band | 651425 | 651425 | Passed |
| control: gain only | 44625 | 44625 | Passed |
| control: net capital loss | 759300 | 759300 | Passed |
| control: short-term gain | 456800 | 456800 | Passed |
SHA-256 / 103cb4f19f9660c1431fe1471d7f99887969fca88debfc9203b8b232dfef5686
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(ordinary, stcg, ltcg, status):
def prog(x, br):
tax, lower = Fraction(0), 0
for upper, rate in br:
top = x if upper is None else min(x, upper)
if top > lower: tax += (top - lower) * Fraction(rate) / 100
if upper is None or x <= upper: break
lower = upper
return tax
def cents(v):
v = v * 100
return int(v + Fraction(1, 2)) if v >= 0 else -int(-v + Fraction(1, 2))
brs = {'single': [[11600, '10'], [47150, '12'], [100525, '22'], [191950, '24'], [243725, '32'], [609350, '35'], [None, '37']], 'mfj': [[23200, '10'], [94300, '12'], [201050, '22'], [383900, '24'], [487450, '32'], [731200, '35'], [None, '37']]}
bands = {'single': (47025, 518900), 'mfj': (94050, 583750)}
t1, t2 = bands[status]
st, lt = stcg, ltcg
if st + lt < 0:
ord_inc, pref = max(0, ordinary - min(3000, -(st + lt))), 0
else:
if st < 0: lt, st = lt + st, 0
if lt < 0: st, lt = st + lt, 0
ord_inc, pref = ordinary + st, lt
lo, hi = ord_inc, ord_inc + pref
fifteen = max(0, min(hi, t2) - max(lo, t1))
twenty = max(0, hi - max(lo, t2))
tax = prog(ord_inc, brs[status]) + Fraction(15, 100) * fifteen + Fraction(20, 100) * twenty
return cents(tax)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('regression joint-band-thresholds 1', (500000, 0, 100000, 'mfj'), 13156200),
('regression joint-band-thresholds 2', (560000, 0, 60000, 'mfj'), 14756200),
('control: stacked partly in zero band', (40000, 0, 20000, 'single'), 651425),
('control: gain only', (0, 0, 50000, 'single'), 44625),
('control: net capital loss', (60000, -5000, 1000, 'single'), 759300),
('control: short-term gain', (30000, 10000, 5000, 'single'), 456800)],
[('regression joint-band-thresholds 1', (550000, 0, 320650, 'mfj'), 19569200),
('regression joint-band-thresholds 2', (550000, 5000, 100000, 'mfj'), 15356200),
('partial repair guard 1', (430707, -1500, 100000, 'mfj'), 10797424),
('partial repair guard 2', (90000, 0, 20000, 'mfj'), 1272850),
('control: high mfj', (500000, 0, 100000, 'mfj'), 13156200),
('control: short-term gain', (30000, 10000, 5000, 'single'), 456800),
('control: short loss offsets long', (100000, -8000, 20000, 'mfj'), 1390600),
('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300)],
[('regression joint-band-thresholds 1', (588832, 0, 373196, 'mfj'), 22147990),
('regression joint-band-thresholds 2', (550000, 0, 243937, 'mfj'), 18034940),
('partial repair guard 1', (40000, -8000, 20000, 'mfj'), 433600),
('partial repair guard 2', (550000, 0, 320650, 'mfj'), 19569200),
('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300),
('control: big loss capped', (2000, -9000, -1000, 'mfj'), 0),
('control: stacked partly in zero band', (40000, 0, 20000, 'single'), 651425),
('control: gain only', (0, 0, 50000, 'single'), 44625)],
[('regression joint-band-thresholds 1', (550000, 0, 100000, 'mfj'), 15156200),
('regression joint-band-thresholds 2', (561699, 0, 328035, 'mfj'), 20184860),
('partial repair guard 1', (10000, 0, 100000, 'mfj'), 339250),
('partial repair guard 2', (40000, -6055, 100000, 'mfj'), 1032025),
('control: gain only', (0, 0, 50000, 'single'), 44625),
('control: net capital loss', (60000, -5000, 1000, 'single'), 759300),
('control: high mfj', (500000, 0, 100000, 'mfj'), 13156200),
('control: short-term gain', (30000, 10000, 5000, 'single'), 456800)],
[('regression joint-band-thresholds 1', (550000, -1500, 270123, 'mfj'), 18528660),
('regression joint-band-thresholds 2', (583930, 45863, 100000, 'mfj'), 18117705),
('partial repair guard 1', (550000, 0, 20000, 'mfj'), 13624950),
('partial repair guard 2', (40000, 5000, 100000, 'mfj'), 1257850),
('control: short-term gain', (30000, 10000, 5000, 'single'), 456800),
('control: short loss offsets long', (100000, -8000, 20000, 'mfj'), 1390600),
('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300),
('control: big loss capped', (2000, -9000, -1000, 'mfj'), 0)]]
for label, args, expected in cases[N - 1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression joint-band-thresholds 1 | 13156200 | 13156200 | Passed |
| regression joint-band-thresholds 2 | 14756200 | 14756200 | Passed |
| control: stacked partly in zero band | 651425 | 651425 | Passed |
| control: gain only | 44625 | 44625 | Passed |
| control: net capital loss | 759300 | 759300 | Passed |
| control: short-term gain | 456800 | 456800 | Passed |
SHA-256 / bad7494384f022aff14c075123ffd2500315cc53b2c62cbfc25ea588447039c4
Verification & scope
A deterministic, bounded teaching model with a stipulated toy contract; it makes no claim of conformance to any real regulation, standard, or institution's rules. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:47:04.653615+00:00.
Case digest / 94314db1de528b09f0a57bf78a1e793f8cd5ed03c29752f02180b859c75002b6