{"abstract":"A book summing to exactly 100 percent is reported as a sure bet.","category":"Betting odds conversion","checks":8,"contract":"Arbitrage finder. books rows are [bookmaker, outcome, decimal price]. For each outcome take the highest price; ties go to the alphabetically first bookmaker. S = sum of 1/best price. If S >= 1 return [\"no arb\"]. Otherwise stake_i = floor(total * (1/d_i) / S) cents; guaranteed return = min over outcomes of floor(stake_i * d_i). Return [\"arb\", [[outcome, bookmaker, stake] sorted by outcome], guaranteed return - sum of stakes].","contract_signature":"books, total_cents","evaluation_group":"w2-odds-conversion-surebet-stake-split","failed_approach":"A one-percent tolerance rejects small genuine arbitrages.","family":"w2-odds-conversion-surebet-stake-split-arb-threshold","id":"FA-84586","implementations":{"attempt":{"sha256":"dc143538ffa0601d52db418170bd2f6fe265eddf8529a2fa05070599f5e5b2a8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(books, total_cents):\n    best = {}\n    for book, outcome, price in books:\n        d = Fraction(price)\n        cur = best.get(outcome)\n        if cur is None or d > cur[0] or (d == cur[0] and book < cur[1]):\n            best[outcome] = (d, book)\n    S = sum(1 / d for d, _ in best.values())\n    if S >= Fraction(99, 100):\n        return ['no arb']\n    rows = []\n    ret = None\n    for outcome in sorted(best):\n        d, book = best[outcome]\n        stake = math.floor(total_cents * (1 / d) / S)\n        rows.append([outcome, book, stake])\n        r = math.floor(stake * d)\n        ret = r if ret is None else min(ret, r)\n    return ['arb', rows, ret - sum(r[2] for r in rows)]\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 two-way arb',\n   ([['alpha', 'home', '2.10'], ['bravo', 'away', '2.10'], ['bravo', 'home', '1.90']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 500]),\n  ('boundary exactly fair book',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('boundary tie goes to first name',\n   ([['kilo', 'home', '2.20'], ['alpha', 'home', '2.20'], ['bravo', 'away', '2.20']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 1000]),\n  ('control no arb', ([['alpha', 'home', '1.90'], ['alpha', 'away', '1.90']], 10000), ['no arb']),\n  ('regression: arb threshold',\n   ([['bravo', 'home', '3.77'],\n     ['kilo', 'home', '4.11'],\n     ['delta', 'home', '3.81'],\n     ['kilo', 'draw', '2.56'],\n     ['delta', 'draw', '2.44'],\n     ['alpha', 'draw', '2.44'],\n     ['bravo', 'away', '2.54'],\n     ['delta', 'away', '2.78']],\n    9999),\n   ['arb', [['away', 'delta', 3619], ['draw', 'kilo', 3930], ['home', 'kilo', 2448]], 63]),\n  ('regression: arb threshold',\n   ([['alpha', 'home', '2.17'],\n     ['bravo', 'home', '2.25'],\n     ['delta', 'away', '1.57'],\n     ['alpha', 'away', '1.80']],\n    9999),\n   ['no arb']),\n  ('variant scenario 1',\n   ([['bravo', 'home', '4.00'], ['bravo', 'draw', '2.56'], ['alpha', 'away', '2.61']], 10000),\n   ['no arb']),\n  ('variant scenario 2',\n   ([['kilo', 'home', '2.04'],\n     ['alpha', 'home', '2.13'],\n     ['bravo', 'home', '2.13'],\n     ['alpha', 'away', '2.07'],\n     ['bravo', 'away', '1.99'],\n     ['delta', 'away', '1.86']],\n    10000),\n   ['arb', [['away', 'alpha', 5071], ['home', 'alpha', 4928]], 497])],\n [('control two-way arb',\n   ([['alpha', 'home', '2.10'], ['bravo', 'away', '2.10'], ['bravo', 'home', '1.90']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 500]),\n  ('boundary exactly fair book',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('boundary tie goes to first name',\n   ([['kilo', 'home', '2.20'], ['alpha', 'home', '2.20'], ['bravo', 'away', '2.20']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 1000]),\n  ('control no arb', ([['alpha', 'home', '1.90'], ['alpha', 'away', '1.90']], 10000), ['no arb']),\n  ('regression: arb threshold',\n   ([['bravo', 'home', '2.24'], ['delta', 'home', '2.40'], ['kilo', 'away', '1.72']], 25000),\n   ['arb', [['away', 'kilo', 14563], ['home', 'delta', 10436]], 47]),\n  ('regression: arb threshold',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('variant scenario 1',\n   ([['alpha', 'home', '2.57'], ['delta', 'away', '1.69'], ['bravo', 'home', '2.57']], 10000),\n   ['arb', [['away', 'delta', 6032], ['home', 'alpha', 3967]], 195]),\n  ('variant scenario 2',\n   ([['bravo', 'home', '5.12'],\n     ['kilo', 'home', '5.29'],\n     ['delta', 'home', '5.73'],\n     ['bravo', 'draw', '2.52'],\n     ['kilo', 'draw', '2.36'],\n     ['kilo', 'away', '2.51']],\n    10000),\n   ['arb', [['away', 'kilo', 4108], ['draw', 'bravo', 4092], ['home', 'delta', 1799]], 309])],\n [('control two-way arb',\n   ([['alpha', 'home', '2.10'], ['bravo', 'away', '2.10'], ['bravo', 'home', '1.90']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 500]),\n  ('boundary exactly fair book',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('boundary tie goes to first name',\n   ([['kilo', 'home', '2.20'], ['alpha', 'home', '2.20'], ['bravo', 'away', '2.20']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 1000]),\n  ('control no arb', ([['alpha', 'home', '1.90'], ['alpha', 'away', '1.90']], 10000), ['no arb']),\n  ('regression: arb threshold',\n   ([['delta', 'home', '1.68'],\n     ['bravo', 'home', '1.81'],\n     ['alpha', 'home', '1.86'],\n     ['alpha', 'away', '2.11'],\n     ['bravo', 'away', '2.18']],\n    9999),\n   ['arb', [['away', 'bravo', 4603], ['home', 'alpha', 5395]], 36]),\n  ('regression: arb threshold',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('variant scenario 1',\n   ([['bravo', 'home', '2.55'],\n     ['delta', 'away', '1.60'],\n     ['kilo', 'away', '1.43'],\n     ['bravo', 'away', '1.43'],\n     ['bravo', 'home', '2.55']],\n    10000),\n   ['no arb']),\n  ('variant scenario 2',\n   ([['bravo', 'home', '2.81'],\n     ['delta', 'home', '3.32'],\n     ['kilo', 'home', '2.88'],\n     ['alpha', 'draw', '2.81'],\n     ['bravo', 'draw', '3.10'],\n     ['delta', 'draw', '2.76'],\n     ['alpha', 'away', '3.00'],\n     ['kilo', 'away', '2.79']],\n    10000),\n   ['arb', [['away', 'alpha', 3482], ['draw', 'bravo', 3370], ['home', 'delta', 3146]], 446])],\n [('control two-way arb',\n   ([['alpha', 'home', '2.10'], ['bravo', 'away', '2.10'], ['bravo', 'home', '1.90']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 500]),\n  ('boundary exactly fair book',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('boundary tie goes to first name',\n   ([['kilo', 'home', '2.20'], ['alpha', 'home', '2.20'], ['bravo', 'away', '2.20']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 1000]),\n  ('control no arb', ([['alpha', 'home', '1.90'], ['alpha', 'away', '1.90']], 10000), ['no arb']),\n  ('regression: arb threshold',\n   ([['alpha', 'home', '4.94'],\n     ['kilo', 'home', '5.07'],\n     ['kilo', 'draw', '1.98'],\n     ['bravo', 'away', '3.23'],\n     ['delta', 'away', '3.40']],\n    25000),\n   ['arb', [['away', 'delta', 7379], ['draw', 'kilo', 12671], ['home', 'kilo', 4948]], 88]),\n  ('regression: arb threshold',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('variant scenario 1',\n   ([['bravo', 'home', '1.92'],\n     ['bravo', 'draw', '4.45'],\n     ['delta', 'draw', '4.87'],\n     ['alpha', 'draw', '4.90'],\n     ['kilo', 'away', '3.87'],\n     ['alpha', 'away', '4.12']],\n    25000),\n   ['arb', [['away', 'alpha', 6270], ['draw', 'alpha', 5272], ['home', 'bravo', 13456]], 834]),\n  ('variant scenario 2',\n   ([['alpha', 'home', '1.95'],\n     ['bravo', 'home', '2.31'],\n     ['bravo', 'away', '1.86'],\n     ['alpha', 'away', '1.81'],\n     ['kilo', 'away', '1.91']],\n    9999),\n   ['arb', [['away', 'kilo', 5473], ['home', 'bravo', 4525]], 454])],\n [('control two-way arb',\n   ([['alpha', 'home', '2.10'], ['bravo', 'away', '2.10'], ['bravo', 'home', '1.90']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 500]),\n  ('boundary exactly fair book',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('boundary tie goes to first name',\n   ([['kilo', 'home', '2.20'], ['alpha', 'home', '2.20'], ['bravo', 'away', '2.20']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 1000]),\n  ('control no arb', ([['alpha', 'home', '1.90'], ['alpha', 'away', '1.90']], 10000), ['no arb']),\n  ('regression: arb threshold',\n   ([['bravo', 'home', '2.86'],\n     ['kilo', 'draw', '3.14'],\n     ['delta', 'draw', '3.06'],\n     ['alpha', 'draw', '3.35'],\n     ['bravo', 'away', '2.86'],\n     ['alpha', 'away', '2.51'],\n     ['kilo', 'away', '2.83']],\n    9999),\n   ['arb', [['away', 'bravo', 3503], ['draw', 'alpha', 2991], ['home', 'bravo', 3503]], 21]),\n  ('regression: arb threshold',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('variant scenario 1',\n   ([['bravo', 'home', '2.94'],\n     ['kilo', 'home', '2.99'],\n     ['alpha', 'draw', '3.29'],\n     ['bravo', 'draw', '2.93'],\n     ['alpha', 'away', '2.69']],\n    25000),\n   ['no arb']),\n  ('variant scenario 2',\n   ([['delta', 'home', '2.53'],\n     ['alpha', 'home', '2.76'],\n     ['kilo', 'draw', '2.86'],\n     ['delta', 'draw', '2.83'],\n     ['bravo', 'away', '3.60']],\n    10000),\n   ['arb', [['away', 'bravo', 2806], ['draw', 'kilo', 3532], ['home', 'alpha', 3660]], 103])]]\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":"25909d96dc7f53c191ea27cc461ea0ccae16baa46fa60d0fd1b9988e483b6fdc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(books, total_cents):\n    best = {}\n    for book, outcome, price in books:\n        d = Fraction(price)\n        cur = best.get(outcome)\n        if cur is None or d > cur[0] or (d == cur[0] and book < cur[1]):\n            best[outcome] = (d, book)\n    S = sum(1 / d for d, _ in best.values())\n    if S > 1:\n        return ['no arb']\n    rows = []\n    ret = None\n    for outcome in sorted(best):\n        d, book = best[outcome]\n        stake = math.floor(total_cents * (1 / d) / S)\n        rows.append([outcome, book, stake])\n        r = math.floor(stake * d)\n        ret = r if ret is None else min(ret, r)\n    return ['arb', rows, ret - sum(r[2] for r in rows)]\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 two-way arb',\n   ([['alpha', 'home', '2.10'], ['bravo', 'away', '2.10'], ['bravo', 'home', '1.90']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 500]),\n  ('boundary exactly fair book',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('boundary tie goes to first name',\n   ([['kilo', 'home', '2.20'], ['alpha', 'home', '2.20'], ['bravo', 'away', '2.20']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 1000]),\n  ('control no arb', ([['alpha', 'home', '1.90'], ['alpha', 'away', '1.90']], 10000), ['no arb']),\n  ('regression: arb threshold',\n   ([['bravo', 'home', '3.77'],\n     ['kilo', 'home', '4.11'],\n     ['delta', 'home', '3.81'],\n     ['kilo', 'draw', '2.56'],\n     ['delta', 'draw', '2.44'],\n     ['alpha', 'draw', '2.44'],\n     ['bravo', 'away', '2.54'],\n     ['delta', 'away', '2.78']],\n    9999),\n   ['arb', [['away', 'delta', 3619], ['draw', 'kilo', 3930], ['home', 'kilo', 2448]], 63]),\n  ('regression: arb threshold',\n   ([['alpha', 'home', '2.17'],\n     ['bravo', 'home', '2.25'],\n     ['delta', 'away', '1.57'],\n     ['alpha', 'away', '1.80']],\n    9999),\n   ['no arb']),\n  ('variant scenario 1',\n   ([['bravo', 'home', '4.00'], ['bravo', 'draw', '2.56'], ['alpha', 'away', '2.61']], 10000),\n   ['no arb']),\n  ('variant scenario 2',\n   ([['kilo', 'home', '2.04'],\n     ['alpha', 'home', '2.13'],\n     ['bravo', 'home', '2.13'],\n     ['alpha', 'away', '2.07'],\n     ['bravo', 'away', '1.99'],\n     ['delta', 'away', '1.86']],\n    10000),\n   ['arb', [['away', 'alpha', 5071], ['home', 'alpha', 4928]], 497])],\n [('control two-way arb',\n   ([['alpha', 'home', '2.10'], ['bravo', 'away', '2.10'], ['bravo', 'home', '1.90']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 500]),\n  ('boundary exactly fair book',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('boundary tie goes to first name',\n   ([['kilo', 'home', '2.20'], ['alpha', 'home', '2.20'], ['bravo', 'away', '2.20']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 1000]),\n  ('control no arb', ([['alpha', 'home', '1.90'], ['alpha', 'away', '1.90']], 10000), ['no arb']),\n  ('regression: arb threshold',\n   ([['bravo', 'home', '2.24'], ['delta', 'home', '2.40'], ['kilo', 'away', '1.72']], 25000),\n   ['arb', [['away', 'kilo', 14563], ['home', 'delta', 10436]], 47]),\n  ('regression: arb threshold',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('variant scenario 1',\n   ([['alpha', 'home', '2.57'], ['delta', 'away', '1.69'], ['bravo', 'home', '2.57']], 10000),\n   ['arb', [['away', 'delta', 6032], ['home', 'alpha', 3967]], 195]),\n  ('variant scenario 2',\n   ([['bravo', 'home', '5.12'],\n     ['kilo', 'home', '5.29'],\n     ['delta', 'home', '5.73'],\n     ['bravo', 'draw', '2.52'],\n     ['kilo', 'draw', '2.36'],\n     ['kilo', 'away', '2.51']],\n    10000),\n   ['arb', [['away', 'kilo', 4108], ['draw', 'bravo', 4092], ['home', 'delta', 1799]], 309])],\n [('control two-way arb',\n   ([['alpha', 'home', '2.10'], ['bravo', 'away', '2.10'], ['bravo', 'home', '1.90']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 500]),\n  ('boundary exactly fair book',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('boundary tie goes to first name',\n   ([['kilo', 'home', '2.20'], ['alpha', 'home', '2.20'], ['bravo', 'away', '2.20']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 1000]),\n  ('control no arb', ([['alpha', 'home', '1.90'], ['alpha', 'away', '1.90']], 10000), ['no arb']),\n  ('regression: arb threshold',\n   ([['delta', 'home', '1.68'],\n     ['bravo', 'home', '1.81'],\n     ['alpha', 'home', '1.86'],\n     ['alpha', 'away', '2.11'],\n     ['bravo', 'away', '2.18']],\n    9999),\n   ['arb', [['away', 'bravo', 4603], ['home', 'alpha', 5395]], 36]),\n  ('regression: arb threshold',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('variant scenario 1',\n   ([['bravo', 'home', '2.55'],\n     ['delta', 'away', '1.60'],\n     ['kilo', 'away', '1.43'],\n     ['bravo', 'away', '1.43'],\n     ['bravo', 'home', '2.55']],\n    10000),\n   ['no arb']),\n  ('variant scenario 2',\n   ([['bravo', 'home', '2.81'],\n     ['delta', 'home', '3.32'],\n     ['kilo', 'home', '2.88'],\n     ['alpha', 'draw', '2.81'],\n     ['bravo', 'draw', '3.10'],\n     ['delta', 'draw', '2.76'],\n     ['alpha', 'away', '3.00'],\n     ['kilo', 'away', '2.79']],\n    10000),\n   ['arb', [['away', 'alpha', 3482], ['draw', 'bravo', 3370], ['home', 'delta', 3146]], 446])],\n [('control two-way arb',\n   ([['alpha', 'home', '2.10'], ['bravo', 'away', '2.10'], ['bravo', 'home', '1.90']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 500]),\n  ('boundary exactly fair book',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('boundary tie goes to first name',\n   ([['kilo', 'home', '2.20'], ['alpha', 'home', '2.20'], ['bravo', 'away', '2.20']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 1000]),\n  ('control no arb', ([['alpha', 'home', '1.90'], ['alpha', 'away', '1.90']], 10000), ['no arb']),\n  ('regression: arb threshold',\n   ([['alpha', 'home', '4.94'],\n     ['kilo', 'home', '5.07'],\n     ['kilo', 'draw', '1.98'],\n     ['bravo', 'away', '3.23'],\n     ['delta', 'away', '3.40']],\n    25000),\n   ['arb', [['away', 'delta', 7379], ['draw', 'kilo', 12671], ['home', 'kilo', 4948]], 88]),\n  ('regression: arb threshold',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('variant scenario 1',\n   ([['bravo', 'home', '1.92'],\n     ['bravo', 'draw', '4.45'],\n     ['delta', 'draw', '4.87'],\n     ['alpha', 'draw', '4.90'],\n     ['kilo', 'away', '3.87'],\n     ['alpha', 'away', '4.12']],\n    25000),\n   ['arb', [['away', 'alpha', 6270], ['draw', 'alpha', 5272], ['home', 'bravo', 13456]], 834]),\n  ('variant scenario 2',\n   ([['alpha', 'home', '1.95'],\n     ['bravo', 'home', '2.31'],\n     ['bravo', 'away', '1.86'],\n     ['alpha', 'away', '1.81'],\n     ['kilo', 'away', '1.91']],\n    9999),\n   ['arb', [['away', 'kilo', 5473], ['home', 'bravo', 4525]], 454])],\n [('control two-way arb',\n   ([['alpha', 'home', '2.10'], ['bravo', 'away', '2.10'], ['bravo', 'home', '1.90']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 500]),\n  ('boundary exactly fair book',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('boundary tie goes to first name',\n   ([['kilo', 'home', '2.20'], ['alpha', 'home', '2.20'], ['bravo', 'away', '2.20']], 10000),\n   ['arb', [['away', 'bravo', 5000], ['home', 'alpha', 5000]], 1000]),\n  ('control no arb', ([['alpha', 'home', '1.90'], ['alpha', 'away', '1.90']], 10000), ['no arb']),\n  ('regression: arb threshold',\n   ([['bravo', 'home', '2.86'],\n     ['kilo', 'draw', '3.14'],\n     ['delta', 'draw', '3.06'],\n     ['alpha', 'draw', '3.35'],\n     ['bravo', 'away', '2.86'],\n     ['alpha', 'away', '2.51'],\n     ['kilo', 'away', '2.83']],\n    9999),\n   ['arb', [['away', 'bravo', 3503], ['draw', 'alpha', 2991], ['home', 'bravo', 3503]], 21]),\n  ('regression: arb threshold',\n   ([['alpha', 'home', '2.00'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('variant scenario 1',\n   ([['bravo', 'home', '2.94'],\n     ['kilo', 'home', '2.99'],\n     ['alpha', 'draw', '3.29'],\n     ['bravo', 'draw', '2.93'],\n     ['alpha', 'away', '2.69']],\n    25000),\n   ['no arb']),\n  ('variant scenario 2',\n   ([['delta', 'home', '2.53'],\n     ['alpha', 'home', '2.76'],\n     ['kilo', 'draw', '2.86'],\n     ['delta', 'draw', '2.83'],\n     ['bravo', 'away', '3.60']],\n    10000),\n   ['arb', [['away', 'bravo', 2806], ['draw', 'kilo', 3532], ['home', 'alpha', 3660]], 103])]]\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-surebet-stake-split-arb-threshold","generated_at":"2026-09-29T14:50:32.376321+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Odds comparison tools flag sure bets and split a bankroll across bookmakers.","root_cause":"The arbitrage test uses S > 1.","sha256":"4d3a583521fc38edaf66f5d43d3990017faca55d788e6074953deac1d0d056ce","title":"Break-even book reported as an arbitrage · 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.43,"exit_code":1,"observations":[{"actual":["arb",[["away","bravo",5000],["home","alpha",5000]],500],"check":"control two-way arb","expected":["arb",[["away","bravo",5000],["home","alpha",5000]],500],"passed":true},{"actual":["no arb"],"check":"boundary exactly fair book","expected":["no arb"],"passed":true},{"actual":["arb",[["away","bravo",5000],["home","alpha",5000]],1000],"check":"boundary tie goes to first name","expected":["arb",[["away","bravo",5000],["home","alpha",5000]],1000],"passed":true},{"actual":["no arb"],"check":"control no arb","expected":["no arb"],"passed":true},{"actual":["no arb"],"check":"regression: arb threshold","expected":["arb",[["away","delta",3619],["draw","kilo",3930],["home","kilo",2448]],63],"passed":false},{"actual":["no arb"],"check":"regression: arb threshold","expected":["no arb"],"passed":true},{"actual":["no arb"],"check":"variant scenario 1","expected":["no arb"],"passed":true},{"actual":["arb",[["away","alpha",5071],["home","alpha",4928]],497],"check":"variant scenario 2","expected":["arb",[["away","alpha",5071],["home","alpha",4928]],497],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control two-way arb\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 5000], [\"home\", \"alpha\", 5000]], 500], \"expected\": [\"arb\", [[\"away\", \"bravo\", 5000], [\"home\", \"alpha\", 5000]], 500], \"passed\": true}, {\"check\": \"boundary exactly fair book\", \"actual\": [\"no arb\"], \"expected\": [\"no arb\"], \"passed\": true}, {\"check\": \"boundary tie goes to first name\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 5000], [\"home\", \"alpha\", 5000]], 1000], \"expected\": [\"arb\", [[\"away\", \"bravo\", 5000], [\"home\", \"alpha\", 5000]], 1000], \"passed\": true}, {\"check\": \"control no arb\", \"actual\": [\"no arb\"], \"expected\": [\"no arb\"], \"passed\": true}, {\"check\": \"regression: arb threshold\", \"actual\": [\"no arb\"], \"expected\": [\"arb\", [[\"away\", \"delta\", 3619], [\"draw\", \"kilo\", 3930], [\"home\", \"kilo\", 2448]], 63], \"passed\": false}, {\"check\": \"regression: arb threshold\", \"actual\": [\"no arb\"], \"expected\": [\"no arb\"], \"passed\": true}, {\"check\": \"variant scenario 1\", \"actual\": [\"no arb\"], \"expected\": [\"no arb\"], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [\"arb\", [[\"away\", \"alpha\", 5071], [\"home\", \"alpha\", 4928]], 497], \"expected\": [\"arb\", [[\"away\", \"alpha\", 5071], [\"home\", \"alpha\", 4928]], 497], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.055,"exit_code":1,"observations":[{"actual":["arb",[["away","bravo",5000],["home","alpha",5000]],500],"check":"control two-way arb","expected":["arb",[["away","bravo",5000],["home","alpha",5000]],500],"passed":true},{"actual":["arb",[["away","bravo",5000],["home","alpha",5000]],0],"check":"boundary exactly fair book","expected":["no arb"],"passed":false},{"actual":["arb",[["away","bravo",5000],["home","alpha",5000]],1000],"check":"boundary tie goes to first name","expected":["arb",[["away","bravo",5000],["home","alpha",5000]],1000],"passed":true},{"actual":["no arb"],"check":"control no arb","expected":["no arb"],"passed":true},{"actual":["arb",[["away","delta",3619],["draw","kilo",3930],["home","kilo",2448]],63],"check":"regression: arb threshold","expected":["arb",[["away","delta",3619],["draw","kilo",3930],["home","kilo",2448]],63],"passed":true},{"actual":["arb",[["away","alpha",5555],["home","bravo",4444]],0],"check":"regression: arb threshold","expected":["no arb"],"passed":false},{"actual":["no arb"],"check":"variant scenario 1","expected":["no arb"],"passed":true},{"actual":["arb",[["away","alpha",5071],["home","alpha",4928]],497],"check":"variant scenario 2","expected":["arb",[["away","alpha",5071],["home","alpha",4928]],497],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control two-way arb\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 5000], [\"home\", \"alpha\", 5000]], 500], \"expected\": [\"arb\", [[\"away\", \"bravo\", 5000], [\"home\", \"alpha\", 5000]], 500], \"passed\": true}, {\"check\": \"boundary exactly fair book\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 5000], [\"home\", \"alpha\", 5000]], 0], \"expected\": [\"no arb\"], \"passed\": false}, {\"check\": \"boundary tie goes to first name\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 5000], [\"home\", \"alpha\", 5000]], 1000], \"expected\": [\"arb\", [[\"away\", \"bravo\", 5000], [\"home\", \"alpha\", 5000]], 1000], \"passed\": true}, {\"check\": \"control no arb\", \"actual\": [\"no arb\"], \"expected\": [\"no arb\"], \"passed\": true}, {\"check\": \"regression: arb threshold\", \"actual\": [\"arb\", [[\"away\", \"delta\", 3619], [\"draw\", \"kilo\", 3930], [\"home\", \"kilo\", 2448]], 63], \"expected\": [\"arb\", [[\"away\", \"delta\", 3619], [\"draw\", \"kilo\", 3930], [\"home\", \"kilo\", 2448]], 63], \"passed\": true}, {\"check\": \"regression: arb threshold\", \"actual\": [\"arb\", [[\"away\", \"alpha\", 5555], [\"home\", \"bravo\", 4444]], 0], \"expected\": [\"no arb\"], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"no arb\"], \"expected\": [\"no arb\"], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [\"arb\", [[\"away\", \"alpha\", 5071], [\"home\", \"alpha\", 4928]], 497], \"expected\": [\"arb\", [[\"away\", \"alpha\", 5071], [\"home\", \"alpha\", 4928]], 497], \"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."}}