{"abstract":"Double-chance prices sit between the two single prices.","category":"Betting odds conversion","checks":7,"contract":"Derive secondary markets from 1X2 decimal prices [home, draw, away], keeping the original margin. Draw no bet side price = side * (1 - 1/draw). Double chance for two outcomes p, q = p * q / (p + q): 1X from home and draw, 12 from home and away, X2 from draw and away. Return a dict with keys dnb_home, dnb_away, 1X, 12, X2, values rounded half up to two decimals.","contract_signature":"prices","evaluation_group":"w2-odds-conversion-derived-double-chance-dnb","failed_approach":"Subtracting one inside the reciprocal sum inflates the price.","family":"w2-odds-conversion-derived-double-chance-dnb-double-chance-combination","id":"FA-84781","implementations":{"attempt":{"sha256":"a3ed2970848494d02de2952f6db8cca0bfd563e0034c92e0ef65d89e691edeb9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(prices):\n    h, x, a = (Fraction(p) for p in prices)\n    def dc(p, q):\n        return 1 / (1 / p + 1 / q - 1)\n    def fmt(v):\n        c = math.floor(v * 100 + Fraction(1, 2))\n        return '%d.%02d' % (c // 100, c % 100)\n    return {'dnb_home': fmt(h * (1 - 1 / x)), 'dnb_away': fmt(a * (1 - 1 / x)),\n            '1X': fmt(dc(h, x)), '12': fmt(dc(h, a)), 'X2': fmt(dc(x, a))}\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 balanced match',\n   (['2.50', '3.20', '3.00'],),\n   {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),\n  ('control strong favourite',\n   (['1.50', '4.00', '6.00'],),\n   {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),\n  ('boundary symmetric prices',\n   (['3.00', '3.00', '3.00'],),\n   {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),\n  ('control home favourite',\n   (['2.00', '3.50', '4.00'],),\n   {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),\n  ('regression: double chance combination',\n   (['1.70', '4.07', '4.52'],),\n   {'12': '1.24', '1X': '1.20', 'X2': '2.14', 'dnb_away': '3.41', 'dnb_home': '1.28'}),\n  ('variant scenario 1',\n   (['2.08', '5.35', '2.55'],),\n   {'12': '1.15', '1X': '1.50', 'X2': '1.73', 'dnb_away': '2.07', 'dnb_home': '1.69'}),\n  ('variant scenario 2',\n   (['2.19', '3.94', '3.22'],),\n   {'12': '1.30', '1X': '1.41', 'X2': '1.77', 'dnb_away': '2.40', 'dnb_home': '1.63'})],\n [('control balanced match',\n   (['2.50', '3.20', '3.00'],),\n   {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),\n  ('control strong favourite',\n   (['1.50', '4.00', '6.00'],),\n   {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),\n  ('boundary symmetric prices',\n   (['3.00', '3.00', '3.00'],),\n   {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),\n  ('control home favourite',\n   (['2.00', '3.50', '4.00'],),\n   {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),\n  ('regression: double chance combination',\n   (['2.06', '4.01', '3.43'],),\n   {'12': '1.29', '1X': '1.36', 'X2': '1.85', 'dnb_away': '2.57', 'dnb_home': '1.55'}),\n  ('variant scenario 1',\n   (['2.41', '4.76', '2.32'],),\n   {'12': '1.18', '1X': '1.60', 'X2': '1.56', 'dnb_away': '1.83', 'dnb_home': '1.90'}),\n  ('variant scenario 2',\n   (['1.75', '4.33', '3.92'],),\n   {'12': '1.21', '1X': '1.25', 'X2': '2.06', 'dnb_away': '3.01', 'dnb_home': '1.35'})],\n [('control balanced match',\n   (['2.50', '3.20', '3.00'],),\n   {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),\n  ('control strong favourite',\n   (['1.50', '4.00', '6.00'],),\n   {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),\n  ('boundary symmetric prices',\n   (['3.00', '3.00', '3.00'],),\n   {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),\n  ('control home favourite',\n   (['2.00', '3.50', '4.00'],),\n   {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),\n  ('regression: double chance combination',\n   (['2.23', '4.30', '2.48'],),\n   {'12': '1.17', '1X': '1.47', 'X2': '1.57', 'dnb_away': '1.90', 'dnb_home': '1.71'}),\n  ('variant scenario 1',\n   (['3.56', '3.70', '2.01'],),\n   {'12': '1.28', '1X': '1.81', 'X2': '1.30', 'dnb_away': '1.47', 'dnb_home': '2.60'}),\n  ('variant scenario 2',\n   (['2.90', '5.03', '1.89'],),\n   {'12': '1.14', '1X': '1.84', 'X2': '1.37', 'dnb_away': '1.51', 'dnb_home': '2.32'})],\n [('control balanced match',\n   (['2.50', '3.20', '3.00'],),\n   {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),\n  ('control strong favourite',\n   (['1.50', '4.00', '6.00'],),\n   {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),\n  ('boundary symmetric prices',\n   (['3.00', '3.00', '3.00'],),\n   {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),\n  ('control home favourite',\n   (['2.00', '3.50', '4.00'],),\n   {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),\n  ('regression: double chance combination',\n   (['2.98', '3.04', '2.72'],),\n   {'12': '1.42', '1X': '1.50', 'X2': '1.44', 'dnb_away': '1.83', 'dnb_home': '2.00'}),\n  ('variant scenario 1',\n   (['2.29', '3.12', '3.00'],),\n   {'12': '1.30', '1X': '1.32', 'X2': '1.53', 'dnb_away': '2.04', 'dnb_home': '1.56'}),\n  ('variant scenario 2',\n   (['3.24', '3.61', '2.11'],),\n   {'12': '1.28', '1X': '1.71', 'X2': '1.33', 'dnb_away': '1.53', 'dnb_home': '2.34'})],\n [('control balanced match',\n   (['2.50', '3.20', '3.00'],),\n   {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),\n  ('control strong favourite',\n   (['1.50', '4.00', '6.00'],),\n   {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),\n  ('boundary symmetric prices',\n   (['3.00', '3.00', '3.00'],),\n   {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),\n  ('control home favourite',\n   (['2.00', '3.50', '4.00'],),\n   {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),\n  ('regression: double chance combination',\n   (['3.53', '2.74', '2.36'],),\n   {'12': '1.41', '1X': '1.54', 'X2': '1.27', 'dnb_away': '1.50', 'dnb_home': '2.24'}),\n  ('variant scenario 1',\n   (['2.57', '3.57', '2.45'],),\n   {'12': '1.25', '1X': '1.49', 'X2': '1.45', 'dnb_away': '1.76', 'dnb_home': '1.85'}),\n  ('variant scenario 2',\n   (['4.47', '3.73', '1.76'],),\n   {'12': '1.26', '1X': '2.03', 'X2': '1.20', 'dnb_away': '1.29', 'dnb_home': '3.27'})]]\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":"049193ff2d4f471b76398b35ac97326d0a778d6f4dd00d7a97b644ad6271090e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(prices):\n    h, x, a = (Fraction(p) for p in prices)\n    def dc(p, q):\n        return (p + q) / 2\n    def fmt(v):\n        c = math.floor(v * 100 + Fraction(1, 2))\n        return '%d.%02d' % (c // 100, c % 100)\n    return {'dnb_home': fmt(h * (1 - 1 / x)), 'dnb_away': fmt(a * (1 - 1 / x)),\n            '1X': fmt(dc(h, x)), '12': fmt(dc(h, a)), 'X2': fmt(dc(x, a))}\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 balanced match',\n   (['2.50', '3.20', '3.00'],),\n   {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),\n  ('control strong favourite',\n   (['1.50', '4.00', '6.00'],),\n   {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),\n  ('boundary symmetric prices',\n   (['3.00', '3.00', '3.00'],),\n   {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),\n  ('control home favourite',\n   (['2.00', '3.50', '4.00'],),\n   {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),\n  ('regression: double chance combination',\n   (['1.70', '4.07', '4.52'],),\n   {'12': '1.24', '1X': '1.20', 'X2': '2.14', 'dnb_away': '3.41', 'dnb_home': '1.28'}),\n  ('variant scenario 1',\n   (['2.08', '5.35', '2.55'],),\n   {'12': '1.15', '1X': '1.50', 'X2': '1.73', 'dnb_away': '2.07', 'dnb_home': '1.69'}),\n  ('variant scenario 2',\n   (['2.19', '3.94', '3.22'],),\n   {'12': '1.30', '1X': '1.41', 'X2': '1.77', 'dnb_away': '2.40', 'dnb_home': '1.63'})],\n [('control balanced match',\n   (['2.50', '3.20', '3.00'],),\n   {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),\n  ('control strong favourite',\n   (['1.50', '4.00', '6.00'],),\n   {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),\n  ('boundary symmetric prices',\n   (['3.00', '3.00', '3.00'],),\n   {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),\n  ('control home favourite',\n   (['2.00', '3.50', '4.00'],),\n   {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),\n  ('regression: double chance combination',\n   (['2.06', '4.01', '3.43'],),\n   {'12': '1.29', '1X': '1.36', 'X2': '1.85', 'dnb_away': '2.57', 'dnb_home': '1.55'}),\n  ('variant scenario 1',\n   (['2.41', '4.76', '2.32'],),\n   {'12': '1.18', '1X': '1.60', 'X2': '1.56', 'dnb_away': '1.83', 'dnb_home': '1.90'}),\n  ('variant scenario 2',\n   (['1.75', '4.33', '3.92'],),\n   {'12': '1.21', '1X': '1.25', 'X2': '2.06', 'dnb_away': '3.01', 'dnb_home': '1.35'})],\n [('control balanced match',\n   (['2.50', '3.20', '3.00'],),\n   {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),\n  ('control strong favourite',\n   (['1.50', '4.00', '6.00'],),\n   {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),\n  ('boundary symmetric prices',\n   (['3.00', '3.00', '3.00'],),\n   {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),\n  ('control home favourite',\n   (['2.00', '3.50', '4.00'],),\n   {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),\n  ('regression: double chance combination',\n   (['2.23', '4.30', '2.48'],),\n   {'12': '1.17', '1X': '1.47', 'X2': '1.57', 'dnb_away': '1.90', 'dnb_home': '1.71'}),\n  ('variant scenario 1',\n   (['3.56', '3.70', '2.01'],),\n   {'12': '1.28', '1X': '1.81', 'X2': '1.30', 'dnb_away': '1.47', 'dnb_home': '2.60'}),\n  ('variant scenario 2',\n   (['2.90', '5.03', '1.89'],),\n   {'12': '1.14', '1X': '1.84', 'X2': '1.37', 'dnb_away': '1.51', 'dnb_home': '2.32'})],\n [('control balanced match',\n   (['2.50', '3.20', '3.00'],),\n   {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),\n  ('control strong favourite',\n   (['1.50', '4.00', '6.00'],),\n   {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),\n  ('boundary symmetric prices',\n   (['3.00', '3.00', '3.00'],),\n   {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),\n  ('control home favourite',\n   (['2.00', '3.50', '4.00'],),\n   {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),\n  ('regression: double chance combination',\n   (['2.98', '3.04', '2.72'],),\n   {'12': '1.42', '1X': '1.50', 'X2': '1.44', 'dnb_away': '1.83', 'dnb_home': '2.00'}),\n  ('variant scenario 1',\n   (['2.29', '3.12', '3.00'],),\n   {'12': '1.30', '1X': '1.32', 'X2': '1.53', 'dnb_away': '2.04', 'dnb_home': '1.56'}),\n  ('variant scenario 2',\n   (['3.24', '3.61', '2.11'],),\n   {'12': '1.28', '1X': '1.71', 'X2': '1.33', 'dnb_away': '1.53', 'dnb_home': '2.34'})],\n [('control balanced match',\n   (['2.50', '3.20', '3.00'],),\n   {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),\n  ('control strong favourite',\n   (['1.50', '4.00', '6.00'],),\n   {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),\n  ('boundary symmetric prices',\n   (['3.00', '3.00', '3.00'],),\n   {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),\n  ('control home favourite',\n   (['2.00', '3.50', '4.00'],),\n   {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),\n  ('regression: double chance combination',\n   (['3.53', '2.74', '2.36'],),\n   {'12': '1.41', '1X': '1.54', 'X2': '1.27', 'dnb_away': '1.50', 'dnb_home': '2.24'}),\n  ('variant scenario 1',\n   (['2.57', '3.57', '2.45'],),\n   {'12': '1.25', '1X': '1.49', 'X2': '1.45', 'dnb_away': '1.76', 'dnb_home': '1.85'}),\n  ('variant scenario 2',\n   (['4.47', '3.73', '1.76'],),\n   {'12': '1.26', '1X': '2.03', 'X2': '1.20', 'dnb_away': '1.29', 'dnb_home': '3.27'})]]\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-derived-double-chance-dnb-double-chance-combination","generated_at":"2026-09-29T14:50:34.361327+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Sportsbooks price derived markets from the main 1X2 line.","root_cause":"The two prices are averaged.","sha256":"793cd0395bee9f94d743460de29a096919c3408b5ad0d7caebfcc9387c6e9184","title":"Double-chance price averaged instead of combined · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":42.436,"exit_code":1,"observations":[{"actual":{"12":"-4.25","1X":"-4.52","X2":"-3.18","dnb_away":"2.06","dnb_home":"1.72"},"check":"control balanced match","expected":{"12":"1.36","1X":"1.40","X2":"1.55","dnb_away":"2.06","dnb_home":"1.72"},"passed":false},{"actual":{"12":"-6.00","1X":"-12.00","X2":"-2.29","dnb_away":"4.50","dnb_home":"1.13"},"check":"control strong favourite","expected":{"12":"1.20","1X":"1.09","X2":"2.40","dnb_away":"4.50","dnb_home":"1.13"},"passed":false},{"actual":{"12":"-3.00","1X":"-3.00","X2":"-3.00","dnb_away":"2.00","dnb_home":"2.00"},"check":"boundary symmetric prices","expected":{"12":"1.50","1X":"1.50","X2":"1.50","dnb_away":"2.00","dnb_home":"2.00"},"passed":false},{"actual":{"12":"-4.00","1X":"-5.33","X2":"-3.85","dnb_away":"2.86","dnb_home":"1.43"},"check":"control home favourite","expected":{"12":"1.33","1X":"1.27","X2":"1.87","dnb_away":"2.86","dnb_home":"1.43"},"passed":false},{"actual":{"12":"-6.75","1X":"-7.98","X2":"-2.12","dnb_away":"3.41","dnb_home":"1.28"},"check":"regression: double chance combination","expected":{"12":"1.24","1X":"1.20","X2":"2.14","dnb_away":"3.41","dnb_home":"1.28"},"passed":false},{"actual":{"12":"-8.13","1X":"-4.99","X2":"-3.62","dnb_away":"2.07","dnb_home":"1.69"},"check":"variant scenario 1","expected":{"12":"1.15","1X":"1.50","X2":"1.73","dnb_away":"2.07","dnb_home":"1.69"},"passed":false},{"actual":{"12":"-5.70","1X":"-4.55","X2":"-3.70","dnb_away":"2.40","dnb_home":"1.63"},"check":"variant scenario 2","expected":{"12":"1.30","1X":"1.41","X2":"1.77","dnb_away":"2.40","dnb_home":"1.63"},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control balanced match\", \"actual\": {\"dnb_home\": \"1.72\", \"dnb_away\": \"2.06\", \"1X\": \"-4.52\", \"12\": \"-4.25\", \"X2\": \"-3.18\"}, \"expected\": {\"12\": \"1.36\", \"1X\": \"1.40\", \"X2\": \"1.55\", \"dnb_away\": \"2.06\", \"dnb_home\": \"1.72\"}, \"passed\": false}, {\"check\": \"control strong favourite\", \"actual\": {\"dnb_home\": \"1.13\", \"dnb_away\": \"4.50\", \"1X\": \"-12.00\", \"12\": \"-6.00\", \"X2\": \"-2.29\"}, \"expected\": {\"12\": \"1.20\", \"1X\": \"1.09\", \"X2\": \"2.40\", \"dnb_away\": \"4.50\", \"dnb_home\": \"1.13\"}, \"passed\": false}, {\"check\": \"boundary symmetric prices\", \"actual\": {\"dnb_home\": \"2.00\", \"dnb_away\": \"2.00\", \"1X\": \"-3.00\", \"12\": \"-3.00\", \"X2\": \"-3.00\"}, \"expected\": {\"12\": \"1.50\", \"1X\": \"1.50\", \"X2\": \"1.50\", \"dnb_away\": \"2.00\", \"dnb_home\": \"2.00\"}, \"passed\": false}, {\"check\": \"control home favourite\", \"actual\": {\"dnb_home\": \"1.43\", \"dnb_away\": \"2.86\", \"1X\": \"-5.33\", \"12\": \"-4.00\", \"X2\": \"-3.85\"}, \"expected\": {\"12\": \"1.33\", \"1X\": \"1.27\", \"X2\": \"1.87\", \"dnb_away\": \"2.86\", \"dnb_home\": \"1.43\"}, \"passed\": false}, {\"check\": \"regression: double chance combination\", \"actual\": {\"dnb_home\": \"1.28\", \"dnb_away\": \"3.41\", \"1X\": \"-7.98\", \"12\": \"-6.75\", \"X2\": \"-2.12\"}, \"expected\": {\"12\": \"1.24\", \"1X\": \"1.20\", \"X2\": \"2.14\", \"dnb_away\": \"3.41\", \"dnb_home\": \"1.28\"}, \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": {\"dnb_home\": \"1.69\", \"dnb_away\": \"2.07\", \"1X\": \"-4.99\", \"12\": \"-8.13\", \"X2\": \"-3.62\"}, \"expected\": {\"12\": \"1.15\", \"1X\": \"1.50\", \"X2\": \"1.73\", \"dnb_away\": \"2.07\", \"dnb_home\": \"1.69\"}, \"passed\": false}, {\"check\": \"variant scenario 2\", \"actual\": {\"dnb_home\": \"1.63\", \"dnb_away\": \"2.40\", \"1X\": \"-4.55\", \"12\": \"-5.70\", \"X2\": \"-3.70\"}, \"expected\": {\"12\": \"1.30\", \"1X\": \"1.41\", \"X2\": \"1.77\", \"dnb_away\": \"2.40\", \"dnb_home\": \"1.63\"}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.829,"exit_code":1,"observations":[{"actual":{"12":"2.75","1X":"2.85","X2":"3.10","dnb_away":"2.06","dnb_home":"1.72"},"check":"control balanced match","expected":{"12":"1.36","1X":"1.40","X2":"1.55","dnb_away":"2.06","dnb_home":"1.72"},"passed":false},{"actual":{"12":"3.75","1X":"2.75","X2":"5.00","dnb_away":"4.50","dnb_home":"1.13"},"check":"control strong favourite","expected":{"12":"1.20","1X":"1.09","X2":"2.40","dnb_away":"4.50","dnb_home":"1.13"},"passed":false},{"actual":{"12":"3.00","1X":"3.00","X2":"3.00","dnb_away":"2.00","dnb_home":"2.00"},"check":"boundary symmetric prices","expected":{"12":"1.50","1X":"1.50","X2":"1.50","dnb_away":"2.00","dnb_home":"2.00"},"passed":false},{"actual":{"12":"3.00","1X":"2.75","X2":"3.75","dnb_away":"2.86","dnb_home":"1.43"},"check":"control home favourite","expected":{"12":"1.33","1X":"1.27","X2":"1.87","dnb_away":"2.86","dnb_home":"1.43"},"passed":false},{"actual":{"12":"3.11","1X":"2.89","X2":"4.30","dnb_away":"3.41","dnb_home":"1.28"},"check":"regression: double chance combination","expected":{"12":"1.24","1X":"1.20","X2":"2.14","dnb_away":"3.41","dnb_home":"1.28"},"passed":false},{"actual":{"12":"2.32","1X":"3.72","X2":"3.95","dnb_away":"2.07","dnb_home":"1.69"},"check":"variant scenario 1","expected":{"12":"1.15","1X":"1.50","X2":"1.73","dnb_away":"2.07","dnb_home":"1.69"},"passed":false},{"actual":{"12":"2.71","1X":"3.07","X2":"3.58","dnb_away":"2.40","dnb_home":"1.63"},"check":"variant scenario 2","expected":{"12":"1.30","1X":"1.41","X2":"1.77","dnb_away":"2.40","dnb_home":"1.63"},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control balanced match\", \"actual\": {\"dnb_home\": \"1.72\", \"dnb_away\": \"2.06\", \"1X\": \"2.85\", \"12\": \"2.75\", \"X2\": \"3.10\"}, \"expected\": {\"12\": \"1.36\", \"1X\": \"1.40\", \"X2\": \"1.55\", \"dnb_away\": \"2.06\", \"dnb_home\": \"1.72\"}, \"passed\": false}, {\"check\": \"control strong favourite\", \"actual\": {\"dnb_home\": \"1.13\", \"dnb_away\": \"4.50\", \"1X\": \"2.75\", \"12\": \"3.75\", \"X2\": \"5.00\"}, \"expected\": {\"12\": \"1.20\", \"1X\": \"1.09\", \"X2\": \"2.40\", \"dnb_away\": \"4.50\", \"dnb_home\": \"1.13\"}, \"passed\": false}, {\"check\": \"boundary symmetric prices\", \"actual\": {\"dnb_home\": \"2.00\", \"dnb_away\": \"2.00\", \"1X\": \"3.00\", \"12\": \"3.00\", \"X2\": \"3.00\"}, \"expected\": {\"12\": \"1.50\", \"1X\": \"1.50\", \"X2\": \"1.50\", \"dnb_away\": \"2.00\", \"dnb_home\": \"2.00\"}, \"passed\": false}, {\"check\": \"control home favourite\", \"actual\": {\"dnb_home\": \"1.43\", \"dnb_away\": \"2.86\", \"1X\": \"2.75\", \"12\": \"3.00\", \"X2\": \"3.75\"}, \"expected\": {\"12\": \"1.33\", \"1X\": \"1.27\", \"X2\": \"1.87\", \"dnb_away\": \"2.86\", \"dnb_home\": \"1.43\"}, \"passed\": false}, {\"check\": \"regression: double chance combination\", \"actual\": {\"dnb_home\": \"1.28\", \"dnb_away\": \"3.41\", \"1X\": \"2.89\", \"12\": \"3.11\", \"X2\": \"4.30\"}, \"expected\": {\"12\": \"1.24\", \"1X\": \"1.20\", \"X2\": \"2.14\", \"dnb_away\": \"3.41\", \"dnb_home\": \"1.28\"}, \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": {\"dnb_home\": \"1.69\", \"dnb_away\": \"2.07\", \"1X\": \"3.72\", \"12\": \"2.32\", \"X2\": \"3.95\"}, \"expected\": {\"12\": \"1.15\", \"1X\": \"1.50\", \"X2\": \"1.73\", \"dnb_away\": \"2.07\", \"dnb_home\": \"1.69\"}, \"passed\": false}, {\"check\": \"variant scenario 2\", \"actual\": {\"dnb_home\": \"1.63\", \"dnb_away\": \"2.40\", \"1X\": \"3.07\", \"12\": \"2.71\", \"X2\": \"3.58\"}, \"expected\": {\"12\": \"1.30\", \"1X\": \"1.41\", \"X2\": \"1.77\", \"dnb_away\": \"2.40\", \"dnb_home\": \"1.63\"}, \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}