{"abstract":"Dividends are tiny, or slightly too high.","category":"Betting odds conversion","checks":8,"contract":"Pari-mutuel win dividend per unit stake. The net pool is pool * (100 - takeout_pct) / 100; with a dead heat it is split equally among the winning runners. Each runner's dividend is its share divided by the stakes on it, broken down to the 10-cent step below (breakage), with a minimum of 1.10. A winner with no stakes gets None. Return dividends as \"D.D0\" strings in winners order.","contract_signature":"pool_cents, takeout_pct, winners","evaluation_group":"w2-odds-conversion-tote-win-dividend","failed_approach":"Dividing by 1 + takeout removes less than the stated percentage.","family":"w2-odds-conversion-tote-win-dividend-takeout-application","id":"FA-84711","implementations":{"attempt":{"sha256":"4391fbea70e1291dfae0e3269da928a5a5ff68bfdff010fecc0fe5294aaa3e45","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(pool_cents, takeout_pct, winners):\n    net = Fraction(pool_cents) / (1 + Fraction(takeout_pct) / 100)\n    share = net / len(winners)\n    out = []\n    for s in winners:\n        if s == 0:\n            out.append(None)\n            continue\n        dimes = math.floor(share / s * 10)\n        dimes = max(dimes, 11)\n        out.append('%d.%d0' % (dimes // 10, dimes % 10))\n    return out\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 single winner', (100000, '15', [25000]), ['3.40']),\n  ('boundary breakage down', (100000, '16', [30000]), ['2.80']),\n  ('boundary minimum dividend', (100000, '20', [90000]), ['1.10']),\n  ('boundary dead heat split', (100000, '20', [10000, 40000]), ['4.00', '1.10']),\n  ('control unbacked winner', (100000, '15', [0]), [None]),\n  ('regression: takeout application',\n   (250000, '16', [12305, 5000, 116734]),\n   ['5.60', '14.00', '1.10']),\n  ('variant scenario 1', (20000, '20', [884, 13602]), ['9.00', '1.10']),\n  ('variant scenario 2', (50000, '20', [10000]), ['4.00'])],\n [('control single winner', (100000, '15', [25000]), ['3.40']),\n  ('boundary breakage down', (100000, '16', [30000]), ['2.80']),\n  ('boundary minimum dividend', (100000, '20', [90000]), ['1.10']),\n  ('boundary dead heat split', (100000, '20', [10000, 40000]), ['4.00', '1.10']),\n  ('control unbacked winner', (100000, '15', [0]), [None]),\n  ('regression: takeout application',\n   (1234500, '20', [564505, 846773, 5000]),\n   ['1.10', '1.10', '65.80']),\n  ('variant scenario 1', (20000, '20', [8118]), ['1.90']),\n  ('variant scenario 2', (1234500, '20', [10000, 40000, 1174709]), ['32.90', '8.20', '1.10'])],\n [('control single winner', (100000, '15', [25000]), ['3.40']),\n  ('boundary breakage down', (100000, '16', [30000]), ['2.80']),\n  ('boundary minimum dividend', (100000, '20', [90000]), ['1.10']),\n  ('boundary dead heat split', (100000, '20', [10000, 40000]), ['4.00', '1.10']),\n  ('control unbacked winner', (100000, '15', [0]), [None]),\n  ('regression: takeout application', (50000, '15', [11107]), ['3.80']),\n  ('variant scenario 1', (250000, '15', [0]), [None]),\n  ('variant scenario 2', (1234500, '16', [864394, 1059735, 1234500]), ['1.10', '1.10', '1.10'])],\n [('control single winner', (100000, '15', [25000]), ['3.40']),\n  ('boundary breakage down', (100000, '16', [30000]), ['2.80']),\n  ('boundary minimum dividend', (100000, '20', [90000]), ['1.10']),\n  ('boundary dead heat split', (100000, '20', [10000, 40000]), ['4.00', '1.10']),\n  ('control unbacked winner', (100000, '15', [0]), [None]),\n  ('regression: takeout application', (100000, '15', [1500, 91738]), ['28.30', '1.10']),\n  ('variant scenario 1', (100000, '15', [69872, 70392, 1500]), ['1.10', '1.10', '18.80']),\n  ('variant scenario 2', (1234500, '16', [555465]), ['1.80'])],\n [('control single winner', (100000, '15', [25000]), ['3.40']),\n  ('boundary breakage down', (100000, '16', [30000]), ['2.80']),\n  ('boundary minimum dividend', (100000, '20', [90000]), ['1.10']),\n  ('boundary dead heat split', (100000, '20', [10000, 40000]), ['4.00', '1.10']),\n  ('control unbacked winner', (100000, '15', [0]), [None]),\n  ('regression: takeout application', (1234500, '0', [617250, 390837]), ['1.10', '1.50']),\n  ('regression: takeout application', (20000, '16', [5000]), ['3.30']),\n  ('variant scenario 1', (100000, '16', [55428, 50000, 100000]), ['1.10', '1.10', '1.10']),\n  ('variant scenario 2', (50000, '16', [40497, 21355, 36633]), ['1.10', '1.10', '1.10'])]]\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":"0e24f4680088ec85d518c8a0ccc61e58c7fc6109dcbfddd65a563d486cf04b21","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(pool_cents, takeout_pct, winners):\n    net = Fraction(pool_cents) * Fraction(takeout_pct) / 100\n    share = net / len(winners)\n    out = []\n    for s in winners:\n        if s == 0:\n            out.append(None)\n            continue\n        dimes = math.floor(share / s * 10)\n        dimes = max(dimes, 11)\n        out.append('%d.%d0' % (dimes // 10, dimes % 10))\n    return out\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 single winner', (100000, '15', [25000]), ['3.40']),\n  ('boundary breakage down', (100000, '16', [30000]), ['2.80']),\n  ('boundary minimum dividend', (100000, '20', [90000]), ['1.10']),\n  ('boundary dead heat split', (100000, '20', [10000, 40000]), ['4.00', '1.10']),\n  ('control unbacked winner', (100000, '15', [0]), [None]),\n  ('regression: takeout application',\n   (250000, '16', [12305, 5000, 116734]),\n   ['5.60', '14.00', '1.10']),\n  ('variant scenario 1', (20000, '20', [884, 13602]), ['9.00', '1.10']),\n  ('variant scenario 2', (50000, '20', [10000]), ['4.00'])],\n [('control single winner', (100000, '15', [25000]), ['3.40']),\n  ('boundary breakage down', (100000, '16', [30000]), ['2.80']),\n  ('boundary minimum dividend', (100000, '20', [90000]), ['1.10']),\n  ('boundary dead heat split', (100000, '20', [10000, 40000]), ['4.00', '1.10']),\n  ('control unbacked winner', (100000, '15', [0]), [None]),\n  ('regression: takeout application',\n   (1234500, '20', [564505, 846773, 5000]),\n   ['1.10', '1.10', '65.80']),\n  ('variant scenario 1', (20000, '20', [8118]), ['1.90']),\n  ('variant scenario 2', (1234500, '20', [10000, 40000, 1174709]), ['32.90', '8.20', '1.10'])],\n [('control single winner', (100000, '15', [25000]), ['3.40']),\n  ('boundary breakage down', (100000, '16', [30000]), ['2.80']),\n  ('boundary minimum dividend', (100000, '20', [90000]), ['1.10']),\n  ('boundary dead heat split', (100000, '20', [10000, 40000]), ['4.00', '1.10']),\n  ('control unbacked winner', (100000, '15', [0]), [None]),\n  ('regression: takeout application', (50000, '15', [11107]), ['3.80']),\n  ('variant scenario 1', (250000, '15', [0]), [None]),\n  ('variant scenario 2', (1234500, '16', [864394, 1059735, 1234500]), ['1.10', '1.10', '1.10'])],\n [('control single winner', (100000, '15', [25000]), ['3.40']),\n  ('boundary breakage down', (100000, '16', [30000]), ['2.80']),\n  ('boundary minimum dividend', (100000, '20', [90000]), ['1.10']),\n  ('boundary dead heat split', (100000, '20', [10000, 40000]), ['4.00', '1.10']),\n  ('control unbacked winner', (100000, '15', [0]), [None]),\n  ('regression: takeout application', (100000, '15', [1500, 91738]), ['28.30', '1.10']),\n  ('variant scenario 1', (100000, '15', [69872, 70392, 1500]), ['1.10', '1.10', '18.80']),\n  ('variant scenario 2', (1234500, '16', [555465]), ['1.80'])],\n [('control single winner', (100000, '15', [25000]), ['3.40']),\n  ('boundary breakage down', (100000, '16', [30000]), ['2.80']),\n  ('boundary minimum dividend', (100000, '20', [90000]), ['1.10']),\n  ('boundary dead heat split', (100000, '20', [10000, 40000]), ['4.00', '1.10']),\n  ('control unbacked winner', (100000, '15', [0]), [None]),\n  ('regression: takeout application', (1234500, '0', [617250, 390837]), ['1.10', '1.50']),\n  ('regression: takeout application', (20000, '16', [5000]), ['3.30']),\n  ('variant scenario 1', (100000, '16', [55428, 50000, 100000]), ['1.10', '1.10', '1.10']),\n  ('variant scenario 2', (50000, '16', [40497, 21355, 36633]), ['1.10', '1.10', '1.10'])]]\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-tote-win-dividend-takeout-application","generated_at":"2026-09-29T14:50:33.679929+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Tote operators compute dividends with takeout, breakage and minimum-dividend rules.","root_cause":"The net pool is computed as pool * takeout / 100.","sha256":"0b33d691835473fb93041cb34aa36641f40a26308a5e608256b76562b62f61b1","title":"Takeout kept as the net pool or divided out · 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":47.79,"exit_code":1,"observations":[{"actual":["3.40"],"check":"control single winner","expected":["3.40"],"passed":true},{"actual":["2.80"],"check":"boundary breakage down","expected":["2.80"],"passed":true},{"actual":["1.10"],"check":"boundary minimum dividend","expected":["1.10"],"passed":true},{"actual":["4.10","1.10"],"check":"boundary dead heat split","expected":["4.00","1.10"],"passed":false},{"actual":[null],"check":"control unbacked winner","expected":[null],"passed":true},{"actual":["5.80","14.30","1.10"],"check":"regression: takeout application","expected":["5.60","14.00","1.10"],"passed":false},{"actual":["9.40","1.10"],"check":"variant scenario 1","expected":["9.00","1.10"],"passed":false},{"actual":["4.10"],"check":"variant scenario 2","expected":["4.00"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control single winner\", \"actual\": [\"3.40\"], \"expected\": [\"3.40\"], \"passed\": true}, {\"check\": \"boundary breakage down\", \"actual\": [\"2.80\"], \"expected\": [\"2.80\"], \"passed\": true}, {\"check\": \"boundary minimum dividend\", \"actual\": [\"1.10\"], \"expected\": [\"1.10\"], \"passed\": true}, {\"check\": \"boundary dead heat split\", \"actual\": [\"4.10\", \"1.10\"], \"expected\": [\"4.00\", \"1.10\"], \"passed\": false}, {\"check\": \"control unbacked winner\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"regression: takeout application\", \"actual\": [\"5.80\", \"14.30\", \"1.10\"], \"expected\": [\"5.60\", \"14.00\", \"1.10\"], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"9.40\", \"1.10\"], \"expected\": [\"9.00\", \"1.10\"], \"passed\": false}, {\"check\": \"variant scenario 2\", \"actual\": [\"4.10\"], \"expected\": [\"4.00\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.98,"exit_code":1,"observations":[{"actual":["1.10"],"check":"control single winner","expected":["3.40"],"passed":false},{"actual":["1.10"],"check":"boundary breakage down","expected":["2.80"],"passed":false},{"actual":["1.10"],"check":"boundary minimum dividend","expected":["1.10"],"passed":true},{"actual":["1.10","1.10"],"check":"boundary dead heat split","expected":["4.00","1.10"],"passed":false},{"actual":[null],"check":"control unbacked winner","expected":[null],"passed":true},{"actual":["1.10","2.60","1.10"],"check":"regression: takeout application","expected":["5.60","14.00","1.10"],"passed":false},{"actual":["2.20","1.10"],"check":"variant scenario 1","expected":["9.00","1.10"],"passed":false},{"actual":["1.10"],"check":"variant scenario 2","expected":["4.00"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control single winner\", \"actual\": [\"1.10\"], \"expected\": [\"3.40\"], \"passed\": false}, {\"check\": \"boundary breakage down\", \"actual\": [\"1.10\"], \"expected\": [\"2.80\"], \"passed\": false}, {\"check\": \"boundary minimum dividend\", \"actual\": [\"1.10\"], \"expected\": [\"1.10\"], \"passed\": true}, {\"check\": \"boundary dead heat split\", \"actual\": [\"1.10\", \"1.10\"], \"expected\": [\"4.00\", \"1.10\"], \"passed\": false}, {\"check\": \"control unbacked winner\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"regression: takeout application\", \"actual\": [\"1.10\", \"2.60\", \"1.10\"], \"expected\": [\"5.60\", \"14.00\", \"1.10\"], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"2.20\", \"1.10\"], \"expected\": [\"9.00\", \"1.10\"], \"passed\": false}, {\"check\": \"variant scenario 2\", \"actual\": [\"1.10\"], \"expected\": [\"4.00\"], \"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."}}