{"abstract":"Short-term trading profits enjoy the 0/15% long-term rates.","category":"Tax bracket computation","checks":6,"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).","contract_signature":"ordinary, stcg, ltcg, status","evaluation_group":"w2-tax_bracket_computation-capital-gains-stacking","failed_approach":"Adding short-term gain to ordinary income while also keeping it preferential double-counts it.","family":"w2-tax_bracket_computation-capital-gains-stacking-short-term-character","id":"FA-62426","implementations":{"attempt":{"sha256":"96092dfdf6e6aae4bfa5625191984f4f743326430a9813ee3c0ad322e73c4874","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(ordinary, stcg, ltcg, status):\n    def prog(x, br):\n        tax, lower = Fraction(0), 0\n        for upper, rate in br:\n            top = x if upper is None else min(x, upper)\n            if top > lower: tax += (top - lower) * Fraction(rate) / 100\n            if upper is None or x <= upper: break\n            lower = upper\n        return tax\n    def cents(v):\n        v = v * 100\n        return int(v + Fraction(1, 2)) if v >= 0 else -int(-v + Fraction(1, 2))\n    \n    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']]}\n    bands = {'single': (47025, 518900), 'mfj': (94050, 583750)}\n    t1, t2 = bands[status]\n    st, lt = stcg, ltcg\n    if st + lt < 0:\n        ord_inc, pref = max(0, ordinary - min(3000, -(st + lt))), 0\n    else:\n        if st < 0: lt, st = lt + st, 0\n        if lt < 0: st, lt = st + lt, 0\n        ord_inc, pref = ordinary + st, lt + st\n    lo, hi = ord_inc, ord_inc + pref\n    fifteen = max(0, min(hi, t2) - max(lo, t1))\n    twenty = max(0, hi - max(lo, t2))\n    tax = prog(ord_inc, brs[status]) + Fraction(15, 100) * fifteen + Fraction(20, 100) * twenty\n    return cents(tax)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression short-term-character 1', (30000, 10000, 5000, 'single'), 456800),\n  ('regression short-term-character 2', (80000, 12000, -4000, 'single'), 1441300),\n  ('control: stacked partly in zero band', (40000, 0, 20000, 'single'), 651425),\n  ('control: gain only', (0, 0, 50000, 'single'), 44625),\n  ('control: net capital loss', (60000, -5000, 1000, 'single'), 759300),\n  ('control: high mfj', (500000, 0, 100000, 'mfj'), 13156200)],\n [('regression short-term-character 1', (40000, 5000, 0, 'single'), 516800),\n  ('regression short-term-character 2', (200000, 35000, -3000, 'single'), 5192650),\n  ('control: high mfj', (500000, 0, 100000, 'mfj'), 13156200),\n  ('control: short-term gain', (30000, 10000, 5000, 'single'), 456800),\n  ('control: short loss offsets long', (100000, -8000, 20000, 'mfj'), 1390600),\n  ('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300)],\n [('regression short-term-character 1', (90000, 33485, 348500, 'single'), 7495390),\n  ('regression short-term-character 2', (550000, 5000, 0, 'mfj'), 13499950),\n  ('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300),\n  ('control: big loss capped', (2000, -9000, -1000, 'mfj'), 0),\n  ('control: stacked partly in zero band', (40000, 0, 20000, 'single'), 651425),\n  ('control: gain only', (0, 0, 50000, 'single'), 44625)],\n [('regression short-term-character 1', (90000, 5000, 137466, 'single'), 3657290),\n  ('regression short-term-character 2', (550000, 6898, 0, 'single'), 16528905),\n  ('control: gain only', (0, 0, 50000, 'single'), 44625),\n  ('control: net capital loss', (60000, -5000, 1000, 'single'), 759300),\n  ('control: high mfj', (500000, 0, 100000, 'mfj'), 13156200),\n  ('control: short-term gain', (30000, 10000, 5000, 'single'), 456800)],\n [('regression short-term-character 1', (550000, 5000, -3000, 'mfj'), 13394950),\n  ('regression short-term-character 2', (10000, 47183, 20000, 'single'), 1063326),\n  ('control: short-term gain', (30000, 10000, 5000, 'single'), 456800),\n  ('control: short loss offsets long', (100000, -8000, 20000, 'mfj'), 1390600),\n  ('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300),\n  ('control: big loss capped', (2000, -9000, -1000, 'mfj'), 0)]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"35323d26d7e1c935c13dec31b8847ffbd93f6b660724a765f245ddea0eff2f63","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(ordinary, stcg, ltcg, status):\n    def prog(x, br):\n        tax, lower = Fraction(0), 0\n        for upper, rate in br:\n            top = x if upper is None else min(x, upper)\n            if top > lower: tax += (top - lower) * Fraction(rate) / 100\n            if upper is None or x <= upper: break\n            lower = upper\n        return tax\n    def cents(v):\n        v = v * 100\n        return int(v + Fraction(1, 2)) if v >= 0 else -int(-v + Fraction(1, 2))\n    \n    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']]}\n    bands = {'single': (47025, 518900), 'mfj': (94050, 583750)}\n    t1, t2 = bands[status]\n    st, lt = stcg, ltcg\n    if st + lt < 0:\n        ord_inc, pref = max(0, ordinary - min(3000, -(st + lt))), 0\n    else:\n        if st < 0: lt, st = lt + st, 0\n        if lt < 0: st, lt = st + lt, 0\n        ord_inc, pref = ordinary, lt + st\n    lo, hi = ord_inc, ord_inc + pref\n    fifteen = max(0, min(hi, t2) - max(lo, t1))\n    twenty = max(0, hi - max(lo, t2))\n    tax = prog(ord_inc, brs[status]) + Fraction(15, 100) * fifteen + Fraction(20, 100) * twenty\n    return cents(tax)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression short-term-character 1', (30000, 10000, 5000, 'single'), 456800),\n  ('regression short-term-character 2', (80000, 12000, -4000, 'single'), 1441300),\n  ('control: stacked partly in zero band', (40000, 0, 20000, 'single'), 651425),\n  ('control: gain only', (0, 0, 50000, 'single'), 44625),\n  ('control: net capital loss', (60000, -5000, 1000, 'single'), 759300),\n  ('control: high mfj', (500000, 0, 100000, 'mfj'), 13156200)],\n [('regression short-term-character 1', (40000, 5000, 0, 'single'), 516800),\n  ('regression short-term-character 2', (200000, 35000, -3000, 'single'), 5192650),\n  ('control: high mfj', (500000, 0, 100000, 'mfj'), 13156200),\n  ('control: short-term gain', (30000, 10000, 5000, 'single'), 456800),\n  ('control: short loss offsets long', (100000, -8000, 20000, 'mfj'), 1390600),\n  ('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300)],\n [('regression short-term-character 1', (90000, 33485, 348500, 'single'), 7495390),\n  ('regression short-term-character 2', (550000, 5000, 0, 'mfj'), 13499950),\n  ('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300),\n  ('control: big loss capped', (2000, -9000, -1000, 'mfj'), 0),\n  ('control: stacked partly in zero band', (40000, 0, 20000, 'single'), 651425),\n  ('control: gain only', (0, 0, 50000, 'single'), 44625)],\n [('regression short-term-character 1', (90000, 5000, 137466, 'single'), 3657290),\n  ('regression short-term-character 2', (550000, 6898, 0, 'single'), 16528905),\n  ('control: gain only', (0, 0, 50000, 'single'), 44625),\n  ('control: net capital loss', (60000, -5000, 1000, 'single'), 759300),\n  ('control: high mfj', (500000, 0, 100000, 'mfj'), 13156200),\n  ('control: short-term gain', (30000, 10000, 5000, 'single'), 456800)],\n [('regression short-term-character 1', (550000, 5000, -3000, 'mfj'), 13394950),\n  ('regression short-term-character 2', (10000, 47183, 20000, 'single'), 1063326),\n  ('control: short-term gain', (30000, 10000, 5000, 'single'), 456800),\n  ('control: short loss offsets long', (100000, -8000, 20000, 'mfj'), 1390600),\n  ('control: long loss offsets short', (80000, 12000, -4000, 'single'), 1441300),\n  ('control: big loss capped', (2000, -9000, -1000, 'mfj'), 0)]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-tax_bracket_computation-capital-gains-stacking-short-term-character","generated_at":"2026-09-29T14:47:04.588478+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Tax computations hinge on which slice, threshold, ordering and rounding rule applies at each step; a misplaced boundary silently misstates liabilities.","root_cause":"Positive short-term gain is added to the preferential amount instead of ordinary income.","sha256":"4988007d7679987adf59845b501682c3d8697db149d84fa299472be6306ab0b6","title":"Net short-term gains are taxed at preferential rates · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":41.987,"exit_code":1,"observations":[{"actual":576425,"check":"regression short-term-character 1","expected":456800,"passed":false},{"actual":1561300,"check":"regression short-term-character 2","expected":1441300,"passed":false},{"actual":651425,"check":"control: stacked partly in zero band","expected":651425,"passed":true},{"actual":44625,"check":"control: gain only","expected":44625,"passed":true},{"actual":759300,"check":"control: net capital loss","expected":759300,"passed":true},{"actual":13156200,"check":"control: high mfj","expected":13156200,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression short-term-character 1\", \"actual\": 576425, \"expected\": 456800, \"passed\": false}, {\"check\": \"regression short-term-character 2\", \"actual\": 1561300, \"expected\": 1441300, \"passed\": false}, {\"check\": \"control: stacked partly in zero band\", \"actual\": 651425, \"expected\": 651425, \"passed\": true}, {\"check\": \"control: gain only\", \"actual\": 44625, \"expected\": 44625, \"passed\": true}, {\"check\": \"control: net capital loss\", \"actual\": 759300, \"expected\": 759300, \"passed\": true}, {\"check\": \"control: high mfj\", \"actual\": 13156200, \"expected\": 13156200, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.94,"exit_code":1,"observations":[{"actual":336800,"check":"regression short-term-character 1","expected":456800,"passed":false},{"actual":1385300,"check":"regression short-term-character 2","expected":1441300,"passed":false},{"actual":651425,"check":"control: stacked partly in zero band","expected":651425,"passed":true},{"actual":44625,"check":"control: gain only","expected":44625,"passed":true},{"actual":759300,"check":"control: net capital loss","expected":759300,"passed":true},{"actual":13156200,"check":"control: high mfj","expected":13156200,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression short-term-character 1\", \"actual\": 336800, \"expected\": 456800, \"passed\": false}, {\"check\": \"regression short-term-character 2\", \"actual\": 1385300, \"expected\": 1441300, \"passed\": false}, {\"check\": \"control: stacked partly in zero band\", \"actual\": 651425, \"expected\": 651425, \"passed\": true}, {\"check\": \"control: gain only\", \"actual\": 44625, \"expected\": 44625, \"passed\": true}, {\"check\": \"control: net capital loss\", \"actual\": 759300, \"expected\": 759300, \"passed\": true}, {\"check\": \"control: high mfj\", \"actual\": 13156200, \"expected\": 13156200, \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}