{"abstract":"Heavily backed winners pay 1.00 or 1.05 instead of the 1.10 minimum.","category":"Betting odds conversion","checks":9,"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":"Only lifting dividends below 1.00 leaves 1.00 and 1.05 payouts under the minimum.","family":"w2-odds-conversion-tote-win-dividend-minimum-dividend","id":"FA-84721","implementations":{"attempt":{"sha256":"83fe85fe3b343bb2745f27fe5f64f259d3d00b9d275798cb7c988d5928bebb56","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) * (100 - 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 = dimes if dimes >= 10 else 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: minimum dividend', (250000, '16', [35604, 123268]), ['2.90', '1.10']),\n  ('regression: minimum dividend', (250000, '0', [230658]), ['1.10']),\n  ('variant scenario 1', (20000, '0', [12085]), ['1.60']),\n  ('variant scenario 2', (50000, '15', [0]), [None])],\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: minimum dividend',\n   (250000, '16', [10000, 250000, 97356]),\n   ['7.00', '1.10', '1.10']),\n  ('regression: minimum dividend', (50000, '15', [40000]), ['1.10']),\n  ('variant scenario 1', (1234500, '16', [793963]), ['1.30']),\n  ('variant scenario 2', (250000, '0', [333, 10000]), ['375.30', '12.50'])],\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: minimum dividend', (1234500, '15', [1156662]), ['1.10']),\n  ('regression: minimum dividend', (50000, '15', [19428, 50000]), ['1.10', '1.10']),\n  ('variant scenario 1', (50000, '15', [3875]), ['10.90']),\n  ('variant scenario 2', (250000, '15', [0]), [None])],\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: minimum dividend', (250000, '20', [248216]), ['1.10']),\n  ('regression: minimum dividend', (50000, '0', [50000]), ['1.10']),\n  ('variant scenario 1', (100000, '15', [22149]), ['3.80']),\n  ('variant scenario 2', (100000, '0', [333]), ['300.30'])],\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: minimum dividend',\n   (1234500, '0', [1017834, 351582, 426153]),\n   ['1.10', '1.10', '1.10']),\n  ('regression: minimum dividend', (100000, '15', [50000, 40000]), ['1.10', '1.10']),\n  ('variant scenario 1', (100000, '20', [50621]), ['1.50']),\n  ('variant scenario 2', (50000, '0', [33751]), ['1.40'])]]\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":"3ad16dd61a9ec4fdd5ce24bf9b90dc4e306d353cb24defd196ce0625af532a4d","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) * (100 - 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, 10)\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: minimum dividend', (250000, '16', [35604, 123268]), ['2.90', '1.10']),\n  ('regression: minimum dividend', (250000, '0', [230658]), ['1.10']),\n  ('variant scenario 1', (20000, '0', [12085]), ['1.60']),\n  ('variant scenario 2', (50000, '15', [0]), [None])],\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: minimum dividend',\n   (250000, '16', [10000, 250000, 97356]),\n   ['7.00', '1.10', '1.10']),\n  ('regression: minimum dividend', (50000, '15', [40000]), ['1.10']),\n  ('variant scenario 1', (1234500, '16', [793963]), ['1.30']),\n  ('variant scenario 2', (250000, '0', [333, 10000]), ['375.30', '12.50'])],\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: minimum dividend', (1234500, '15', [1156662]), ['1.10']),\n  ('regression: minimum dividend', (50000, '15', [19428, 50000]), ['1.10', '1.10']),\n  ('variant scenario 1', (50000, '15', [3875]), ['10.90']),\n  ('variant scenario 2', (250000, '15', [0]), [None])],\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: minimum dividend', (250000, '20', [248216]), ['1.10']),\n  ('regression: minimum dividend', (50000, '0', [50000]), ['1.10']),\n  ('variant scenario 1', (100000, '15', [22149]), ['3.80']),\n  ('variant scenario 2', (100000, '0', [333]), ['300.30'])],\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: minimum dividend',\n   (1234500, '0', [1017834, 351582, 426153]),\n   ['1.10', '1.10', '1.10']),\n  ('regression: minimum dividend', (100000, '15', [50000, 40000]), ['1.10', '1.10']),\n  ('variant scenario 1', (100000, '20', [50621]), ['1.50']),\n  ('variant scenario 2', (50000, '0', [33751]), ['1.40'])]]\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-minimum-dividend","generated_at":"2026-09-29T14:50:33.770953+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 minimum is set to 1.00.","sha256":"c4ece77f3dc19132ed21bd12c5b29a7977813af2d8a5e9d3023fdc2c7c6cff00","title":"Minimum dividend floor set to the stake or applied only below 1.00 · 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":45.626,"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.00","1.00"],"check":"boundary dead heat split","expected":["4.00","1.10"],"passed":false},{"actual":[null],"check":"control unbacked winner","expected":[null],"passed":true},{"actual":["2.90","1.10"],"check":"regression: minimum dividend","expected":["2.90","1.10"],"passed":true},{"actual":["1.00"],"check":"regression: minimum dividend","expected":["1.10"],"passed":false},{"actual":["1.60"],"check":"variant scenario 1","expected":["1.60"],"passed":true},{"actual":[null],"check":"variant scenario 2","expected":[null],"passed":true}],"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.00\", \"1.00\"], \"expected\": [\"4.00\", \"1.10\"], \"passed\": false}, {\"check\": \"control unbacked winner\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"regression: minimum dividend\", \"actual\": [\"2.90\", \"1.10\"], \"expected\": [\"2.90\", \"1.10\"], \"passed\": true}, {\"check\": \"regression: minimum dividend\", \"actual\": [\"1.00\"], \"expected\": [\"1.10\"], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"1.60\"], \"expected\": [\"1.60\"], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [null], \"expected\": [null], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.971,"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.00"],"check":"boundary minimum dividend","expected":["1.10"],"passed":false},{"actual":["4.00","1.00"],"check":"boundary dead heat split","expected":["4.00","1.10"],"passed":false},{"actual":[null],"check":"control unbacked winner","expected":[null],"passed":true},{"actual":["2.90","1.00"],"check":"regression: minimum dividend","expected":["2.90","1.10"],"passed":false},{"actual":["1.00"],"check":"regression: minimum dividend","expected":["1.10"],"passed":false},{"actual":["1.60"],"check":"variant scenario 1","expected":["1.60"],"passed":true},{"actual":[null],"check":"variant scenario 2","expected":[null],"passed":true}],"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.00\"], \"expected\": [\"1.10\"], \"passed\": false}, {\"check\": \"boundary dead heat split\", \"actual\": [\"4.00\", \"1.00\"], \"expected\": [\"4.00\", \"1.10\"], \"passed\": false}, {\"check\": \"control unbacked winner\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"regression: minimum dividend\", \"actual\": [\"2.90\", \"1.00\"], \"expected\": [\"2.90\", \"1.10\"], \"passed\": false}, {\"check\": \"regression: minimum dividend\", \"actual\": [\"1.00\"], \"expected\": [\"1.10\"], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"1.60\"], \"expected\": [\"1.60\"], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [null], \"expected\": [null], \"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."}}