FAILURE MAP
← Case archive

FA-62771 / Tax bracket computation / Open access

The phase-out is measured on earned income only · case 01

A filer with large investment-free non-wage income keeps the full credit.

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

ROOT CAUSE

The phase-out uses earned instead of the larger of earned income and AGI.

THE FAILURE

The phase-out uses earned instead of the larger of earned income and AGI.

Unsuccessful approach: Phasing out on AGI alone ignores earnings that exceed AGI.

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 = earned
    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 phaseout-income 1', (12000, 30000, 1, False, 0), 264629),
  ('regression phaseout-income 2', (10000, 30000, 0, False, 11600), 0),
  ('partial repair guard 1', (30000, 10000, 2, False, 0), 482654),
  ('partial repair guard 2', (16510, 0, 0, False, 0), 8669), ('control: plateau', (10000, 10000, 1, False, 0), 340000),
  ('control: phase-out two children', (30000, 30000, 2, False, 0), 482654),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0),
  ('control: no children', (5000, 5000, 0, False, 0), 38250)],
 [('regression phaseout-income 1', (5000, 71254, 2, True, 0), 0),
  ('regression phaseout-income 2', (16510, 30000, 1, True, 11600), 375210),
  ('partial repair guard 1', (30678, 10000, 5, False, 11600), 550975),
  ('partial repair guard 2', (40000, 10000, 5, True, 11600), 500389),
  ('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 phaseout-income 1', (10000, 30000, 5, False, 0), 272254),
  ('regression phaseout-income 2', (5000, 30000, 1, True, 0), 145710),
  ('partial repair guard 1', (40000, 0, 0, False, 0), 0),
  ('partial repair guard 2', (25000, 10000, 1, False, 11600), 344529),
  ('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 phaseout-income 1', (10000, 26004, 0, False, 0), 0),
  ('regression phaseout-income 2', (5000, 30000, 2, False, 11600), 22254),
  ('partial repair guard 1', (25000, 10000, 2, False, 0), 587954),
  ('partial repair guard 2', (39928, 0, 3, False, 0), 356170),
  ('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 phaseout-income 1', (10000, 30000, 5, False, 11600), 272254),
  ('regression phaseout-income 2', (5000, 30000, 1, False, 0), 35129),
  ('partial repair guard 1', (40000, 30000, 3, False, 11600), 354654),
  ('partial repair guard 2', (10000, 0, 0, False, 0), 58470),
  ('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 phaseout-income 1399500264629Failed
regression phaseout-income 2584700Failed
partial repair guard 1482654482654Passed
partial repair guard 286698669Passed
control: plateau340000340000Passed
control: phase-out two children482654482654Passed
control: investment limit00Passed
control: no children3825038250Passed

SHA-256 / b5c59c6d721be417a9ad910e19cb06d9bb203f3260f9a03674f7da3bbfd7f41a

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 = min(Fraction(rin) * earned / 100, Fraction(mx))
    income = 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 phaseout-income 1', (12000, 30000, 1, False, 0), 264629),
  ('regression phaseout-income 2', (10000, 30000, 0, False, 11600), 0),
  ('partial repair guard 1', (30000, 10000, 2, False, 0), 482654),
  ('partial repair guard 2', (16510, 0, 0, False, 0), 8669), ('control: plateau', (10000, 10000, 1, False, 0), 340000),
  ('control: phase-out two children', (30000, 30000, 2, False, 0), 482654),
  ('control: investment limit', (20000, 20000, 1, False, 11601), 0),
  ('control: no children', (5000, 5000, 0, False, 0), 38250)],
 [('regression phaseout-income 1', (5000, 71254, 2, True, 0), 0),
  ('regression phaseout-income 2', (16510, 30000, 1, True, 11600), 375210),
  ('partial repair guard 1', (30678, 10000, 5, False, 11600), 550975),
  ('partial repair guard 2', (40000, 10000, 5, True, 11600), 500389),
  ('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 phaseout-income 1', (10000, 30000, 5, False, 0), 272254),
  ('regression phaseout-income 2', (5000, 30000, 1, True, 0), 145710),
  ('partial repair guard 1', (40000, 0, 0, False, 0), 0),
  ('partial repair guard 2', (25000, 10000, 1, False, 11600), 344529),
  ('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 phaseout-income 1', (10000, 26004, 0, False, 0), 0),
  ('regression phaseout-income 2', (5000, 30000, 2, False, 11600), 22254),
  ('partial repair guard 1', (25000, 10000, 2, False, 0), 587954),
  ('partial repair guard 2', (39928, 0, 3, False, 0), 356170),
  ('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 phaseout-income 1', (10000, 30000, 5, False, 11600), 272254),
  ('regression phaseout-income 2', (5000, 30000, 1, False, 0), 35129),
  ('partial repair guard 1', (40000, 30000, 3, False, 11600), 354654),
  ('partial repair guard 2', (10000, 0, 0, False, 0), 58470),
  ('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 phaseout-income 1264629264629Passed
regression phaseout-income 200Passed
partial repair guard 1660400482654Failed
partial repair guard 2600008669Failed
control: plateau340000340000Passed
control: phase-out two children482654482654Passed
control: investment limit00Passed
control: no children3825038250Passed

SHA-256 / 0e662abef910175ec1cf1c1fa4a22f3f295b35d5c6ff83d72166c8eec6e22191

HELD IN THE MEMBER ARCHIVE

The verified repair and its recorded checks are member-only.

This mechanism has 8 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.

Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.

Member access is invitation-based. Sign in with your invited account to inspect the repair.

Sign in to the archive ↗

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

Case digest / 0a8e211319f7587728752a2f20433e5154214ae755aabfea7fff46d890c11d2a