FAILURE MAP
← Case archive

FA-62791 / Tax bracket computation / Open access

The phased-out credit becomes negative · case 01

High earners claiming the credit see an additional tax.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The credit after phase-out is not floored at zero.

VERIFIED REPAIR

Floor the credit at zero after the phase-out.

Unsuccessful approach: Flooring the pre-phase-out amount does not stop the phase-out from driving it negative.

Case contract

solve(earned, agi, children, mfj, invest): stipulated earned-income credit, whole dollars. Investment income above 11600 disqualifies (0). Parameters by min(children, 3): phase-in rate %, max credit, phase-out rate %, phase-out start (0: 7.65, 600, 7.65, 9800; 1: 34, 3995, 15.98, 21560; 2: 40, 6604, 21.06, 21560; 3+: 45, 7430, 21.06, 21560); joint filers add 6920 to the start. Credit = min(rate_in*earned, max) reduced by rate_out*(max(earned, agi) - start) when positive, floored at 0. Return 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(earned, agi, children, mfj, invest):
    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))
    
    P = {0: ['7.65', 7840, 600, '7.65', 9800], 1: ['34', 11750, 3995, '15.98', 21560], 2: ['40', 16510, 6604, '21.06', 21560], 3: ['45', 16510, 7430, '21.06', 21560]}
    if invest > 11600: return 0
    rin, cap, mx, rout, start = P[min(children, 3)]
    if mfj: start += 6920
    credit = min(Fraction(rin) * earned / 100, Fraction(mx))
    income = max(earned, agi)
    if income > start: credit -= Fraction(rout) * (income - start) / 100
    return cents(credit)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('regression credit-floor 1', (60000, 60000, 1, False, 0), 0),
  ('regression credit-floor 2', (10000, 30000, 0, False, 11600), 0),
  ('control: plateau', (10000, 10000, 1, False, 0), 340000),
  ('control: phase-out two children', (30000, 30000, 2, False, 0), 482654),
  ('control: agi drives phase-out', (12000, 30000, 1, False, 0), 264629),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0)],
 [('regression credit-floor 1', (0, 30000, 4, False, 0), 0),
  ('regression credit-floor 2', (5000, 71254, 2, True, 0), 0),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0),
  ('control: no children', (5000, 5000, 0, False, 0), 38250), ('control: joint', (30000, 30000, 2, True, 0), 628389),
  ('control: four children', (15000, 15000, 4, False, 0), 675000)],
 [('regression credit-floor 1', (10000, 26004, 0, False, 0), 0),
  ('regression credit-floor 2', (0, 30000, 1, True, 0), 0),
  ('control: four children', (15000, 15000, 4, False, 0), 675000),
  ('control: phased to zero', (60000, 60000, 1, False, 0), 0),
  ('control: investment at limit', (15000, 15000, 3, True, 11600), 675000),
  ('control: plateau', (10000, 10000, 1, False, 0), 340000)],
 [('regression credit-floor 1', (40000, 0, 0, False, 0), 0),
  ('regression credit-floor 2', (31037, 58565, 4, False, 0), 0),
  ('control: plateau', (10000, 10000, 1, False, 0), 340000),
  ('control: phase-out two children', (30000, 30000, 2, False, 0), 482654),
  ('control: agi drives phase-out', (12000, 30000, 1, False, 0), 264629),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0)],
 [('regression credit-floor 1', (40000, 10000, 0, True, 11600), 0),
  ('regression credit-floor 2', (16510, 30000, 0, True, 11600), 0),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0),
  ('control: no children', (5000, 5000, 0, False, 0), 38250), ('control: joint', (30000, 30000, 2, True, 0), 628389),
  ('control: four children', (15000, 15000, 4, False, 0), 675000)]]
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 fixtureActualExpectedOutcome
regression credit-floor 1-2147710Failed
regression credit-floor 2-945300Failed
control: plateau340000340000Passed
control: phase-out two children482654482654Passed
control: agi drives phase-out264629264629Passed
control: investment limit00Passed

SHA-256 / 2b45b77ee691284db7e2fdcf8939484250d7d1e84888291bde0a8868ff3af091

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(earned, agi, children, mfj, invest):
    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))
    
    P = {0: ['7.65', 7840, 600, '7.65', 9800], 1: ['34', 11750, 3995, '15.98', 21560], 2: ['40', 16510, 6604, '21.06', 21560], 3: ['45', 16510, 7430, '21.06', 21560]}
    if invest > 11600: return 0
    rin, cap, mx, rout, start = P[min(children, 3)]
    if mfj: start += 6920
    credit = max(0, min(Fraction(rin) * earned / 100, Fraction(mx)))
    income = max(earned, agi)
    if income > start: credit -= Fraction(rout) * (income - start) / 100
    return cents(credit)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('regression credit-floor 1', (60000, 60000, 1, False, 0), 0),
  ('regression credit-floor 2', (10000, 30000, 0, False, 11600), 0),
  ('control: plateau', (10000, 10000, 1, False, 0), 340000),
  ('control: phase-out two children', (30000, 30000, 2, False, 0), 482654),
  ('control: agi drives phase-out', (12000, 30000, 1, False, 0), 264629),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0)],
 [('regression credit-floor 1', (0, 30000, 4, False, 0), 0),
  ('regression credit-floor 2', (5000, 71254, 2, True, 0), 0),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0),
  ('control: no children', (5000, 5000, 0, False, 0), 38250), ('control: joint', (30000, 30000, 2, True, 0), 628389),
  ('control: four children', (15000, 15000, 4, False, 0), 675000)],
 [('regression credit-floor 1', (10000, 26004, 0, False, 0), 0),
  ('regression credit-floor 2', (0, 30000, 1, True, 0), 0),
  ('control: four children', (15000, 15000, 4, False, 0), 675000),
  ('control: phased to zero', (60000, 60000, 1, False, 0), 0),
  ('control: investment at limit', (15000, 15000, 3, True, 11600), 675000),
  ('control: plateau', (10000, 10000, 1, False, 0), 340000)],
 [('regression credit-floor 1', (40000, 0, 0, False, 0), 0),
  ('regression credit-floor 2', (31037, 58565, 4, False, 0), 0),
  ('control: plateau', (10000, 10000, 1, False, 0), 340000),
  ('control: phase-out two children', (30000, 30000, 2, False, 0), 482654),
  ('control: agi drives phase-out', (12000, 30000, 1, False, 0), 264629),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0)],
 [('regression credit-floor 1', (40000, 10000, 0, True, 11600), 0),
  ('regression credit-floor 2', (16510, 30000, 0, True, 11600), 0),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0),
  ('control: no children', (5000, 5000, 0, False, 0), 38250), ('control: joint', (30000, 30000, 2, True, 0), 628389),
  ('control: four children', (15000, 15000, 4, False, 0), 675000)]]
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 fixtureActualExpectedOutcome
regression credit-floor 1-2147710Failed
regression credit-floor 2-945300Failed
control: plateau340000340000Passed
control: phase-out two children482654482654Passed
control: agi drives phase-out264629264629Passed
control: investment limit00Passed

SHA-256 / c1698239a6929e14ea88eb7bbed54e2e6232c11a7d18f08694f134faa2a2ef1c

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(earned, agi, children, mfj, invest):
    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))
    
    P = {0: ['7.65', 7840, 600, '7.65', 9800], 1: ['34', 11750, 3995, '15.98', 21560], 2: ['40', 16510, 6604, '21.06', 21560], 3: ['45', 16510, 7430, '21.06', 21560]}
    if invest > 11600: return 0
    rin, cap, mx, rout, start = P[min(children, 3)]
    if mfj: start += 6920
    credit = min(Fraction(rin) * earned / 100, Fraction(mx))
    income = max(earned, agi)
    if income > start: credit -= Fraction(rout) * (income - start) / 100
    return cents(max(0, credit))
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('regression credit-floor 1', (60000, 60000, 1, False, 0), 0),
  ('regression credit-floor 2', (10000, 30000, 0, False, 11600), 0),
  ('control: plateau', (10000, 10000, 1, False, 0), 340000),
  ('control: phase-out two children', (30000, 30000, 2, False, 0), 482654),
  ('control: agi drives phase-out', (12000, 30000, 1, False, 0), 264629),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0)],
 [('regression credit-floor 1', (0, 30000, 4, False, 0), 0),
  ('regression credit-floor 2', (5000, 71254, 2, True, 0), 0),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0),
  ('control: no children', (5000, 5000, 0, False, 0), 38250), ('control: joint', (30000, 30000, 2, True, 0), 628389),
  ('control: four children', (15000, 15000, 4, False, 0), 675000)],
 [('regression credit-floor 1', (10000, 26004, 0, False, 0), 0),
  ('regression credit-floor 2', (0, 30000, 1, True, 0), 0),
  ('control: four children', (15000, 15000, 4, False, 0), 675000),
  ('control: phased to zero', (60000, 60000, 1, False, 0), 0),
  ('control: investment at limit', (15000, 15000, 3, True, 11600), 675000),
  ('control: plateau', (10000, 10000, 1, False, 0), 340000)],
 [('regression credit-floor 1', (40000, 0, 0, False, 0), 0),
  ('regression credit-floor 2', (31037, 58565, 4, False, 0), 0),
  ('control: plateau', (10000, 10000, 1, False, 0), 340000),
  ('control: phase-out two children', (30000, 30000, 2, False, 0), 482654),
  ('control: agi drives phase-out', (12000, 30000, 1, False, 0), 264629),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0)],
 [('regression credit-floor 1', (40000, 10000, 0, True, 11600), 0),
  ('regression credit-floor 2', (16510, 30000, 0, True, 11600), 0),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0),
  ('control: no children', (5000, 5000, 0, False, 0), 38250), ('control: joint', (30000, 30000, 2, True, 0), 628389),
  ('control: four children', (15000, 15000, 4, False, 0), 675000)]]
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 fixtureActualExpectedOutcome
regression credit-floor 100Passed
regression credit-floor 200Passed
control: plateau340000340000Passed
control: phase-out two children482654482654Passed
control: agi drives phase-out264629264629Passed
control: investment limit00Passed

SHA-256 / 4f12e306d9a035bd127a2e864a5a7b4adbf69a0c72dec4a096f23212bfcac7a7

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:08.029745+00:00.

Case digest / 4f5df94106911b07e0017aa499353160b3ff21889708f50acb767e1e0bfdd7ff