FA-85086 / Fantasy sports scoring / Open access
Hold stacked on a save · case 01
A reliever credited with both a hold flag and a save earns 8 points.
ROOT CAUSE
The hold is scored independently of the save.
THE FAILURE
The hold is scored independently of the save.
Unsuccessful approach: Suppressing holds on wins instead of saves still stacks save and hold.
Case contract
Score a pitching line in hundredths. Innings pitched use baseball notation: "6.2" means six innings and two outs; each out is worth 1 point. Strikeout +1, hit -1, walk -1, earned run -2, win +5, loss -3, save +5, hold +3 (ignored when the line also has a save), blown save -3, quality start (at least 18 outs and at most 3 earned runs) +3. Return outs and points.
Why this case matters
Innings-pitched notation and quality-start edges are recurring baseball fantasy scoring bugs.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(line):
whole, _, part = line['ip'].partition('.')
outs = int(whole) * 3 + int(part or 0)
pts = outs * 100
pts += line['k'] * 100 - line['h'] * 100 - line['bb'] * 100 - line['er'] * 200
if line['w']:
pts += 500
if line['l']:
pts -= 300
if line['sv']:
pts += 500
if line['hld']:
pts += 300
if line['bs']:
pts -= 300
if outs >= 18 and line['er'] <= 3:
pts += 300
return {'outs': outs, 'points': pts}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: save and hold exclusivity',
[{'bb': 0,
'bs': False,
'er': 5,
'h': 2,
'hld': True,
'ip': '8.1',
'k': 1,
'l': True,
'sv': True,
'w': False}],
{'outs': 25, 'points': 1600}),
('partial repair probe: save and hold exclusivity',
[{'bb': 3,
'bs': True,
'er': 5,
'h': 6,
'hld': True,
'ip': '1.0',
'k': 10,
'l': False,
'sv': False,
'w': True}],
{'outs': 3, 'points': -100}),
('second regression',
[{'bb': 3,
'bs': False,
'er': 4,
'h': 4,
'hld': True,
'ip': '7.2',
'k': 0,
'l': False,
'sv': False,
'w': True}],
{'outs': 23, 'points': 1600}),
('normal control 1',
[{'bb': 0,
'bs': False,
'er': 3,
'h': 2,
'hld': True,
'ip': '6.1',
'k': 0,
'l': False,
'sv': False,
'w': False}],
{'outs': 19, 'points': 1700}),
('normal control 2',
[{'bb': 0,
'bs': False,
'er': 0,
'h': 4,
'hld': False,
'ip': '6.1',
'k': 9,
'l': False,
'sv': False,
'w': True}],
{'outs': 19, 'points': 3200}),
('normal control 3',
[{'bb': 3,
'bs': False,
'er': 5,
'h': 7,
'hld': False,
'ip': '5.1',
'k': 7,
'l': False,
'sv': False,
'w': False}],
{'outs': 16, 'points': 300}),
('normal control 4',
[{'bb': 3,
'bs': False,
'er': 5,
'h': 2,
'hld': False,
'ip': '2.2',
'k': 7,
'l': True,
'sv': False,
'w': False}],
{'outs': 8, 'points': -300})],
[('regression: save and hold exclusivity',
[{'bb': 2,
'bs': False,
'er': 4,
'h': 8,
'hld': True,
'ip': '6.0',
'k': 11,
'l': False,
'sv': True,
'w': False}],
{'outs': 18, 'points': 1600}),
('partial repair probe: save and hold exclusivity',
[{'bb': 2,
'bs': False,
'er': 4,
'h': 8,
'hld': True,
'ip': '0.1',
'k': 1,
'l': False,
'sv': True,
'w': False}],
{'outs': 1, 'points': -1100}),
('second regression',
[{'bb': 2,
'bs': False,
'er': 5,
'h': 5,
'hld': True,
'ip': '1.0',
'k': 4,
'l': False,
'sv': True,
'w': True}],
{'outs': 3, 'points': 0}),
('normal control 1',
[{'bb': 2,
'bs': False,
'er': 5,
'h': 5,
'hld': False,
'ip': '6.0',
'k': 4,
'l': False,
'sv': False,
'w': False}],
{'outs': 18, 'points': 500}),
('normal control 2',
[{'bb': 1,
'bs': False,
'er': 4,
'h': 9,
'hld': False,
'ip': '7',
'k': 7,
'l': True,
'sv': False,
'w': True}],
{'outs': 21, 'points': 1200}),
('normal control 3',
[{'bb': 3,
'bs': False,
'er': 0,
'h': 6,
'hld': False,
'ip': '8.1',
'k': 1,
'l': False,
'sv': False,
'w': True}],
{'outs': 25, 'points': 2500}),
('normal control 4',
[{'bb': 3,
'bs': False,
'er': 5,
'h': 3,
'hld': False,
'ip': '8.1',
'k': 8,
'l': False,
'sv': False,
'w': False}],
{'outs': 25, 'points': 1700})],
[('regression: save and hold exclusivity',
[{'bb': 2,
'bs': False,
'er': 5,
'h': 9,
'hld': True,
'ip': '5.2',
'k': 2,
'l': False,
'sv': True,
'w': False}],
{'outs': 17, 'points': 300}),
('partial repair probe: save and hold exclusivity',
[{'bb': 4,
'bs': False,
'er': 5,
'h': 3,
'hld': True,
'ip': '5.2',
'k': 5,
'l': False,
'sv': False,
'w': True}],
{'outs': 17, 'points': 1300}),
('second regression',
[{'bb': 3,
'bs': False,
'er': 4,
'h': 3,
'hld': True,
'ip': '1.0',
'k': 7,
'l': False,
'sv': False,
'w': True}],
{'outs': 3, 'points': 400}),
('normal control 1',
[{'bb': 0,
'bs': False,
'er': 3,
'h': 6,
'hld': False,
'ip': '6.1',
'k': 10,
'l': False,
'sv': True,
'w': False}],
{'outs': 19, 'points': 2500}),
('normal control 2',
[{'bb': 0,
'bs': False,
'er': 4,
'h': 5,
'hld': False,
'ip': '2.2',
'k': 6,
'l': False,
'sv': False,
'w': False}],
{'outs': 8, 'points': 100}),
('normal control 3',
[{'bb': 0,
'bs': False,
'er': 5,
'h': 5,
'hld': False,
'ip': '6.1',
'k': 7,
'l': True,
'sv': False,
'w': False}],
{'outs': 19, 'points': 800}),
('normal control 4',
[{'bb': 4,
'bs': False,
'er': 3,
'h': 3,
'hld': False,
'ip': '0.1',
'k': 4,
'l': False,
'sv': True,
'w': True}],
{'outs': 1, 'points': 200})],
[('regression: save and hold exclusivity',
[{'bb': 3,
'bs': False,
'er': 5,
'h': 2,
'hld': True,
'ip': '7',
'k': 10,
'l': False,
'sv': True,
'w': False}],
{'outs': 21, 'points': 2100}),
('partial repair probe: save and hold exclusivity',
[{'bb': 2,
'bs': False,
'er': 3,
'h': 4,
'hld': True,
'ip': '2.2',
'k': 1,
'l': False,
'sv': False,
'w': True}],
{'outs': 8, 'points': 500}),
('second regression',
[{'bb': 4,
'bs': False,
'er': 0,
'h': 1,
'hld': True,
'ip': '8.1',
'k': 0,
'l': False,
'sv': False,
'w': True}],
{'outs': 25, 'points': 3100}),
('normal control 1',
[{'bb': 0,
'bs': False,
'er': 5,
'h': 5,
'hld': False,
'ip': '6.0',
'k': 2,
'l': False,
'sv': False,
'w': False}],
{'outs': 18, 'points': 500}),
('normal control 2',
[{'bb': 1,
'bs': False,
'er': 2,
'h': 0,
'hld': False,
'ip': '6.2',
'k': 3,
'l': False,
'sv': False,
'w': False}],
{'outs': 20, 'points': 2100}),
('normal control 3',
[{'bb': 3,
'bs': True,
'er': 3,
'h': 1,
'hld': False,
'ip': '6.2',
'k': 7,
'l': False,
'sv': False,
'w': True}],
{'outs': 20, 'points': 2200}),
('normal control 4',
[{'bb': 3,
'bs': False,
'er': 5,
'h': 7,
'hld': False,
'ip': '6.0',
'k': 8,
'l': True,
'sv': False,
'w': False}],
{'outs': 18, 'points': 300})],
[('regression: save and hold exclusivity',
[{'bb': 4,
'bs': False,
'er': 5,
'h': 4,
'hld': True,
'ip': '5.2',
'k': 2,
'l': False,
'sv': True,
'w': False}],
{'outs': 17, 'points': 600}),
('partial repair probe: save and hold exclusivity',
[{'bb': 2,
'bs': False,
'er': 3,
'h': 6,
'hld': True,
'ip': '5.2',
'k': 0,
'l': False,
'sv': False,
'w': True}],
{'outs': 17, 'points': 1100}),
('second regression',
[{'bb': 2,
'bs': False,
'er': 2,
'h': 4,
'hld': True,
'ip': '2.2',
'k': 2,
'l': False,
'sv': False,
'w': True}],
{'outs': 8, 'points': 800}),
('normal control 1',
[{'bb': 2,
'bs': False,
'er': 2,
'h': 4,
'hld': False,
'ip': '3.2',
'k': 8,
'l': False,
'sv': False,
'w': True}],
{'outs': 11, 'points': 1400}),
('normal control 2',
[{'bb': 1,
'bs': False,
'er': 0,
'h': 1,
'hld': False,
'ip': '7',
'k': 4,
'l': False,
'sv': False,
'w': False}],
{'outs': 21, 'points': 2600}),
('normal control 3',
[{'bb': 1,
'bs': True,
'er': 0,
'h': 4,
'hld': False,
'ip': '1.0',
'k': 0,
'l': False,
'sv': False,
'w': True}],
{'outs': 3, 'points': 0}),
('normal control 4',
[{'bb': 1,
'bs': False,
'er': 4,
'h': 3,
'hld': False,
'ip': '9.0',
'k': 4,
'l': True,
'sv': False,
'w': False}],
{'outs': 27, 'points': 1600})]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: save and hold exclusivity | {'outs': 25, 'points': 1900} | {'outs': 25, 'points': 1600} | Failed |
| partial repair probe: save and hold exclusivity | {'outs': 3, 'points': -100} | {'outs': 3, 'points': -100} | Passed |
| second regression | {'outs': 23, 'points': 1600} | {'outs': 23, 'points': 1600} | Passed |
| normal control 1 | {'outs': 19, 'points': 1700} | {'outs': 19, 'points': 1700} | Passed |
| normal control 2 | {'outs': 19, 'points': 3200} | {'outs': 19, 'points': 3200} | Passed |
| normal control 3 | {'outs': 16, 'points': 300} | {'outs': 16, 'points': 300} | Passed |
| normal control 4 | {'outs': 8, 'points': -300} | {'outs': 8, 'points': -300} | Passed |
SHA-256 / bc2725b5c540b6dbc1573d69e9bff589b226304d0af96431554e979d23dc5910
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(line):
whole, _, part = line['ip'].partition('.')
outs = int(whole) * 3 + int(part or 0)
pts = outs * 100
pts += line['k'] * 100 - line['h'] * 100 - line['bb'] * 100 - line['er'] * 200
if line['w']:
pts += 500
if line['l']:
pts -= 300
if line['sv']:
pts += 500
if line['hld'] and not line['w']:
pts += 300
if line['bs']:
pts -= 300
if outs >= 18 and line['er'] <= 3:
pts += 300
return {'outs': outs, 'points': pts}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: save and hold exclusivity',
[{'bb': 0,
'bs': False,
'er': 5,
'h': 2,
'hld': True,
'ip': '8.1',
'k': 1,
'l': True,
'sv': True,
'w': False}],
{'outs': 25, 'points': 1600}),
('partial repair probe: save and hold exclusivity',
[{'bb': 3,
'bs': True,
'er': 5,
'h': 6,
'hld': True,
'ip': '1.0',
'k': 10,
'l': False,
'sv': False,
'w': True}],
{'outs': 3, 'points': -100}),
('second regression',
[{'bb': 3,
'bs': False,
'er': 4,
'h': 4,
'hld': True,
'ip': '7.2',
'k': 0,
'l': False,
'sv': False,
'w': True}],
{'outs': 23, 'points': 1600}),
('normal control 1',
[{'bb': 0,
'bs': False,
'er': 3,
'h': 2,
'hld': True,
'ip': '6.1',
'k': 0,
'l': False,
'sv': False,
'w': False}],
{'outs': 19, 'points': 1700}),
('normal control 2',
[{'bb': 0,
'bs': False,
'er': 0,
'h': 4,
'hld': False,
'ip': '6.1',
'k': 9,
'l': False,
'sv': False,
'w': True}],
{'outs': 19, 'points': 3200}),
('normal control 3',
[{'bb': 3,
'bs': False,
'er': 5,
'h': 7,
'hld': False,
'ip': '5.1',
'k': 7,
'l': False,
'sv': False,
'w': False}],
{'outs': 16, 'points': 300}),
('normal control 4',
[{'bb': 3,
'bs': False,
'er': 5,
'h': 2,
'hld': False,
'ip': '2.2',
'k': 7,
'l': True,
'sv': False,
'w': False}],
{'outs': 8, 'points': -300})],
[('regression: save and hold exclusivity',
[{'bb': 2,
'bs': False,
'er': 4,
'h': 8,
'hld': True,
'ip': '6.0',
'k': 11,
'l': False,
'sv': True,
'w': False}],
{'outs': 18, 'points': 1600}),
('partial repair probe: save and hold exclusivity',
[{'bb': 2,
'bs': False,
'er': 4,
'h': 8,
'hld': True,
'ip': '0.1',
'k': 1,
'l': False,
'sv': True,
'w': False}],
{'outs': 1, 'points': -1100}),
('second regression',
[{'bb': 2,
'bs': False,
'er': 5,
'h': 5,
'hld': True,
'ip': '1.0',
'k': 4,
'l': False,
'sv': True,
'w': True}],
{'outs': 3, 'points': 0}),
('normal control 1',
[{'bb': 2,
'bs': False,
'er': 5,
'h': 5,
'hld': False,
'ip': '6.0',
'k': 4,
'l': False,
'sv': False,
'w': False}],
{'outs': 18, 'points': 500}),
('normal control 2',
[{'bb': 1,
'bs': False,
'er': 4,
'h': 9,
'hld': False,
'ip': '7',
'k': 7,
'l': True,
'sv': False,
'w': True}],
{'outs': 21, 'points': 1200}),
('normal control 3',
[{'bb': 3,
'bs': False,
'er': 0,
'h': 6,
'hld': False,
'ip': '8.1',
'k': 1,
'l': False,
'sv': False,
'w': True}],
{'outs': 25, 'points': 2500}),
('normal control 4',
[{'bb': 3,
'bs': False,
'er': 5,
'h': 3,
'hld': False,
'ip': '8.1',
'k': 8,
'l': False,
'sv': False,
'w': False}],
{'outs': 25, 'points': 1700})],
[('regression: save and hold exclusivity',
[{'bb': 2,
'bs': False,
'er': 5,
'h': 9,
'hld': True,
'ip': '5.2',
'k': 2,
'l': False,
'sv': True,
'w': False}],
{'outs': 17, 'points': 300}),
('partial repair probe: save and hold exclusivity',
[{'bb': 4,
'bs': False,
'er': 5,
'h': 3,
'hld': True,
'ip': '5.2',
'k': 5,
'l': False,
'sv': False,
'w': True}],
{'outs': 17, 'points': 1300}),
('second regression',
[{'bb': 3,
'bs': False,
'er': 4,
'h': 3,
'hld': True,
'ip': '1.0',
'k': 7,
'l': False,
'sv': False,
'w': True}],
{'outs': 3, 'points': 400}),
('normal control 1',
[{'bb': 0,
'bs': False,
'er': 3,
'h': 6,
'hld': False,
'ip': '6.1',
'k': 10,
'l': False,
'sv': True,
'w': False}],
{'outs': 19, 'points': 2500}),
('normal control 2',
[{'bb': 0,
'bs': False,
'er': 4,
'h': 5,
'hld': False,
'ip': '2.2',
'k': 6,
'l': False,
'sv': False,
'w': False}],
{'outs': 8, 'points': 100}),
('normal control 3',
[{'bb': 0,
'bs': False,
'er': 5,
'h': 5,
'hld': False,
'ip': '6.1',
'k': 7,
'l': True,
'sv': False,
'w': False}],
{'outs': 19, 'points': 800}),
('normal control 4',
[{'bb': 4,
'bs': False,
'er': 3,
'h': 3,
'hld': False,
'ip': '0.1',
'k': 4,
'l': False,
'sv': True,
'w': True}],
{'outs': 1, 'points': 200})],
[('regression: save and hold exclusivity',
[{'bb': 3,
'bs': False,
'er': 5,
'h': 2,
'hld': True,
'ip': '7',
'k': 10,
'l': False,
'sv': True,
'w': False}],
{'outs': 21, 'points': 2100}),
('partial repair probe: save and hold exclusivity',
[{'bb': 2,
'bs': False,
'er': 3,
'h': 4,
'hld': True,
'ip': '2.2',
'k': 1,
'l': False,
'sv': False,
'w': True}],
{'outs': 8, 'points': 500}),
('second regression',
[{'bb': 4,
'bs': False,
'er': 0,
'h': 1,
'hld': True,
'ip': '8.1',
'k': 0,
'l': False,
'sv': False,
'w': True}],
{'outs': 25, 'points': 3100}),
('normal control 1',
[{'bb': 0,
'bs': False,
'er': 5,
'h': 5,
'hld': False,
'ip': '6.0',
'k': 2,
'l': False,
'sv': False,
'w': False}],
{'outs': 18, 'points': 500}),
('normal control 2',
[{'bb': 1,
'bs': False,
'er': 2,
'h': 0,
'hld': False,
'ip': '6.2',
'k': 3,
'l': False,
'sv': False,
'w': False}],
{'outs': 20, 'points': 2100}),
('normal control 3',
[{'bb': 3,
'bs': True,
'er': 3,
'h': 1,
'hld': False,
'ip': '6.2',
'k': 7,
'l': False,
'sv': False,
'w': True}],
{'outs': 20, 'points': 2200}),
('normal control 4',
[{'bb': 3,
'bs': False,
'er': 5,
'h': 7,
'hld': False,
'ip': '6.0',
'k': 8,
'l': True,
'sv': False,
'w': False}],
{'outs': 18, 'points': 300})],
[('regression: save and hold exclusivity',
[{'bb': 4,
'bs': False,
'er': 5,
'h': 4,
'hld': True,
'ip': '5.2',
'k': 2,
'l': False,
'sv': True,
'w': False}],
{'outs': 17, 'points': 600}),
('partial repair probe: save and hold exclusivity',
[{'bb': 2,
'bs': False,
'er': 3,
'h': 6,
'hld': True,
'ip': '5.2',
'k': 0,
'l': False,
'sv': False,
'w': True}],
{'outs': 17, 'points': 1100}),
('second regression',
[{'bb': 2,
'bs': False,
'er': 2,
'h': 4,
'hld': True,
'ip': '2.2',
'k': 2,
'l': False,
'sv': False,
'w': True}],
{'outs': 8, 'points': 800}),
('normal control 1',
[{'bb': 2,
'bs': False,
'er': 2,
'h': 4,
'hld': False,
'ip': '3.2',
'k': 8,
'l': False,
'sv': False,
'w': True}],
{'outs': 11, 'points': 1400}),
('normal control 2',
[{'bb': 1,
'bs': False,
'er': 0,
'h': 1,
'hld': False,
'ip': '7',
'k': 4,
'l': False,
'sv': False,
'w': False}],
{'outs': 21, 'points': 2600}),
('normal control 3',
[{'bb': 1,
'bs': True,
'er': 0,
'h': 4,
'hld': False,
'ip': '1.0',
'k': 0,
'l': False,
'sv': False,
'w': True}],
{'outs': 3, 'points': 0}),
('normal control 4',
[{'bb': 1,
'bs': False,
'er': 4,
'h': 3,
'hld': False,
'ip': '9.0',
'k': 4,
'l': True,
'sv': False,
'w': False}],
{'outs': 27, 'points': 1600})]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: save and hold exclusivity | {'outs': 25, 'points': 1900} | {'outs': 25, 'points': 1600} | Failed |
| partial repair probe: save and hold exclusivity | {'outs': 3, 'points': -400} | {'outs': 3, 'points': -100} | Failed |
| second regression | {'outs': 23, 'points': 1300} | {'outs': 23, 'points': 1600} | Failed |
| normal control 1 | {'outs': 19, 'points': 1700} | {'outs': 19, 'points': 1700} | Passed |
| normal control 2 | {'outs': 19, 'points': 3200} | {'outs': 19, 'points': 3200} | Passed |
| normal control 3 | {'outs': 16, 'points': 300} | {'outs': 16, 'points': 300} | Passed |
| normal control 4 | {'outs': 8, 'points': -300} | {'outs': 8, 'points': -300} | Passed |
SHA-256 / cc5eea6cfaf2a6b76a175bddc9fcbddaaefff7c5e22666b96ad0ea9725e6b464
HELD IN THE MEMBER ARCHIVE
The verified repair and its recorded checks are member-only.
This mechanism has 7 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.
Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.
Member access is invitation-based. Sign in with your invited account to inspect the repair.
Sign in to the archive ↗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:37.182625+00:00.
Case digest / baee4fc2ebce81c2b7a54246e0f96c1d626ff83234487a9dbffba05092057fdd