{"abstract":"During overtime a player's projected total drops below his actual points.","category":"Fantasy sports scoring","checks":7,"contract":"Projected final lineup score in tenths. Each player is [actual, full-game projection, status, game seconds left]. Final games count actual points; not-started games count the full projection; live games count actual plus the projection prorated by remaining time over 3600 seconds (floored per player; overtime reports negative seconds, treated as 0 remaining); postponed (ppd) games count 0.","contract_signature":"players","evaluation_group":"w2-fantasy-sports-scoring-live-projection","failed_approach":"Taking the absolute value adds projection back for overtime.","family":"w2-fantasy-sports-scoring-live-projection-overtime-negative-clock","id":"FA-85311","implementations":{"attempt":{"sha256":"2cad162144391736f7bea6270b061a3863dfc1e5dcab10bb538e84c4cc92338f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(players):\n    total = 0\n    for actual, proj, status, left in players:\n        if status == 'final':\n            total += actual\n        elif status == 'pre':\n            total += proj\n        elif status == 'live':\n            left = abs(left)\n            total += actual + proj * left // 3600\n    return total\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: overtime negative clock',\n   [[[207, 95, 'live', -300], [75, 120, 'live', -300], [-13, 0, 'live', 1800], [18, 95, 'pre', 900]]], 364),\n  ('partial repair probe: overtime negative clock',\n   [[[128, 180, 'live', -300], [35, 95, 'live', 1800], [164, 95, 'pre', 0]]], 305),\n  ('second regression',\n   [[[165, 180, 'live', 0], [31, 180, 'live', 1], [138, 120, 'final', 900], [2, 180, 'ppd', 3600],\n     [-18, 120, 'ppd', -300], [250, 180, 'live', -300]]],\n   584),\n  ('normal control 1', [[[178, 120, 'live', 3600], [139, 0, 'live', 3600]]], 437),\n  ('normal control 2',\n   [[[211, 95, 'ppd', 1800], [138, 0, 'ppd', 0], [-6, 180, 'final', 1800], [151, 95, 'live', 0]]], 145),\n  ('normal control 3', [[[190, 120, 'ppd', 1800], [4, 95, 'live', 3600], [237, 0, 'live', 1]]], 336),\n  ('normal control 4', [[[73, 180, 'ppd', 1800], [40, 180, 'pre', 1800], [244, 0, 'live', 3600]]], 424)],\n [('regression: overtime negative clock',\n   [[[11, 95, 'live', -300], [220, 0, 'live', 3600], [139, 95, 'ppd', 3600], [206, 180, 'final', 3600],\n     [219, 120, 'pre', 1800]]],\n   557),\n  ('partial repair probe: overtime negative clock',\n   [[[246, 180, 'live', -300], [9, 0, 'live', 3600], [166, 95, 'live', 1800], [79, 95, 'live', 1],\n     [69, 95, 'ppd', 0], [205, 180, 'ppd', 3600]]],\n   547),\n  ('second regression',\n   [[[193, 0, 'final', 900], [128, 180, 'live', 0], [93, 120, 'pre', 0], [153, 95, 'final', 900],\n     [245, 180, 'pre', -300], [5, 180, 'live', -300]]],\n   779),\n  ('normal control 1', [[[107, 120, 'live', 1], [225, 180, 'final', 0]]], 332),\n  ('normal control 2',\n   [[[152, 120, 'live', 3600], [-16, 120, 'ppd', -300], [68, 180, 'live', 0], [207, 95, 'live', 1],\n     [104, 120, 'live', 0]]],\n   651),\n  ('normal control 3',\n   [[[143, 95, 'ppd', 0], [155, 120, 'live', 900], [109, 0, 'live', -300], [233, 0, 'ppd', 0]]], 294),\n  ('normal control 4', [[[192, 180, 'live', 900], [181, 0, 'pre', 3600]]], 237)],\n [('regression: overtime negative clock',\n   [[[62, 95, 'live', 3600], [141, 180, 'live', -300], [243, 0, 'live', 900], [73, 95, 'live', 1800]]], 661),\n  ('partial repair probe: overtime negative clock', [[[88, 180, 'live', -300], [194, 0, 'live', 1800]]], 282),\n  ('second regression', [[[-4, 0, 'ppd', 0], [118, 120, 'live', -300]]], 118),\n  ('normal control 1',\n   [[[-15, 180, 'live', 0], [-3, 180, 'final', 900], [96, 0, 'ppd', 1800], [45, 120, 'live', 900]]], 57),\n  ('normal control 2',\n   [[[176, 95, 'final', 900], [89, 0, 'live', 1], [198, 0, 'final', -300], [232, 120, 'live', 1],\n     [81, 120, 'live', 900]]],\n   806),\n  ('normal control 3',\n   [[[143, 120, 'ppd', 900], [202, 180, 'live', 900], [65, 120, 'pre', 900], [183, 120, 'live', 1800]]],\n   610),\n  ('normal control 4',\n   [[[181, 120, 'ppd', 0], [227, 180, 'live', 3600], [116, 180, 'live', 3600], [158, 180, 'live', 1800],\n     [195, 0, 'final', 0], [86, 120, 'live', 3600]]],\n   1352)],\n [('regression: overtime negative clock',\n   [[[207, 0, 'final', 0], [122, 0, 'final', -300], [188, 120, 'live', 900], [240, 180, 'live', -300]]],\n   787),\n  ('partial repair probe: overtime negative clock',\n   [[[179, 120, 'pre', -300], [197, 0, 'final', -300], [41, 95, 'live', -300]]], 358),\n  ('second regression',\n   [[[206, 120, 'live', 1], [79, 0, 'live', 0], [225, 120, 'live', -300], [20, 0, 'ppd', 0],\n     [7, 95, 'final', 0]]],\n   517),\n  ('normal control 1',\n   [[[18, 0, 'final', 0], [213, 95, 'pre', 3600], [138, 95, 'ppd', 3600], [65, 95, 'live', 900]]], 201),\n  ('normal control 2', [[[129, 120, 'ppd', 0], [225, 180, 'live', 1]]], 225),\n  ('normal control 3',\n   [[[14, 0, 'final', 3600], [21, 0, 'live', 1], [159, 120, 'live', 0], [47, 120, 'pre', 0],\n     [87, 95, 'ppd', 3600]]],\n   314),\n  ('normal control 4', [[[215, 0, 'final', 1800], [2, 180, 'ppd', -300]]], 215)],\n [('regression: overtime negative clock',\n   [[[47, 180, 'live', 900], [228, 0, 'ppd', -300], [232, 180, 'live', 900], [170, 0, 'ppd', 0],\n     [60, 120, 'live', -300], [178, 0, 'live', -300]]],\n   607),\n  ('partial repair probe: overtime negative clock', [[[176, 180, 'pre', 0], [29, 95, 'live', -300]]], 209),\n  ('second regression',\n   [[[17, 120, 'final', -300], [38, 95, 'ppd', -300], [89, 120, 'live', 1800], [74, 120, 'pre', 0],\n     [100, 180, 'live', -300], [71, 0, 'live', 1]]],\n   457),\n  ('normal control 1',\n   [[[78, 0, 'pre', 900], [84, 0, 'ppd', 1], [73, 180, 'live', 0], [94, 0, 'ppd', -300], [95, 95, 'pre', 0],\n     [230, 95, 'live', 1800]]],\n   445),\n  ('normal control 2', [[[142, 0, 'pre', 1], [96, 180, 'live', 1]]], 96),\n  ('normal control 3',\n   [[[111, 0, 'pre', -300], [199, 95, 'live', 1800], [152, 180, 'ppd', 1], [130, 95, 'live', 1800]]], 423),\n  ('normal control 4',\n   [[[133, 0, 'live', -300], [200, 0, 'ppd', -300], [44, 95, 'live', 0], [152, 180, 'ppd', 0],\n     [32, 0, 'pre', -300]]],\n   177)]]\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":"30a6c355c37efa13121848add37ac49999c6218555599cfbe50a7f7c4e45a5cb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(players):\n    total = 0\n    for actual, proj, status, left in players:\n        if status == 'final':\n            total += actual\n        elif status == 'pre':\n            total += proj\n        elif status == 'live':\n            total += actual + proj * left // 3600\n    return total\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: overtime negative clock',\n   [[[207, 95, 'live', -300], [75, 120, 'live', -300], [-13, 0, 'live', 1800], [18, 95, 'pre', 900]]], 364),\n  ('partial repair probe: overtime negative clock',\n   [[[128, 180, 'live', -300], [35, 95, 'live', 1800], [164, 95, 'pre', 0]]], 305),\n  ('second regression',\n   [[[165, 180, 'live', 0], [31, 180, 'live', 1], [138, 120, 'final', 900], [2, 180, 'ppd', 3600],\n     [-18, 120, 'ppd', -300], [250, 180, 'live', -300]]],\n   584),\n  ('normal control 1', [[[178, 120, 'live', 3600], [139, 0, 'live', 3600]]], 437),\n  ('normal control 2',\n   [[[211, 95, 'ppd', 1800], [138, 0, 'ppd', 0], [-6, 180, 'final', 1800], [151, 95, 'live', 0]]], 145),\n  ('normal control 3', [[[190, 120, 'ppd', 1800], [4, 95, 'live', 3600], [237, 0, 'live', 1]]], 336),\n  ('normal control 4', [[[73, 180, 'ppd', 1800], [40, 180, 'pre', 1800], [244, 0, 'live', 3600]]], 424)],\n [('regression: overtime negative clock',\n   [[[11, 95, 'live', -300], [220, 0, 'live', 3600], [139, 95, 'ppd', 3600], [206, 180, 'final', 3600],\n     [219, 120, 'pre', 1800]]],\n   557),\n  ('partial repair probe: overtime negative clock',\n   [[[246, 180, 'live', -300], [9, 0, 'live', 3600], [166, 95, 'live', 1800], [79, 95, 'live', 1],\n     [69, 95, 'ppd', 0], [205, 180, 'ppd', 3600]]],\n   547),\n  ('second regression',\n   [[[193, 0, 'final', 900], [128, 180, 'live', 0], [93, 120, 'pre', 0], [153, 95, 'final', 900],\n     [245, 180, 'pre', -300], [5, 180, 'live', -300]]],\n   779),\n  ('normal control 1', [[[107, 120, 'live', 1], [225, 180, 'final', 0]]], 332),\n  ('normal control 2',\n   [[[152, 120, 'live', 3600], [-16, 120, 'ppd', -300], [68, 180, 'live', 0], [207, 95, 'live', 1],\n     [104, 120, 'live', 0]]],\n   651),\n  ('normal control 3',\n   [[[143, 95, 'ppd', 0], [155, 120, 'live', 900], [109, 0, 'live', -300], [233, 0, 'ppd', 0]]], 294),\n  ('normal control 4', [[[192, 180, 'live', 900], [181, 0, 'pre', 3600]]], 237)],\n [('regression: overtime negative clock',\n   [[[62, 95, 'live', 3600], [141, 180, 'live', -300], [243, 0, 'live', 900], [73, 95, 'live', 1800]]], 661),\n  ('partial repair probe: overtime negative clock', [[[88, 180, 'live', -300], [194, 0, 'live', 1800]]], 282),\n  ('second regression', [[[-4, 0, 'ppd', 0], [118, 120, 'live', -300]]], 118),\n  ('normal control 1',\n   [[[-15, 180, 'live', 0], [-3, 180, 'final', 900], [96, 0, 'ppd', 1800], [45, 120, 'live', 900]]], 57),\n  ('normal control 2',\n   [[[176, 95, 'final', 900], [89, 0, 'live', 1], [198, 0, 'final', -300], [232, 120, 'live', 1],\n     [81, 120, 'live', 900]]],\n   806),\n  ('normal control 3',\n   [[[143, 120, 'ppd', 900], [202, 180, 'live', 900], [65, 120, 'pre', 900], [183, 120, 'live', 1800]]],\n   610),\n  ('normal control 4',\n   [[[181, 120, 'ppd', 0], [227, 180, 'live', 3600], [116, 180, 'live', 3600], [158, 180, 'live', 1800],\n     [195, 0, 'final', 0], [86, 120, 'live', 3600]]],\n   1352)],\n [('regression: overtime negative clock',\n   [[[207, 0, 'final', 0], [122, 0, 'final', -300], [188, 120, 'live', 900], [240, 180, 'live', -300]]],\n   787),\n  ('partial repair probe: overtime negative clock',\n   [[[179, 120, 'pre', -300], [197, 0, 'final', -300], [41, 95, 'live', -300]]], 358),\n  ('second regression',\n   [[[206, 120, 'live', 1], [79, 0, 'live', 0], [225, 120, 'live', -300], [20, 0, 'ppd', 0],\n     [7, 95, 'final', 0]]],\n   517),\n  ('normal control 1',\n   [[[18, 0, 'final', 0], [213, 95, 'pre', 3600], [138, 95, 'ppd', 3600], [65, 95, 'live', 900]]], 201),\n  ('normal control 2', [[[129, 120, 'ppd', 0], [225, 180, 'live', 1]]], 225),\n  ('normal control 3',\n   [[[14, 0, 'final', 3600], [21, 0, 'live', 1], [159, 120, 'live', 0], [47, 120, 'pre', 0],\n     [87, 95, 'ppd', 3600]]],\n   314),\n  ('normal control 4', [[[215, 0, 'final', 1800], [2, 180, 'ppd', -300]]], 215)],\n [('regression: overtime negative clock',\n   [[[47, 180, 'live', 900], [228, 0, 'ppd', -300], [232, 180, 'live', 900], [170, 0, 'ppd', 0],\n     [60, 120, 'live', -300], [178, 0, 'live', -300]]],\n   607),\n  ('partial repair probe: overtime negative clock', [[[176, 180, 'pre', 0], [29, 95, 'live', -300]]], 209),\n  ('second regression',\n   [[[17, 120, 'final', -300], [38, 95, 'ppd', -300], [89, 120, 'live', 1800], [74, 120, 'pre', 0],\n     [100, 180, 'live', -300], [71, 0, 'live', 1]]],\n   457),\n  ('normal control 1',\n   [[[78, 0, 'pre', 900], [84, 0, 'ppd', 1], [73, 180, 'live', 0], [94, 0, 'ppd', -300], [95, 95, 'pre', 0],\n     [230, 95, 'live', 1800]]],\n   445),\n  ('normal control 2', [[[142, 0, 'pre', 1], [96, 180, 'live', 1]]], 96),\n  ('normal control 3',\n   [[[111, 0, 'pre', -300], [199, 95, 'live', 1800], [152, 180, 'ppd', 1], [130, 95, 'live', 1800]]], 423),\n  ('normal control 4',\n   [[[133, 0, 'live', -300], [200, 0, 'ppd', -300], [44, 95, 'live', 0], [152, 180, 'ppd', 0],\n     [32, 0, 'pre', -300]]],\n   177)]]\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-live-projection-overtime-negative-clock","generated_at":"2026-09-29T14:50:39.205787+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Live projections are shown to millions of users during games; status handling and proration must be exact.","root_cause":"Negative seconds left in overtime are used directly.","sha256":"51a58827c5b55c8691552cacda16487599880577d9759eb3e126890550250521","title":"Overtime clock subtracts projection · 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":38.667,"exit_code":1,"observations":[{"actual":381,"check":"regression: overtime negative clock","expected":364,"passed":false},{"actual":320,"check":"partial repair probe: overtime negative clock","expected":305,"passed":false},{"actual":599,"check":"second regression","expected":584,"passed":false},{"actual":437,"check":"normal control 1","expected":437,"passed":true},{"actual":145,"check":"normal control 2","expected":145,"passed":true},{"actual":336,"check":"normal control 3","expected":336,"passed":true},{"actual":424,"check":"normal control 4","expected":424,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: overtime negative clock\", \"actual\": 381, \"expected\": 364, \"passed\": false}, {\"check\": \"partial repair probe: overtime negative clock\", \"actual\": 320, \"expected\": 305, \"passed\": false}, {\"check\": \"second regression\", \"actual\": 599, \"expected\": 584, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": 437, \"expected\": 437, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 145, \"expected\": 145, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 336, \"expected\": 336, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 424, \"expected\": 424, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.382,"exit_code":1,"observations":[{"actual":346,"check":"regression: overtime negative clock","expected":364,"passed":false},{"actual":290,"check":"partial repair probe: overtime negative clock","expected":305,"passed":false},{"actual":569,"check":"second regression","expected":584,"passed":false},{"actual":437,"check":"normal control 1","expected":437,"passed":true},{"actual":145,"check":"normal control 2","expected":145,"passed":true},{"actual":336,"check":"normal control 3","expected":336,"passed":true},{"actual":424,"check":"normal control 4","expected":424,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: overtime negative clock\", \"actual\": 346, \"expected\": 364, \"passed\": false}, {\"check\": \"partial repair probe: overtime negative clock\", \"actual\": 290, \"expected\": 305, \"passed\": false}, {\"check\": \"second regression\", \"actual\": 569, \"expected\": 584, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": 437, \"expected\": 437, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 145, \"expected\": 145, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 336, \"expected\": 336, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 424, \"expected\": 424, \"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."}}