{"abstract":"A player who fumbled twice but recovered both loses 4 points.","category":"Fantasy sports scoring","checks":7,"contract":"Score a skill-player stat line in integer hundredths. Passing yards earn 1 point per full 25 yards, rushing and receiving yards 1 point per full 10 yards, each category truncated toward zero separately. Pass TD 4, interception -2, rush/receiving TD 6, fumble lost -2 (fumbles recovered by the own team are free), two-point conversion 2, each first down 0.25. Receptions are worth 0/0.5/1 for std/half/ppr, and a TE earns an extra 0.5 per reception on top. 300+ passing, 100+ rushing and 100+ receiving yards each add a 3 point bonus. The display string rounds to tenths half away from zero and never shows -0.0.","contract_signature":"stats, fmt, pos","evaluation_group":"w2-fantasy-sports-scoring-offense-stat-line","failed_approach":"Forgiving the first fumble is a heuristic that still misprices recovered and lost fumbles.","family":"w2-fantasy-sports-scoring-offense-stat-line-fumbles-lost-versus-fumbles","id":"FA-84856","implementations":{"attempt":{"sha256":"8d09eb05b2fd7ec9abc11c0e2b91bfe1dcca82ce99b9140f3a7652d7665e2600","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(stats, fmt, pos):\n    def unit(y, per):\n        q = abs(y) // per\n        return q if y >= 0 else -q\n    rec_val = {'std': 0, 'half': 50, 'ppr': 100}[fmt]\n    if pos == 'TE':\n        rec_val += 50\n    pts = 0\n    pts += unit(stats['pass_yds'], 25) * 100\n    pts += stats['pass_td'] * 400\n    pts -= stats['int'] * 200\n    pts += unit(stats['rush_yds'], 10) * 100\n    pts += stats['rush_td'] * 600\n    pts += stats['rec'] * rec_val\n    pts += unit(stats['rec_yds'], 10) * 100\n    pts += stats['rec_td'] * 600\n    pts -= max(stats['fum'] - 1, 0) * 200\n    pts += stats['two_pt'] * 200\n    pts += stats['first_downs'] * 25\n    if stats['pass_yds'] >= 300:\n        pts += 300\n    if stats['rush_yds'] >= 100:\n        pts += 300\n    if stats['rec_yds'] >= 100:\n        pts += 300\n    t = (abs(pts) + 5) // 10\n    sign = '-' if pts < 0 and t else ''\n    return {'hundredths': pts, 'display': '%s%d.%d' % (sign, t // 10, t % 10)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: fumbles lost versus fumbles',\n   [{'first_downs': 5,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': 12,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': -2,\n     'two_pt': 0},\n    'ppr', 'QB'],\n   {'display': '-0.8', 'hundredths': -75}),\n  ('partial repair probe: fumbles lost versus fumbles',\n   [{'first_downs': 6,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': 12,\n     'rec': 11,\n     'rec_td': 2,\n     'rec_yds': 49,\n     'rush_td': 0,\n     'rush_yds': 50,\n     'two_pt': 0},\n    'ppr', 'RB'],\n   {'display': '29.5', 'hundredths': 2950}),\n  ('second regression',\n   [{'first_downs': 3,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 2,\n     'pass_yds': 355,\n     'rec': 3,\n     'rec_td': 2,\n     'rec_yds': 53,\n     'rush_td': 2,\n     'rush_yds': 100,\n     'two_pt': 1},\n    'std', 'QB'],\n   {'display': '61.8', 'hundredths': 6175}),\n  ('normal control 1',\n   [{'first_downs': 3,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 4,\n     'pass_yds': 280,\n     'rec': 9,\n     'rec_td': 0,\n     'rec_yds': 19,\n     'rush_td': 0,\n     'rush_yds': 9,\n     'two_pt': 0},\n    'ppr', 'RB'],\n   {'display': '31.8', 'hundredths': 3175}),\n  ('normal control 2',\n   [{'first_downs': 9,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 4,\n     'pass_yds': 26,\n     'rec': 4,\n     'rec_td': 0,\n     'rec_yds': 78,\n     'rush_td': 1,\n     'rush_yds': 64,\n     'two_pt': 1},\n    'std', 'RB'],\n   {'display': '34.3', 'hundredths': 3425}),\n  ('normal control 3',\n   [{'first_downs': 7,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 4,\n     'pass_yds': 321,\n     'rec': 6,\n     'rec_td': 0,\n     'rec_yds': 89,\n     'rush_td': 2,\n     'rush_yds': 99,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '70.8', 'hundredths': 7075}),\n  ('normal control 4',\n   [{'first_downs': 4,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 2,\n     'pass_yds': 142,\n     'rec': 5,\n     'rec_td': 1,\n     'rec_yds': 7,\n     'rush_td': 0,\n     'rush_yds': 100,\n     'two_pt': 0},\n    'ppr', 'TE'],\n   {'display': '34.5', 'hundredths': 3450})],\n [('regression: fumbles lost versus fumbles',\n   [{'first_downs': 1,\n     'fum': 3,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 299,\n     'rec': 10,\n     'rec_td': 0,\n     'rec_yds': 121,\n     'rush_td': 1,\n     'rush_yds': 139,\n     'two_pt': 0},\n    'half', 'QB'],\n   {'display': '61.3', 'hundredths': 6125}),\n  ('partial repair probe: fumbles lost versus fumbles',\n   [{'first_downs': 8,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 31,\n     'rec': 6,\n     'rec_td': 1,\n     'rec_yds': 81,\n     'rush_td': 1,\n     'rush_yds': 48,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '21.0', 'hundredths': 2100}),\n  ('second regression',\n   [{'first_downs': 8,\n     'fum': 3,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 4,\n     'pass_yds': 325,\n     'rec': 8,\n     'rec_td': 0,\n     'rec_yds': 132,\n     'rush_td': 2,\n     'rush_yds': 8,\n     'two_pt': 0},\n    'std', 'RB'],\n   {'display': '58.0', 'hundredths': 5800}),\n  ('normal control 1',\n   [{'first_downs': 6,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 3,\n     'pass_yds': -3,\n     'rec': 2,\n     'rec_td': 2,\n     'rec_yds': 102,\n     'rush_td': 1,\n     'rush_yds': 99,\n     'two_pt': 0},\n    'ppr', 'QB'],\n   {'display': '49.5', 'hundredths': 4950}),\n  ('normal control 2',\n   [{'first_downs': 2,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 3,\n     'pass_yds': 299,\n     'rec': 11,\n     'rec_td': 1,\n     'rec_yds': 27,\n     'rush_td': 1,\n     'rush_yds': 17,\n     'two_pt': 1},\n    'half', 'QB'],\n   {'display': '42.0', 'hundredths': 4200}),\n  ('normal control 3',\n   [{'first_downs': 8,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 36,\n     'rec': 6,\n     'rec_td': 0,\n     'rec_yds': 68,\n     'rush_td': 2,\n     'rush_yds': 52,\n     'two_pt': 1},\n    'std', 'TE'],\n   {'display': '25.0', 'hundredths': 2500}),\n  ('normal control 4',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 4,\n     'pass_yds': 163,\n     'rec': 10,\n     'rec_td': 2,\n     'rec_yds': 100,\n     'rush_td': 0,\n     'rush_yds': 119,\n     'two_pt': 0},\n    'ppr', 'WR'],\n   {'display': '69.0', 'hundredths': 6900})],\n [('regression: fumbles lost versus fumbles',\n   [{'first_downs': 8,\n     'fum': 3,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 142,\n     'rec': 1,\n     'rec_td': 2,\n     'rec_yds': 148,\n     'rush_td': 2,\n     'rush_yds': 56,\n     'two_pt': 0},\n    'ppr', 'WR'],\n   {'display': '62.0', 'hundredths': 6200}),\n  ('partial repair probe: fumbles lost versus fumbles',\n   [{'first_downs': 6,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 13,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': -6,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '-6.5', 'hundredths': -650}),\n  ('second regression',\n   [{'first_downs': 5,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 1,\n     'pass_td': 4,\n     'pass_yds': 267,\n     'rec': 9,\n     'rec_td': 0,\n     'rec_yds': 100,\n     'rush_td': 2,\n     'rush_yds': 71,\n     'two_pt': 1},\n    'half', 'TE'],\n   {'display': '66.3', 'hundredths': 6625}),\n  ('normal control 1',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 3,\n     'pass_yds': 136,\n     'rec': 6,\n     'rec_td': 0,\n     'rec_yds': 93,\n     'rush_td': 2,\n     'rush_yds': 99,\n     'two_pt': 1},\n    'std', 'RB'],\n   {'display': '45.0', 'hundredths': 4500}),\n  ('normal control 2',\n   [{'first_downs': 8,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 1,\n     'pass_yds': 344,\n     'rec': 4,\n     'rec_td': 0,\n     'rec_yds': 89,\n     'rush_td': 1,\n     'rush_yds': 77,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '49.0', 'hundredths': 4900}),\n  ('normal control 3',\n   [{'first_downs': 6,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 2,\n     'pass_yds': -3,\n     'rec': 4,\n     'rec_td': 1,\n     'rec_yds': 120,\n     'rush_td': 0,\n     'rush_yds': 120,\n     'two_pt': 1},\n    'std', 'TE'],\n   {'display': '43.5', 'hundredths': 4350}),\n  ('normal control 4',\n   [{'first_downs': 5,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 103,\n     'rec': 1,\n     'rec_td': 0,\n     'rec_yds': 48,\n     'rush_td': 2,\n     'rush_yds': 120,\n     'two_pt': 0},\n    'half', 'TE'],\n   {'display': '31.3', 'hundredths': 3125})],\n [('regression: fumbles lost versus fumbles',\n   [{'first_downs': 5,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': 40,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 8,\n     'two_pt': 0},\n    'std', 'RB'],\n   {'display': '0.3', 'hundredths': 25}),\n  ('partial repair probe: fumbles lost versus fumbles',\n   [{'first_downs': 9,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 1,\n     'pass_td': 0,\n     'pass_yds': 22,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': -4,\n     'two_pt': 0},\n    'std', 'QB'],\n   {'display': '-3.8', 'hundredths': -375}),\n  ('second regression',\n   [{'first_downs': 0,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 12,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 7,\n     'two_pt': 0},\n    'std', 'TE'],\n   {'display': '-8.0', 'hundredths': -800}),\n  ('normal control 1',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 4,\n     'pass_yds': -3,\n     'rec': 8,\n     'rec_td': 0,\n     'rec_yds': 123,\n     'rush_td': 2,\n     'rush_yds': 95,\n     'two_pt': 0},\n    'ppr', 'QB'],\n   {'display': '60.3', 'hundredths': 6025}),\n  ('normal control 2',\n   [{'first_downs': 6,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 1,\n     'pass_yds': 325,\n     'rec': 7,\n     'rec_td': 1,\n     'rec_yds': 38,\n     'rush_td': 2,\n     'rush_yds': 10,\n     'two_pt': 1},\n    'half', 'RB'],\n   {'display': '49.0', 'hundredths': 4900}),\n  ('normal control 3',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 243,\n     'rec': 4,\n     'rec_td': 2,\n     'rec_yds': 99,\n     'rush_td': 0,\n     'rush_yds': -14,\n     'two_pt': 0},\n    'std', 'WR'],\n   {'display': '25.0', 'hundredths': 2500}),\n  ('normal control 4',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 4,\n     'pass_yds': 300,\n     'rec': 9,\n     'rec_td': 2,\n     'rec_yds': 7,\n     'rush_td': 0,\n     'rush_yds': 75,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '61.5', 'hundredths': 6150})],\n [('regression: fumbles lost versus fumbles',\n   [{'first_downs': 7,\n     'fum': 3,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 2,\n     'pass_yds': 224,\n     'rec': 6,\n     'rec_td': 1,\n     'rec_yds': 20,\n     'rush_td': 1,\n     'rush_yds': -7,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '37.8', 'hundredths': 3775}),\n  ('partial repair probe: fumbles lost versus fumbles',\n   [{'first_downs': 3,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': 14,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 8,\n     'two_pt': 0},\n    'ppr', 'QB'],\n   {'display': '-3.3', 'hundredths': -325}),\n  ('second regression',\n   [{'first_downs': 5,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 40,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': -10,\n     'two_pt': 0},\n    'half', 'TE'],\n   {'display': '-8.8', 'hundredths': -875}),\n  ('normal control 1',\n   [{'first_downs': 6,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 313,\n     'rec': 9,\n     'rec_td': 1,\n     'rec_yds': 19,\n     'rush_td': 0,\n     'rush_yds': 99,\n     'two_pt': 0},\n    'ppr', 'TE'],\n   {'display': '54.0', 'hundredths': 5400}),\n  ('normal control 2',\n   [{'first_downs': 5,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 3,\n     'pass_yds': 319,\n     'rec': 11,\n     'rec_td': 0,\n     'rec_yds': 84,\n     'rush_td': 0,\n     'rush_yds': 2,\n     'two_pt': 0},\n    'ppr', 'WR'],\n   {'display': '43.3', 'hundredths': 4325}),\n  ('normal control 3',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 2,\n     'pass_yds': -3,\n     'rec': 6,\n     'rec_td': 2,\n     'rec_yds': 145,\n     'rush_td': 0,\n     'rush_yds': 99,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '44.3', 'hundredths': 4425}),\n  ('normal control 4',\n   [{'first_downs': 8,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 2,\n     'rec_td': 0,\n     'rec_yds': 10,\n     'rush_td': 2,\n     'rush_yds': 101,\n     'two_pt': 1},\n    'half', 'QB'],\n   {'display': '42.0', 'hundredths': 4200})]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"8967111c86acd2750c9e9b77739f1b2305ade3b2689df050e0c71828cb9af8fb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(stats, fmt, pos):\n    def unit(y, per):\n        q = abs(y) // per\n        return q if y >= 0 else -q\n    rec_val = {'std': 0, 'half': 50, 'ppr': 100}[fmt]\n    if pos == 'TE':\n        rec_val += 50\n    pts = 0\n    pts += unit(stats['pass_yds'], 25) * 100\n    pts += stats['pass_td'] * 400\n    pts -= stats['int'] * 200\n    pts += unit(stats['rush_yds'], 10) * 100\n    pts += stats['rush_td'] * 600\n    pts += stats['rec'] * rec_val\n    pts += unit(stats['rec_yds'], 10) * 100\n    pts += stats['rec_td'] * 600\n    pts -= stats['fum'] * 200\n    pts += stats['two_pt'] * 200\n    pts += stats['first_downs'] * 25\n    if stats['pass_yds'] >= 300:\n        pts += 300\n    if stats['rush_yds'] >= 100:\n        pts += 300\n    if stats['rec_yds'] >= 100:\n        pts += 300\n    t = (abs(pts) + 5) // 10\n    sign = '-' if pts < 0 and t else ''\n    return {'hundredths': pts, 'display': '%s%d.%d' % (sign, t // 10, t % 10)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: fumbles lost versus fumbles',\n   [{'first_downs': 5,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': 12,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': -2,\n     'two_pt': 0},\n    'ppr', 'QB'],\n   {'display': '-0.8', 'hundredths': -75}),\n  ('partial repair probe: fumbles lost versus fumbles',\n   [{'first_downs': 6,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': 12,\n     'rec': 11,\n     'rec_td': 2,\n     'rec_yds': 49,\n     'rush_td': 0,\n     'rush_yds': 50,\n     'two_pt': 0},\n    'ppr', 'RB'],\n   {'display': '29.5', 'hundredths': 2950}),\n  ('second regression',\n   [{'first_downs': 3,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 2,\n     'pass_yds': 355,\n     'rec': 3,\n     'rec_td': 2,\n     'rec_yds': 53,\n     'rush_td': 2,\n     'rush_yds': 100,\n     'two_pt': 1},\n    'std', 'QB'],\n   {'display': '61.8', 'hundredths': 6175}),\n  ('normal control 1',\n   [{'first_downs': 3,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 4,\n     'pass_yds': 280,\n     'rec': 9,\n     'rec_td': 0,\n     'rec_yds': 19,\n     'rush_td': 0,\n     'rush_yds': 9,\n     'two_pt': 0},\n    'ppr', 'RB'],\n   {'display': '31.8', 'hundredths': 3175}),\n  ('normal control 2',\n   [{'first_downs': 9,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 4,\n     'pass_yds': 26,\n     'rec': 4,\n     'rec_td': 0,\n     'rec_yds': 78,\n     'rush_td': 1,\n     'rush_yds': 64,\n     'two_pt': 1},\n    'std', 'RB'],\n   {'display': '34.3', 'hundredths': 3425}),\n  ('normal control 3',\n   [{'first_downs': 7,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 4,\n     'pass_yds': 321,\n     'rec': 6,\n     'rec_td': 0,\n     'rec_yds': 89,\n     'rush_td': 2,\n     'rush_yds': 99,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '70.8', 'hundredths': 7075}),\n  ('normal control 4',\n   [{'first_downs': 4,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 2,\n     'pass_yds': 142,\n     'rec': 5,\n     'rec_td': 1,\n     'rec_yds': 7,\n     'rush_td': 0,\n     'rush_yds': 100,\n     'two_pt': 0},\n    'ppr', 'TE'],\n   {'display': '34.5', 'hundredths': 3450})],\n [('regression: fumbles lost versus fumbles',\n   [{'first_downs': 1,\n     'fum': 3,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 299,\n     'rec': 10,\n     'rec_td': 0,\n     'rec_yds': 121,\n     'rush_td': 1,\n     'rush_yds': 139,\n     'two_pt': 0},\n    'half', 'QB'],\n   {'display': '61.3', 'hundredths': 6125}),\n  ('partial repair probe: fumbles lost versus fumbles',\n   [{'first_downs': 8,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 31,\n     'rec': 6,\n     'rec_td': 1,\n     'rec_yds': 81,\n     'rush_td': 1,\n     'rush_yds': 48,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '21.0', 'hundredths': 2100}),\n  ('second regression',\n   [{'first_downs': 8,\n     'fum': 3,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 4,\n     'pass_yds': 325,\n     'rec': 8,\n     'rec_td': 0,\n     'rec_yds': 132,\n     'rush_td': 2,\n     'rush_yds': 8,\n     'two_pt': 0},\n    'std', 'RB'],\n   {'display': '58.0', 'hundredths': 5800}),\n  ('normal control 1',\n   [{'first_downs': 6,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 3,\n     'pass_yds': -3,\n     'rec': 2,\n     'rec_td': 2,\n     'rec_yds': 102,\n     'rush_td': 1,\n     'rush_yds': 99,\n     'two_pt': 0},\n    'ppr', 'QB'],\n   {'display': '49.5', 'hundredths': 4950}),\n  ('normal control 2',\n   [{'first_downs': 2,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 3,\n     'pass_yds': 299,\n     'rec': 11,\n     'rec_td': 1,\n     'rec_yds': 27,\n     'rush_td': 1,\n     'rush_yds': 17,\n     'two_pt': 1},\n    'half', 'QB'],\n   {'display': '42.0', 'hundredths': 4200}),\n  ('normal control 3',\n   [{'first_downs': 8,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 36,\n     'rec': 6,\n     'rec_td': 0,\n     'rec_yds': 68,\n     'rush_td': 2,\n     'rush_yds': 52,\n     'two_pt': 1},\n    'std', 'TE'],\n   {'display': '25.0', 'hundredths': 2500}),\n  ('normal control 4',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 4,\n     'pass_yds': 163,\n     'rec': 10,\n     'rec_td': 2,\n     'rec_yds': 100,\n     'rush_td': 0,\n     'rush_yds': 119,\n     'two_pt': 0},\n    'ppr', 'WR'],\n   {'display': '69.0', 'hundredths': 6900})],\n [('regression: fumbles lost versus fumbles',\n   [{'first_downs': 8,\n     'fum': 3,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 142,\n     'rec': 1,\n     'rec_td': 2,\n     'rec_yds': 148,\n     'rush_td': 2,\n     'rush_yds': 56,\n     'two_pt': 0},\n    'ppr', 'WR'],\n   {'display': '62.0', 'hundredths': 6200}),\n  ('partial repair probe: fumbles lost versus fumbles',\n   [{'first_downs': 6,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 13,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': -6,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '-6.5', 'hundredths': -650}),\n  ('second regression',\n   [{'first_downs': 5,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 1,\n     'pass_td': 4,\n     'pass_yds': 267,\n     'rec': 9,\n     'rec_td': 0,\n     'rec_yds': 100,\n     'rush_td': 2,\n     'rush_yds': 71,\n     'two_pt': 1},\n    'half', 'TE'],\n   {'display': '66.3', 'hundredths': 6625}),\n  ('normal control 1',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 3,\n     'pass_yds': 136,\n     'rec': 6,\n     'rec_td': 0,\n     'rec_yds': 93,\n     'rush_td': 2,\n     'rush_yds': 99,\n     'two_pt': 1},\n    'std', 'RB'],\n   {'display': '45.0', 'hundredths': 4500}),\n  ('normal control 2',\n   [{'first_downs': 8,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 1,\n     'pass_yds': 344,\n     'rec': 4,\n     'rec_td': 0,\n     'rec_yds': 89,\n     'rush_td': 1,\n     'rush_yds': 77,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '49.0', 'hundredths': 4900}),\n  ('normal control 3',\n   [{'first_downs': 6,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 2,\n     'pass_yds': -3,\n     'rec': 4,\n     'rec_td': 1,\n     'rec_yds': 120,\n     'rush_td': 0,\n     'rush_yds': 120,\n     'two_pt': 1},\n    'std', 'TE'],\n   {'display': '43.5', 'hundredths': 4350}),\n  ('normal control 4',\n   [{'first_downs': 5,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 103,\n     'rec': 1,\n     'rec_td': 0,\n     'rec_yds': 48,\n     'rush_td': 2,\n     'rush_yds': 120,\n     'two_pt': 0},\n    'half', 'TE'],\n   {'display': '31.3', 'hundredths': 3125})],\n [('regression: fumbles lost versus fumbles',\n   [{'first_downs': 5,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': 40,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 8,\n     'two_pt': 0},\n    'std', 'RB'],\n   {'display': '0.3', 'hundredths': 25}),\n  ('partial repair probe: fumbles lost versus fumbles',\n   [{'first_downs': 9,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 1,\n     'pass_td': 0,\n     'pass_yds': 22,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': -4,\n     'two_pt': 0},\n    'std', 'QB'],\n   {'display': '-3.8', 'hundredths': -375}),\n  ('second regression',\n   [{'first_downs': 0,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 12,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 7,\n     'two_pt': 0},\n    'std', 'TE'],\n   {'display': '-8.0', 'hundredths': -800}),\n  ('normal control 1',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 4,\n     'pass_yds': -3,\n     'rec': 8,\n     'rec_td': 0,\n     'rec_yds': 123,\n     'rush_td': 2,\n     'rush_yds': 95,\n     'two_pt': 0},\n    'ppr', 'QB'],\n   {'display': '60.3', 'hundredths': 6025}),\n  ('normal control 2',\n   [{'first_downs': 6,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 1,\n     'pass_yds': 325,\n     'rec': 7,\n     'rec_td': 1,\n     'rec_yds': 38,\n     'rush_td': 2,\n     'rush_yds': 10,\n     'two_pt': 1},\n    'half', 'RB'],\n   {'display': '49.0', 'hundredths': 4900}),\n  ('normal control 3',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 243,\n     'rec': 4,\n     'rec_td': 2,\n     'rec_yds': 99,\n     'rush_td': 0,\n     'rush_yds': -14,\n     'two_pt': 0},\n    'std', 'WR'],\n   {'display': '25.0', 'hundredths': 2500}),\n  ('normal control 4',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 4,\n     'pass_yds': 300,\n     'rec': 9,\n     'rec_td': 2,\n     'rec_yds': 7,\n     'rush_td': 0,\n     'rush_yds': 75,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '61.5', 'hundredths': 6150})],\n [('regression: fumbles lost versus fumbles',\n   [{'first_downs': 7,\n     'fum': 3,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 2,\n     'pass_yds': 224,\n     'rec': 6,\n     'rec_td': 1,\n     'rec_yds': 20,\n     'rush_td': 1,\n     'rush_yds': -7,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '37.8', 'hundredths': 3775}),\n  ('partial repair probe: fumbles lost versus fumbles',\n   [{'first_downs': 3,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': 14,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 8,\n     'two_pt': 0},\n    'ppr', 'QB'],\n   {'display': '-3.3', 'hundredths': -325}),\n  ('second regression',\n   [{'first_downs': 5,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 40,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': -10,\n     'two_pt': 0},\n    'half', 'TE'],\n   {'display': '-8.8', 'hundredths': -875}),\n  ('normal control 1',\n   [{'first_downs': 6,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 313,\n     'rec': 9,\n     'rec_td': 1,\n     'rec_yds': 19,\n     'rush_td': 0,\n     'rush_yds': 99,\n     'two_pt': 0},\n    'ppr', 'TE'],\n   {'display': '54.0', 'hundredths': 5400}),\n  ('normal control 2',\n   [{'first_downs': 5,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 3,\n     'pass_yds': 319,\n     'rec': 11,\n     'rec_td': 0,\n     'rec_yds': 84,\n     'rush_td': 0,\n     'rush_yds': 2,\n     'two_pt': 0},\n    'ppr', 'WR'],\n   {'display': '43.3', 'hundredths': 4325}),\n  ('normal control 3',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 2,\n     'pass_yds': -3,\n     'rec': 6,\n     'rec_td': 2,\n     'rec_yds': 145,\n     'rush_td': 0,\n     'rush_yds': 99,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '44.3', 'hundredths': 4425}),\n  ('normal control 4',\n   [{'first_downs': 8,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 2,\n     'rec_td': 0,\n     'rec_yds': 10,\n     'rush_td': 2,\n     'rush_yds': 101,\n     'two_pt': 1},\n    'half', 'QB'],\n   {'display': '42.0', 'hundredths': 4200})]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-fantasy-sports-scoring-offense-stat-line-fumbles-lost-versus-fumbles","generated_at":"2026-09-29T14:50:35.049090+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Fantasy football points drive weekly matchups and payouts; small unit or boundary mistakes flip results that users dispute.","root_cause":"The penalty reads the total fumbles field instead of fumbles lost.","sha256":"9aa978ac65e7ad25d70c00bde86f954f666bad4b899b608875babdc625a1f1a1","title":"Recovered fumbles are penalized like lost fumbles · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":42.447,"exit_code":1,"observations":[{"actual":{"display":"-0.8","hundredths":-75},"check":"regression: fumbles lost versus fumbles","expected":{"display":"-0.8","hundredths":-75},"passed":true},{"actual":{"display":"31.5","hundredths":3150},"check":"partial repair probe: fumbles lost versus fumbles","expected":{"display":"29.5","hundredths":2950},"passed":false},{"actual":{"display":"63.8","hundredths":6375},"check":"second regression","expected":{"display":"61.8","hundredths":6175},"passed":false},{"actual":{"display":"31.8","hundredths":3175},"check":"normal control 1","expected":{"display":"31.8","hundredths":3175},"passed":true},{"actual":{"display":"34.3","hundredths":3425},"check":"normal control 2","expected":{"display":"34.3","hundredths":3425},"passed":true},{"actual":{"display":"70.8","hundredths":7075},"check":"normal control 3","expected":{"display":"70.8","hundredths":7075},"passed":true},{"actual":{"display":"34.5","hundredths":3450},"check":"normal control 4","expected":{"display":"34.5","hundredths":3450},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: fumbles lost versus fumbles\", \"actual\": {\"hundredths\": -75, \"display\": \"-0.8\"}, \"expected\": {\"display\": \"-0.8\", \"hundredths\": -75}, \"passed\": true}, {\"check\": \"partial repair probe: fumbles lost versus fumbles\", \"actual\": {\"hundredths\": 3150, \"display\": \"31.5\"}, \"expected\": {\"display\": \"29.5\", \"hundredths\": 2950}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"hundredths\": 6375, \"display\": \"63.8\"}, \"expected\": {\"display\": \"61.8\", \"hundredths\": 6175}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"hundredths\": 3175, \"display\": \"31.8\"}, \"expected\": {\"display\": \"31.8\", \"hundredths\": 3175}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"hundredths\": 3425, \"display\": \"34.3\"}, \"expected\": {\"display\": \"34.3\", \"hundredths\": 3425}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"hundredths\": 7075, \"display\": \"70.8\"}, \"expected\": {\"display\": \"70.8\", \"hundredths\": 7075}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"hundredths\": 3450, \"display\": \"34.5\"}, \"expected\": {\"display\": \"34.5\", \"hundredths\": 3450}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.537,"exit_code":1,"observations":[{"actual":{"display":"-2.8","hundredths":-275},"check":"regression: fumbles lost versus fumbles","expected":{"display":"-0.8","hundredths":-75},"passed":false},{"actual":{"display":"29.5","hundredths":2950},"check":"partial repair probe: fumbles lost versus fumbles","expected":{"display":"29.5","hundredths":2950},"passed":true},{"actual":{"display":"61.8","hundredths":6175},"check":"second regression","expected":{"display":"61.8","hundredths":6175},"passed":true},{"actual":{"display":"31.8","hundredths":3175},"check":"normal control 1","expected":{"display":"31.8","hundredths":3175},"passed":true},{"actual":{"display":"34.3","hundredths":3425},"check":"normal control 2","expected":{"display":"34.3","hundredths":3425},"passed":true},{"actual":{"display":"70.8","hundredths":7075},"check":"normal control 3","expected":{"display":"70.8","hundredths":7075},"passed":true},{"actual":{"display":"34.5","hundredths":3450},"check":"normal control 4","expected":{"display":"34.5","hundredths":3450},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: fumbles lost versus fumbles\", \"actual\": {\"hundredths\": -275, \"display\": \"-2.8\"}, \"expected\": {\"display\": \"-0.8\", \"hundredths\": -75}, \"passed\": false}, {\"check\": \"partial repair probe: fumbles lost versus fumbles\", \"actual\": {\"hundredths\": 2950, \"display\": \"29.5\"}, \"expected\": {\"display\": \"29.5\", \"hundredths\": 2950}, \"passed\": true}, {\"check\": \"second regression\", \"actual\": {\"hundredths\": 6175, \"display\": \"61.8\"}, \"expected\": {\"display\": \"61.8\", \"hundredths\": 6175}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"hundredths\": 3175, \"display\": \"31.8\"}, \"expected\": {\"display\": \"31.8\", \"hundredths\": 3175}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"hundredths\": 3425, \"display\": \"34.3\"}, \"expected\": {\"display\": \"34.3\", \"hundredths\": 3425}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"hundredths\": 7075, \"display\": \"70.8\"}, \"expected\": {\"display\": \"70.8\", \"hundredths\": 7075}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"hundredths\": 3450, \"display\": \"34.5\"}, \"expected\": {\"display\": \"34.5\", \"hundredths\": 3450}, \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}