{"abstract":"Book totals drift because prices are rounded to one decimal before inverting.","category":"Betting odds conversion","checks":7,"contract":"Market book analysis for decimal prices (strings, each > 1, else \"invalid\"). Implied probability is 1/d; book = sum of implied probabilities. Return [overround percent (book - 1) * 100, bookmaker margin percent (1 - 1/book) * 100, fair prices d * book for proportional margin removal], every number rounded half up to two decimals (negative values are rounded toward +infinity at the half) and formatted with two decimals.","evaluation_group":"w2-odds-conversion-book-overround-fair-odds","failed_approach":"Rounding to two decimals after parsing still perturbs three-decimal quotes.","family":"w2-odds-conversion-book-overround-fair-odds-display-rounded-inputs","id":"FA-84421","implementations":{"attempt":{"sha256":"bdf8667eb1db795ed7811a7752d2ab1147bc59135973fce757f83efd20aab49d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(prices):\n    def fmt(x):\n        c = math.floor(x * 100 + Fraction(1, 2))\n        sign = '-' if c < 0 else ''\n        c = abs(c)\n        return sign + '%d.%02d' % (c // 100, c % 100)\n    ds = [Fraction(p).limit_denominator(20) for p in prices]\n    if any(d <= 1 for d in ds):\n        return 'invalid'\n    book = sum(1 / d for d in ds)\n    over = (book - 1) * 100\n    margin = (1 - 1 / book) * 100\n    fair = [fmt(d * book) for d in ds]\n    return [fmt(over), fmt(margin), fair]\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 fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs',\n   (['4.87', '6.63', '2.10', '4.53'],),\n   ['5.31', '5.04', ['5.13', '6.98', '2.21', '4.77']]),\n  ('variant scenario 1', (['1.63', '2.52'],), ['1.03', '1.02', ['1.65', '2.55']]),\n  ('variant scenario 2', (['2.13', '2.50', '6.73'],), ['1.81', '1.78', ['2.17', '2.55', '6.85']])],\n [('control fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs', (['2.66', '1.37'],), ['10.59', '9.57', ['2.94', '1.52']]),\n  ('variant scenario 1',\n   (['1.93', '3.15', '12.63', '7.24'],),\n   ['5.29', '5.02', ['2.03', '3.32', '13.30', '7.62']]),\n  ('variant scenario 2', (['2.67', '1.43'],), ['7.38', '6.88', ['2.87', '1.54']])],\n [('control fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs', (['4.03', '1.36'],), ['-1.66', '-1.68', ['3.96', '1.34']]),\n  ('variant scenario 1', (['0.90', '5.64', '2.67'],), 'invalid'),\n  ('variant scenario 2',\n   (['5.61', '2.31', '1.94'],),\n   ['12.66', '11.24', ['6.32', '2.60', '2.19']])],\n [('control fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs',\n   (['2.44', '3.46', '13.35', '2.95'],),\n   ['11.27', '10.13', ['2.72', '3.85', '14.86', '3.28']]),\n  ('variant scenario 1',\n   (['13.41', '1.64', '2.16'],),\n   ['14.73', '12.84', ['15.39', '1.88', '2.48']]),\n  ('variant scenario 2',\n   (['2.60', '4.98', '1.85'],),\n   ['12.60', '11.19', ['2.93', '5.61', '2.08']])],\n [('control fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs', (['1.58', '2.04'],), ['12.31', '10.96', ['1.77', '2.29']]),\n  ('variant scenario 1', (['1.68', '3.49', '6.42'],), ['3.75', '3.62', ['1.74', '3.62', '6.66']]),\n  ('variant scenario 2', (['2.08', '3.41', '4.19'],), ['1.27', '1.25', ['2.11', '3.45', '4.24']])]]\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":"e2f3c867ae936da7329034a7fc12077aff09a8734d15b1eab79d696480553722","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(prices):\n    def fmt(x):\n        c = math.floor(x * 100 + Fraction(1, 2))\n        sign = '-' if c < 0 else ''\n        c = abs(c)\n        return sign + '%d.%02d' % (c // 100, c % 100)\n    ds = [round(Fraction(p), 1) for p in prices]\n    if any(d <= 1 for d in ds):\n        return 'invalid'\n    book = sum(1 / d for d in ds)\n    over = (book - 1) * 100\n    margin = (1 - 1 / book) * 100\n    fair = [fmt(d * book) for d in ds]\n    return [fmt(over), fmt(margin), fair]\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 fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs',\n   (['4.87', '6.63', '2.10', '4.53'],),\n   ['5.31', '5.04', ['5.13', '6.98', '2.21', '4.77']]),\n  ('variant scenario 1', (['1.63', '2.52'],), ['1.03', '1.02', ['1.65', '2.55']]),\n  ('variant scenario 2', (['2.13', '2.50', '6.73'],), ['1.81', '1.78', ['2.17', '2.55', '6.85']])],\n [('control fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs', (['2.66', '1.37'],), ['10.59', '9.57', ['2.94', '1.52']]),\n  ('variant scenario 1',\n   (['1.93', '3.15', '12.63', '7.24'],),\n   ['5.29', '5.02', ['2.03', '3.32', '13.30', '7.62']]),\n  ('variant scenario 2', (['2.67', '1.43'],), ['7.38', '6.88', ['2.87', '1.54']])],\n [('control fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs', (['4.03', '1.36'],), ['-1.66', '-1.68', ['3.96', '1.34']]),\n  ('variant scenario 1', (['0.90', '5.64', '2.67'],), 'invalid'),\n  ('variant scenario 2',\n   (['5.61', '2.31', '1.94'],),\n   ['12.66', '11.24', ['6.32', '2.60', '2.19']])],\n [('control fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs',\n   (['2.44', '3.46', '13.35', '2.95'],),\n   ['11.27', '10.13', ['2.72', '3.85', '14.86', '3.28']]),\n  ('variant scenario 1',\n   (['13.41', '1.64', '2.16'],),\n   ['14.73', '12.84', ['15.39', '1.88', '2.48']]),\n  ('variant scenario 2',\n   (['2.60', '4.98', '1.85'],),\n   ['12.60', '11.19', ['2.93', '5.61', '2.08']])],\n [('control fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs', (['1.58', '2.04'],), ['12.31', '10.96', ['1.77', '2.29']]),\n  ('variant scenario 1', (['1.68', '3.49', '6.42'],), ['3.75', '3.62', ['1.74', '3.62', '6.66']]),\n  ('variant scenario 2', (['2.08', '3.41', '4.19'],), ['1.27', '1.25', ['2.11', '3.45', '4.24']])]]\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":"1f2cd808afc2929882b80853d36490227510494fe6600b7b31a6f0dd7af1929c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(prices):\n    def fmt(x):\n        c = math.floor(x * 100 + Fraction(1, 2))\n        sign = '-' if c < 0 else ''\n        c = abs(c)\n        return sign + '%d.%02d' % (c // 100, c % 100)\n    ds = [Fraction(p) for p in prices]\n    if any(d <= 1 for d in ds):\n        return 'invalid'\n    book = sum(1 / d for d in ds)\n    over = (book - 1) * 100\n    margin = (1 - 1 / book) * 100\n    fair = [fmt(d * book) for d in ds]\n    return [fmt(over), fmt(margin), fair]\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 fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs',\n   (['4.87', '6.63', '2.10', '4.53'],),\n   ['5.31', '5.04', ['5.13', '6.98', '2.21', '4.77']]),\n  ('variant scenario 1', (['1.63', '2.52'],), ['1.03', '1.02', ['1.65', '2.55']]),\n  ('variant scenario 2', (['2.13', '2.50', '6.73'],), ['1.81', '1.78', ['2.17', '2.55', '6.85']])],\n [('control fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs', (['2.66', '1.37'],), ['10.59', '9.57', ['2.94', '1.52']]),\n  ('variant scenario 1',\n   (['1.93', '3.15', '12.63', '7.24'],),\n   ['5.29', '5.02', ['2.03', '3.32', '13.30', '7.62']]),\n  ('variant scenario 2', (['2.67', '1.43'],), ['7.38', '6.88', ['2.87', '1.54']])],\n [('control fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs', (['4.03', '1.36'],), ['-1.66', '-1.68', ['3.96', '1.34']]),\n  ('variant scenario 1', (['0.90', '5.64', '2.67'],), 'invalid'),\n  ('variant scenario 2',\n   (['5.61', '2.31', '1.94'],),\n   ['12.66', '11.24', ['6.32', '2.60', '2.19']])],\n [('control fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs',\n   (['2.44', '3.46', '13.35', '2.95'],),\n   ['11.27', '10.13', ['2.72', '3.85', '14.86', '3.28']]),\n  ('variant scenario 1',\n   (['13.41', '1.64', '2.16'],),\n   ['14.73', '12.84', ['15.39', '1.88', '2.48']]),\n  ('variant scenario 2',\n   (['2.60', '4.98', '1.85'],),\n   ['12.60', '11.19', ['2.93', '5.61', '2.08']])],\n [('control fair coin', (['2.00', '2.00'],), ['0.00', '0.00', ['2.00', '2.00']]),\n  ('control standard juice', (['1.91', '1.91'],), ['4.71', '4.50', ['2.00', '2.00']]),\n  ('boundary three-way', (['2.50', '3.20', '2.90'],), ['5.73', '5.42', ['2.64', '3.38', '3.07']]),\n  ('boundary no-profit price', (['1.00', '5.00'],), 'invalid'),\n  ('regression: display rounded inputs', (['1.58', '2.04'],), ['12.31', '10.96', ['1.77', '2.29']]),\n  ('variant scenario 1', (['1.68', '3.49', '6.42'],), ['3.75', '3.62', ['1.74', '3.62', '6.66']]),\n  ('variant scenario 2', (['2.08', '3.41', '4.19'],), ['1.27', '1.25', ['2.11', '3.45', '4.24']])]]\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-book-overround-fair-odds-display-rounded-inputs","generated_at":"2026-09-29T14:50:30.632637+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Trading tools report overround and margin separately and derive no-vig fair prices.","repair":"Use the exact quoted prices.","root_cause":"Each price is rounded to one decimal place before computing implied probabilities.","sha256":"98533feb0548c6c91e1fe814f75a503bad1994e9fea4de5ad86337d401a8df22","title":"Implied probabilities taken from display-rounded prices · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.986,"exit_code":1,"observations":[{"actual":["0.00","0.00",["2.00","2.00"]],"check":"control fair coin","expected":["0.00","0.00",["2.00","2.00"]],"passed":true},{"actual":["4.76","4.55",["2.00","2.00"]],"check":"control standard juice","expected":["4.71","4.50",["2.00","2.00"]],"passed":false},{"actual":["5.73","5.42",["2.64","3.38","3.07"]],"check":"boundary three-way","expected":["5.73","5.42",["2.64","3.38","3.07"]],"passed":true},{"actual":"invalid","check":"boundary no-profit price","expected":"invalid","passed":true},{"actual":["5.32","5.06",["5.13","6.98","2.21","4.77"]],"check":"regression: display rounded inputs","expected":["5.31","5.04",["5.13","6.98","2.21","4.77"]],"passed":false},{"actual":["0.87","0.87",["1.65","2.55"]],"check":"variant scenario 1","expected":["1.03","1.02",["1.65","2.55"]],"passed":false},{"actual":["1.74","1.71",["2.17","2.54","6.84"]],"check":"variant scenario 2","expected":["1.81","1.78",["2.17","2.55","6.85"]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control fair coin\", \"actual\": [\"0.00\", \"0.00\", [\"2.00\", \"2.00\"]], \"expected\": [\"0.00\", \"0.00\", [\"2.00\", \"2.00\"]], \"passed\": true}, {\"check\": \"control standard juice\", \"actual\": [\"4.76\", \"4.55\", [\"2.00\", \"2.00\"]], \"expected\": [\"4.71\", \"4.50\", [\"2.00\", \"2.00\"]], \"passed\": false}, {\"check\": \"boundary three-way\", \"actual\": [\"5.73\", \"5.42\", [\"2.64\", \"3.38\", \"3.07\"]], \"expected\": [\"5.73\", \"5.42\", [\"2.64\", \"3.38\", \"3.07\"]], \"passed\": true}, {\"check\": \"boundary no-profit price\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"regression: display rounded inputs\", \"actual\": [\"5.32\", \"5.06\", [\"5.13\", \"6.98\", \"2.21\", \"4.77\"]], \"expected\": [\"5.31\", \"5.04\", [\"5.13\", \"6.98\", \"2.21\", \"4.77\"]], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"0.87\", \"0.87\", [\"1.65\", \"2.55\"]], \"expected\": [\"1.03\", \"1.02\", [\"1.65\", \"2.55\"]], \"passed\": false}, {\"check\": \"variant scenario 2\", \"actual\": [\"1.74\", \"1.71\", [\"2.17\", \"2.54\", \"6.84\"]], \"expected\": [\"1.81\", \"1.78\", [\"2.17\", \"2.55\", \"6.85\"]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.479,"exit_code":1,"observations":[{"actual":["0.00","0.00",["2.00","2.00"]],"check":"control fair coin","expected":["0.00","0.00",["2.00","2.00"]],"passed":true},{"actual":["5.26","5.00",["2.00","2.00"]],"check":"control standard juice","expected":["4.71","4.50",["2.00","2.00"]],"passed":false},{"actual":["5.73","5.42",["2.64","3.38","3.07"]],"check":"boundary three-way","expected":["5.73","5.42",["2.64","3.38","3.07"]],"passed":true},{"actual":"invalid","check":"boundary no-profit price","expected":"invalid","passed":true},{"actual":["5.40","5.12",["5.16","6.96","2.21","4.74"]],"check":"regression: display rounded inputs","expected":["5.31","5.04",["5.13","6.98","2.21","4.77"]],"passed":false},{"actual":["2.50","2.44",["1.64","2.56"]],"check":"variant scenario 1","expected":["1.03","1.02",["1.65","2.55"]],"passed":false},{"actual":["2.54","2.48",["2.15","2.56","6.87"]],"check":"variant scenario 2","expected":["1.81","1.78",["2.17","2.55","6.85"]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control fair coin\", \"actual\": [\"0.00\", \"0.00\", [\"2.00\", \"2.00\"]], \"expected\": [\"0.00\", \"0.00\", [\"2.00\", \"2.00\"]], \"passed\": true}, {\"check\": \"control standard juice\", \"actual\": [\"5.26\", \"5.00\", [\"2.00\", \"2.00\"]], \"expected\": [\"4.71\", \"4.50\", [\"2.00\", \"2.00\"]], \"passed\": false}, {\"check\": \"boundary three-way\", \"actual\": [\"5.73\", \"5.42\", [\"2.64\", \"3.38\", \"3.07\"]], \"expected\": [\"5.73\", \"5.42\", [\"2.64\", \"3.38\", \"3.07\"]], \"passed\": true}, {\"check\": \"boundary no-profit price\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"regression: display rounded inputs\", \"actual\": [\"5.40\", \"5.12\", [\"5.16\", \"6.96\", \"2.21\", \"4.74\"]], \"expected\": [\"5.31\", \"5.04\", [\"5.13\", \"6.98\", \"2.21\", \"4.77\"]], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"2.50\", \"2.44\", [\"1.64\", \"2.56\"]], \"expected\": [\"1.03\", \"1.02\", [\"1.65\", \"2.55\"]], \"passed\": false}, {\"check\": \"variant scenario 2\", \"actual\": [\"2.54\", \"2.48\", [\"2.15\", \"2.56\", \"6.87\"]], \"expected\": [\"1.81\", \"1.78\", [\"2.17\", \"2.55\", \"6.85\"]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.711,"exit_code":0,"observations":[{"actual":["0.00","0.00",["2.00","2.00"]],"check":"control fair coin","expected":["0.00","0.00",["2.00","2.00"]],"passed":true},{"actual":["4.71","4.50",["2.00","2.00"]],"check":"control standard juice","expected":["4.71","4.50",["2.00","2.00"]],"passed":true},{"actual":["5.73","5.42",["2.64","3.38","3.07"]],"check":"boundary three-way","expected":["5.73","5.42",["2.64","3.38","3.07"]],"passed":true},{"actual":"invalid","check":"boundary no-profit price","expected":"invalid","passed":true},{"actual":["5.31","5.04",["5.13","6.98","2.21","4.77"]],"check":"regression: display rounded inputs","expected":["5.31","5.04",["5.13","6.98","2.21","4.77"]],"passed":true},{"actual":["1.03","1.02",["1.65","2.55"]],"check":"variant scenario 1","expected":["1.03","1.02",["1.65","2.55"]],"passed":true},{"actual":["1.81","1.78",["2.17","2.55","6.85"]],"check":"variant scenario 2","expected":["1.81","1.78",["2.17","2.55","6.85"]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control fair coin\", \"actual\": [\"0.00\", \"0.00\", [\"2.00\", \"2.00\"]], \"expected\": [\"0.00\", \"0.00\", [\"2.00\", \"2.00\"]], \"passed\": true}, {\"check\": \"control standard juice\", \"actual\": [\"4.71\", \"4.50\", [\"2.00\", \"2.00\"]], \"expected\": [\"4.71\", \"4.50\", [\"2.00\", \"2.00\"]], \"passed\": true}, {\"check\": \"boundary three-way\", \"actual\": [\"5.73\", \"5.42\", [\"2.64\", \"3.38\", \"3.07\"]], \"expected\": [\"5.73\", \"5.42\", [\"2.64\", \"3.38\", \"3.07\"]], \"passed\": true}, {\"check\": \"boundary no-profit price\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"regression: display rounded inputs\", \"actual\": [\"5.31\", \"5.04\", [\"5.13\", \"6.98\", \"2.21\", \"4.77\"]], \"expected\": [\"5.31\", \"5.04\", [\"5.13\", \"6.98\", \"2.21\", \"4.77\"]], \"passed\": true}, {\"check\": \"variant scenario 1\", \"actual\": [\"1.03\", \"1.02\", [\"1.65\", \"2.55\"]], \"expected\": [\"1.03\", \"1.02\", [\"1.65\", \"2.55\"]], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [\"1.81\", \"1.78\", [\"2.17\", \"2.55\", \"6.85\"]], \"expected\": [\"1.81\", \"1.78\", [\"2.17\", \"2.55\", \"6.85\"]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}