FAILURE MAP
← Case archive

FA-85326 / Fantasy sports scoring / Open access

Exact 40-yard touchdown misses the bonus · case 01

A 40-yard touchdown run scores no long-TD bonus.

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

ROOT CAUSE

The lower tier uses > 40.

VERIFIED REPAIR

Include 40 yards in the 40-49 tier.

Unsuccessful approach: Rewriting the tier as a closed range with an exclusive 49 drops 49-yard touchdowns.

Case contract

Per-play bonus tenths for one player: a touchdown of 50+ yards earns 3, a touchdown of 40-49 yards earns 2 (exclusive tiers); every rushing or receiving play (not passing) of 20+ yards earns 0.5 whether or not it scored; three or more touchdowns in the game earn 2 once.

Why this case matters

Long-play bonuses are layered rules where tier order and play-type filters are easy to get wrong.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(plays):
    bonus = 0
    for kind, yards, td in plays:
        if td and yards >= 50:
            bonus += 30
        elif td and yards > 40:
            bonus += 20
        if kind != 'pass' and yards >= 20:
            bonus += 5
    tds = sum(1 for _, _, td in plays if td)
    if tds >= 3:
        bonus += 20
    return bonus
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: forty-yard boundary', [[['pass', 40, True], ['rec', 50, True]]], 55),
  ('partial repair probe: forty-yard boundary',
   [[['rec', 49, True], ['rec', 40, False], ['rush', 49, False], ['rush', 19, True]]], 35),
  ('second regression', [[['pass', 49, True]]], 20),
  ('normal control 1',
   [[['rec', 20, False], ['rush', 46, False], ['rec', 39, True], ['pass', 5, False], ['rec', 5, False],
     ['rec', 5, True]]],
   15),
  ('normal control 2',
   [[['rush', 41, False], ['pass', 49, False], ['rush', 41, False], ['rush', 19, False], ['rec', -1, True]]],
   10),
  ('normal control 3', [[['rush', 19, True], ['pass', 59, False], ['rec', 5, True], ['pass', 50, False]]], 0),
  ('normal control 4',
   [[['pass', 41, False], ['pass', 39, False], ['pass', 51, False], ['pass', 41, False], ['rush', 5, False],
     ['rec', 50, False]]],
   5)],
 [('regression: forty-yard boundary',
   [[['rush', 49, True], ['rush', 40, True], ['rec', 40, True], ['pass', 20, False]]], 95),
  ('partial repair probe: forty-yard boundary',
   [[['rec', -3, False], ['rec', 39, False], ['pass', 50, True], ['rush', 49, True], ['pass', 50, False],
     ['rec', 51, False]]],
   65),
  ('second regression', [[['rec', 20, False], ['pass', 40, True], ['rush', 49, False], ['pass', 49, False]]],
   30),
  ('normal control 1', [[['rush', 19, True]]], 0), ('normal control 2', [[['rush', 51, True]]], 35),
  ('normal control 3', [[['rec', 50, False]]], 5),
  ('normal control 4',
   [[['pass', 49, False], ['rec', 19, True], ['rec', 51, True], ['pass', 41, False], ['pass', 39, False],
     ['rush', 19, True]]],
   55)],
 [('regression: forty-yard boundary',
   [[['pass', 51, True], ['pass', -3, False], ['rec', 40, True], ['rush', 20, False], ['rec', 5, True]]],
   80),
  ('partial repair probe: forty-yard boundary',
   [[['rush', 47, True], ['rush', 19, True], ['rec', 39, False], ['rush', 49, True], ['rush', 5, False]]],
   75),
  ('second regression', [[['rec', 49, True], ['rec', -3, False], ['rush', 49, True], ['rec', 19, True]]], 70),
  ('normal control 1', [[['pass', 50, False], ['rec', -3, True]]], 0),
  ('normal control 2', [[['rec', 50, True], ['rec', 38, True]]], 40),
  ('normal control 3', [[['rec', 23, False]]], 5), ('normal control 4', [[['pass', 19, False]]], 0)],
 [('regression: forty-yard boundary',
   [[['pass', 51, False], ['rush', 40, False], ['rec', 50, False], ['rush', 51, False], ['rec', 40, True],
     ['pass', 39, False]]],
   40),
  ('partial repair probe: forty-yard boundary', [[['rec', 49, True], ['rush', 49, False]]], 30),
  ('second regression', [[['rush', 20, False], ['rush', 31, True], ['rec', 41, True], ['rec', 49, True]]],
   80),
  ('normal control 1', [[['pass', 40, False], ['pass', 19, False]]], 0),
  ('normal control 2', [[['rec', 41, False]]], 5),
  ('normal control 3', [[['pass', 19, False], ['pass', 51, False]]], 0),
  ('normal control 4', [[['rec', 40, False], ['pass', 39, False], ['pass', 50, True]]], 35)],
 [('regression: forty-yard boundary',
   [[['rec', 20, False], ['pass', 49, True], ['rush', 5, False], ['pass', 41, True], ['rush', 40, True],
     ['rec', -3, True]]],
   90),
  ('partial repair probe: forty-yard boundary', [[['rec', 39, False], ['pass', 49, True]]], 25),
  ('second regression',
   [[['rush', 50, False], ['rec', 19, True], ['pass', 23, False], ['rush', 39, False], ['pass', 49, True],
     ['rec', 20, False]]],
   35),
  ('normal control 1', [[['pass', 31, False]]], 0),
  ('normal control 2', [[['rec', 5, True], ['pass', -3, False]]], 0),
  ('normal control 3', [[['pass', 39, False]]], 0), ('normal control 4', [[['rush', 20, False]]], 5)]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*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
regression: forty-yard boundary3555Failed
partial repair probe: forty-yard boundary3535Passed
second regression2020Passed
normal control 11515Passed
normal control 21010Passed
normal control 300Passed
normal control 455Passed

SHA-256 / 269f43dad11c6172b67dede0a56e9310cbe7a825be5a9bb6ed2959db9c788978

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(plays):
    bonus = 0
    for kind, yards, td in plays:
        if td and yards >= 50:
            bonus += 30
        elif td and 40 <= yards < 49:
            bonus += 20
        if kind != 'pass' and yards >= 20:
            bonus += 5
    tds = sum(1 for _, _, td in plays if td)
    if tds >= 3:
        bonus += 20
    return bonus
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: forty-yard boundary', [[['pass', 40, True], ['rec', 50, True]]], 55),
  ('partial repair probe: forty-yard boundary',
   [[['rec', 49, True], ['rec', 40, False], ['rush', 49, False], ['rush', 19, True]]], 35),
  ('second regression', [[['pass', 49, True]]], 20),
  ('normal control 1',
   [[['rec', 20, False], ['rush', 46, False], ['rec', 39, True], ['pass', 5, False], ['rec', 5, False],
     ['rec', 5, True]]],
   15),
  ('normal control 2',
   [[['rush', 41, False], ['pass', 49, False], ['rush', 41, False], ['rush', 19, False], ['rec', -1, True]]],
   10),
  ('normal control 3', [[['rush', 19, True], ['pass', 59, False], ['rec', 5, True], ['pass', 50, False]]], 0),
  ('normal control 4',
   [[['pass', 41, False], ['pass', 39, False], ['pass', 51, False], ['pass', 41, False], ['rush', 5, False],
     ['rec', 50, False]]],
   5)],
 [('regression: forty-yard boundary',
   [[['rush', 49, True], ['rush', 40, True], ['rec', 40, True], ['pass', 20, False]]], 95),
  ('partial repair probe: forty-yard boundary',
   [[['rec', -3, False], ['rec', 39, False], ['pass', 50, True], ['rush', 49, True], ['pass', 50, False],
     ['rec', 51, False]]],
   65),
  ('second regression', [[['rec', 20, False], ['pass', 40, True], ['rush', 49, False], ['pass', 49, False]]],
   30),
  ('normal control 1', [[['rush', 19, True]]], 0), ('normal control 2', [[['rush', 51, True]]], 35),
  ('normal control 3', [[['rec', 50, False]]], 5),
  ('normal control 4',
   [[['pass', 49, False], ['rec', 19, True], ['rec', 51, True], ['pass', 41, False], ['pass', 39, False],
     ['rush', 19, True]]],
   55)],
 [('regression: forty-yard boundary',
   [[['pass', 51, True], ['pass', -3, False], ['rec', 40, True], ['rush', 20, False], ['rec', 5, True]]],
   80),
  ('partial repair probe: forty-yard boundary',
   [[['rush', 47, True], ['rush', 19, True], ['rec', 39, False], ['rush', 49, True], ['rush', 5, False]]],
   75),
  ('second regression', [[['rec', 49, True], ['rec', -3, False], ['rush', 49, True], ['rec', 19, True]]], 70),
  ('normal control 1', [[['pass', 50, False], ['rec', -3, True]]], 0),
  ('normal control 2', [[['rec', 50, True], ['rec', 38, True]]], 40),
  ('normal control 3', [[['rec', 23, False]]], 5), ('normal control 4', [[['pass', 19, False]]], 0)],
 [('regression: forty-yard boundary',
   [[['pass', 51, False], ['rush', 40, False], ['rec', 50, False], ['rush', 51, False], ['rec', 40, True],
     ['pass', 39, False]]],
   40),
  ('partial repair probe: forty-yard boundary', [[['rec', 49, True], ['rush', 49, False]]], 30),
  ('second regression', [[['rush', 20, False], ['rush', 31, True], ['rec', 41, True], ['rec', 49, True]]],
   80),
  ('normal control 1', [[['pass', 40, False], ['pass', 19, False]]], 0),
  ('normal control 2', [[['rec', 41, False]]], 5),
  ('normal control 3', [[['pass', 19, False], ['pass', 51, False]]], 0),
  ('normal control 4', [[['rec', 40, False], ['pass', 39, False], ['pass', 50, True]]], 35)],
 [('regression: forty-yard boundary',
   [[['rec', 20, False], ['pass', 49, True], ['rush', 5, False], ['pass', 41, True], ['rush', 40, True],
     ['rec', -3, True]]],
   90),
  ('partial repair probe: forty-yard boundary', [[['rec', 39, False], ['pass', 49, True]]], 25),
  ('second regression',
   [[['rush', 50, False], ['rec', 19, True], ['pass', 23, False], ['rush', 39, False], ['pass', 49, True],
     ['rec', 20, False]]],
   35),
  ('normal control 1', [[['pass', 31, False]]], 0),
  ('normal control 2', [[['rec', 5, True], ['pass', -3, False]]], 0),
  ('normal control 3', [[['pass', 39, False]]], 0), ('normal control 4', [[['rush', 20, False]]], 5)]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*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
regression: forty-yard boundary5555Passed
partial repair probe: forty-yard boundary1535Failed
second regression020Failed
normal control 11515Passed
normal control 21010Passed
normal control 300Passed
normal control 455Passed

SHA-256 / 750fade790ee3564fd87d61165b781fb48f4a58c4e5b1fbee1e03f82f9b33221

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(plays):
    bonus = 0
    for kind, yards, td in plays:
        if td and yards >= 50:
            bonus += 30
        elif td and yards >= 40:
            bonus += 20
        if kind != 'pass' and yards >= 20:
            bonus += 5
    tds = sum(1 for _, _, td in plays if td)
    if tds >= 3:
        bonus += 20
    return bonus
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: forty-yard boundary', [[['pass', 40, True], ['rec', 50, True]]], 55),
  ('partial repair probe: forty-yard boundary',
   [[['rec', 49, True], ['rec', 40, False], ['rush', 49, False], ['rush', 19, True]]], 35),
  ('second regression', [[['pass', 49, True]]], 20),
  ('normal control 1',
   [[['rec', 20, False], ['rush', 46, False], ['rec', 39, True], ['pass', 5, False], ['rec', 5, False],
     ['rec', 5, True]]],
   15),
  ('normal control 2',
   [[['rush', 41, False], ['pass', 49, False], ['rush', 41, False], ['rush', 19, False], ['rec', -1, True]]],
   10),
  ('normal control 3', [[['rush', 19, True], ['pass', 59, False], ['rec', 5, True], ['pass', 50, False]]], 0),
  ('normal control 4',
   [[['pass', 41, False], ['pass', 39, False], ['pass', 51, False], ['pass', 41, False], ['rush', 5, False],
     ['rec', 50, False]]],
   5)],
 [('regression: forty-yard boundary',
   [[['rush', 49, True], ['rush', 40, True], ['rec', 40, True], ['pass', 20, False]]], 95),
  ('partial repair probe: forty-yard boundary',
   [[['rec', -3, False], ['rec', 39, False], ['pass', 50, True], ['rush', 49, True], ['pass', 50, False],
     ['rec', 51, False]]],
   65),
  ('second regression', [[['rec', 20, False], ['pass', 40, True], ['rush', 49, False], ['pass', 49, False]]],
   30),
  ('normal control 1', [[['rush', 19, True]]], 0), ('normal control 2', [[['rush', 51, True]]], 35),
  ('normal control 3', [[['rec', 50, False]]], 5),
  ('normal control 4',
   [[['pass', 49, False], ['rec', 19, True], ['rec', 51, True], ['pass', 41, False], ['pass', 39, False],
     ['rush', 19, True]]],
   55)],
 [('regression: forty-yard boundary',
   [[['pass', 51, True], ['pass', -3, False], ['rec', 40, True], ['rush', 20, False], ['rec', 5, True]]],
   80),
  ('partial repair probe: forty-yard boundary',
   [[['rush', 47, True], ['rush', 19, True], ['rec', 39, False], ['rush', 49, True], ['rush', 5, False]]],
   75),
  ('second regression', [[['rec', 49, True], ['rec', -3, False], ['rush', 49, True], ['rec', 19, True]]], 70),
  ('normal control 1', [[['pass', 50, False], ['rec', -3, True]]], 0),
  ('normal control 2', [[['rec', 50, True], ['rec', 38, True]]], 40),
  ('normal control 3', [[['rec', 23, False]]], 5), ('normal control 4', [[['pass', 19, False]]], 0)],
 [('regression: forty-yard boundary',
   [[['pass', 51, False], ['rush', 40, False], ['rec', 50, False], ['rush', 51, False], ['rec', 40, True],
     ['pass', 39, False]]],
   40),
  ('partial repair probe: forty-yard boundary', [[['rec', 49, True], ['rush', 49, False]]], 30),
  ('second regression', [[['rush', 20, False], ['rush', 31, True], ['rec', 41, True], ['rec', 49, True]]],
   80),
  ('normal control 1', [[['pass', 40, False], ['pass', 19, False]]], 0),
  ('normal control 2', [[['rec', 41, False]]], 5),
  ('normal control 3', [[['pass', 19, False], ['pass', 51, False]]], 0),
  ('normal control 4', [[['rec', 40, False], ['pass', 39, False], ['pass', 50, True]]], 35)],
 [('regression: forty-yard boundary',
   [[['rec', 20, False], ['pass', 49, True], ['rush', 5, False], ['pass', 41, True], ['rush', 40, True],
     ['rec', -3, True]]],
   90),
  ('partial repair probe: forty-yard boundary', [[['rec', 39, False], ['pass', 49, True]]], 25),
  ('second regression',
   [[['rush', 50, False], ['rec', 19, True], ['pass', 23, False], ['rush', 39, False], ['pass', 49, True],
     ['rec', 20, False]]],
   35),
  ('normal control 1', [[['pass', 31, False]]], 0),
  ('normal control 2', [[['rec', 5, True], ['pass', -3, False]]], 0),
  ('normal control 3', [[['pass', 39, False]]], 0), ('normal control 4', [[['rush', 20, False]]], 5)]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*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
regression: forty-yard boundary5555Passed
partial repair probe: forty-yard boundary3535Passed
second regression2020Passed
normal control 11515Passed
normal control 21010Passed
normal control 300Passed
normal control 455Passed

SHA-256 / 061e428e3576dca2f624ed05851fdc253025b37c3dcaa6bec7d6824038b558b7

Verification & scope

A deterministic toy scoring contract stipulated for this example; it is not the rulebook of any real fantasy platform. 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:39.290981+00:00.

Case digest / d51cd0c88f7318a16613022db0e1a54c6ff0dbbac42269e35a56a2d9e0083151