FAILURE MAP
← Case archive

FA-84321 / Sports scoring and tiebreakers / Open access

Track base computed in the field orientation · case 01

Running events score zero or slow times still earn points.

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

ROOT CAUSE

The track base is computed as P - B, like a field event.

VERIFIED REPAIR

Use B - P for track events.

Unsuccessful approach: Taking the absolute difference awards points to times slower than the base.

Case contract

Combined-events points. Coefficients (A, B, C, kind): 100m (25.4347, 18, 1.81, track), 400m (1.53775, 82, 1.81, track), 1500m (0.03768, 480, 1.85, track), long_jump (0.14354, 220, 1.4, jump), high_jump (0.8465, 75, 1.42, jump), shot_put (51.39, 1.5, 1.05, throw). Track performances are seconds, 1500m as "m:ss.hh"; jumps are given in metres but scored in whole centimetres (rounded); throws in metres. Track points = floor(A * (B - P) ** C), field points = floor(A * (P - B) ** C); a non-positive base scores 0.

Why this case matters

Combined-event scoring tables are implemented from formulas with mixed units and orientations.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(event, perf):
    TABLE = {'100m': (25.4347, 18, 1.81, 'track'), '400m': (1.53775, 82, 1.81, 'track'),
             '1500m': (0.03768, 480, 1.85, 'track'), 'long_jump': (0.14354, 220, 1.4, 'jump'),
             'high_jump': (0.8465, 75, 1.42, 'jump'), 'shot_put': (51.39, 1.5, 1.05, 'throw')}
    A, B, C, kind = TABLE[event]
    if kind == 'track':
        if ':' in perf:
            m, s = perf.split(':')
            p = int(m) * 60 + float(s)
        else:
            p = float(perf)
        base = p - B
    else:
        p = float(perf)
        if kind == 'jump':
            p = round(p * 100)
        base = p - B
    if base <= 0:
        return 0
    return int(math.floor(A * base ** C))
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 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('400m', '50.19'), 806),
  ('regression: track orientation', ('100m', '19.20'), 0),
  ('variant scenario 1', ('shot_put', '7.58'), 341),
  ('variant scenario 2', ('1500m', '5:05.73'), 527)],
 [('control 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('400m', '46.65'), 976),
  ('regression: track orientation', ('100m', '18.50'), 0),
  ('variant scenario 1', ('long_jump', '6.88'), 785),
  ('variant scenario 2', ('high_jump', '2.01'), 813)],
 [('control 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('1500m', '5:00.81'), 555),
  ('regression: track orientation', ('100m', '18.77'), 0),
  ('variant scenario 1', ('shot_put', '9.22'), 439),
  ('variant scenario 2', ('100m', '12.25'), 603)],
 [('control 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('400m', '57.81'), 491),
  ('regression: track orientation', ('100m', '18.50'), 0),
  ('variant scenario 1', ('400m', '53.57'), 657),
  ('variant scenario 2', ('1500m', '4:52.19'), 606)],
 [('control 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('100m', '12.17'), 618),
  ('regression: track orientation', ('100m', '18.95'), 0),
  ('variant scenario 1', ('400m', '50.41'), 796),
  ('variant scenario 2', ('1500m', '4:45.49'), 646)]]
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 100m0975Failed
control long jump935935Passed
control shot put790790Passed
control 1500m0745Failed
boundary slower than base70Failed
control high jump813813Passed
regression: track orientation0806Failed
regression: track orientation350Failed
variant scenario 1341341Passed
variant scenario 20527Failed

SHA-256 / 254a75208d33008cf743868adffb563a4b13e4770d1f3ec732940ff54b3ffb65

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(event, perf):
    TABLE = {'100m': (25.4347, 18, 1.81, 'track'), '400m': (1.53775, 82, 1.81, 'track'),
             '1500m': (0.03768, 480, 1.85, 'track'), 'long_jump': (0.14354, 220, 1.4, 'jump'),
             'high_jump': (0.8465, 75, 1.42, 'jump'), 'shot_put': (51.39, 1.5, 1.05, 'throw')}
    A, B, C, kind = TABLE[event]
    if kind == 'track':
        if ':' in perf:
            m, s = perf.split(':')
            p = int(m) * 60 + float(s)
        else:
            p = float(perf)
        base = abs(B - p)
    else:
        p = float(perf)
        if kind == 'jump':
            p = round(p * 100)
        base = p - B
    if base <= 0:
        return 0
    return int(math.floor(A * base ** C))
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 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('400m', '50.19'), 806),
  ('regression: track orientation', ('100m', '19.20'), 0),
  ('variant scenario 1', ('shot_put', '7.58'), 341),
  ('variant scenario 2', ('1500m', '5:05.73'), 527)],
 [('control 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('400m', '46.65'), 976),
  ('regression: track orientation', ('100m', '18.50'), 0),
  ('variant scenario 1', ('long_jump', '6.88'), 785),
  ('variant scenario 2', ('high_jump', '2.01'), 813)],
 [('control 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('1500m', '5:00.81'), 555),
  ('regression: track orientation', ('100m', '18.77'), 0),
  ('variant scenario 1', ('shot_put', '9.22'), 439),
  ('variant scenario 2', ('100m', '12.25'), 603)],
 [('control 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('400m', '57.81'), 491),
  ('regression: track orientation', ('100m', '18.50'), 0),
  ('variant scenario 1', ('400m', '53.57'), 657),
  ('variant scenario 2', ('1500m', '4:52.19'), 606)],
 [('control 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('100m', '12.17'), 618),
  ('regression: track orientation', ('100m', '18.95'), 0),
  ('variant scenario 1', ('400m', '50.41'), 796),
  ('variant scenario 2', ('1500m', '4:45.49'), 646)]]
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 100m975975Passed
control long jump935935Passed
control shot put790790Passed
control 1500m745745Passed
boundary slower than base70Failed
control high jump813813Passed
regression: track orientation806806Passed
regression: track orientation350Failed
variant scenario 1341341Passed
variant scenario 2527527Passed

SHA-256 / fb670ac64e98af2cb5e8f4051a923621860b719c853f87feae022c4b675c81d2

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(event, perf):
    TABLE = {'100m': (25.4347, 18, 1.81, 'track'), '400m': (1.53775, 82, 1.81, 'track'),
             '1500m': (0.03768, 480, 1.85, 'track'), 'long_jump': (0.14354, 220, 1.4, 'jump'),
             'high_jump': (0.8465, 75, 1.42, 'jump'), 'shot_put': (51.39, 1.5, 1.05, 'throw')}
    A, B, C, kind = TABLE[event]
    if kind == 'track':
        if ':' in perf:
            m, s = perf.split(':')
            p = int(m) * 60 + float(s)
        else:
            p = float(perf)
        base = B - p
    else:
        p = float(perf)
        if kind == 'jump':
            p = round(p * 100)
        base = p - B
    if base <= 0:
        return 0
    return int(math.floor(A * base ** C))
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 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('400m', '50.19'), 806),
  ('regression: track orientation', ('100m', '19.20'), 0),
  ('variant scenario 1', ('shot_put', '7.58'), 341),
  ('variant scenario 2', ('1500m', '5:05.73'), 527)],
 [('control 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('400m', '46.65'), 976),
  ('regression: track orientation', ('100m', '18.50'), 0),
  ('variant scenario 1', ('long_jump', '6.88'), 785),
  ('variant scenario 2', ('high_jump', '2.01'), 813)],
 [('control 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('1500m', '5:00.81'), 555),
  ('regression: track orientation', ('100m', '18.77'), 0),
  ('variant scenario 1', ('shot_put', '9.22'), 439),
  ('variant scenario 2', ('100m', '12.25'), 603)],
 [('control 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('400m', '57.81'), 491),
  ('regression: track orientation', ('100m', '18.50'), 0),
  ('variant scenario 1', ('400m', '53.57'), 657),
  ('variant scenario 2', ('1500m', '4:52.19'), 606)],
 [('control 100m', ('100m', '10.50'), 975),
  ('control long jump', ('long_jump', '7.50'), 935),
  ('control shot put', ('shot_put', '15.00'), 790),
  ('control 1500m', ('1500m', '4:30.00'), 745),
  ('boundary slower than base', ('100m', '18.50'), 0),
  ('control high jump', ('high_jump', '2.01'), 813),
  ('regression: track orientation', ('100m', '12.17'), 618),
  ('regression: track orientation', ('100m', '18.95'), 0),
  ('variant scenario 1', ('400m', '50.41'), 796),
  ('variant scenario 2', ('1500m', '4:45.49'), 646)]]
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 100m975975Passed
control long jump935935Passed
control shot put790790Passed
control 1500m745745Passed
boundary slower than base00Passed
control high jump813813Passed
regression: track orientation806806Passed
regression: track orientation00Passed
variant scenario 1341341Passed
variant scenario 2527527Passed

SHA-256 / a907dbc68aa0a80110c24e69d450f507d11aa58a5878f3813f19eea2bb6a4e02

Verification & scope

Stipulated, bounded toy contract stated in the contract field; not a claim of conformance with any governing body rulebook or operator house rules. 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:29.795297+00:00.

Case digest / c634f2c0997c65d8da04ea85bbfd4a4f3a15da66feaa6fc2222f311d62336efe