{"abstract":"Multiple-job employees who also itemize are over-withheld because half their itemized deductions vanish.","category":"Payroll withholding rules","checks":9,"contract":"Input {wage, periods, status single|mfj|hoh, step2, credits, other_income, deductions, extra}; annual amounts in cents except wage and extra (per period). Annual = wage*periods + other_income. Deduction = base standard (single 8,600, mfj 12,900, hoh 8,600 dollars; halved when step2) + itemized deductions (never halved). Thresholds 7,000/30,000/90,000 dollars at 10/12/22% scaled by status unit (single 2, mfj 4, hoh 3)/2, or /4 when step2. Tentative per-period = annual tax/periods half-up; credits/periods half-up is subtracted, floored at 0, then extra is added.","evaluation_group":"w2-payroll-withholding-w4-step-adjustments","failed_approach":"The attempt stops halving anything, ignoring the step 2 checkbox for the standard allowance entirely.","family":"w2-payroll-withholding-w4-step-adjustments-step-2-deduction-scope","id":"FA-58916","implementations":{"attempt":{"sha256":"04bf65b965d8d028ffd541d9560215a6edeec82aeb26bde48ea771a3c0f0e275","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    p = x['periods']\n    annual = x['wage'] * p + x['other_income']\n    base_std = {'single': 860000, 'mfj': 1290000, 'hoh': 860000}[x['status']]\n    ded = base_std + x['deductions']\n    taxable = max(0, annual - ded)\n    unit = {'single': 2, 'mfj': 4, 'hoh': 3}[x['status']]\n    div = 4 if x['step2'] else 2\n    bounds = [700000 * unit // div, 3000000 * unit // div, 9000000 * unit // div]\n    rates = [10, 12, 22]\n    tax = 0\n    for i, lo in enumerate(bounds):\n        hi = bounds[i + 1] if i + 1 < len(bounds) else taxable\n        if taxable > lo:\n            tax += (min(taxable, hi) - lo) * rates[i]\n    tentative = (tax * 2 + 100 * p) // (200 * p)\n    credit_pp = (x['credits'] * 2 + p) // (2 * p)\n    wh = max(0, tentative - credit_pp) + x['extra']\n    return [tentative, wh]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression', {'wage': 69636, 'periods': 24, 'status': 'hoh', 'step2': True, 'credits': 877725, 'other_income': 1721162, 'deductions': 1014955, 'extra': 0}, [5927, 0]), ('regression', {'wage': 285367, 'periods': 52, 'status': 'hoh', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 1182238, 'extra': 2500}, [41104, 43604]), ('partial-repair probe', {'wage': 492438, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 400000, 'other_income': 131536, 'deductions': 0, 'extra': 0}, [59948, 26615]), ('partial-repair probe', {'wage': 170108, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 167672, 'deductions': 0, 'extra': 0}, [12373, 0]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 4942, 'periods': 12, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 1831505, 'deductions': 0, 'extra': 8860}, [2757, 8860]), ('normal control', {'wage': 111690, 'periods': 26, 'status': 'mfj', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [823, 823]), ('normal control', {'wage': 67447, 'periods': 24, 'status': 'mfj', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [0, 2500]), ('normal control', {'wage': 1041418, 'periods': 24, 'status': 'hoh', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [156854, 159354])], [('regression', {'wage': 285367, 'periods': 52, 'status': 'hoh', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 1182238, 'extra': 2500}, [41104, 43604]), ('regression', {'wage': 178354, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 112718, 'extra': 0}, [12905, 12905]), ('partial-repair probe', {'wage': 170108, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 167672, 'deductions': 0, 'extra': 0}, [12373, 0]), ('partial-repair probe', {'wage': 124748, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [7302, 7302]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 245742, 'periods': 24, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [19772, 22272]), ('normal control', {'wage': 196398, 'periods': 12, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [6640, 6640]), ('normal control', {'wage': 64669, 'periods': 24, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [0, 2500]), ('normal control', {'wage': 232685, 'periods': 52, 'status': 'mfj', 'step2': False, 'credits': 200000, 'other_income': 0, 'deductions': 479252, 'extra': 0}, [18839, 14993])], [('regression', {'wage': 178354, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 112718, 'extra': 0}, [12905, 12905]), ('regression', {'wage': 205442, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 1801669, 'deductions': 1137902, 'extra': 0}, [21574, 4907]), ('partial-repair probe', {'wage': 124748, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [7302, 7302]), ('partial-repair probe', {'wage': 90292, 'periods': 52, 'status': 'hoh', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [7968, 10468]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 79014, 'periods': 24, 'status': 'mfj', 'step2': False, 'credits': 400000, 'other_income': 1864011, 'deductions': 0, 'extra': 0}, [4460, 0]), ('normal control', {'wage': 322003, 'periods': 12, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [19207, 21707]), ('normal control', {'wage': 93316, 'periods': 12, 'status': 'mfj', 'step2': False, 'credits': 200000, 'other_income': 1111591, 'deductions': 0, 'extra': 1563}, [0, 1563]), ('normal control', {'wage': 37313, 'periods': 52, 'status': 'mfj', 'step2': False, 'credits': 117737, 'other_income': 1320234, 'deductions': 0, 'extra': 5664}, [1097, 5664])], [('regression', {'wage': 205442, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 1801669, 'deductions': 1137902, 'extra': 0}, [21574, 4907]), ('regression', {'wage': 117375, 'periods': 24, 'status': 'hoh', 'step2': True, 'credits': 546474, 'other_income': 0, 'deductions': 599256, 'extra': 0}, [5261, 0]), ('partial-repair probe', {'wage': 142479, 'periods': 52, 'status': 'hoh', 'step2': True, 'credits': 551126, 'other_income': 0, 'deductions': 0, 'extra': 3806}, [14670, 7877]), ('partial-repair probe', {'wage': 606158, 'periods': 26, 'status': 'hoh', 'step2': True, 'credits': 0, 'other_income': 1548001, 'deductions': 0, 'extra': 0}, [113103, 113103]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 179669, 'periods': 52, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [17076, 17076]), ('normal control', {'wage': 244499, 'periods': 26, 'status': 'hoh', 'step2': False, 'credits': 305778, 'other_income': 170107, 'deductions': 0, 'extra': 0}, [18656, 6895]), ('normal control', {'wage': 250357, 'periods': 52, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [31632, 34132]), ('normal control', {'wage': 251742, 'periods': 52, 'status': 'hoh', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 392790, 'extra': 0}, [23568, 23568])], [('regression', {'wage': 117375, 'periods': 24, 'status': 'hoh', 'step2': True, 'credits': 546474, 'other_income': 0, 'deductions': 599256, 'extra': 0}, [5261, 0]), ('regression', {'wage': 121406, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 1123754, 'deductions': 405924, 'extra': 0}, [12030, 0]), ('partial-repair probe', {'wage': 228867, 'periods': 52, 'status': 'single', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [38628, 38628]), ('partial-repair probe', {'wage': 176, 'periods': 12, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 1390591, 'deductions': 0, 'extra': 0}, [398, 398]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 290758, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 1100573, 'deductions': 944056, 'extra': 0}, [26644, 26644]), ('normal control', {'wage': 76761, 'periods': 52, 'status': 'hoh', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [4003, 2500]), ('normal control', {'wage': 451331, 'periods': 52, 'status': 'mfj', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [54220, 54220]), ('normal control', {'wage': 37554, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 695042, 'extra': 0}, [0, 0])]]\nfor i, (label, args, expected) in enumerate(fixtures[N-1]):\n    check(\"%s %d\" % (label, i), 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":"7d35163c1e6ff016ae2f5c251b52f2e776f1d503860a534b2956e1721062fe4d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    p = x['periods']\n    annual = x['wage'] * p + x['other_income']\n    base_std = {'single': 860000, 'mfj': 1290000, 'hoh': 860000}[x['status']]\n    ded = (base_std + x['deductions']) // 2 if x['step2'] else base_std + x['deductions']\n    taxable = max(0, annual - ded)\n    unit = {'single': 2, 'mfj': 4, 'hoh': 3}[x['status']]\n    div = 4 if x['step2'] else 2\n    bounds = [700000 * unit // div, 3000000 * unit // div, 9000000 * unit // div]\n    rates = [10, 12, 22]\n    tax = 0\n    for i, lo in enumerate(bounds):\n        hi = bounds[i + 1] if i + 1 < len(bounds) else taxable\n        if taxable > lo:\n            tax += (min(taxable, hi) - lo) * rates[i]\n    tentative = (tax * 2 + 100 * p) // (200 * p)\n    credit_pp = (x['credits'] * 2 + p) // (2 * p)\n    wh = max(0, tentative - credit_pp) + x['extra']\n    return [tentative, wh]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression', {'wage': 69636, 'periods': 24, 'status': 'hoh', 'step2': True, 'credits': 877725, 'other_income': 1721162, 'deductions': 1014955, 'extra': 0}, [5927, 0]), ('regression', {'wage': 285367, 'periods': 52, 'status': 'hoh', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 1182238, 'extra': 2500}, [41104, 43604]), ('partial-repair probe', {'wage': 492438, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 400000, 'other_income': 131536, 'deductions': 0, 'extra': 0}, [59948, 26615]), ('partial-repair probe', {'wage': 170108, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 167672, 'deductions': 0, 'extra': 0}, [12373, 0]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 4942, 'periods': 12, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 1831505, 'deductions': 0, 'extra': 8860}, [2757, 8860]), ('normal control', {'wage': 111690, 'periods': 26, 'status': 'mfj', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [823, 823]), ('normal control', {'wage': 67447, 'periods': 24, 'status': 'mfj', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [0, 2500]), ('normal control', {'wage': 1041418, 'periods': 24, 'status': 'hoh', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [156854, 159354])], [('regression', {'wage': 285367, 'periods': 52, 'status': 'hoh', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 1182238, 'extra': 2500}, [41104, 43604]), ('regression', {'wage': 178354, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 112718, 'extra': 0}, [12905, 12905]), ('partial-repair probe', {'wage': 170108, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 167672, 'deductions': 0, 'extra': 0}, [12373, 0]), ('partial-repair probe', {'wage': 124748, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [7302, 7302]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 245742, 'periods': 24, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [19772, 22272]), ('normal control', {'wage': 196398, 'periods': 12, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [6640, 6640]), ('normal control', {'wage': 64669, 'periods': 24, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [0, 2500]), ('normal control', {'wage': 232685, 'periods': 52, 'status': 'mfj', 'step2': False, 'credits': 200000, 'other_income': 0, 'deductions': 479252, 'extra': 0}, [18839, 14993])], [('regression', {'wage': 178354, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 112718, 'extra': 0}, [12905, 12905]), ('regression', {'wage': 205442, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 1801669, 'deductions': 1137902, 'extra': 0}, [21574, 4907]), ('partial-repair probe', {'wage': 124748, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [7302, 7302]), ('partial-repair probe', {'wage': 90292, 'periods': 52, 'status': 'hoh', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [7968, 10468]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 79014, 'periods': 24, 'status': 'mfj', 'step2': False, 'credits': 400000, 'other_income': 1864011, 'deductions': 0, 'extra': 0}, [4460, 0]), ('normal control', {'wage': 322003, 'periods': 12, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [19207, 21707]), ('normal control', {'wage': 93316, 'periods': 12, 'status': 'mfj', 'step2': False, 'credits': 200000, 'other_income': 1111591, 'deductions': 0, 'extra': 1563}, [0, 1563]), ('normal control', {'wage': 37313, 'periods': 52, 'status': 'mfj', 'step2': False, 'credits': 117737, 'other_income': 1320234, 'deductions': 0, 'extra': 5664}, [1097, 5664])], [('regression', {'wage': 205442, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 1801669, 'deductions': 1137902, 'extra': 0}, [21574, 4907]), ('regression', {'wage': 117375, 'periods': 24, 'status': 'hoh', 'step2': True, 'credits': 546474, 'other_income': 0, 'deductions': 599256, 'extra': 0}, [5261, 0]), ('partial-repair probe', {'wage': 142479, 'periods': 52, 'status': 'hoh', 'step2': True, 'credits': 551126, 'other_income': 0, 'deductions': 0, 'extra': 3806}, [14670, 7877]), ('partial-repair probe', {'wage': 606158, 'periods': 26, 'status': 'hoh', 'step2': True, 'credits': 0, 'other_income': 1548001, 'deductions': 0, 'extra': 0}, [113103, 113103]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 179669, 'periods': 52, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [17076, 17076]), ('normal control', {'wage': 244499, 'periods': 26, 'status': 'hoh', 'step2': False, 'credits': 305778, 'other_income': 170107, 'deductions': 0, 'extra': 0}, [18656, 6895]), ('normal control', {'wage': 250357, 'periods': 52, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [31632, 34132]), ('normal control', {'wage': 251742, 'periods': 52, 'status': 'hoh', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 392790, 'extra': 0}, [23568, 23568])], [('regression', {'wage': 117375, 'periods': 24, 'status': 'hoh', 'step2': True, 'credits': 546474, 'other_income': 0, 'deductions': 599256, 'extra': 0}, [5261, 0]), ('regression', {'wage': 121406, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 1123754, 'deductions': 405924, 'extra': 0}, [12030, 0]), ('partial-repair probe', {'wage': 228867, 'periods': 52, 'status': 'single', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [38628, 38628]), ('partial-repair probe', {'wage': 176, 'periods': 12, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 1390591, 'deductions': 0, 'extra': 0}, [398, 398]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 290758, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 1100573, 'deductions': 944056, 'extra': 0}, [26644, 26644]), ('normal control', {'wage': 76761, 'periods': 52, 'status': 'hoh', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [4003, 2500]), ('normal control', {'wage': 451331, 'periods': 52, 'status': 'mfj', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [54220, 54220]), ('normal control', {'wage': 37554, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 695042, 'extra': 0}, [0, 0])]]\nfor i, (label, args, expected) in enumerate(fixtures[N-1]):\n    check(\"%s %d\" % (label, i), 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"},"fixed":{"sha256":"c2a049a6e0a8d94eb0ef2ea39ee3eb56e4471d5f51b9da23c637f7e434f6e9fe","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    p = x['periods']\n    annual = x['wage'] * p + x['other_income']\n    base_std = {'single': 860000, 'mfj': 1290000, 'hoh': 860000}[x['status']]\n    ded = (base_std // 2 if x['step2'] else base_std) + x['deductions']\n    taxable = max(0, annual - ded)\n    unit = {'single': 2, 'mfj': 4, 'hoh': 3}[x['status']]\n    div = 4 if x['step2'] else 2\n    bounds = [700000 * unit // div, 3000000 * unit // div, 9000000 * unit // div]\n    rates = [10, 12, 22]\n    tax = 0\n    for i, lo in enumerate(bounds):\n        hi = bounds[i + 1] if i + 1 < len(bounds) else taxable\n        if taxable > lo:\n            tax += (min(taxable, hi) - lo) * rates[i]\n    tentative = (tax * 2 + 100 * p) // (200 * p)\n    credit_pp = (x['credits'] * 2 + p) // (2 * p)\n    wh = max(0, tentative - credit_pp) + x['extra']\n    return [tentative, wh]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression', {'wage': 69636, 'periods': 24, 'status': 'hoh', 'step2': True, 'credits': 877725, 'other_income': 1721162, 'deductions': 1014955, 'extra': 0}, [5927, 0]), ('regression', {'wage': 285367, 'periods': 52, 'status': 'hoh', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 1182238, 'extra': 2500}, [41104, 43604]), ('partial-repair probe', {'wage': 492438, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 400000, 'other_income': 131536, 'deductions': 0, 'extra': 0}, [59948, 26615]), ('partial-repair probe', {'wage': 170108, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 167672, 'deductions': 0, 'extra': 0}, [12373, 0]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 4942, 'periods': 12, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 1831505, 'deductions': 0, 'extra': 8860}, [2757, 8860]), ('normal control', {'wage': 111690, 'periods': 26, 'status': 'mfj', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [823, 823]), ('normal control', {'wage': 67447, 'periods': 24, 'status': 'mfj', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [0, 2500]), ('normal control', {'wage': 1041418, 'periods': 24, 'status': 'hoh', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [156854, 159354])], [('regression', {'wage': 285367, 'periods': 52, 'status': 'hoh', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 1182238, 'extra': 2500}, [41104, 43604]), ('regression', {'wage': 178354, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 112718, 'extra': 0}, [12905, 12905]), ('partial-repair probe', {'wage': 170108, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 167672, 'deductions': 0, 'extra': 0}, [12373, 0]), ('partial-repair probe', {'wage': 124748, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [7302, 7302]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 245742, 'periods': 24, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [19772, 22272]), ('normal control', {'wage': 196398, 'periods': 12, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [6640, 6640]), ('normal control', {'wage': 64669, 'periods': 24, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [0, 2500]), ('normal control', {'wage': 232685, 'periods': 52, 'status': 'mfj', 'step2': False, 'credits': 200000, 'other_income': 0, 'deductions': 479252, 'extra': 0}, [18839, 14993])], [('regression', {'wage': 178354, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 112718, 'extra': 0}, [12905, 12905]), ('regression', {'wage': 205442, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 1801669, 'deductions': 1137902, 'extra': 0}, [21574, 4907]), ('partial-repair probe', {'wage': 124748, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [7302, 7302]), ('partial-repair probe', {'wage': 90292, 'periods': 52, 'status': 'hoh', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [7968, 10468]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 79014, 'periods': 24, 'status': 'mfj', 'step2': False, 'credits': 400000, 'other_income': 1864011, 'deductions': 0, 'extra': 0}, [4460, 0]), ('normal control', {'wage': 322003, 'periods': 12, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [19207, 21707]), ('normal control', {'wage': 93316, 'periods': 12, 'status': 'mfj', 'step2': False, 'credits': 200000, 'other_income': 1111591, 'deductions': 0, 'extra': 1563}, [0, 1563]), ('normal control', {'wage': 37313, 'periods': 52, 'status': 'mfj', 'step2': False, 'credits': 117737, 'other_income': 1320234, 'deductions': 0, 'extra': 5664}, [1097, 5664])], [('regression', {'wage': 205442, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 1801669, 'deductions': 1137902, 'extra': 0}, [21574, 4907]), ('regression', {'wage': 117375, 'periods': 24, 'status': 'hoh', 'step2': True, 'credits': 546474, 'other_income': 0, 'deductions': 599256, 'extra': 0}, [5261, 0]), ('partial-repair probe', {'wage': 142479, 'periods': 52, 'status': 'hoh', 'step2': True, 'credits': 551126, 'other_income': 0, 'deductions': 0, 'extra': 3806}, [14670, 7877]), ('partial-repair probe', {'wage': 606158, 'periods': 26, 'status': 'hoh', 'step2': True, 'credits': 0, 'other_income': 1548001, 'deductions': 0, 'extra': 0}, [113103, 113103]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 179669, 'periods': 52, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [17076, 17076]), ('normal control', {'wage': 244499, 'periods': 26, 'status': 'hoh', 'step2': False, 'credits': 305778, 'other_income': 170107, 'deductions': 0, 'extra': 0}, [18656, 6895]), ('normal control', {'wage': 250357, 'periods': 52, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [31632, 34132]), ('normal control', {'wage': 251742, 'periods': 52, 'status': 'hoh', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 392790, 'extra': 0}, [23568, 23568])], [('regression', {'wage': 117375, 'periods': 24, 'status': 'hoh', 'step2': True, 'credits': 546474, 'other_income': 0, 'deductions': 599256, 'extra': 0}, [5261, 0]), ('regression', {'wage': 121406, 'periods': 12, 'status': 'single', 'step2': True, 'credits': 200000, 'other_income': 1123754, 'deductions': 405924, 'extra': 0}, [12030, 0]), ('partial-repair probe', {'wage': 228867, 'periods': 52, 'status': 'single', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [38628, 38628]), ('partial-repair probe', {'wage': 176, 'periods': 12, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 1390591, 'deductions': 0, 'extra': 0}, [398, 398]), ('boundary control', {'wage': 0, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 5000}, [0, 5000]), ('normal control', {'wage': 290758, 'periods': 26, 'status': 'single', 'step2': False, 'credits': 0, 'other_income': 1100573, 'deductions': 944056, 'extra': 0}, [26644, 26644]), ('normal control', {'wage': 76761, 'periods': 52, 'status': 'hoh', 'step2': False, 'credits': 400000, 'other_income': 0, 'deductions': 0, 'extra': 2500}, [4003, 2500]), ('normal control', {'wage': 451331, 'periods': 52, 'status': 'mfj', 'step2': False, 'credits': 0, 'other_income': 0, 'deductions': 0, 'extra': 0}, [54220, 54220]), ('normal control', {'wage': 37554, 'periods': 26, 'status': 'mfj', 'step2': True, 'credits': 0, 'other_income': 0, 'deductions': 695042, 'extra': 0}, [0, 0])]]\nfor i, (label, args, expected) in enumerate(fixtures[N-1]):\n    check(\"%s %d\" % (label, i), 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 teaching model of a stipulated payroll rule with toy thresholds and rates. It makes no claim of conformance to any tax authority, statute or jurisdiction and is not payroll software. 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-payroll-withholding-w4-step-adjustments-step-2-deduction-scope","generated_at":"2026-09-29T14:46:31.330646+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Modern W-4 withholding combines annual adjustments with per-period ones, and the order of flooring and adding extra withholding matters.","repair":"Restore the contract rule at the step 2 deduction scope step: use `ded = (base_std // 2 if x['step2'] else base_std) + x['deductions']`.","root_cause":"The step 2 halving is applied to the itemized step 4(b) deductions as well as the standard allowance.","sha256":"83c2b640a7d7d74b7d6b1eae66cf154ff2a0e1426d1ca89f12e69c7bb1a9fc4f","title":"W-4 step adjustment withholding: step 2 deduction scope · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.113,"exit_code":1,"observations":[{"actual":[4135,0],"check":"regression 0","expected":[5927,0],"passed":false},{"actual":[39285,41785],"check":"regression 1","expected":[41104,43604],"passed":false},{"actual":[52065,18732],"check":"partial-repair probe 2","expected":[59948,26615],"passed":false},{"actual":[8325,0],"check":"partial-repair probe 3","expected":[12373,0],"passed":false},{"actual":[0,5000],"check":"boundary control 4","expected":[0,5000],"passed":true},{"actual":[2757,8860],"check":"normal control 5","expected":[2757,8860],"passed":true},{"actual":[823,823],"check":"normal control 6","expected":[823,823],"passed":true},{"actual":[0,2500],"check":"normal control 7","expected":[0,2500],"passed":true},{"actual":[156854,159354],"check":"normal control 8","expected":[156854,159354],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression 0\", \"actual\": [4135, 0], \"expected\": [5927, 0], \"passed\": false}, {\"check\": \"regression 1\", \"actual\": [39285, 41785], \"expected\": [41104, 43604], \"passed\": false}, {\"check\": \"partial-repair probe 2\", \"actual\": [52065, 18732], \"expected\": [59948, 26615], \"passed\": false}, {\"check\": \"partial-repair probe 3\", \"actual\": [8325, 0], \"expected\": [12373, 0], \"passed\": false}, {\"check\": \"boundary control 4\", \"actual\": [0, 5000], \"expected\": [0, 5000], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [2757, 8860], \"expected\": [2757, 8860], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [823, 823], \"expected\": [823, 823], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [0, 2500], \"expected\": [0, 2500], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [156854, 159354], \"expected\": [156854, 159354], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.496,"exit_code":1,"observations":[{"actual":[8212,0],"check":"regression 0","expected":[5927,0],"passed":false},{"actual":[43605,46105],"check":"regression 1","expected":[41104,43604],"passed":false},{"actual":[59948,26615],"check":"partial-repair probe 2","expected":[59948,26615],"passed":true},{"actual":[12373,0],"check":"partial-repair probe 3","expected":[12373,0],"passed":true},{"actual":[0,5000],"check":"boundary control 4","expected":[0,5000],"passed":true},{"actual":[2757,8860],"check":"normal control 5","expected":[2757,8860],"passed":true},{"actual":[823,823],"check":"normal control 6","expected":[823,823],"passed":true},{"actual":[0,2500],"check":"normal control 7","expected":[0,2500],"passed":true},{"actual":[156854,159354],"check":"normal control 8","expected":[156854,159354],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression 0\", \"actual\": [8212, 0], \"expected\": [5927, 0], \"passed\": false}, {\"check\": \"regression 1\", \"actual\": [43605, 46105], \"expected\": [41104, 43604], \"passed\": false}, {\"check\": \"partial-repair probe 2\", \"actual\": [59948, 26615], \"expected\": [59948, 26615], \"passed\": true}, {\"check\": \"partial-repair probe 3\", \"actual\": [12373, 0], \"expected\": [12373, 0], \"passed\": true}, {\"check\": \"boundary control 4\", \"actual\": [0, 5000], \"expected\": [0, 5000], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [2757, 8860], \"expected\": [2757, 8860], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [823, 823], \"expected\": [823, 823], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [0, 2500], \"expected\": [0, 2500], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [156854, 159354], \"expected\": [156854, 159354], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.095,"exit_code":0,"observations":[{"actual":[5927,0],"check":"regression 0","expected":[5927,0],"passed":true},{"actual":[41104,43604],"check":"regression 1","expected":[41104,43604],"passed":true},{"actual":[59948,26615],"check":"partial-repair probe 2","expected":[59948,26615],"passed":true},{"actual":[12373,0],"check":"partial-repair probe 3","expected":[12373,0],"passed":true},{"actual":[0,5000],"check":"boundary control 4","expected":[0,5000],"passed":true},{"actual":[2757,8860],"check":"normal control 5","expected":[2757,8860],"passed":true},{"actual":[823,823],"check":"normal control 6","expected":[823,823],"passed":true},{"actual":[0,2500],"check":"normal control 7","expected":[0,2500],"passed":true},{"actual":[156854,159354],"check":"normal control 8","expected":[156854,159354],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression 0\", \"actual\": [5927, 0], \"expected\": [5927, 0], \"passed\": true}, {\"check\": \"regression 1\", \"actual\": [41104, 43604], \"expected\": [41104, 43604], \"passed\": true}, {\"check\": \"partial-repair probe 2\", \"actual\": [59948, 26615], \"expected\": [59948, 26615], \"passed\": true}, {\"check\": \"partial-repair probe 3\", \"actual\": [12373, 0], \"expected\": [12373, 0], \"passed\": true}, {\"check\": \"boundary control 4\", \"actual\": [0, 5000], \"expected\": [0, 5000], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [2757, 8860], \"expected\": [2757, 8860], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [823, 823], \"expected\": [823, 823], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [0, 2500], \"expected\": [0, 2500], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [156854, 159354], \"expected\": [156854, 159354], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}