FAILURE MAP
← Case archive

FA-84786 / Betting odds conversion / Open access

Home-or-away double chance built from the draw price · case 01

The 12 market shows the same price as 1X.

Verified by executionVariant 1 · 7 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The 12 entry combines home with draw.

VERIFIED REPAIR

Combine home with away for 12.

Unsuccessful approach: Combining draw with away duplicates X2.

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 / (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, x)), '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: market key mapping',
   (['2.71', '4.33', '2.05'],),
   {'12': '1.17', '1X': '1.67', 'X2': '1.39', 'dnb_away': '1.58', 'dnb_home': '2.08'}),
  ('variant scenario 1',
   (['1.84', '4.13', '4.07'],),
   {'12': '1.27', '1X': '1.27', 'X2': '2.05', 'dnb_away': '3.08', 'dnb_home': '1.39'}),
  ('variant scenario 2',
   (['3.18', '4.29', '2.04'],),
   {'12': '1.24', '1X': '1.83', 'X2': '1.38', 'dnb_away': '1.56', 'dnb_home': '2.44'})],
 [('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: market key mapping',
   (['2.09', '4.48', '3.10'],),
   {'12': '1.25', '1X': '1.43', 'X2': '1.83', 'dnb_away': '2.41', 'dnb_home': '1.62'}),
  ('variant scenario 1',
   (['1.95', '4.61', '3.00'],),
   {'12': '1.18', '1X': '1.37', 'X2': '1.82', 'dnb_away': '2.35', 'dnb_home': '1.53'}),
  ('variant scenario 2',
   (['3.40', '2.67', '2.64'],),
   {'12': '1.49', '1X': '1.50', 'X2': '1.33', 'dnb_away': '1.65', 'dnb_home': '2.13'})],
 [('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: market key mapping',
   (['2.00', '3.38', '4.25'],),
   {'12': '1.36', '1X': '1.26', 'X2': '1.88', 'dnb_away': '2.99', 'dnb_home': '1.41'}),
  ('variant scenario 1',
   (['2.04', '4.93', '2.47'],),
   {'12': '1.12', '1X': '1.44', 'X2': '1.65', 'dnb_away': '1.97', 'dnb_home': '1.63'}),
  ('variant scenario 2',
   (['2.76', '2.67', '3.17'],),
   {'12': '1.48', '1X': '1.36', 'X2': '1.45', 'dnb_away': '1.98', 'dnb_home': '1.73'})],
 [('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: market key mapping',
   (['2.19', '2.80', '4.83'],),
   {'12': '1.51', '1X': '1.23', 'X2': '1.77', 'dnb_away': '3.11', 'dnb_home': '1.41'}),
  ('variant scenario 1',
   (['3.94', '2.99', '2.04'],),
   {'12': '1.34', '1X': '1.70', 'X2': '1.21', 'dnb_away': '1.36', 'dnb_home': '2.62'}),
  ('variant scenario 2',
   (['1.85', '4.29', '3.28'],),
   {'12': '1.18', '1X': '1.29', 'X2': '1.86', 'dnb_away': '2.52', 'dnb_home': '1.42'})],
 [('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: market key mapping',
   (['1.72', '3.75', '4.18'],),
   {'12': '1.22', '1X': '1.18', 'X2': '1.98', 'dnb_away': '3.07', 'dnb_home': '1.26'}),
  ('variant scenario 1',
   (['2.92', '4.36', '2.23'],),
   {'12': '1.26', '1X': '1.75', 'X2': '1.48', 'dnb_away': '1.72', 'dnb_home': '2.25'}),
  ('variant scenario 2',
   (['2.83', '3.53', '2.20'],),
   {'12': '1.24', '1X': '1.57', 'X2': '1.36', 'dnb_away': '1.58', 'dnb_home': '2.03'})]]
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 fixtureActualExpectedOutcome
control balanced match{'12': '1.40', '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'}Failed
control strong favourite{'12': '1.09', '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'}Failed
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.27', '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'}Failed
regression: market key mapping{'12': '1.67', '1X': '1.67', 'X2': '1.39', 'dnb_away': '1.58', 'dnb_home': '2.08'}{'12': '1.17', '1X': '1.67', 'X2': '1.39', 'dnb_away': '1.58', 'dnb_home': '2.08'}Failed
variant scenario 1{'12': '1.27', '1X': '1.27', 'X2': '2.05', 'dnb_away': '3.08', 'dnb_home': '1.39'}{'12': '1.27', '1X': '1.27', 'X2': '2.05', 'dnb_away': '3.08', 'dnb_home': '1.39'}Passed
variant scenario 2{'12': '1.83', '1X': '1.83', 'X2': '1.38', 'dnb_away': '1.56', 'dnb_home': '2.44'}{'12': '1.24', '1X': '1.83', 'X2': '1.38', 'dnb_away': '1.56', 'dnb_home': '2.44'}Failed

SHA-256 / e054ea6235916bb635c9552e718a370644460d24309299a50213809d2c7b73a0

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 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(x, 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: market key mapping',
   (['2.71', '4.33', '2.05'],),
   {'12': '1.17', '1X': '1.67', 'X2': '1.39', 'dnb_away': '1.58', 'dnb_home': '2.08'}),
  ('variant scenario 1',
   (['1.84', '4.13', '4.07'],),
   {'12': '1.27', '1X': '1.27', 'X2': '2.05', 'dnb_away': '3.08', 'dnb_home': '1.39'}),
  ('variant scenario 2',
   (['3.18', '4.29', '2.04'],),
   {'12': '1.24', '1X': '1.83', 'X2': '1.38', 'dnb_away': '1.56', 'dnb_home': '2.44'})],
 [('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: market key mapping',
   (['2.09', '4.48', '3.10'],),
   {'12': '1.25', '1X': '1.43', 'X2': '1.83', 'dnb_away': '2.41', 'dnb_home': '1.62'}),
  ('variant scenario 1',
   (['1.95', '4.61', '3.00'],),
   {'12': '1.18', '1X': '1.37', 'X2': '1.82', 'dnb_away': '2.35', 'dnb_home': '1.53'}),
  ('variant scenario 2',
   (['3.40', '2.67', '2.64'],),
   {'12': '1.49', '1X': '1.50', 'X2': '1.33', 'dnb_away': '1.65', 'dnb_home': '2.13'})],
 [('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: market key mapping',
   (['2.00', '3.38', '4.25'],),
   {'12': '1.36', '1X': '1.26', 'X2': '1.88', 'dnb_away': '2.99', 'dnb_home': '1.41'}),
  ('variant scenario 1',
   (['2.04', '4.93', '2.47'],),
   {'12': '1.12', '1X': '1.44', 'X2': '1.65', 'dnb_away': '1.97', 'dnb_home': '1.63'}),
  ('variant scenario 2',
   (['2.76', '2.67', '3.17'],),
   {'12': '1.48', '1X': '1.36', 'X2': '1.45', 'dnb_away': '1.98', 'dnb_home': '1.73'})],
 [('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: market key mapping',
   (['2.19', '2.80', '4.83'],),
   {'12': '1.51', '1X': '1.23', 'X2': '1.77', 'dnb_away': '3.11', 'dnb_home': '1.41'}),
  ('variant scenario 1',
   (['3.94', '2.99', '2.04'],),
   {'12': '1.34', '1X': '1.70', 'X2': '1.21', 'dnb_away': '1.36', 'dnb_home': '2.62'}),
  ('variant scenario 2',
   (['1.85', '4.29', '3.28'],),
   {'12': '1.18', '1X': '1.29', 'X2': '1.86', 'dnb_away': '2.52', 'dnb_home': '1.42'})],
 [('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: market key mapping',
   (['1.72', '3.75', '4.18'],),
   {'12': '1.22', '1X': '1.18', 'X2': '1.98', 'dnb_away': '3.07', 'dnb_home': '1.26'}),
  ('variant scenario 1',
   (['2.92', '4.36', '2.23'],),
   {'12': '1.26', '1X': '1.75', 'X2': '1.48', 'dnb_away': '1.72', 'dnb_home': '2.25'}),
  ('variant scenario 2',
   (['2.83', '3.53', '2.20'],),
   {'12': '1.24', '1X': '1.57', 'X2': '1.36', 'dnb_away': '1.58', 'dnb_home': '2.03'})]]
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 fixtureActualExpectedOutcome
control balanced match{'12': '1.55', '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'}Failed
control strong favourite{'12': '2.40', '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'}Failed
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.87', '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'}Failed
regression: market key mapping{'12': '1.39', '1X': '1.67', 'X2': '1.39', 'dnb_away': '1.58', 'dnb_home': '2.08'}{'12': '1.17', '1X': '1.67', 'X2': '1.39', 'dnb_away': '1.58', 'dnb_home': '2.08'}Failed
variant scenario 1{'12': '2.05', '1X': '1.27', 'X2': '2.05', 'dnb_away': '3.08', 'dnb_home': '1.39'}{'12': '1.27', '1X': '1.27', 'X2': '2.05', 'dnb_away': '3.08', 'dnb_home': '1.39'}Failed
variant scenario 2{'12': '1.38', '1X': '1.83', 'X2': '1.38', 'dnb_away': '1.56', 'dnb_home': '2.44'}{'12': '1.24', '1X': '1.83', 'X2': '1.38', 'dnb_away': '1.56', 'dnb_home': '2.44'}Failed

SHA-256 / 901c68a415982058659f6290364fd5434e8076926c0d22e5e566fb249a92349a

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: market key mapping',
   (['2.71', '4.33', '2.05'],),
   {'12': '1.17', '1X': '1.67', 'X2': '1.39', 'dnb_away': '1.58', 'dnb_home': '2.08'}),
  ('variant scenario 1',
   (['1.84', '4.13', '4.07'],),
   {'12': '1.27', '1X': '1.27', 'X2': '2.05', 'dnb_away': '3.08', 'dnb_home': '1.39'}),
  ('variant scenario 2',
   (['3.18', '4.29', '2.04'],),
   {'12': '1.24', '1X': '1.83', 'X2': '1.38', 'dnb_away': '1.56', 'dnb_home': '2.44'})],
 [('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: market key mapping',
   (['2.09', '4.48', '3.10'],),
   {'12': '1.25', '1X': '1.43', 'X2': '1.83', 'dnb_away': '2.41', 'dnb_home': '1.62'}),
  ('variant scenario 1',
   (['1.95', '4.61', '3.00'],),
   {'12': '1.18', '1X': '1.37', 'X2': '1.82', 'dnb_away': '2.35', 'dnb_home': '1.53'}),
  ('variant scenario 2',
   (['3.40', '2.67', '2.64'],),
   {'12': '1.49', '1X': '1.50', 'X2': '1.33', 'dnb_away': '1.65', 'dnb_home': '2.13'})],
 [('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: market key mapping',
   (['2.00', '3.38', '4.25'],),
   {'12': '1.36', '1X': '1.26', 'X2': '1.88', 'dnb_away': '2.99', 'dnb_home': '1.41'}),
  ('variant scenario 1',
   (['2.04', '4.93', '2.47'],),
   {'12': '1.12', '1X': '1.44', 'X2': '1.65', 'dnb_away': '1.97', 'dnb_home': '1.63'}),
  ('variant scenario 2',
   (['2.76', '2.67', '3.17'],),
   {'12': '1.48', '1X': '1.36', 'X2': '1.45', 'dnb_away': '1.98', 'dnb_home': '1.73'})],
 [('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: market key mapping',
   (['2.19', '2.80', '4.83'],),
   {'12': '1.51', '1X': '1.23', 'X2': '1.77', 'dnb_away': '3.11', 'dnb_home': '1.41'}),
  ('variant scenario 1',
   (['3.94', '2.99', '2.04'],),
   {'12': '1.34', '1X': '1.70', 'X2': '1.21', 'dnb_away': '1.36', 'dnb_home': '2.62'}),
  ('variant scenario 2',
   (['1.85', '4.29', '3.28'],),
   {'12': '1.18', '1X': '1.29', 'X2': '1.86', 'dnb_away': '2.52', 'dnb_home': '1.42'})],
 [('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: market key mapping',
   (['1.72', '3.75', '4.18'],),
   {'12': '1.22', '1X': '1.18', 'X2': '1.98', 'dnb_away': '3.07', 'dnb_home': '1.26'}),
  ('variant scenario 1',
   (['2.92', '4.36', '2.23'],),
   {'12': '1.26', '1X': '1.75', 'X2': '1.48', 'dnb_away': '1.72', 'dnb_home': '2.25'}),
  ('variant scenario 2',
   (['2.83', '3.53', '2.20'],),
   {'12': '1.24', '1X': '1.57', 'X2': '1.36', 'dnb_away': '1.58', 'dnb_home': '2.03'})]]
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 fixtureActualExpectedOutcome
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: market key mapping{'12': '1.17', '1X': '1.67', 'X2': '1.39', 'dnb_away': '1.58', 'dnb_home': '2.08'}{'12': '1.17', '1X': '1.67', 'X2': '1.39', 'dnb_away': '1.58', 'dnb_home': '2.08'}Passed
variant scenario 1{'12': '1.27', '1X': '1.27', 'X2': '2.05', 'dnb_away': '3.08', 'dnb_home': '1.39'}{'12': '1.27', '1X': '1.27', 'X2': '2.05', 'dnb_away': '3.08', 'dnb_home': '1.39'}Passed
variant scenario 2{'12': '1.24', '1X': '1.83', 'X2': '1.38', 'dnb_away': '1.56', 'dnb_home': '2.44'}{'12': '1.24', '1X': '1.83', 'X2': '1.38', 'dnb_away': '1.56', 'dnb_home': '2.44'}Passed

SHA-256 / 3c2e8e0e3f1e4f380a14a3047a894c88d4381a2d257f04e091eade3fbb5ae43a

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.364726+00:00.

Case digest / c48b7f95c063662b75de6a308cda2b11ddc09508cc9832041d1d31f03560b1b4