{"abstract":"The stake is routed to a different bookmaker than the stated tie rule picks.","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].","evaluation_group":"w2-odds-conversion-surebet-stake-split","failed_approach":"Preferring the alphabetically last bookmaker still breaks the stated rule.","family":"w2-odds-conversion-surebet-stake-split-bookmaker-tiebreak","id":"FA-84581","implementations":{"attempt":{"sha256":"604dae251bf817dbaabaa17d5d0ff585bec61cbf2a75f7147c0e61dc2349bd27","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: bookmaker tiebreak',\n   ([['bravo', 'home', '2.12'],\n     ['alpha', 'home', '1.85'],\n     ['kilo', 'away', '1.94'],\n     ['delta', 'away', '1.86'],\n     ['bravo', 'away', '1.95'],\n     ['alpha', 'home', '2.12']],\n    25000),\n   ['arb', [['away', 'bravo', 13022], ['home', 'alpha', 11977]], 392]),\n  ('regression: bookmaker tiebreak',\n   ([['bravo', 'home', '3.51'],\n     ['delta', 'home', '3.20'],\n     ['delta', 'draw', '3.26'],\n     ['bravo', 'draw', '3.43'],\n     ['bravo', 'away', '2.58'],\n     ['delta', 'away', '2.38'],\n     ['kilo', 'home', '3.51']],\n    9999),\n   ['arb', [['away', 'bravo', 4020], ['draw', 'bravo', 3023], ['home', 'bravo', 2954]], 371]),\n  ('variant scenario 1',\n   ([['delta', 'home', '2.93'],\n     ['bravo', 'home', '2.86'],\n     ['bravo', 'draw', '3.36'],\n     ['delta', 'draw', '3.11'],\n     ['kilo', 'away', '2.81']],\n    9999),\n   ['arb', [['away', 'kilo', 3577], ['draw', 'bravo', 2991], ['home', 'delta', 3430]], 51]),\n  ('variant scenario 2',\n   ([['delta', 'home', '2.19'],\n     ['bravo', 'home', '2.28'],\n     ['alpha', 'home', '2.14'],\n     ['bravo', 'away', '1.88'],\n     ['delta', 'home', '2.19']],\n    10000),\n   ['arb', [['away', 'bravo', 5480], ['home', 'bravo', 4519]], 303])],\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: bookmaker tiebreak',\n   ([['alpha', 'home', '2.68'],\n     ['kilo', 'home', '2.64'],\n     ['bravo', 'draw', '3.55'],\n     ['delta', 'draw', '3.29'],\n     ['alpha', 'draw', '3.29'],\n     ['kilo', 'away', '3.06'],\n     ['alpha', 'away', '2.62'],\n     ['bravo', 'home', '2.68']],\n    25000),\n   ['arb', [['away', 'kilo', 8322], ['draw', 'bravo', 7174], ['home', 'alpha', 9503]], 466]),\n  ('variant scenario 1',\n   ([['alpha', 'home', '2.85'],\n     ['kilo', 'home', '2.89'],\n     ['bravo', 'home', '3.01'],\n     ['alpha', 'away', '1.51']],\n    10000),\n   ['arb', [['away', 'alpha', 6659], ['home', 'bravo', 3340]], 54]),\n  ('variant scenario 2',\n   ([['kilo', 'home', '1.45'],\n     ['alpha', 'home', '1.60'],\n     ['delta', 'home', '1.63'],\n     ['alpha', 'away', '2.60'],\n     ['alpha', 'home', '1.45']],\n    9999),\n   ['arb', [['away', 'alpha', 3853], ['home', 'delta', 6145]], 18])],\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: bookmaker tiebreak',\n   ([['bravo', 'home', '1.93'],\n     ['delta', 'home', '1.77'],\n     ['delta', 'away', '2.14'],\n     ['alpha', 'home', '1.93']],\n    25000),\n   ['arb', [['away', 'delta', 11855], ['home', 'alpha', 13144]], 368]),\n  ('regression: bookmaker tiebreak',\n   ([['delta', 'home', '2.69'],\n     ['alpha', 'home', '2.64'],\n     ['kilo', 'away', '1.70'],\n     ['kilo', 'home', '2.69']],\n    25000),\n   ['arb', [['away', 'kilo', 15318], ['home', 'delta', 9681]], 1041]),\n  ('variant scenario 1',\n   ([['alpha', 'home', '4.67'],\n     ['alpha', 'draw', '2.53'],\n     ['bravo', 'draw', '2.58'],\n     ['delta', 'draw', '2.26'],\n     ['bravo', 'away', '2.81'],\n     ['alpha', 'home', '4.67']],\n    25000),\n   ['arb', [['away', 'bravo', 9290], ['draw', 'bravo', 10118], ['home', 'alpha', 5590]], 1106]),\n  ('variant scenario 2',\n   ([['delta', 'home', '1.82'],\n     ['alpha', 'home', '1.83'],\n     ['bravo', 'home', '1.81'],\n     ['alpha', 'away', '2.58'],\n     ['delta', 'away', '2.49'],\n     ['kilo', 'away', '2.27']],\n    10000),\n   ['arb', [['away', 'alpha', 4149], ['home', 'alpha', 5850]], 705])],\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: bookmaker tiebreak',\n   ([['bravo', 'home', '3.83'],\n     ['bravo', 'draw', '3.33'],\n     ['kilo', 'draw', '3.68'],\n     ['delta', 'draw', '3.51'],\n     ['alpha', 'away', '2.23'],\n     ['kilo', 'away', '2.23'],\n     ['alpha', 'home', '3.83']],\n    25000),\n   ['arb', [['away', 'alpha', 11424], ['draw', 'kilo', 6923], ['home', 'alpha', 6652]], 476]),\n  ('variant scenario 1',\n   ([['delta', 'home', '1.97'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('variant scenario 2',\n   ([['delta', 'home', '1.68'], ['bravo', 'home', '1.62'], ['alpha', 'away', '2.82']], 9999),\n   ['arb', [['away', 'alpha', 3732], ['home', 'delta', 6266]], 526])],\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: bookmaker tiebreak',\n   ([['alpha', 'home', '2.67'],\n     ['bravo', 'home', '2.37'],\n     ['alpha', 'draw', '3.41'],\n     ['bravo', 'draw', '3.82'],\n     ['bravo', 'away', '3.16'],\n     ['bravo', 'home', '2.67']],\n    9999),\n   ['arb', [['away', 'bravo', 3321], ['draw', 'bravo', 2747], ['home', 'alpha', 3930]], 495]),\n  ('variant scenario 1',\n   ([['alpha', 'home', '1.73'],\n     ['kilo', 'home', '1.71'],\n     ['delta', 'home', '1.57'],\n     ['kilo', 'away', '2.26'],\n     ['delta', 'home', '1.73']],\n    10000),\n   ['no arb']),\n  ('variant scenario 2',\n   ([['delta', 'home', '2.20'],\n     ['bravo', 'away', '2.04'],\n     ['delta', 'away', '1.85'],\n     ['kilo', 'away', '2.00']],\n    25000),\n   ['arb', [['away', 'bravo', 12971], ['home', 'delta', 12028]], 1461])]]\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":"0a914058aa768f669affa7bb66f715fc1c00a82a1a0f54c09cf1e2afe559e492","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]):\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: bookmaker tiebreak',\n   ([['bravo', 'home', '2.12'],\n     ['alpha', 'home', '1.85'],\n     ['kilo', 'away', '1.94'],\n     ['delta', 'away', '1.86'],\n     ['bravo', 'away', '1.95'],\n     ['alpha', 'home', '2.12']],\n    25000),\n   ['arb', [['away', 'bravo', 13022], ['home', 'alpha', 11977]], 392]),\n  ('regression: bookmaker tiebreak',\n   ([['bravo', 'home', '3.51'],\n     ['delta', 'home', '3.20'],\n     ['delta', 'draw', '3.26'],\n     ['bravo', 'draw', '3.43'],\n     ['bravo', 'away', '2.58'],\n     ['delta', 'away', '2.38'],\n     ['kilo', 'home', '3.51']],\n    9999),\n   ['arb', [['away', 'bravo', 4020], ['draw', 'bravo', 3023], ['home', 'bravo', 2954]], 371]),\n  ('variant scenario 1',\n   ([['delta', 'home', '2.93'],\n     ['bravo', 'home', '2.86'],\n     ['bravo', 'draw', '3.36'],\n     ['delta', 'draw', '3.11'],\n     ['kilo', 'away', '2.81']],\n    9999),\n   ['arb', [['away', 'kilo', 3577], ['draw', 'bravo', 2991], ['home', 'delta', 3430]], 51]),\n  ('variant scenario 2',\n   ([['delta', 'home', '2.19'],\n     ['bravo', 'home', '2.28'],\n     ['alpha', 'home', '2.14'],\n     ['bravo', 'away', '1.88'],\n     ['delta', 'home', '2.19']],\n    10000),\n   ['arb', [['away', 'bravo', 5480], ['home', 'bravo', 4519]], 303])],\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: bookmaker tiebreak',\n   ([['alpha', 'home', '2.68'],\n     ['kilo', 'home', '2.64'],\n     ['bravo', 'draw', '3.55'],\n     ['delta', 'draw', '3.29'],\n     ['alpha', 'draw', '3.29'],\n     ['kilo', 'away', '3.06'],\n     ['alpha', 'away', '2.62'],\n     ['bravo', 'home', '2.68']],\n    25000),\n   ['arb', [['away', 'kilo', 8322], ['draw', 'bravo', 7174], ['home', 'alpha', 9503]], 466]),\n  ('variant scenario 1',\n   ([['alpha', 'home', '2.85'],\n     ['kilo', 'home', '2.89'],\n     ['bravo', 'home', '3.01'],\n     ['alpha', 'away', '1.51']],\n    10000),\n   ['arb', [['away', 'alpha', 6659], ['home', 'bravo', 3340]], 54]),\n  ('variant scenario 2',\n   ([['kilo', 'home', '1.45'],\n     ['alpha', 'home', '1.60'],\n     ['delta', 'home', '1.63'],\n     ['alpha', 'away', '2.60'],\n     ['alpha', 'home', '1.45']],\n    9999),\n   ['arb', [['away', 'alpha', 3853], ['home', 'delta', 6145]], 18])],\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: bookmaker tiebreak',\n   ([['bravo', 'home', '1.93'],\n     ['delta', 'home', '1.77'],\n     ['delta', 'away', '2.14'],\n     ['alpha', 'home', '1.93']],\n    25000),\n   ['arb', [['away', 'delta', 11855], ['home', 'alpha', 13144]], 368]),\n  ('regression: bookmaker tiebreak',\n   ([['delta', 'home', '2.69'],\n     ['alpha', 'home', '2.64'],\n     ['kilo', 'away', '1.70'],\n     ['kilo', 'home', '2.69']],\n    25000),\n   ['arb', [['away', 'kilo', 15318], ['home', 'delta', 9681]], 1041]),\n  ('variant scenario 1',\n   ([['alpha', 'home', '4.67'],\n     ['alpha', 'draw', '2.53'],\n     ['bravo', 'draw', '2.58'],\n     ['delta', 'draw', '2.26'],\n     ['bravo', 'away', '2.81'],\n     ['alpha', 'home', '4.67']],\n    25000),\n   ['arb', [['away', 'bravo', 9290], ['draw', 'bravo', 10118], ['home', 'alpha', 5590]], 1106]),\n  ('variant scenario 2',\n   ([['delta', 'home', '1.82'],\n     ['alpha', 'home', '1.83'],\n     ['bravo', 'home', '1.81'],\n     ['alpha', 'away', '2.58'],\n     ['delta', 'away', '2.49'],\n     ['kilo', 'away', '2.27']],\n    10000),\n   ['arb', [['away', 'alpha', 4149], ['home', 'alpha', 5850]], 705])],\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: bookmaker tiebreak',\n   ([['bravo', 'home', '3.83'],\n     ['bravo', 'draw', '3.33'],\n     ['kilo', 'draw', '3.68'],\n     ['delta', 'draw', '3.51'],\n     ['alpha', 'away', '2.23'],\n     ['kilo', 'away', '2.23'],\n     ['alpha', 'home', '3.83']],\n    25000),\n   ['arb', [['away', 'alpha', 11424], ['draw', 'kilo', 6923], ['home', 'alpha', 6652]], 476]),\n  ('variant scenario 1',\n   ([['delta', 'home', '1.97'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('variant scenario 2',\n   ([['delta', 'home', '1.68'], ['bravo', 'home', '1.62'], ['alpha', 'away', '2.82']], 9999),\n   ['arb', [['away', 'alpha', 3732], ['home', 'delta', 6266]], 526])],\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: bookmaker tiebreak',\n   ([['alpha', 'home', '2.67'],\n     ['bravo', 'home', '2.37'],\n     ['alpha', 'draw', '3.41'],\n     ['bravo', 'draw', '3.82'],\n     ['bravo', 'away', '3.16'],\n     ['bravo', 'home', '2.67']],\n    9999),\n   ['arb', [['away', 'bravo', 3321], ['draw', 'bravo', 2747], ['home', 'alpha', 3930]], 495]),\n  ('variant scenario 1',\n   ([['alpha', 'home', '1.73'],\n     ['kilo', 'home', '1.71'],\n     ['delta', 'home', '1.57'],\n     ['kilo', 'away', '2.26'],\n     ['delta', 'home', '1.73']],\n    10000),\n   ['no arb']),\n  ('variant scenario 2',\n   ([['delta', 'home', '2.20'],\n     ['bravo', 'away', '2.04'],\n     ['delta', 'away', '1.85'],\n     ['kilo', 'away', '2.00']],\n    25000),\n   ['arb', [['away', 'bravo', 12971], ['home', 'delta', 12028]], 1461])]]\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"},"fixed":{"sha256":"8948a5f562683335687c49c6854b544439ff6e2e7272f8215382fdd2a35087d8","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: bookmaker tiebreak',\n   ([['bravo', 'home', '2.12'],\n     ['alpha', 'home', '1.85'],\n     ['kilo', 'away', '1.94'],\n     ['delta', 'away', '1.86'],\n     ['bravo', 'away', '1.95'],\n     ['alpha', 'home', '2.12']],\n    25000),\n   ['arb', [['away', 'bravo', 13022], ['home', 'alpha', 11977]], 392]),\n  ('regression: bookmaker tiebreak',\n   ([['bravo', 'home', '3.51'],\n     ['delta', 'home', '3.20'],\n     ['delta', 'draw', '3.26'],\n     ['bravo', 'draw', '3.43'],\n     ['bravo', 'away', '2.58'],\n     ['delta', 'away', '2.38'],\n     ['kilo', 'home', '3.51']],\n    9999),\n   ['arb', [['away', 'bravo', 4020], ['draw', 'bravo', 3023], ['home', 'bravo', 2954]], 371]),\n  ('variant scenario 1',\n   ([['delta', 'home', '2.93'],\n     ['bravo', 'home', '2.86'],\n     ['bravo', 'draw', '3.36'],\n     ['delta', 'draw', '3.11'],\n     ['kilo', 'away', '2.81']],\n    9999),\n   ['arb', [['away', 'kilo', 3577], ['draw', 'bravo', 2991], ['home', 'delta', 3430]], 51]),\n  ('variant scenario 2',\n   ([['delta', 'home', '2.19'],\n     ['bravo', 'home', '2.28'],\n     ['alpha', 'home', '2.14'],\n     ['bravo', 'away', '1.88'],\n     ['delta', 'home', '2.19']],\n    10000),\n   ['arb', [['away', 'bravo', 5480], ['home', 'bravo', 4519]], 303])],\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: bookmaker tiebreak',\n   ([['alpha', 'home', '2.68'],\n     ['kilo', 'home', '2.64'],\n     ['bravo', 'draw', '3.55'],\n     ['delta', 'draw', '3.29'],\n     ['alpha', 'draw', '3.29'],\n     ['kilo', 'away', '3.06'],\n     ['alpha', 'away', '2.62'],\n     ['bravo', 'home', '2.68']],\n    25000),\n   ['arb', [['away', 'kilo', 8322], ['draw', 'bravo', 7174], ['home', 'alpha', 9503]], 466]),\n  ('variant scenario 1',\n   ([['alpha', 'home', '2.85'],\n     ['kilo', 'home', '2.89'],\n     ['bravo', 'home', '3.01'],\n     ['alpha', 'away', '1.51']],\n    10000),\n   ['arb', [['away', 'alpha', 6659], ['home', 'bravo', 3340]], 54]),\n  ('variant scenario 2',\n   ([['kilo', 'home', '1.45'],\n     ['alpha', 'home', '1.60'],\n     ['delta', 'home', '1.63'],\n     ['alpha', 'away', '2.60'],\n     ['alpha', 'home', '1.45']],\n    9999),\n   ['arb', [['away', 'alpha', 3853], ['home', 'delta', 6145]], 18])],\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: bookmaker tiebreak',\n   ([['bravo', 'home', '1.93'],\n     ['delta', 'home', '1.77'],\n     ['delta', 'away', '2.14'],\n     ['alpha', 'home', '1.93']],\n    25000),\n   ['arb', [['away', 'delta', 11855], ['home', 'alpha', 13144]], 368]),\n  ('regression: bookmaker tiebreak',\n   ([['delta', 'home', '2.69'],\n     ['alpha', 'home', '2.64'],\n     ['kilo', 'away', '1.70'],\n     ['kilo', 'home', '2.69']],\n    25000),\n   ['arb', [['away', 'kilo', 15318], ['home', 'delta', 9681]], 1041]),\n  ('variant scenario 1',\n   ([['alpha', 'home', '4.67'],\n     ['alpha', 'draw', '2.53'],\n     ['bravo', 'draw', '2.58'],\n     ['delta', 'draw', '2.26'],\n     ['bravo', 'away', '2.81'],\n     ['alpha', 'home', '4.67']],\n    25000),\n   ['arb', [['away', 'bravo', 9290], ['draw', 'bravo', 10118], ['home', 'alpha', 5590]], 1106]),\n  ('variant scenario 2',\n   ([['delta', 'home', '1.82'],\n     ['alpha', 'home', '1.83'],\n     ['bravo', 'home', '1.81'],\n     ['alpha', 'away', '2.58'],\n     ['delta', 'away', '2.49'],\n     ['kilo', 'away', '2.27']],\n    10000),\n   ['arb', [['away', 'alpha', 4149], ['home', 'alpha', 5850]], 705])],\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: bookmaker tiebreak',\n   ([['bravo', 'home', '3.83'],\n     ['bravo', 'draw', '3.33'],\n     ['kilo', 'draw', '3.68'],\n     ['delta', 'draw', '3.51'],\n     ['alpha', 'away', '2.23'],\n     ['kilo', 'away', '2.23'],\n     ['alpha', 'home', '3.83']],\n    25000),\n   ['arb', [['away', 'alpha', 11424], ['draw', 'kilo', 6923], ['home', 'alpha', 6652]], 476]),\n  ('variant scenario 1',\n   ([['delta', 'home', '1.97'], ['bravo', 'away', '2.00']], 10000),\n   ['no arb']),\n  ('variant scenario 2',\n   ([['delta', 'home', '1.68'], ['bravo', 'home', '1.62'], ['alpha', 'away', '2.82']], 9999),\n   ['arb', [['away', 'alpha', 3732], ['home', 'delta', 6266]], 526])],\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: bookmaker tiebreak',\n   ([['alpha', 'home', '2.67'],\n     ['bravo', 'home', '2.37'],\n     ['alpha', 'draw', '3.41'],\n     ['bravo', 'draw', '3.82'],\n     ['bravo', 'away', '3.16'],\n     ['bravo', 'home', '2.67']],\n    9999),\n   ['arb', [['away', 'bravo', 3321], ['draw', 'bravo', 2747], ['home', 'alpha', 3930]], 495]),\n  ('variant scenario 1',\n   ([['alpha', 'home', '1.73'],\n     ['kilo', 'home', '1.71'],\n     ['delta', 'home', '1.57'],\n     ['kilo', 'away', '2.26'],\n     ['delta', 'home', '1.73']],\n    10000),\n   ['no arb']),\n  ('variant scenario 2',\n   ([['delta', 'home', '2.20'],\n     ['bravo', 'away', '2.04'],\n     ['delta', 'away', '1.85'],\n     ['kilo', 'away', '2.00']],\n    25000),\n   ['arb', [['away', 'bravo', 12971], ['home', 'delta', 12028]], 1461])]]\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-bookmaker-tiebreak","generated_at":"2026-09-29T14:50:32.351544+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.","repair":"On equal prices keep the alphabetically first bookmaker.","root_cause":"Ties on price overwrite the stored bookmaker.","sha256":"71fcb173b6af8b8859a1c3fe427729eed3ddb74e3cb1eebd685c8d752f5b1fdf","title":"Equal best prices attributed to the wrong bookmaker · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.394,"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","kilo",5000]],1000],"check":"boundary tie goes to first name","expected":["arb",[["away","bravo",5000],["home","alpha",5000]],1000],"passed":false},{"actual":["no arb"],"check":"control no arb","expected":["no arb"],"passed":true},{"actual":["arb",[["away","bravo",13022],["home","bravo",11977]],392],"check":"regression: bookmaker tiebreak","expected":["arb",[["away","bravo",13022],["home","alpha",11977]],392],"passed":false},{"actual":["arb",[["away","bravo",4020],["draw","bravo",3023],["home","kilo",2954]],371],"check":"regression: bookmaker tiebreak","expected":["arb",[["away","bravo",4020],["draw","bravo",3023],["home","bravo",2954]],371],"passed":false},{"actual":["arb",[["away","kilo",3577],["draw","bravo",2991],["home","delta",3430]],51],"check":"variant scenario 1","expected":["arb",[["away","kilo",3577],["draw","bravo",2991],["home","delta",3430]],51],"passed":true},{"actual":["arb",[["away","bravo",5480],["home","bravo",4519]],303],"check":"variant scenario 2","expected":["arb",[["away","bravo",5480],["home","bravo",4519]],303],"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\", \"kilo\", 5000]], 1000], \"expected\": [\"arb\", [[\"away\", \"bravo\", 5000], [\"home\", \"alpha\", 5000]], 1000], \"passed\": false}, {\"check\": \"control no arb\", \"actual\": [\"no arb\"], \"expected\": [\"no arb\"], \"passed\": true}, {\"check\": \"regression: bookmaker tiebreak\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 13022], [\"home\", \"bravo\", 11977]], 392], \"expected\": [\"arb\", [[\"away\", \"bravo\", 13022], [\"home\", \"alpha\", 11977]], 392], \"passed\": false}, {\"check\": \"regression: bookmaker tiebreak\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 4020], [\"draw\", \"bravo\", 3023], [\"home\", \"kilo\", 2954]], 371], \"expected\": [\"arb\", [[\"away\", \"bravo\", 4020], [\"draw\", \"bravo\", 3023], [\"home\", \"bravo\", 2954]], 371], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"arb\", [[\"away\", \"kilo\", 3577], [\"draw\", \"bravo\", 2991], [\"home\", \"delta\", 3430]], 51], \"expected\": [\"arb\", [[\"away\", \"kilo\", 3577], [\"draw\", \"bravo\", 2991], [\"home\", \"delta\", 3430]], 51], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 5480], [\"home\", \"bravo\", 4519]], 303], \"expected\": [\"arb\", [[\"away\", \"bravo\", 5480], [\"home\", \"bravo\", 4519]], 303], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.929,"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":["arb",[["away","bravo",13022],["home","alpha",11977]],392],"check":"regression: bookmaker tiebreak","expected":["arb",[["away","bravo",13022],["home","alpha",11977]],392],"passed":true},{"actual":["arb",[["away","bravo",4020],["draw","bravo",3023],["home","kilo",2954]],371],"check":"regression: bookmaker tiebreak","expected":["arb",[["away","bravo",4020],["draw","bravo",3023],["home","bravo",2954]],371],"passed":false},{"actual":["arb",[["away","kilo",3577],["draw","bravo",2991],["home","delta",3430]],51],"check":"variant scenario 1","expected":["arb",[["away","kilo",3577],["draw","bravo",2991],["home","delta",3430]],51],"passed":true},{"actual":["arb",[["away","bravo",5480],["home","bravo",4519]],303],"check":"variant scenario 2","expected":["arb",[["away","bravo",5480],["home","bravo",4519]],303],"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: bookmaker tiebreak\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 13022], [\"home\", \"alpha\", 11977]], 392], \"expected\": [\"arb\", [[\"away\", \"bravo\", 13022], [\"home\", \"alpha\", 11977]], 392], \"passed\": true}, {\"check\": \"regression: bookmaker tiebreak\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 4020], [\"draw\", \"bravo\", 3023], [\"home\", \"kilo\", 2954]], 371], \"expected\": [\"arb\", [[\"away\", \"bravo\", 4020], [\"draw\", \"bravo\", 3023], [\"home\", \"bravo\", 2954]], 371], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"arb\", [[\"away\", \"kilo\", 3577], [\"draw\", \"bravo\", 2991], [\"home\", \"delta\", 3430]], 51], \"expected\": [\"arb\", [[\"away\", \"kilo\", 3577], [\"draw\", \"bravo\", 2991], [\"home\", \"delta\", 3430]], 51], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 5480], [\"home\", \"bravo\", 4519]], 303], \"expected\": [\"arb\", [[\"away\", \"bravo\", 5480], [\"home\", \"bravo\", 4519]], 303], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.555,"exit_code":0,"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":["arb",[["away","bravo",13022],["home","alpha",11977]],392],"check":"regression: bookmaker tiebreak","expected":["arb",[["away","bravo",13022],["home","alpha",11977]],392],"passed":true},{"actual":["arb",[["away","bravo",4020],["draw","bravo",3023],["home","bravo",2954]],371],"check":"regression: bookmaker tiebreak","expected":["arb",[["away","bravo",4020],["draw","bravo",3023],["home","bravo",2954]],371],"passed":true},{"actual":["arb",[["away","kilo",3577],["draw","bravo",2991],["home","delta",3430]],51],"check":"variant scenario 1","expected":["arb",[["away","kilo",3577],["draw","bravo",2991],["home","delta",3430]],51],"passed":true},{"actual":["arb",[["away","bravo",5480],["home","bravo",4519]],303],"check":"variant scenario 2","expected":["arb",[["away","bravo",5480],["home","bravo",4519]],303],"passed":true}],"passed":true,"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: bookmaker tiebreak\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 13022], [\"home\", \"alpha\", 11977]], 392], \"expected\": [\"arb\", [[\"away\", \"bravo\", 13022], [\"home\", \"alpha\", 11977]], 392], \"passed\": true}, {\"check\": \"regression: bookmaker tiebreak\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 4020], [\"draw\", \"bravo\", 3023], [\"home\", \"bravo\", 2954]], 371], \"expected\": [\"arb\", [[\"away\", \"bravo\", 4020], [\"draw\", \"bravo\", 3023], [\"home\", \"bravo\", 2954]], 371], \"passed\": true}, {\"check\": \"variant scenario 1\", \"actual\": [\"arb\", [[\"away\", \"kilo\", 3577], [\"draw\", \"bravo\", 2991], [\"home\", \"delta\", 3430]], 51], \"expected\": [\"arb\", [[\"away\", \"kilo\", 3577], [\"draw\", \"bravo\", 2991], [\"home\", \"delta\", 3430]], 51], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [\"arb\", [[\"away\", \"bravo\", 5480], [\"home\", \"bravo\", 4519]], 303], \"expected\": [\"arb\", [[\"away\", \"bravo\", 5480], [\"home\", \"bravo\", 4519]], 303], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}