{"abstract":"Some thresholds are 50 higher than the published figure.","category":"Tax bracket computation","checks":6,"contract":"solve(base, factors): base is a list of statutory thresholds; factors are yearly inflation factors (decimal strings). For every year, a threshold is the base times the cumulative product of factors so far, rounded DOWN to a multiple of 50 (indexing always starts again from the unrounded base, never from a previously rounded value). A threshold may never fall below its previous year's value. Return the final-year thresholds.","contract_signature":"base, factors","evaluation_group":"w2-tax_bracket_computation-threshold-inflation-indexing","failed_approach":"Rounding up is the opposite of the stipulated downward rounding.","family":"w2-tax_bracket_computation-threshold-inflation-indexing-rounding-direction","id":"FA-62406","implementations":{"attempt":{"sha256":"fec15bf7406ab58005242c0b204a5ed804cbcd613b980a77acf91bdc69077edd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_FLOOR, ROUND_CEILING, ROUND_DOWN\nN = 1\nobservations = []\ndef solve(base, factors):\n    out = []\n    for t in base:\n        cum, prev = Decimal(1), t\n        for f in factors:\n            cum *= Decimal(f)\n            v = int((t * cum / 50).to_integral_value(rounding=ROUND_CEILING)) * 50\n            prev = max(prev, v)\n        out.append(prev)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression rounding-direction 1', ([10000, 40000], ['1.031', '1.029']), [10600, 42400]),\n  ('regression rounding-direction 2', ([10000], ['1.0049', '1.0049']), [10050]),\n  ('control: deflation year', ([10000], ['1.02', '0.97']), [10200]),\n  ('control: unrounded base', ([10025], ['1']), [10025]), ('control: no years', ([11600, 47150], []), [11600, 47150]),\n  ('control: three years', ([47150, 100525, 191950], ['1.054', '1.032', '1.028']), [52700, 112400, 214600])],\n [('regression rounding-direction 1', ([10025], ['1']), [10025]),\n  ('regression rounding-direction 2', ([47150, 100525, 191950], ['1.054', '1.032', '1.028']), [52700, 112400, 214600]),\n  ('control: no years', ([11600, 47150], []), [11600, 47150]),\n  ('control: two years', ([10000, 40000], ['1.031', '1.029']), [10600, 42400]),\n  ('control: small compounding', ([10000], ['1.0049', '1.0049']), [10050]),\n  ('control: deflation year', ([10000], ['1.02', '0.97']), [10200])],\n [('regression rounding-direction 1', ([243725, 11600], ['0.9717', '1.0752']), [254600, 12100]),\n  ('regression rounding-direction 2', ([102361], ['0.9751', '1.0398']), [103750]),\n  ('partial repair guard 1', ([47150, 47150, 609350], ['0.9826', '1.0776']), [49900, 49900, 645200]),\n  ('control: two years', ([10000, 40000], ['1.031', '1.029']), [10600, 42400]),\n  ('control: small compounding', ([10000], ['1.0049', '1.0049']), [10050]),\n  ('control: deflation year', ([10000], ['1.02', '0.97']), [10200]),\n  ('control: unrounded base', ([10025], ['1']), [10025])],\n [('regression rounding-direction 1', ([10000, 100525, 11600], ['1.0397']), [10350, 104500, 12050]),\n  ('regression rounding-direction 2', ([11600], ['0.9966', '1.0602', '1.0714', '1.0361', '1.0508']), [14250]),\n  ('partial repair guard 1', ([102361], ['0.9751', '1.0398']), [103750]),\n  ('control: unrounded base', ([10025], ['1']), [10025]), ('control: no years', ([11600, 47150], []), [11600, 47150]),\n  ('control: three years', ([47150, 100525, 191950], ['1.054', '1.032', '1.028']), [52700, 112400, 214600]),\n  ('control: two years', ([10000, 40000], ['1.031', '1.029']), [10600, 42400])],\n [('regression rounding-direction 1', ([354067, 11600, 609350], ['1.0605']), [375450, 12300, 646200]),\n  ('regression rounding-direction 2', ([191950, 100525], ['1.0054']), [192950, 101050]),\n  ('partial repair guard 1', ([11600], ['1.0439', '0.9870', '1.0302']), [12300]),\n  ('partial repair guard 2', ([11600], ['0.9966', '1.0602', '1.0714', '1.0361', '1.0508']), [14250]),\n  ('control: two years', ([10000, 40000], ['1.031', '1.029']), [10600, 42400]),\n  ('control: small compounding', ([10000], ['1.0049', '1.0049']), [10050]),\n  ('control: deflation year', ([10000], ['1.02', '0.97']), [10200]),\n  ('control: unrounded base', ([10025], ['1']), [10025])]]\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":"6c9d8a8f0a060e83672d4b62849d16924487c9593444f3346eefc9b6e0e6ac40","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_FLOOR, ROUND_CEILING, ROUND_DOWN\nN = 1\nobservations = []\ndef solve(base, factors):\n    out = []\n    for t in base:\n        cum, prev = Decimal(1), t\n        for f in factors:\n            cum *= Decimal(f)\n            v = int((t * cum / 50).to_integral_value(rounding=ROUND_HALF_UP)) * 50\n            prev = max(prev, v)\n        out.append(prev)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression rounding-direction 1', ([10000, 40000], ['1.031', '1.029']), [10600, 42400]),\n  ('regression rounding-direction 2', ([10000], ['1.0049', '1.0049']), [10050]),\n  ('control: deflation year', ([10000], ['1.02', '0.97']), [10200]),\n  ('control: unrounded base', ([10025], ['1']), [10025]), ('control: no years', ([11600, 47150], []), [11600, 47150]),\n  ('control: three years', ([47150, 100525, 191950], ['1.054', '1.032', '1.028']), [52700, 112400, 214600])],\n [('regression rounding-direction 1', ([10025], ['1']), [10025]),\n  ('regression rounding-direction 2', ([47150, 100525, 191950], ['1.054', '1.032', '1.028']), [52700, 112400, 214600]),\n  ('control: no years', ([11600, 47150], []), [11600, 47150]),\n  ('control: two years', ([10000, 40000], ['1.031', '1.029']), [10600, 42400]),\n  ('control: small compounding', ([10000], ['1.0049', '1.0049']), [10050]),\n  ('control: deflation year', ([10000], ['1.02', '0.97']), [10200])],\n [('regression rounding-direction 1', ([243725, 11600], ['0.9717', '1.0752']), [254600, 12100]),\n  ('regression rounding-direction 2', ([102361], ['0.9751', '1.0398']), [103750]),\n  ('partial repair guard 1', ([47150, 47150, 609350], ['0.9826', '1.0776']), [49900, 49900, 645200]),\n  ('control: two years', ([10000, 40000], ['1.031', '1.029']), [10600, 42400]),\n  ('control: small compounding', ([10000], ['1.0049', '1.0049']), [10050]),\n  ('control: deflation year', ([10000], ['1.02', '0.97']), [10200]),\n  ('control: unrounded base', ([10025], ['1']), [10025])],\n [('regression rounding-direction 1', ([10000, 100525, 11600], ['1.0397']), [10350, 104500, 12050]),\n  ('regression rounding-direction 2', ([11600], ['0.9966', '1.0602', '1.0714', '1.0361', '1.0508']), [14250]),\n  ('partial repair guard 1', ([102361], ['0.9751', '1.0398']), [103750]),\n  ('control: unrounded base', ([10025], ['1']), [10025]), ('control: no years', ([11600, 47150], []), [11600, 47150]),\n  ('control: three years', ([47150, 100525, 191950], ['1.054', '1.032', '1.028']), [52700, 112400, 214600]),\n  ('control: two years', ([10000, 40000], ['1.031', '1.029']), [10600, 42400])],\n [('regression rounding-direction 1', ([354067, 11600, 609350], ['1.0605']), [375450, 12300, 646200]),\n  ('regression rounding-direction 2', ([191950, 100525], ['1.0054']), [192950, 101050]),\n  ('partial repair guard 1', ([11600], ['1.0439', '0.9870', '1.0302']), [12300]),\n  ('partial repair guard 2', ([11600], ['0.9966', '1.0602', '1.0714', '1.0361', '1.0508']), [14250]),\n  ('control: two years', ([10000, 40000], ['1.031', '1.029']), [10600, 42400]),\n  ('control: small compounding', ([10000], ['1.0049', '1.0049']), [10050]),\n  ('control: deflation year', ([10000], ['1.02', '0.97']), [10200]),\n  ('control: unrounded base', ([10025], ['1']), [10025])]]\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-threshold-inflation-indexing-rounding-direction","generated_at":"2026-09-29T14:47:04.369064+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":"Indexed values are rounded half-up to a multiple of 50.","sha256":"ba674ae0d75714683aa88339ccd5f104a03335c7c4f7b39215de5f997eb1c8c9","title":"Indexed thresholds are rounded to the nearest 50 instead of down · 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.957,"exit_code":1,"observations":[{"actual":[10650,42450],"check":"regression rounding-direction 1","expected":[10600,42400],"passed":false},{"actual":[10100],"check":"regression rounding-direction 2","expected":[10050],"passed":false},{"actual":[10200],"check":"control: deflation year","expected":[10200],"passed":true},{"actual":[10050],"check":"control: unrounded base","expected":[10025],"passed":false},{"actual":[11600,47150],"check":"control: no years","expected":[11600,47150],"passed":true},{"actual":[52750,112450,214650],"check":"control: three years","expected":[52700,112400,214600],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression rounding-direction 1\", \"actual\": [10650, 42450], \"expected\": [10600, 42400], \"passed\": false}, {\"check\": \"regression rounding-direction 2\", \"actual\": [10100], \"expected\": [10050], \"passed\": false}, {\"check\": \"control: deflation year\", \"actual\": [10200], \"expected\": [10200], \"passed\": true}, {\"check\": \"control: unrounded base\", \"actual\": [10050], \"expected\": [10025], \"passed\": false}, {\"check\": \"control: no years\", \"actual\": [11600, 47150], \"expected\": [11600, 47150], \"passed\": true}, {\"check\": \"control: three years\", \"actual\": [52750, 112450, 214650], \"expected\": [52700, 112400, 214600], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.231,"exit_code":1,"observations":[{"actual":[10600,42450],"check":"regression rounding-direction 1","expected":[10600,42400],"passed":false},{"actual":[10100],"check":"regression rounding-direction 2","expected":[10050],"passed":false},{"actual":[10200],"check":"control: deflation year","expected":[10200],"passed":true},{"actual":[10050],"check":"control: unrounded base","expected":[10025],"passed":false},{"actual":[11600,47150],"check":"control: no years","expected":[11600,47150],"passed":true},{"actual":[52700,112400,214650],"check":"control: three years","expected":[52700,112400,214600],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression rounding-direction 1\", \"actual\": [10600, 42450], \"expected\": [10600, 42400], \"passed\": false}, {\"check\": \"regression rounding-direction 2\", \"actual\": [10100], \"expected\": [10050], \"passed\": false}, {\"check\": \"control: deflation year\", \"actual\": [10200], \"expected\": [10200], \"passed\": true}, {\"check\": \"control: unrounded base\", \"actual\": [10050], \"expected\": [10025], \"passed\": false}, {\"check\": \"control: no years\", \"actual\": [11600, 47150], \"expected\": [11600, 47150], \"passed\": true}, {\"check\": \"control: three years\", \"actual\": [52700, 112400, 214650], \"expected\": [52700, 112400, 214600], \"passed\": false}], \"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."}}