{"abstract":"Offers are far too high or low when prices move.","category":"Betting odds conversion","checks":10,"contract":"Cash-out offer for a single or multiple back bet. legs rows are [price taken, current] where current is a decimal price for an open leg, \"won\" or \"lost\". Any lost leg makes the offer [0, 0]. Otherwise value = stake * product of prices taken / product of current prices of open legs, reduced by margin_pct percent, rounded down to a cent. partial_cents 0 means full cash-out: return [value, 0]. A partial amount above the value returns \"invalid\"; otherwise return [partial, remaining stake] with remaining = floor(stake * (1 - partial / value)).","evaluation_group":"w2-odds-conversion-cash-out-valuation","failed_approach":"Using the price ratio for open legs but the profit for settled legs still misvalues multiples.","family":"w2-odds-conversion-cash-out-valuation-price-ratio","id":"FA-84691","implementations":{"attempt":{"sha256":"ea320b2c702d79d96efd070266e8500b8973f66ea96994021a6142a2e24fad67","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(legs, stake_cents, margin_pct, partial_cents):\n    value = Fraction(stake_cents)\n    for price, cur in legs:\n        if cur == 'lost':\n            return [0, 0]\n        value *= Fraction(price)\n        if cur != 'won':\n            value /= Fraction(cur) - 1\n    value = value * (100 - Fraction(margin_pct)) / 100\n    full = math.floor(value)\n    if partial_cents == 0:\n        return [full, 0]\n    if partial_cents > full:\n        return 'invalid'\n    remaining = math.floor(stake_cents * (1 - Fraction(partial_cents, full)))\n    return [partial_cents, remaining]\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 shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio', ([['3.04', 'won']], 2500, '0', 200), [200, 2434]),\n  ('regression: price ratio', ([['4.46', '3.15']], 2500, '7.5', 500), [500, 2118]),\n  ('variant scenario 1', ([['3.10', '4.55'], ['2.81', 'lost']], 2500, '0', 800), [0, 0]),\n  ('variant scenario 2',\n   ([['4.23', '2.69'], ['3.78', 'lost'], ['3.20', '3.35']], 1000, '7.5', 200),\n   [0, 0])],\n [('control single shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio',\n   ([['3.57', '2.52'], ['4.50', '4.68'], ['4.10', '5.08']], 500, '0', 200),\n   [200, 317]),\n  ('variant scenario 1', ([['2.62', 'lost'], ['2.60', 'won']], 500, '5', 0), [0, 0]),\n  ('variant scenario 2', ([['2.11', '4.37']], 2500, '5', 0), [1146, 0])],\n [('control single shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio',\n   ([['2.58', 'won'], ['4.59', '4.36'], ['2.12', '5.27']], 1000, '7.5', 0),\n   [1010, 0]),\n  ('variant scenario 1',\n   ([['2.10', 'lost'], ['4.52', '4.26'], ['3.40', '4.12']], 1000, '5', 500),\n   [0, 0]),\n  ('variant scenario 2', ([['4.81', 'lost']], 500, '5', 500), [0, 0])],\n [('control single shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio', ([['4.82', '4.94'], ['3.03', '2.37']], 500, '5', 800), 'invalid'),\n  ('regression: price ratio', ([['3.37', '3.69']], 1000, '5', 500), [500, 423]),\n  ('variant scenario 1', ([['2.71', 'won'], ['4.12', 'lost']], 500, '5', 500), [0, 0]),\n  ('variant scenario 2',\n   ([['1.37', '4.05'], ['2.46', 'won'], ['3.51', 'lost'], ['2.03', '2.32']], 2500, '0', 0),\n   [0, 0])],\n [('control single shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio', ([['2.66', '3.93']], 500, '7.5', 0), [313, 0]),\n  ('variant scenario 1',\n   ([['4.87', '2.93'], ['1.43', '5.36'], ['2.11', 'lost']], 2500, '7.5', 200),\n   [0, 0]),\n  ('variant scenario 2',\n   ([['4.96', '3.65'], ['3.57', 'lost'], ['3.36', 'won'], ['4.39', 'lost']], 500, '0', 0),\n   [0, 0])]]\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":"0388d12c7b0b41bf847afcd8072e015f5316707f7d9c4ac42a29cb136d5e33f1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(legs, stake_cents, margin_pct, partial_cents):\n    value = Fraction(stake_cents)\n    for price, cur in legs:\n        if cur == 'lost':\n            return [0, 0]\n        value *= Fraction(price) - 1\n        if cur != 'won':\n            value /= Fraction(cur) - 1\n    value = value * (100 - Fraction(margin_pct)) / 100\n    full = math.floor(value)\n    if partial_cents == 0:\n        return [full, 0]\n    if partial_cents > full:\n        return 'invalid'\n    remaining = math.floor(stake_cents * (1 - Fraction(partial_cents, full)))\n    return [partial_cents, remaining]\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 shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio', ([['3.04', 'won']], 2500, '0', 200), [200, 2434]),\n  ('regression: price ratio', ([['4.46', '3.15']], 2500, '7.5', 500), [500, 2118]),\n  ('variant scenario 1', ([['3.10', '4.55'], ['2.81', 'lost']], 2500, '0', 800), [0, 0]),\n  ('variant scenario 2',\n   ([['4.23', '2.69'], ['3.78', 'lost'], ['3.20', '3.35']], 1000, '7.5', 200),\n   [0, 0])],\n [('control single shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio',\n   ([['3.57', '2.52'], ['4.50', '4.68'], ['4.10', '5.08']], 500, '0', 200),\n   [200, 317]),\n  ('variant scenario 1', ([['2.62', 'lost'], ['2.60', 'won']], 500, '5', 0), [0, 0]),\n  ('variant scenario 2', ([['2.11', '4.37']], 2500, '5', 0), [1146, 0])],\n [('control single shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio',\n   ([['2.58', 'won'], ['4.59', '4.36'], ['2.12', '5.27']], 1000, '7.5', 0),\n   [1010, 0]),\n  ('variant scenario 1',\n   ([['2.10', 'lost'], ['4.52', '4.26'], ['3.40', '4.12']], 1000, '5', 500),\n   [0, 0]),\n  ('variant scenario 2', ([['4.81', 'lost']], 500, '5', 500), [0, 0])],\n [('control single shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio', ([['4.82', '4.94'], ['3.03', '2.37']], 500, '5', 800), 'invalid'),\n  ('regression: price ratio', ([['3.37', '3.69']], 1000, '5', 500), [500, 423]),\n  ('variant scenario 1', ([['2.71', 'won'], ['4.12', 'lost']], 500, '5', 500), [0, 0]),\n  ('variant scenario 2',\n   ([['1.37', '4.05'], ['2.46', 'won'], ['3.51', 'lost'], ['2.03', '2.32']], 2500, '0', 0),\n   [0, 0])],\n [('control single shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio', ([['2.66', '3.93']], 500, '7.5', 0), [313, 0]),\n  ('variant scenario 1',\n   ([['4.87', '2.93'], ['1.43', '5.36'], ['2.11', 'lost']], 2500, '7.5', 200),\n   [0, 0]),\n  ('variant scenario 2',\n   ([['4.96', '3.65'], ['3.57', 'lost'], ['3.36', 'won'], ['4.39', 'lost']], 500, '0', 0),\n   [0, 0])]]\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":"759ed7a237cacfd445ded912cbb0a8ee8a4c1781365c5e3de5eb5b7234424eeb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(legs, stake_cents, margin_pct, partial_cents):\n    value = Fraction(stake_cents)\n    for price, cur in legs:\n        if cur == 'lost':\n            return [0, 0]\n        value *= Fraction(price)\n        if cur != 'won':\n            value /= Fraction(cur)\n    value = value * (100 - Fraction(margin_pct)) / 100\n    full = math.floor(value)\n    if partial_cents == 0:\n        return [full, 0]\n    if partial_cents > full:\n        return 'invalid'\n    remaining = math.floor(stake_cents * (1 - Fraction(partial_cents, full)))\n    return [partial_cents, remaining]\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 shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio', ([['3.04', 'won']], 2500, '0', 200), [200, 2434]),\n  ('regression: price ratio', ([['4.46', '3.15']], 2500, '7.5', 500), [500, 2118]),\n  ('variant scenario 1', ([['3.10', '4.55'], ['2.81', 'lost']], 2500, '0', 800), [0, 0]),\n  ('variant scenario 2',\n   ([['4.23', '2.69'], ['3.78', 'lost'], ['3.20', '3.35']], 1000, '7.5', 200),\n   [0, 0])],\n [('control single shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio',\n   ([['3.57', '2.52'], ['4.50', '4.68'], ['4.10', '5.08']], 500, '0', 200),\n   [200, 317]),\n  ('variant scenario 1', ([['2.62', 'lost'], ['2.60', 'won']], 500, '5', 0), [0, 0]),\n  ('variant scenario 2', ([['2.11', '4.37']], 2500, '5', 0), [1146, 0])],\n [('control single shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio',\n   ([['2.58', 'won'], ['4.59', '4.36'], ['2.12', '5.27']], 1000, '7.5', 0),\n   [1010, 0]),\n  ('variant scenario 1',\n   ([['2.10', 'lost'], ['4.52', '4.26'], ['3.40', '4.12']], 1000, '5', 500),\n   [0, 0]),\n  ('variant scenario 2', ([['4.81', 'lost']], 500, '5', 500), [0, 0])],\n [('control single shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio', ([['4.82', '4.94'], ['3.03', '2.37']], 500, '5', 800), 'invalid'),\n  ('regression: price ratio', ([['3.37', '3.69']], 1000, '5', 500), [500, 423]),\n  ('variant scenario 1', ([['2.71', 'won'], ['4.12', 'lost']], 500, '5', 500), [0, 0]),\n  ('variant scenario 2',\n   ([['1.37', '4.05'], ['2.46', 'won'], ['3.51', 'lost'], ['2.03', '2.32']], 2500, '0', 0),\n   [0, 0])],\n [('control single shortened', ([['3.00', '2.00']], 1000, '0', 0), [1500, 0]),\n  ('control margin applied', ([['3.00', '2.00']], 1000, '5', 0), [1425, 0]),\n  ('boundary won leg keeps price', ([['2.00', 'won'], ['2.00', '1.50']], 1000, '0', 0), [2666, 0]),\n  ('boundary partial cash out', ([['3.00', '2.00']], 1000, '0', 500), [500, 666]),\n  ('control lost leg', ([['2.00', 'lost'], ['2.00', '1.50']], 1000, '0', 0), [0, 0]),\n  ('boundary partial above value', ([['2.00', '4.00']], 1000, '0', 600), 'invalid'),\n  ('regression: price ratio', ([['2.66', '3.93']], 500, '7.5', 0), [313, 0]),\n  ('variant scenario 1',\n   ([['4.87', '2.93'], ['1.43', '5.36'], ['2.11', 'lost']], 2500, '7.5', 200),\n   [0, 0]),\n  ('variant scenario 2',\n   ([['4.96', '3.65'], ['3.57', 'lost'], ['3.36', 'won'], ['4.39', 'lost']], 500, '0', 0),\n   [0, 0])]]\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-cash-out-valuation-price-ratio","generated_at":"2026-09-29T14:50:33.308106+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Cash-out and partial cash-out offers are recomputed from live prices on every tick.","repair":"Scale the stake by price taken over current price for each open leg.","root_cause":"The valuation uses (price - 1) / (current - 1) instead of price / current.","sha256":"70f0a4f1a202d4d1a4925fa0ffd06787f6ec31676adcb0e4b6d4332cea3dd1bd","title":"Cash-out value scaled by profit ratios instead of price ratios · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.003,"exit_code":1,"observations":[{"actual":[3000,0],"check":"control single shortened","expected":[1500,0],"passed":false},{"actual":[2850,0],"check":"control margin applied","expected":[1425,0],"passed":false},{"actual":[8000,0],"check":"boundary won leg keeps price","expected":[2666,0],"passed":false},{"actual":[500,833],"check":"boundary partial cash out","expected":[500,666],"passed":false},{"actual":[0,0],"check":"control lost leg","expected":[0,0],"passed":true},{"actual":[600,99],"check":"boundary partial above value","expected":"invalid","passed":false},{"actual":[200,2434],"check":"regression: price ratio","expected":[200,2434],"passed":true},{"actual":[500,2239],"check":"regression: price ratio","expected":[500,2118],"passed":false},{"actual":[0,0],"check":"variant scenario 1","expected":[0,0],"passed":true},{"actual":[0,0],"check":"variant scenario 2","expected":[0,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control single shortened\", \"actual\": [3000, 0], \"expected\": [1500, 0], \"passed\": false}, {\"check\": \"control margin applied\", \"actual\": [2850, 0], \"expected\": [1425, 0], \"passed\": false}, {\"check\": \"boundary won leg keeps price\", \"actual\": [8000, 0], \"expected\": [2666, 0], \"passed\": false}, {\"check\": \"boundary partial cash out\", \"actual\": [500, 833], \"expected\": [500, 666], \"passed\": false}, {\"check\": \"control lost leg\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"boundary partial above value\", \"actual\": [600, 99], \"expected\": \"invalid\", \"passed\": false}, {\"check\": \"regression: price ratio\", \"actual\": [200, 2434], \"expected\": [200, 2434], \"passed\": true}, {\"check\": \"regression: price ratio\", \"actual\": [500, 2239], \"expected\": [500, 2118], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.112,"exit_code":1,"observations":[{"actual":[2000,0],"check":"control single shortened","expected":[1500,0],"passed":false},{"actual":[1900,0],"check":"control margin applied","expected":[1425,0],"passed":false},{"actual":[2000,0],"check":"boundary won leg keeps price","expected":[2666,0],"passed":false},{"actual":[500,750],"check":"boundary partial cash out","expected":[500,666],"passed":false},{"actual":[0,0],"check":"control lost leg","expected":[0,0],"passed":true},{"actual":"invalid","check":"boundary partial above value","expected":"invalid","passed":true},{"actual":[200,2401],"check":"regression: price ratio","expected":[200,2434],"passed":false},{"actual":[500,2164],"check":"regression: price ratio","expected":[500,2118],"passed":false},{"actual":[0,0],"check":"variant scenario 1","expected":[0,0],"passed":true},{"actual":[0,0],"check":"variant scenario 2","expected":[0,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control single shortened\", \"actual\": [2000, 0], \"expected\": [1500, 0], \"passed\": false}, {\"check\": \"control margin applied\", \"actual\": [1900, 0], \"expected\": [1425, 0], \"passed\": false}, {\"check\": \"boundary won leg keeps price\", \"actual\": [2000, 0], \"expected\": [2666, 0], \"passed\": false}, {\"check\": \"boundary partial cash out\", \"actual\": [500, 750], \"expected\": [500, 666], \"passed\": false}, {\"check\": \"control lost leg\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"boundary partial above value\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"regression: price ratio\", \"actual\": [200, 2401], \"expected\": [200, 2434], \"passed\": false}, {\"check\": \"regression: price ratio\", \"actual\": [500, 2164], \"expected\": [500, 2118], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.639,"exit_code":0,"observations":[{"actual":[1500,0],"check":"control single shortened","expected":[1500,0],"passed":true},{"actual":[1425,0],"check":"control margin applied","expected":[1425,0],"passed":true},{"actual":[2666,0],"check":"boundary won leg keeps price","expected":[2666,0],"passed":true},{"actual":[500,666],"check":"boundary partial cash out","expected":[500,666],"passed":true},{"actual":[0,0],"check":"control lost leg","expected":[0,0],"passed":true},{"actual":"invalid","check":"boundary partial above value","expected":"invalid","passed":true},{"actual":[200,2434],"check":"regression: price ratio","expected":[200,2434],"passed":true},{"actual":[500,2118],"check":"regression: price ratio","expected":[500,2118],"passed":true},{"actual":[0,0],"check":"variant scenario 1","expected":[0,0],"passed":true},{"actual":[0,0],"check":"variant scenario 2","expected":[0,0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control single shortened\", \"actual\": [1500, 0], \"expected\": [1500, 0], \"passed\": true}, {\"check\": \"control margin applied\", \"actual\": [1425, 0], \"expected\": [1425, 0], \"passed\": true}, {\"check\": \"boundary won leg keeps price\", \"actual\": [2666, 0], \"expected\": [2666, 0], \"passed\": true}, {\"check\": \"boundary partial cash out\", \"actual\": [500, 666], \"expected\": [500, 666], \"passed\": true}, {\"check\": \"control lost leg\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"boundary partial above value\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"regression: price ratio\", \"actual\": [200, 2434], \"expected\": [200, 2434], \"passed\": true}, {\"check\": \"regression: price ratio\", \"actual\": [500, 2118], \"expected\": [500, 2118], \"passed\": true}, {\"check\": \"variant scenario 1\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}