{"abstract":"Winners are taxed on their own stake.","category":"Betting odds conversion","checks":8,"contract":"Withholding on a settled winning bet. Net winnings = return - stake. If net winnings strictly exceed the threshold, the whole net winnings (not only the excess) are taxed at rate_pct, rounded half up to a cent; otherwise no tax. Return [tax, payout after tax].","contract_signature":"stake_cents, return_cents, threshold_cents, rate_pct","evaluation_group":"w2-odds-conversion-winnings-tax-withholding","failed_approach":"Taxing net winnings but testing the threshold on the gross return taxes bets whose winnings are below it.","family":"w2-odds-conversion-winnings-tax-withholding-tax-base","id":"FA-84811","implementations":{"attempt":{"sha256":"ef97e9a86bfcc87870705586b468786752eec28cea2da9602cbf66c4f57ec470","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(stake_cents, return_cents, threshold_cents, rate_pct):\n    net = return_cents - stake_cents\n    tax = 0\n    if return_cents > threshold_cents:\n        tax = math.floor(net * Fraction(rate_pct) / 100 + Fraction(1, 2))\n    return [tax, return_cents - tax]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control below threshold', (1000, 50000, 60000, '15'), [0, 50000]),\n  ('boundary exactly threshold', (1000, 61000, 60000, '15'), [0, 61000]),\n  ('boundary one cent above', (1000, 61001, 60000, '15'), [9000, 52001]),\n  ('control losing bet', (1000, 0, 60000, '15'), [0, 0]),\n  ('control large win', (5000, 105000, 60000, '20'), [20000, 85000]),\n  ('regression: tax base', (1000, 60999, 60000, '20'), [0, 60999]),\n  ('variant scenario 1', (1000, 0, 60000, '20'), [0, 0]),\n  ('variant scenario 2', (5000, 53181, 60000, '15'), [0, 53181])],\n [('control below threshold', (1000, 50000, 60000, '15'), [0, 50000]),\n  ('boundary exactly threshold', (1000, 61000, 60000, '15'), [0, 61000]),\n  ('boundary one cent above', (1000, 61001, 60000, '15'), [9000, 52001]),\n  ('control losing bet', (1000, 0, 60000, '15'), [0, 0]),\n  ('control large win', (5000, 105000, 60000, '20'), [20000, 85000]),\n  ('regression: tax base', (1000, 61050, 60000, '20'), [12010, 49040]),\n  ('regression: tax base', (5000, 64999, 60000, '15'), [0, 64999]),\n  ('variant scenario 1', (20000, 0, 60000, '15'), [0, 0]),\n  ('variant scenario 2', (100, 60150, 60000, '12.5'), [7506, 52644])],\n [('control below threshold', (1000, 50000, 60000, '15'), [0, 50000]),\n  ('boundary exactly threshold', (1000, 61000, 60000, '15'), [0, 61000]),\n  ('boundary one cent above', (1000, 61001, 60000, '15'), [9000, 52001]),\n  ('control losing bet', (1000, 0, 60000, '15'), [0, 0]),\n  ('control large win', (5000, 105000, 60000, '20'), [20000, 85000]),\n  ('regression: tax base', (1000, 61001, 60000, '15'), [9000, 52001]),\n  ('regression: tax base', (5000, 64999, 60000, '12.5'), [0, 64999]),\n  ('variant scenario 1', (20000, 80000, 60000, '15'), [0, 80000]),\n  ('variant scenario 2', (1000, 15646, 60000, '20'), [0, 15646])],\n [('control below threshold', (1000, 50000, 60000, '15'), [0, 50000]),\n  ('boundary exactly threshold', (1000, 61000, 60000, '15'), [0, 61000]),\n  ('boundary one cent above', (1000, 61001, 60000, '15'), [9000, 52001]),\n  ('control losing bet', (1000, 0, 60000, '15'), [0, 0]),\n  ('control large win', (5000, 105000, 60000, '20'), [20000, 85000]),\n  ('regression: tax base', (100, 60099, 60000, '20'), [0, 60099]),\n  ('variant scenario 1', (5000, 64999, 60000, '12.5'), [0, 64999]),\n  ('variant scenario 2', (1000, 61001, 60000, '20'), [12000, 49001])],\n [('control below threshold', (1000, 50000, 60000, '15'), [0, 50000]),\n  ('boundary exactly threshold', (1000, 61000, 60000, '15'), [0, 61000]),\n  ('boundary one cent above', (1000, 61001, 60000, '15'), [9000, 52001]),\n  ('control losing bet', (1000, 0, 60000, '15'), [0, 0]),\n  ('control large win', (5000, 105000, 60000, '20'), [20000, 85000]),\n  ('regression: tax base', (5000, 109425, 60000, '20'), [20885, 88540]),\n  ('regression: tax base', (5000, 64999, 60000, '15'), [0, 64999]),\n  ('variant scenario 1', (5000, 5000, 60000, '12.5'), [0, 5000]),\n  ('variant scenario 2', (1000, 154790, 60000, '20'), [30758, 124032])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(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":"3ec98fe78b7b127cb0de27a2047c2a29154e8cf39af95099b58dc4e60bb739c3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(stake_cents, return_cents, threshold_cents, rate_pct):\n    net = return_cents - stake_cents\n    tax = 0\n    if return_cents > threshold_cents:\n        tax = math.floor(return_cents * Fraction(rate_pct) / 100 + Fraction(1, 2))\n    return [tax, return_cents - tax]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control below threshold', (1000, 50000, 60000, '15'), [0, 50000]),\n  ('boundary exactly threshold', (1000, 61000, 60000, '15'), [0, 61000]),\n  ('boundary one cent above', (1000, 61001, 60000, '15'), [9000, 52001]),\n  ('control losing bet', (1000, 0, 60000, '15'), [0, 0]),\n  ('control large win', (5000, 105000, 60000, '20'), [20000, 85000]),\n  ('regression: tax base', (1000, 60999, 60000, '20'), [0, 60999]),\n  ('variant scenario 1', (1000, 0, 60000, '20'), [0, 0]),\n  ('variant scenario 2', (5000, 53181, 60000, '15'), [0, 53181])],\n [('control below threshold', (1000, 50000, 60000, '15'), [0, 50000]),\n  ('boundary exactly threshold', (1000, 61000, 60000, '15'), [0, 61000]),\n  ('boundary one cent above', (1000, 61001, 60000, '15'), [9000, 52001]),\n  ('control losing bet', (1000, 0, 60000, '15'), [0, 0]),\n  ('control large win', (5000, 105000, 60000, '20'), [20000, 85000]),\n  ('regression: tax base', (1000, 61050, 60000, '20'), [12010, 49040]),\n  ('regression: tax base', (5000, 64999, 60000, '15'), [0, 64999]),\n  ('variant scenario 1', (20000, 0, 60000, '15'), [0, 0]),\n  ('variant scenario 2', (100, 60150, 60000, '12.5'), [7506, 52644])],\n [('control below threshold', (1000, 50000, 60000, '15'), [0, 50000]),\n  ('boundary exactly threshold', (1000, 61000, 60000, '15'), [0, 61000]),\n  ('boundary one cent above', (1000, 61001, 60000, '15'), [9000, 52001]),\n  ('control losing bet', (1000, 0, 60000, '15'), [0, 0]),\n  ('control large win', (5000, 105000, 60000, '20'), [20000, 85000]),\n  ('regression: tax base', (1000, 61001, 60000, '15'), [9000, 52001]),\n  ('regression: tax base', (5000, 64999, 60000, '12.5'), [0, 64999]),\n  ('variant scenario 1', (20000, 80000, 60000, '15'), [0, 80000]),\n  ('variant scenario 2', (1000, 15646, 60000, '20'), [0, 15646])],\n [('control below threshold', (1000, 50000, 60000, '15'), [0, 50000]),\n  ('boundary exactly threshold', (1000, 61000, 60000, '15'), [0, 61000]),\n  ('boundary one cent above', (1000, 61001, 60000, '15'), [9000, 52001]),\n  ('control losing bet', (1000, 0, 60000, '15'), [0, 0]),\n  ('control large win', (5000, 105000, 60000, '20'), [20000, 85000]),\n  ('regression: tax base', (100, 60099, 60000, '20'), [0, 60099]),\n  ('variant scenario 1', (5000, 64999, 60000, '12.5'), [0, 64999]),\n  ('variant scenario 2', (1000, 61001, 60000, '20'), [12000, 49001])],\n [('control below threshold', (1000, 50000, 60000, '15'), [0, 50000]),\n  ('boundary exactly threshold', (1000, 61000, 60000, '15'), [0, 61000]),\n  ('boundary one cent above', (1000, 61001, 60000, '15'), [9000, 52001]),\n  ('control losing bet', (1000, 0, 60000, '15'), [0, 0]),\n  ('control large win', (5000, 105000, 60000, '20'), [20000, 85000]),\n  ('regression: tax base', (5000, 109425, 60000, '20'), [20885, 88540]),\n  ('regression: tax base', (5000, 64999, 60000, '15'), [0, 64999]),\n  ('variant scenario 1', (5000, 5000, 60000, '12.5'), [0, 5000]),\n  ('variant scenario 2', (1000, 154790, 60000, '20'), [30758, 124032])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(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":"Stipulated, bounded toy contract stated in the contract field; not a claim of conformance with any operator, exchange or regulator rule set. 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-odds-conversion-winnings-tax-withholding-tax-base","generated_at":"2026-09-29T14:50:34.548002+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Operators in taxed jurisdictions withhold on net winnings above a reporting threshold.","root_cause":"The tax base and threshold use the gross return instead of net winnings.","sha256":"f5224644c13c78b3cec4570d3a3549f5de8f704b967303411d5584a22c315cbe","title":"Tax computed on the gross return · 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":43.429,"exit_code":1,"observations":[{"actual":[0,50000],"check":"control below threshold","expected":[0,50000],"passed":true},{"actual":[9000,52000],"check":"boundary exactly threshold","expected":[0,61000],"passed":false},{"actual":[9000,52001],"check":"boundary one cent above","expected":[9000,52001],"passed":true},{"actual":[0,0],"check":"control losing bet","expected":[0,0],"passed":true},{"actual":[20000,85000],"check":"control large win","expected":[20000,85000],"passed":true},{"actual":[12000,48999],"check":"regression: tax base","expected":[0,60999],"passed":false},{"actual":[0,0],"check":"variant scenario 1","expected":[0,0],"passed":true},{"actual":[0,53181],"check":"variant scenario 2","expected":[0,53181],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control below threshold\", \"actual\": [0, 50000], \"expected\": [0, 50000], \"passed\": true}, {\"check\": \"boundary exactly threshold\", \"actual\": [9000, 52000], \"expected\": [0, 61000], \"passed\": false}, {\"check\": \"boundary one cent above\", \"actual\": [9000, 52001], \"expected\": [9000, 52001], \"passed\": true}, {\"check\": \"control losing bet\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"control large win\", \"actual\": [20000, 85000], \"expected\": [20000, 85000], \"passed\": true}, {\"check\": \"regression: tax base\", \"actual\": [12000, 48999], \"expected\": [0, 60999], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [0, 53181], \"expected\": [0, 53181], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.37,"exit_code":1,"observations":[{"actual":[0,50000],"check":"control below threshold","expected":[0,50000],"passed":true},{"actual":[9150,51850],"check":"boundary exactly threshold","expected":[0,61000],"passed":false},{"actual":[9150,51851],"check":"boundary one cent above","expected":[9000,52001],"passed":false},{"actual":[0,0],"check":"control losing bet","expected":[0,0],"passed":true},{"actual":[21000,84000],"check":"control large win","expected":[20000,85000],"passed":false},{"actual":[12200,48799],"check":"regression: tax base","expected":[0,60999],"passed":false},{"actual":[0,0],"check":"variant scenario 1","expected":[0,0],"passed":true},{"actual":[0,53181],"check":"variant scenario 2","expected":[0,53181],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control below threshold\", \"actual\": [0, 50000], \"expected\": [0, 50000], \"passed\": true}, {\"check\": \"boundary exactly threshold\", \"actual\": [9150, 51850], \"expected\": [0, 61000], \"passed\": false}, {\"check\": \"boundary one cent above\", \"actual\": [9150, 51851], \"expected\": [9000, 52001], \"passed\": false}, {\"check\": \"control losing bet\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"control large win\", \"actual\": [21000, 84000], \"expected\": [20000, 85000], \"passed\": false}, {\"check\": \"regression: tax base\", \"actual\": [12200, 48799], \"expected\": [0, 60999], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [0, 53181], \"expected\": [0, 53181], \"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."}}