{"abstract":"Offers differ from the stated percentage deduction.","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":"Dividing by 1 + margin grosses the value down by a different amount.","family":"w2-odds-conversion-cash-out-valuation-margin-application","id":"FA-84701","implementations":{"attempt":{"sha256":"96955c2159ecadf95f0f0500bf2d38b06339ed0012197c42198a5b00bd142b33","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 / (1 + 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: margin application',\n   ([['3.98', 'won'], ['3.24', 'won'], ['2.39', '4.03'], ['2.04', 'won']], 500, '5', 500),\n   [500, 466]),\n  ('regression: margin application',\n   ([['3.31', '5.65'], ['4.82', '5.34']], 2500, '5', 0),\n   [1255, 0]),\n  ('variant scenario 1',\n   ([['2.61', 'won'], ['2.54', '3.04'], ['4.36', 'won'], ['3.63', '5.65']], 2500, '0', 500),\n   [500, 2418]),\n  ('variant scenario 2', ([['2.56', 'lost']], 500, '7.5', 800), [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: margin application', ([['4.31', '1.48']], 500, '5', 500), [500, 319]),\n  ('regression: margin application', ([['2.56', '3.02']], 1000, '5', 0), [805, 0]),\n  ('variant scenario 1',\n   ([['3.54', 'won'], ['4.17', '2.42'], ['3.80', 'won'], ['3.99', 'lost']], 500, '7.5', 200),\n   [0, 0]),\n  ('variant scenario 2', ([['2.56', 'won']], 2500, '0', 200), [200, 2421])],\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: margin application',\n   ([['1.77', '5.47'], ['4.57', 'won'], ['4.63', 'won'], ['4.20', 'won']], 1000, '5', 200),\n   [200, 992]),\n  ('regression: margin application', ([['4.21', 'won']], 500, '5', 0), [1999, 0]),\n  ('variant scenario 1',\n   ([['4.24', 'lost'], ['4.73', '5.96'], ['3.59', 'won']], 1000, '7.5', 0),\n   [0, 0]),\n  ('variant scenario 2', ([['4.94', '1.31'], ['2.71', '5.06']], 1000, '0', 800), [800, 603])],\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: margin application', ([['1.66', '3.53']], 2500, '5', 200), [200, 2051]),\n  ('variant scenario 1', ([['1.54', 'won'], ['3.01', '3.82']], 1000, '0', 500), [500, 587]),\n  ('variant scenario 2', ([['3.86', '5.37']], 500, '7.5', 0), [332, 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: margin application',\n   ([['4.64', '5.35'], ['4.09', 'won'], ['4.50', '2.09']], 1000, '7.5', 0),\n   [7064, 0]),\n  ('variant scenario 1',\n   ([['2.22', 'lost'], ['2.66', 'won'], ['4.77', '1.58'], ['3.17', 'lost']], 2500, '5', 200),\n   [0, 0]),\n  ('variant scenario 2',\n   ([['4.16', '1.91'], ['4.67', '5.15'], ['2.46', '4.20'], ['3.13', '3.40']], 500, '0', 0),\n   [532, 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":"71a75b8a4edb3fdee6fd9ca2bf8fc9f550de25e5f7d4293c1e9aaa29d8f6eecd","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 - Fraction(margin_pct)\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: margin application',\n   ([['3.98', 'won'], ['3.24', 'won'], ['2.39', '4.03'], ['2.04', 'won']], 500, '5', 500),\n   [500, 466]),\n  ('regression: margin application',\n   ([['3.31', '5.65'], ['4.82', '5.34']], 2500, '5', 0),\n   [1255, 0]),\n  ('variant scenario 1',\n   ([['2.61', 'won'], ['2.54', '3.04'], ['4.36', 'won'], ['3.63', '5.65']], 2500, '0', 500),\n   [500, 2418]),\n  ('variant scenario 2', ([['2.56', 'lost']], 500, '7.5', 800), [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: margin application', ([['4.31', '1.48']], 500, '5', 500), [500, 319]),\n  ('regression: margin application', ([['2.56', '3.02']], 1000, '5', 0), [805, 0]),\n  ('variant scenario 1',\n   ([['3.54', 'won'], ['4.17', '2.42'], ['3.80', 'won'], ['3.99', 'lost']], 500, '7.5', 200),\n   [0, 0]),\n  ('variant scenario 2', ([['2.56', 'won']], 2500, '0', 200), [200, 2421])],\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: margin application',\n   ([['1.77', '5.47'], ['4.57', 'won'], ['4.63', 'won'], ['4.20', 'won']], 1000, '5', 200),\n   [200, 992]),\n  ('regression: margin application', ([['4.21', 'won']], 500, '5', 0), [1999, 0]),\n  ('variant scenario 1',\n   ([['4.24', 'lost'], ['4.73', '5.96'], ['3.59', 'won']], 1000, '7.5', 0),\n   [0, 0]),\n  ('variant scenario 2', ([['4.94', '1.31'], ['2.71', '5.06']], 1000, '0', 800), [800, 603])],\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: margin application', ([['1.66', '3.53']], 2500, '5', 200), [200, 2051]),\n  ('variant scenario 1', ([['1.54', 'won'], ['3.01', '3.82']], 1000, '0', 500), [500, 587]),\n  ('variant scenario 2', ([['3.86', '5.37']], 500, '7.5', 0), [332, 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: margin application',\n   ([['4.64', '5.35'], ['4.09', 'won'], ['4.50', '2.09']], 1000, '7.5', 0),\n   [7064, 0]),\n  ('variant scenario 1',\n   ([['2.22', 'lost'], ['2.66', 'won'], ['4.77', '1.58'], ['3.17', 'lost']], 2500, '5', 200),\n   [0, 0]),\n  ('variant scenario 2',\n   ([['4.16', '1.91'], ['4.67', '5.15'], ['2.46', '4.20'], ['3.13', '3.40']], 500, '0', 0),\n   [532, 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":"2bf84c26555309e433fce3ebff48f01cd3388a61e374039d71dc4cf386975df1","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: margin application',\n   ([['3.98', 'won'], ['3.24', 'won'], ['2.39', '4.03'], ['2.04', 'won']], 500, '5', 500),\n   [500, 466]),\n  ('regression: margin application',\n   ([['3.31', '5.65'], ['4.82', '5.34']], 2500, '5', 0),\n   [1255, 0]),\n  ('variant scenario 1',\n   ([['2.61', 'won'], ['2.54', '3.04'], ['4.36', 'won'], ['3.63', '5.65']], 2500, '0', 500),\n   [500, 2418]),\n  ('variant scenario 2', ([['2.56', 'lost']], 500, '7.5', 800), [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: margin application', ([['4.31', '1.48']], 500, '5', 500), [500, 319]),\n  ('regression: margin application', ([['2.56', '3.02']], 1000, '5', 0), [805, 0]),\n  ('variant scenario 1',\n   ([['3.54', 'won'], ['4.17', '2.42'], ['3.80', 'won'], ['3.99', 'lost']], 500, '7.5', 200),\n   [0, 0]),\n  ('variant scenario 2', ([['2.56', 'won']], 2500, '0', 200), [200, 2421])],\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: margin application',\n   ([['1.77', '5.47'], ['4.57', 'won'], ['4.63', 'won'], ['4.20', 'won']], 1000, '5', 200),\n   [200, 992]),\n  ('regression: margin application', ([['4.21', 'won']], 500, '5', 0), [1999, 0]),\n  ('variant scenario 1',\n   ([['4.24', 'lost'], ['4.73', '5.96'], ['3.59', 'won']], 1000, '7.5', 0),\n   [0, 0]),\n  ('variant scenario 2', ([['4.94', '1.31'], ['2.71', '5.06']], 1000, '0', 800), [800, 603])],\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: margin application', ([['1.66', '3.53']], 2500, '5', 200), [200, 2051]),\n  ('variant scenario 1', ([['1.54', 'won'], ['3.01', '3.82']], 1000, '0', 500), [500, 587]),\n  ('variant scenario 2', ([['3.86', '5.37']], 500, '7.5', 0), [332, 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: margin application',\n   ([['4.64', '5.35'], ['4.09', 'won'], ['4.50', '2.09']], 1000, '7.5', 0),\n   [7064, 0]),\n  ('variant scenario 1',\n   ([['2.22', 'lost'], ['2.66', 'won'], ['4.77', '1.58'], ['3.17', 'lost']], 2500, '5', 200),\n   [0, 0]),\n  ('variant scenario 2',\n   ([['4.16', '1.91'], ['4.67', '5.15'], ['2.46', '4.20'], ['3.13', '3.40']], 500, '0', 0),\n   [532, 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-margin-application","generated_at":"2026-09-29T14:50:33.401964+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":"Multiply the value by (100 - margin) / 100.","root_cause":"The margin percentage is subtracted as cents.","sha256":"c9550f9ace298f4405bba44fdeb0b6afb12841530b6b77c9da1860328b71e903","title":"Cash-out margin applied as a flat or grossed-up deduction · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.619,"exit_code":1,"observations":[{"actual":[1500,0],"check":"control single shortened","expected":[1500,0],"passed":true},{"actual":[1428,0],"check":"control margin applied","expected":[1425,0],"passed":false},{"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":[500,466],"check":"regression: margin application","expected":[500,466],"passed":true},{"actual":[1259,0],"check":"regression: margin application","expected":[1255,0],"passed":false},{"actual":[500,2418],"check":"variant scenario 1","expected":[500,2418],"passed":true},{"actual":[0,0],"check":"variant scenario 2","expected":[0,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control single shortened\", \"actual\": [1500, 0], \"expected\": [1500, 0], \"passed\": true}, {\"check\": \"control margin applied\", \"actual\": [1428, 0], \"expected\": [1425, 0], \"passed\": false}, {\"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: margin application\", \"actual\": [500, 466], \"expected\": [500, 466], \"passed\": true}, {\"check\": \"regression: margin application\", \"actual\": [1259, 0], \"expected\": [1255, 0], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [500, 2418], \"expected\": [500, 2418], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.236,"exit_code":1,"observations":[{"actual":[1500,0],"check":"control single shortened","expected":[1500,0],"passed":true},{"actual":[1495,0],"check":"control margin applied","expected":[1425,0],"passed":false},{"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":[500,467],"check":"regression: margin application","expected":[500,466],"passed":false},{"actual":[1316,0],"check":"regression: margin application","expected":[1255,0],"passed":false},{"actual":[500,2418],"check":"variant scenario 1","expected":[500,2418],"passed":true},{"actual":[0,0],"check":"variant scenario 2","expected":[0,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control single shortened\", \"actual\": [1500, 0], \"expected\": [1500, 0], \"passed\": true}, {\"check\": \"control margin applied\", \"actual\": [1495, 0], \"expected\": [1425, 0], \"passed\": false}, {\"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: margin application\", \"actual\": [500, 467], \"expected\": [500, 466], \"passed\": false}, {\"check\": \"regression: margin application\", \"actual\": [1316, 0], \"expected\": [1255, 0], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [500, 2418], \"expected\": [500, 2418], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.031,"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":[500,466],"check":"regression: margin application","expected":[500,466],"passed":true},{"actual":[1255,0],"check":"regression: margin application","expected":[1255,0],"passed":true},{"actual":[500,2418],"check":"variant scenario 1","expected":[500,2418],"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: margin application\", \"actual\": [500, 466], \"expected\": [500, 466], \"passed\": true}, {\"check\": \"regression: margin application\", \"actual\": [1255, 0], \"expected\": [1255, 0], \"passed\": true}, {\"check\": \"variant scenario 1\", \"actual\": [500, 2418], \"expected\": [500, 2418], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}