{"abstract":"A quarterback earns 0.5 for every 20-yard completion.","category":"Fantasy sports scoring","checks":7,"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.","evaluation_group":"w2-fantasy-sports-scoring-long-play-bonus","failed_approach":"Limiting the bonus to rushes drops receptions.","family":"w2-fantasy-sports-scoring-long-play-bonus-big-play-type-filter","id":"FA-85331","implementations":{"attempt":{"sha256":"98e4c3e0f5cd2b53e8a68bc28da6aa9c1f6f437dda7ed4befbd1042e8441d161","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(plays):\n    bonus = 0\n    for kind, yards, td in plays:\n        if td and yards >= 50:\n            bonus += 30\n        elif td and yards >= 40:\n            bonus += 20\n        if kind == 'rush' and yards >= 20:\n            bonus += 5\n    tds = sum(1 for _, _, td in plays if td)\n    if tds >= 3:\n        bonus += 20\n    return bonus\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: big play type filter',\n   [[['rush', 40, True], ['rec', 50, False], ['rec', 51, True], ['rec', 51, True], ['rec', 40, False],\n     ['pass', 41, False]]],\n   125),\n  ('partial repair probe: big play type filter', [[['rec', 20, True], ['rec', 41, True]]], 30),\n  ('second regression', [[['pass', 50, True], ['rush', 41, False]]], 35),\n  ('normal control 1', [[['pass', 19, False]]], 0), ('normal control 2', [[['rush', 19, False]]], 0),\n  ('normal control 3', [[['rec', -3, False], ['rush', 20, False], ['rush', 51, False], ['rush', 40, False]]],\n   15),\n  ('normal control 4', [[['rush', 49, False], ['rec', 5, True], ['rec', -3, True]]], 5)],\n [('regression: big play type filter', [[['pass', 39, True]]], 0),\n  ('partial repair probe: big play type filter',\n   [[['rec', 19, False], ['rec', -3, False], ['rec', 50, True], ['pass', 51, False], ['rec', 5, False],\n     ['pass', 49, True]]],\n   55),\n  ('second regression', [[['pass', 41, False]]], 0),\n  ('normal control 1', [[['rec', 5, True], ['pass', -3, True]]], 0),\n  ('normal control 2', [[['pass', -5, True], ['rush', 19, True], ['pass', 4, False]]], 0),\n  ('normal control 3', [[['rush', 39, True]]], 5), ('normal control 4', [[['rec', 5, True]]], 0)],\n [('regression: big play type filter',\n   [[['rush', 61, False], ['rec', 51, False], ['pass', 41, True], ['rush', 20, True]]], 35),\n  ('partial repair probe: big play type filter', [[['rec', 20, False], ['rec', 41, False]]], 10),\n  ('second regression',\n   [[['rush', 5, False], ['rush', 5, True], ['rec', 41, False], ['pass', 41, False], ['rush', 50, True]]],\n   40),\n  ('normal control 1', [[['rush', 40, False]]], 5), ('normal control 2', [[['pass', 19, False]]], 0),\n  ('normal control 3',\n   [[['rec', 5, False], ['rush', 41, True], ['rush', 40, True], ['rush', 49, False], ['rush', 40, True]]],\n   100),\n  ('normal control 4', [[['rush', 40, True]]], 25)],\n [('regression: big play type filter', [[['rec', 40, False], ['rec', 51, True], ['pass', 40, False]]], 40),\n  ('partial repair probe: big play type filter',\n   [[['pass', 23, False], ['rush', 13, True], ['pass', 77, True], ['rec', 41, True]]], 75),\n  ('second regression', [[['pass', 20, True], ['rush', 41, True]]], 25),\n  ('normal control 1', [[['pass', 5, True], ['rec', 19, False]]], 0),\n  ('normal control 2', [[['rush', 40, False], ['rush', 39, True]]], 10),\n  ('normal control 3', [[['pass', 5, False], ['rec', 5, True]]], 0),\n  ('normal control 4',\n   [[['rush', 19, False], ['rush', -3, False], ['rush', 5, False], ['rush', 40, True], ['rush', 5, True]]],\n   25)],\n [('regression: big play type filter', [[['pass', 39, True], ['rec', 19, False]]], 0),\n  ('partial repair probe: big play type filter',\n   [[['pass', 19, False], ['rush', 5, True], ['rush', 40, True], ['rush', 5, True], ['rec', 39, False],\n     ['rec', 19, False]]],\n   50),\n  ('second regression', [[['pass', 41, False], ['rush', 10, True], ['rush', 20, False]]], 5),\n  ('normal control 1', [[['rush', 51, False]]], 5),\n  ('normal control 2',\n   [[['rec', -3, False], ['rush', 51, True], ['rush', -3, False], ['rush', -3, True], ['rush', 19, True]]],\n   55),\n  ('normal control 3', [[['rec', 19, False], ['rush', 5, False]]], 0),\n  ('normal control 4', [[['rush', 39, False], ['rush', 51, False], ['rush', 48, False], ['rec', 5, True]]],\n   15)]]\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":"33dbf156d42cfa325931edf3aa2c4403ed4c9718763255045cfdc5b60e0fa804","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(plays):\n    bonus = 0\n    for kind, yards, td in plays:\n        if td and yards >= 50:\n            bonus += 30\n        elif td and yards >= 40:\n            bonus += 20\n        if yards >= 20:\n            bonus += 5\n    tds = sum(1 for _, _, td in plays if td)\n    if tds >= 3:\n        bonus += 20\n    return bonus\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: big play type filter',\n   [[['rush', 40, True], ['rec', 50, False], ['rec', 51, True], ['rec', 51, True], ['rec', 40, False],\n     ['pass', 41, False]]],\n   125),\n  ('partial repair probe: big play type filter', [[['rec', 20, True], ['rec', 41, True]]], 30),\n  ('second regression', [[['pass', 50, True], ['rush', 41, False]]], 35),\n  ('normal control 1', [[['pass', 19, False]]], 0), ('normal control 2', [[['rush', 19, False]]], 0),\n  ('normal control 3', [[['rec', -3, False], ['rush', 20, False], ['rush', 51, False], ['rush', 40, False]]],\n   15),\n  ('normal control 4', [[['rush', 49, False], ['rec', 5, True], ['rec', -3, True]]], 5)],\n [('regression: big play type filter', [[['pass', 39, True]]], 0),\n  ('partial repair probe: big play type filter',\n   [[['rec', 19, False], ['rec', -3, False], ['rec', 50, True], ['pass', 51, False], ['rec', 5, False],\n     ['pass', 49, True]]],\n   55),\n  ('second regression', [[['pass', 41, False]]], 0),\n  ('normal control 1', [[['rec', 5, True], ['pass', -3, True]]], 0),\n  ('normal control 2', [[['pass', -5, True], ['rush', 19, True], ['pass', 4, False]]], 0),\n  ('normal control 3', [[['rush', 39, True]]], 5), ('normal control 4', [[['rec', 5, True]]], 0)],\n [('regression: big play type filter',\n   [[['rush', 61, False], ['rec', 51, False], ['pass', 41, True], ['rush', 20, True]]], 35),\n  ('partial repair probe: big play type filter', [[['rec', 20, False], ['rec', 41, False]]], 10),\n  ('second regression',\n   [[['rush', 5, False], ['rush', 5, True], ['rec', 41, False], ['pass', 41, False], ['rush', 50, True]]],\n   40),\n  ('normal control 1', [[['rush', 40, False]]], 5), ('normal control 2', [[['pass', 19, False]]], 0),\n  ('normal control 3',\n   [[['rec', 5, False], ['rush', 41, True], ['rush', 40, True], ['rush', 49, False], ['rush', 40, True]]],\n   100),\n  ('normal control 4', [[['rush', 40, True]]], 25)],\n [('regression: big play type filter', [[['rec', 40, False], ['rec', 51, True], ['pass', 40, False]]], 40),\n  ('partial repair probe: big play type filter',\n   [[['pass', 23, False], ['rush', 13, True], ['pass', 77, True], ['rec', 41, True]]], 75),\n  ('second regression', [[['pass', 20, True], ['rush', 41, True]]], 25),\n  ('normal control 1', [[['pass', 5, True], ['rec', 19, False]]], 0),\n  ('normal control 2', [[['rush', 40, False], ['rush', 39, True]]], 10),\n  ('normal control 3', [[['pass', 5, False], ['rec', 5, True]]], 0),\n  ('normal control 4',\n   [[['rush', 19, False], ['rush', -3, False], ['rush', 5, False], ['rush', 40, True], ['rush', 5, True]]],\n   25)],\n [('regression: big play type filter', [[['pass', 39, True], ['rec', 19, False]]], 0),\n  ('partial repair probe: big play type filter',\n   [[['pass', 19, False], ['rush', 5, True], ['rush', 40, True], ['rush', 5, True], ['rec', 39, False],\n     ['rec', 19, False]]],\n   50),\n  ('second regression', [[['pass', 41, False], ['rush', 10, True], ['rush', 20, False]]], 5),\n  ('normal control 1', [[['rush', 51, False]]], 5),\n  ('normal control 2',\n   [[['rec', -3, False], ['rush', 51, True], ['rush', -3, False], ['rush', -3, True], ['rush', 19, True]]],\n   55),\n  ('normal control 3', [[['rec', 19, False], ['rush', 5, False]]], 0),\n  ('normal control 4', [[['rush', 39, False], ['rush', 51, False], ['rush', 48, False], ['rec', 5, True]]],\n   15)]]\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"},"fixed":{"sha256":"b23e561a36dd893e1317ccb72c79c6874862f607478acac88753f7b85e12ed57","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(plays):\n    bonus = 0\n    for kind, yards, td in plays:\n        if td and yards >= 50:\n            bonus += 30\n        elif td and yards >= 40:\n            bonus += 20\n        if kind != 'pass' and yards >= 20:\n            bonus += 5\n    tds = sum(1 for _, _, td in plays if td)\n    if tds >= 3:\n        bonus += 20\n    return bonus\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: big play type filter',\n   [[['rush', 40, True], ['rec', 50, False], ['rec', 51, True], ['rec', 51, True], ['rec', 40, False],\n     ['pass', 41, False]]],\n   125),\n  ('partial repair probe: big play type filter', [[['rec', 20, True], ['rec', 41, True]]], 30),\n  ('second regression', [[['pass', 50, True], ['rush', 41, False]]], 35),\n  ('normal control 1', [[['pass', 19, False]]], 0), ('normal control 2', [[['rush', 19, False]]], 0),\n  ('normal control 3', [[['rec', -3, False], ['rush', 20, False], ['rush', 51, False], ['rush', 40, False]]],\n   15),\n  ('normal control 4', [[['rush', 49, False], ['rec', 5, True], ['rec', -3, True]]], 5)],\n [('regression: big play type filter', [[['pass', 39, True]]], 0),\n  ('partial repair probe: big play type filter',\n   [[['rec', 19, False], ['rec', -3, False], ['rec', 50, True], ['pass', 51, False], ['rec', 5, False],\n     ['pass', 49, True]]],\n   55),\n  ('second regression', [[['pass', 41, False]]], 0),\n  ('normal control 1', [[['rec', 5, True], ['pass', -3, True]]], 0),\n  ('normal control 2', [[['pass', -5, True], ['rush', 19, True], ['pass', 4, False]]], 0),\n  ('normal control 3', [[['rush', 39, True]]], 5), ('normal control 4', [[['rec', 5, True]]], 0)],\n [('regression: big play type filter',\n   [[['rush', 61, False], ['rec', 51, False], ['pass', 41, True], ['rush', 20, True]]], 35),\n  ('partial repair probe: big play type filter', [[['rec', 20, False], ['rec', 41, False]]], 10),\n  ('second regression',\n   [[['rush', 5, False], ['rush', 5, True], ['rec', 41, False], ['pass', 41, False], ['rush', 50, True]]],\n   40),\n  ('normal control 1', [[['rush', 40, False]]], 5), ('normal control 2', [[['pass', 19, False]]], 0),\n  ('normal control 3',\n   [[['rec', 5, False], ['rush', 41, True], ['rush', 40, True], ['rush', 49, False], ['rush', 40, True]]],\n   100),\n  ('normal control 4', [[['rush', 40, True]]], 25)],\n [('regression: big play type filter', [[['rec', 40, False], ['rec', 51, True], ['pass', 40, False]]], 40),\n  ('partial repair probe: big play type filter',\n   [[['pass', 23, False], ['rush', 13, True], ['pass', 77, True], ['rec', 41, True]]], 75),\n  ('second regression', [[['pass', 20, True], ['rush', 41, True]]], 25),\n  ('normal control 1', [[['pass', 5, True], ['rec', 19, False]]], 0),\n  ('normal control 2', [[['rush', 40, False], ['rush', 39, True]]], 10),\n  ('normal control 3', [[['pass', 5, False], ['rec', 5, True]]], 0),\n  ('normal control 4',\n   [[['rush', 19, False], ['rush', -3, False], ['rush', 5, False], ['rush', 40, True], ['rush', 5, True]]],\n   25)],\n [('regression: big play type filter', [[['pass', 39, True], ['rec', 19, False]]], 0),\n  ('partial repair probe: big play type filter',\n   [[['pass', 19, False], ['rush', 5, True], ['rush', 40, True], ['rush', 5, True], ['rec', 39, False],\n     ['rec', 19, False]]],\n   50),\n  ('second regression', [[['pass', 41, False], ['rush', 10, True], ['rush', 20, False]]], 5),\n  ('normal control 1', [[['rush', 51, False]]], 5),\n  ('normal control 2',\n   [[['rec', -3, False], ['rush', 51, True], ['rush', -3, False], ['rush', -3, True], ['rush', 19, True]]],\n   55),\n  ('normal control 3', [[['rec', 19, False], ['rush', 5, False]]], 0),\n  ('normal control 4', [[['rush', 39, False], ['rush', 51, False], ['rush', 48, False], ['rec', 5, True]]],\n   15)]]\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-long-play-bonus-big-play-type-filter","generated_at":"2026-09-29T14:50:39.331619+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Long-play bonuses are layered rules where tier order and play-type filters are easy to get wrong.","repair":"Exclude passing plays from the big-play bonus.","root_cause":"The big-play bonus is not limited to rushing and receiving plays.","sha256":"b5137a424066e9128e6fa9bf89bc7af784ce87c658ab26bf25231cd3373e4569","title":"Passers collect the big-play bonus · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.845,"exit_code":1,"observations":[{"actual":105,"check":"regression: big play type filter","expected":125,"passed":false},{"actual":20,"check":"partial repair probe: big play type filter","expected":30,"passed":false},{"actual":35,"check":"second regression","expected":35,"passed":true},{"actual":0,"check":"normal control 1","expected":0,"passed":true},{"actual":0,"check":"normal control 2","expected":0,"passed":true},{"actual":15,"check":"normal control 3","expected":15,"passed":true},{"actual":5,"check":"normal control 4","expected":5,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: big play type filter\", \"actual\": 105, \"expected\": 125, \"passed\": false}, {\"check\": \"partial repair probe: big play type filter\", \"actual\": 20, \"expected\": 30, \"passed\": false}, {\"check\": \"second regression\", \"actual\": 35, \"expected\": 35, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 5, \"expected\": 5, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.365,"exit_code":1,"observations":[{"actual":130,"check":"regression: big play type filter","expected":125,"passed":false},{"actual":30,"check":"partial repair probe: big play type filter","expected":30,"passed":true},{"actual":40,"check":"second regression","expected":35,"passed":false},{"actual":0,"check":"normal control 1","expected":0,"passed":true},{"actual":0,"check":"normal control 2","expected":0,"passed":true},{"actual":15,"check":"normal control 3","expected":15,"passed":true},{"actual":5,"check":"normal control 4","expected":5,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: big play type filter\", \"actual\": 130, \"expected\": 125, \"passed\": false}, {\"check\": \"partial repair probe: big play type filter\", \"actual\": 30, \"expected\": 30, \"passed\": true}, {\"check\": \"second regression\", \"actual\": 40, \"expected\": 35, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 5, \"expected\": 5, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.013,"exit_code":0,"observations":[{"actual":125,"check":"regression: big play type filter","expected":125,"passed":true},{"actual":30,"check":"partial repair probe: big play type filter","expected":30,"passed":true},{"actual":35,"check":"second regression","expected":35,"passed":true},{"actual":0,"check":"normal control 1","expected":0,"passed":true},{"actual":0,"check":"normal control 2","expected":0,"passed":true},{"actual":15,"check":"normal control 3","expected":15,"passed":true},{"actual":5,"check":"normal control 4","expected":5,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: big play type filter\", \"actual\": 125, \"expected\": 125, \"passed\": true}, {\"check\": \"partial repair probe: big play type filter\", \"actual\": 30, \"expected\": 30, \"passed\": true}, {\"check\": \"second regression\", \"actual\": 35, \"expected\": 35, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 5, \"expected\": 5, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}