FA-84781 / Betting odds conversion / Open access
Double-chance price averaged instead of combined · case 01
Double-chance prices sit between the two single prices.
ROOT CAUSE
The two prices are averaged.
VERIFIED REPAIR
Combine as p * q / (p + q) (sum of implied probabilities).
Unsuccessful approach: Subtracting one inside the reciprocal sum inflates the price.
Case 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.
Why this case matters
Sportsbooks price derived markets from the main 1X2 line.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
import math
N = 1
observations = []
def solve(prices):
h, x, a = (Fraction(p) for p in prices)
def dc(p, q):
return (p + q) / 2
def fmt(v):
c = math.floor(v * 100 + Fraction(1, 2))
return '%d.%02d' % (c // 100, c % 100)
return {'dnb_home': fmt(h * (1 - 1 / x)), 'dnb_away': fmt(a * (1 - 1 / x)),
'1X': fmt(dc(h, x)), '12': fmt(dc(h, a)), 'X2': fmt(dc(x, a))}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
def run(args):
try:
return solve(*args)
except Exception as exc:
return 'raised ' + type(exc).__name__
cases = [[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['1.70', '4.07', '4.52'],),
{'12': '1.24', '1X': '1.20', 'X2': '2.14', 'dnb_away': '3.41', 'dnb_home': '1.28'}),
('variant scenario 1',
(['2.08', '5.35', '2.55'],),
{'12': '1.15', '1X': '1.50', 'X2': '1.73', 'dnb_away': '2.07', 'dnb_home': '1.69'}),
('variant scenario 2',
(['2.19', '3.94', '3.22'],),
{'12': '1.30', '1X': '1.41', 'X2': '1.77', 'dnb_away': '2.40', 'dnb_home': '1.63'})],
[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['2.06', '4.01', '3.43'],),
{'12': '1.29', '1X': '1.36', 'X2': '1.85', 'dnb_away': '2.57', 'dnb_home': '1.55'}),
('variant scenario 1',
(['2.41', '4.76', '2.32'],),
{'12': '1.18', '1X': '1.60', 'X2': '1.56', 'dnb_away': '1.83', 'dnb_home': '1.90'}),
('variant scenario 2',
(['1.75', '4.33', '3.92'],),
{'12': '1.21', '1X': '1.25', 'X2': '2.06', 'dnb_away': '3.01', 'dnb_home': '1.35'})],
[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['2.23', '4.30', '2.48'],),
{'12': '1.17', '1X': '1.47', 'X2': '1.57', 'dnb_away': '1.90', 'dnb_home': '1.71'}),
('variant scenario 1',
(['3.56', '3.70', '2.01'],),
{'12': '1.28', '1X': '1.81', 'X2': '1.30', 'dnb_away': '1.47', 'dnb_home': '2.60'}),
('variant scenario 2',
(['2.90', '5.03', '1.89'],),
{'12': '1.14', '1X': '1.84', 'X2': '1.37', 'dnb_away': '1.51', 'dnb_home': '2.32'})],
[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['2.98', '3.04', '2.72'],),
{'12': '1.42', '1X': '1.50', 'X2': '1.44', 'dnb_away': '1.83', 'dnb_home': '2.00'}),
('variant scenario 1',
(['2.29', '3.12', '3.00'],),
{'12': '1.30', '1X': '1.32', 'X2': '1.53', 'dnb_away': '2.04', 'dnb_home': '1.56'}),
('variant scenario 2',
(['3.24', '3.61', '2.11'],),
{'12': '1.28', '1X': '1.71', 'X2': '1.33', 'dnb_away': '1.53', 'dnb_home': '2.34'})],
[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['3.53', '2.74', '2.36'],),
{'12': '1.41', '1X': '1.54', 'X2': '1.27', 'dnb_away': '1.50', 'dnb_home': '2.24'}),
('variant scenario 1',
(['2.57', '3.57', '2.45'],),
{'12': '1.25', '1X': '1.49', 'X2': '1.45', 'dnb_away': '1.76', 'dnb_home': '1.85'}),
('variant scenario 2',
(['4.47', '3.73', '1.76'],),
{'12': '1.26', '1X': '2.03', 'X2': '1.20', 'dnb_away': '1.29', 'dnb_home': '3.27'})]]
for label, args, expected in cases[N - 1]:
check(label, run(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| control balanced match | {'12': '2.75', '1X': '2.85', 'X2': '3.10', 'dnb_away': '2.06', 'dnb_home': '1.72'} | {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'} | Failed |
| control strong favourite | {'12': '3.75', '1X': '2.75', 'X2': '5.00', 'dnb_away': '4.50', 'dnb_home': '1.13'} | {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'} | Failed |
| boundary symmetric prices | {'12': '3.00', '1X': '3.00', 'X2': '3.00', 'dnb_away': '2.00', 'dnb_home': '2.00'} | {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'} | Failed |
| control home favourite | {'12': '3.00', '1X': '2.75', 'X2': '3.75', 'dnb_away': '2.86', 'dnb_home': '1.43'} | {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'} | Failed |
| regression: double chance combination | {'12': '3.11', '1X': '2.89', 'X2': '4.30', 'dnb_away': '3.41', 'dnb_home': '1.28'} | {'12': '1.24', '1X': '1.20', 'X2': '2.14', 'dnb_away': '3.41', 'dnb_home': '1.28'} | Failed |
| variant scenario 1 | {'12': '2.32', '1X': '3.72', 'X2': '3.95', 'dnb_away': '2.07', 'dnb_home': '1.69'} | {'12': '1.15', '1X': '1.50', 'X2': '1.73', 'dnb_away': '2.07', 'dnb_home': '1.69'} | Failed |
| variant scenario 2 | {'12': '2.71', '1X': '3.07', 'X2': '3.58', 'dnb_away': '2.40', 'dnb_home': '1.63'} | {'12': '1.30', '1X': '1.41', 'X2': '1.77', 'dnb_away': '2.40', 'dnb_home': '1.63'} | Failed |
SHA-256 / 049193ff2d4f471b76398b35ac97326d0a778d6f4dd00d7a97b644ad6271090e
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
import math
N = 1
observations = []
def solve(prices):
h, x, a = (Fraction(p) for p in prices)
def dc(p, q):
return 1 / (1 / p + 1 / q - 1)
def fmt(v):
c = math.floor(v * 100 + Fraction(1, 2))
return '%d.%02d' % (c // 100, c % 100)
return {'dnb_home': fmt(h * (1 - 1 / x)), 'dnb_away': fmt(a * (1 - 1 / x)),
'1X': fmt(dc(h, x)), '12': fmt(dc(h, a)), 'X2': fmt(dc(x, a))}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
def run(args):
try:
return solve(*args)
except Exception as exc:
return 'raised ' + type(exc).__name__
cases = [[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['1.70', '4.07', '4.52'],),
{'12': '1.24', '1X': '1.20', 'X2': '2.14', 'dnb_away': '3.41', 'dnb_home': '1.28'}),
('variant scenario 1',
(['2.08', '5.35', '2.55'],),
{'12': '1.15', '1X': '1.50', 'X2': '1.73', 'dnb_away': '2.07', 'dnb_home': '1.69'}),
('variant scenario 2',
(['2.19', '3.94', '3.22'],),
{'12': '1.30', '1X': '1.41', 'X2': '1.77', 'dnb_away': '2.40', 'dnb_home': '1.63'})],
[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['2.06', '4.01', '3.43'],),
{'12': '1.29', '1X': '1.36', 'X2': '1.85', 'dnb_away': '2.57', 'dnb_home': '1.55'}),
('variant scenario 1',
(['2.41', '4.76', '2.32'],),
{'12': '1.18', '1X': '1.60', 'X2': '1.56', 'dnb_away': '1.83', 'dnb_home': '1.90'}),
('variant scenario 2',
(['1.75', '4.33', '3.92'],),
{'12': '1.21', '1X': '1.25', 'X2': '2.06', 'dnb_away': '3.01', 'dnb_home': '1.35'})],
[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['2.23', '4.30', '2.48'],),
{'12': '1.17', '1X': '1.47', 'X2': '1.57', 'dnb_away': '1.90', 'dnb_home': '1.71'}),
('variant scenario 1',
(['3.56', '3.70', '2.01'],),
{'12': '1.28', '1X': '1.81', 'X2': '1.30', 'dnb_away': '1.47', 'dnb_home': '2.60'}),
('variant scenario 2',
(['2.90', '5.03', '1.89'],),
{'12': '1.14', '1X': '1.84', 'X2': '1.37', 'dnb_away': '1.51', 'dnb_home': '2.32'})],
[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['2.98', '3.04', '2.72'],),
{'12': '1.42', '1X': '1.50', 'X2': '1.44', 'dnb_away': '1.83', 'dnb_home': '2.00'}),
('variant scenario 1',
(['2.29', '3.12', '3.00'],),
{'12': '1.30', '1X': '1.32', 'X2': '1.53', 'dnb_away': '2.04', 'dnb_home': '1.56'}),
('variant scenario 2',
(['3.24', '3.61', '2.11'],),
{'12': '1.28', '1X': '1.71', 'X2': '1.33', 'dnb_away': '1.53', 'dnb_home': '2.34'})],
[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['3.53', '2.74', '2.36'],),
{'12': '1.41', '1X': '1.54', 'X2': '1.27', 'dnb_away': '1.50', 'dnb_home': '2.24'}),
('variant scenario 1',
(['2.57', '3.57', '2.45'],),
{'12': '1.25', '1X': '1.49', 'X2': '1.45', 'dnb_away': '1.76', 'dnb_home': '1.85'}),
('variant scenario 2',
(['4.47', '3.73', '1.76'],),
{'12': '1.26', '1X': '2.03', 'X2': '1.20', 'dnb_away': '1.29', 'dnb_home': '3.27'})]]
for label, args, expected in cases[N - 1]:
check(label, run(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| control balanced match | {'12': '-4.25', '1X': '-4.52', 'X2': '-3.18', 'dnb_away': '2.06', 'dnb_home': '1.72'} | {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'} | Failed |
| control strong favourite | {'12': '-6.00', '1X': '-12.00', 'X2': '-2.29', 'dnb_away': '4.50', 'dnb_home': '1.13'} | {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'} | Failed |
| boundary symmetric prices | {'12': '-3.00', '1X': '-3.00', 'X2': '-3.00', 'dnb_away': '2.00', 'dnb_home': '2.00'} | {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'} | Failed |
| control home favourite | {'12': '-4.00', '1X': '-5.33', 'X2': '-3.85', 'dnb_away': '2.86', 'dnb_home': '1.43'} | {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'} | Failed |
| regression: double chance combination | {'12': '-6.75', '1X': '-7.98', 'X2': '-2.12', 'dnb_away': '3.41', 'dnb_home': '1.28'} | {'12': '1.24', '1X': '1.20', 'X2': '2.14', 'dnb_away': '3.41', 'dnb_home': '1.28'} | Failed |
| variant scenario 1 | {'12': '-8.13', '1X': '-4.99', 'X2': '-3.62', 'dnb_away': '2.07', 'dnb_home': '1.69'} | {'12': '1.15', '1X': '1.50', 'X2': '1.73', 'dnb_away': '2.07', 'dnb_home': '1.69'} | Failed |
| variant scenario 2 | {'12': '-5.70', '1X': '-4.55', 'X2': '-3.70', 'dnb_away': '2.40', 'dnb_home': '1.63'} | {'12': '1.30', '1X': '1.41', 'X2': '1.77', 'dnb_away': '2.40', 'dnb_home': '1.63'} | Failed |
SHA-256 / a3ed2970848494d02de2952f6db8cca0bfd563e0034c92e0ef65d89e691edeb9
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
import math
N = 1
observations = []
def solve(prices):
h, x, a = (Fraction(p) for p in prices)
def dc(p, q):
return p * q / (p + q)
def fmt(v):
c = math.floor(v * 100 + Fraction(1, 2))
return '%d.%02d' % (c // 100, c % 100)
return {'dnb_home': fmt(h * (1 - 1 / x)), 'dnb_away': fmt(a * (1 - 1 / x)),
'1X': fmt(dc(h, x)), '12': fmt(dc(h, a)), 'X2': fmt(dc(x, a))}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
def run(args):
try:
return solve(*args)
except Exception as exc:
return 'raised ' + type(exc).__name__
cases = [[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['1.70', '4.07', '4.52'],),
{'12': '1.24', '1X': '1.20', 'X2': '2.14', 'dnb_away': '3.41', 'dnb_home': '1.28'}),
('variant scenario 1',
(['2.08', '5.35', '2.55'],),
{'12': '1.15', '1X': '1.50', 'X2': '1.73', 'dnb_away': '2.07', 'dnb_home': '1.69'}),
('variant scenario 2',
(['2.19', '3.94', '3.22'],),
{'12': '1.30', '1X': '1.41', 'X2': '1.77', 'dnb_away': '2.40', 'dnb_home': '1.63'})],
[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['2.06', '4.01', '3.43'],),
{'12': '1.29', '1X': '1.36', 'X2': '1.85', 'dnb_away': '2.57', 'dnb_home': '1.55'}),
('variant scenario 1',
(['2.41', '4.76', '2.32'],),
{'12': '1.18', '1X': '1.60', 'X2': '1.56', 'dnb_away': '1.83', 'dnb_home': '1.90'}),
('variant scenario 2',
(['1.75', '4.33', '3.92'],),
{'12': '1.21', '1X': '1.25', 'X2': '2.06', 'dnb_away': '3.01', 'dnb_home': '1.35'})],
[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['2.23', '4.30', '2.48'],),
{'12': '1.17', '1X': '1.47', 'X2': '1.57', 'dnb_away': '1.90', 'dnb_home': '1.71'}),
('variant scenario 1',
(['3.56', '3.70', '2.01'],),
{'12': '1.28', '1X': '1.81', 'X2': '1.30', 'dnb_away': '1.47', 'dnb_home': '2.60'}),
('variant scenario 2',
(['2.90', '5.03', '1.89'],),
{'12': '1.14', '1X': '1.84', 'X2': '1.37', 'dnb_away': '1.51', 'dnb_home': '2.32'})],
[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['2.98', '3.04', '2.72'],),
{'12': '1.42', '1X': '1.50', 'X2': '1.44', 'dnb_away': '1.83', 'dnb_home': '2.00'}),
('variant scenario 1',
(['2.29', '3.12', '3.00'],),
{'12': '1.30', '1X': '1.32', 'X2': '1.53', 'dnb_away': '2.04', 'dnb_home': '1.56'}),
('variant scenario 2',
(['3.24', '3.61', '2.11'],),
{'12': '1.28', '1X': '1.71', 'X2': '1.33', 'dnb_away': '1.53', 'dnb_home': '2.34'})],
[('control balanced match',
(['2.50', '3.20', '3.00'],),
{'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'}),
('control strong favourite',
(['1.50', '4.00', '6.00'],),
{'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'}),
('boundary symmetric prices',
(['3.00', '3.00', '3.00'],),
{'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'}),
('control home favourite',
(['2.00', '3.50', '4.00'],),
{'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'}),
('regression: double chance combination',
(['3.53', '2.74', '2.36'],),
{'12': '1.41', '1X': '1.54', 'X2': '1.27', 'dnb_away': '1.50', 'dnb_home': '2.24'}),
('variant scenario 1',
(['2.57', '3.57', '2.45'],),
{'12': '1.25', '1X': '1.49', 'X2': '1.45', 'dnb_away': '1.76', 'dnb_home': '1.85'}),
('variant scenario 2',
(['4.47', '3.73', '1.76'],),
{'12': '1.26', '1X': '2.03', 'X2': '1.20', 'dnb_away': '1.29', 'dnb_home': '3.27'})]]
for label, args, expected in cases[N - 1]:
check(label, run(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| control balanced match | {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'} | {'12': '1.36', '1X': '1.40', 'X2': '1.55', 'dnb_away': '2.06', 'dnb_home': '1.72'} | Passed |
| control strong favourite | {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'} | {'12': '1.20', '1X': '1.09', 'X2': '2.40', 'dnb_away': '4.50', 'dnb_home': '1.13'} | Passed |
| boundary symmetric prices | {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'} | {'12': '1.50', '1X': '1.50', 'X2': '1.50', 'dnb_away': '2.00', 'dnb_home': '2.00'} | Passed |
| control home favourite | {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'} | {'12': '1.33', '1X': '1.27', 'X2': '1.87', 'dnb_away': '2.86', 'dnb_home': '1.43'} | Passed |
| regression: double chance combination | {'12': '1.24', '1X': '1.20', 'X2': '2.14', 'dnb_away': '3.41', 'dnb_home': '1.28'} | {'12': '1.24', '1X': '1.20', 'X2': '2.14', 'dnb_away': '3.41', 'dnb_home': '1.28'} | Passed |
| variant scenario 1 | {'12': '1.15', '1X': '1.50', 'X2': '1.73', 'dnb_away': '2.07', 'dnb_home': '1.69'} | {'12': '1.15', '1X': '1.50', 'X2': '1.73', 'dnb_away': '2.07', 'dnb_home': '1.69'} | Passed |
| variant scenario 2 | {'12': '1.30', '1X': '1.41', 'X2': '1.77', 'dnb_away': '2.40', 'dnb_home': '1.63'} | {'12': '1.30', '1X': '1.41', 'X2': '1.77', 'dnb_away': '2.40', 'dnb_home': '1.63'} | Passed |
SHA-256 / cdfe50a2c1938525206d9ace7f6d1c00563bab8097365b37caa65eb78af51f9c
Verification & scope
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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:50:34.361327+00:00.
Case digest / 8d0179b514904e4f4cda1b5c0c4c40a7b2588792c684a9d688ae9f6ef0d8f134