{"abstract":"A 4:30.00 1500m scores as if it were 34 seconds or loses hundredths.","category":"Sports scoring and tiebreakers","checks":9,"contract":"Combined-events points. Coefficients (A, B, C, kind): 100m (25.4347, 18, 1.81, track), 400m (1.53775, 82, 1.81, track), 1500m (0.03768, 480, 1.85, track), long_jump (0.14354, 220, 1.4, jump), high_jump (0.8465, 75, 1.42, jump), shot_put (51.39, 1.5, 1.05, throw). Track performances are seconds, 1500m as \"m:ss.hh\"; jumps are given in metres but scored in whole centimetres (rounded); throws in metres. Track points = floor(A * (B - P) ** C), field points = floor(A * (P - B) ** C); a non-positive base scores 0.","evaluation_group":"w2-sports-scoring-decathlon-points-table","failed_approach":"Multiplying minutes by 60 but truncating the seconds drops hundredths from the time.","family":"w2-sports-scoring-decathlon-points-table-minutes-parsing","id":"FA-84316","implementations":{"attempt":{"sha256":"fc295f58f7a390aad2c63655153059ace102d0c9d6fdc6a5872ceb799a2626ad","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(event, perf):\n    TABLE = {'100m': (25.4347, 18, 1.81, 'track'), '400m': (1.53775, 82, 1.81, 'track'),\n             '1500m': (0.03768, 480, 1.85, 'track'), 'long_jump': (0.14354, 220, 1.4, 'jump'),\n             'high_jump': (0.8465, 75, 1.42, 'jump'), 'shot_put': (51.39, 1.5, 1.05, 'throw')}\n    A, B, C, kind = TABLE[event]\n    if kind == 'track':\n        if ':' in perf:\n            m, s = perf.split(':')\n            p = int(m) * 60 + int(float(s))\n        else:\n            p = float(perf)\n        base = B - p\n    else:\n        p = float(perf)\n        if kind == 'jump':\n            p = round(p * 100)\n        base = p - B\n    if base <= 0:\n        return 0\n    return int(math.floor(A * base ** C))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '4:56.61'), 579),\n  ('variant scenario 1', ('100m', '12.05'), 641),\n  ('variant scenario 2', ('100m', '11.56'), 740)],\n [('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '4:22.46'), 795),\n  ('variant scenario 1', ('100m', '11.69'), 713),\n  ('variant scenario 2', ('shot_put', '10.17'), 496)],\n [('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '4:43.13'), 661),\n  ('variant scenario 1', ('400m', '48.88'), 867),\n  ('variant scenario 2', ('100m', '11.55'), 742)],\n [('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '4:13.72'), 855),\n  ('variant scenario 1', ('high_jump', '1.92'), 731),\n  ('variant scenario 2', ('shot_put', '8.87'), 418)],\n [('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '5:02.42'), 546),\n  ('variant scenario 1', ('400m', '49.41'), 842),\n  ('variant scenario 2', ('shot_put', '3.75'), 120)]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(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":"175c70f51e6881e46087acdbf072eebc9b7866dc2bdedbbcc1c4e0f9c52f8d8f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(event, perf):\n    TABLE = {'100m': (25.4347, 18, 1.81, 'track'), '400m': (1.53775, 82, 1.81, 'track'),\n             '1500m': (0.03768, 480, 1.85, 'track'), 'long_jump': (0.14354, 220, 1.4, 'jump'),\n             'high_jump': (0.8465, 75, 1.42, 'jump'), 'shot_put': (51.39, 1.5, 1.05, 'throw')}\n    A, B, C, kind = TABLE[event]\n    if kind == 'track':\n        if ':' in perf:\n            m, s = perf.split(':')\n            p = int(m) + float(s)\n        else:\n            p = float(perf)\n        base = B - p\n    else:\n        p = float(perf)\n        if kind == 'jump':\n            p = round(p * 100)\n        base = p - B\n    if base <= 0:\n        return 0\n    return int(math.floor(A * base ** C))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '4:56.61'), 579),\n  ('variant scenario 1', ('100m', '12.05'), 641),\n  ('variant scenario 2', ('100m', '11.56'), 740)],\n [('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '4:22.46'), 795),\n  ('variant scenario 1', ('100m', '11.69'), 713),\n  ('variant scenario 2', ('shot_put', '10.17'), 496)],\n [('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '4:43.13'), 661),\n  ('variant scenario 1', ('400m', '48.88'), 867),\n  ('variant scenario 2', ('100m', '11.55'), 742)],\n [('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '4:13.72'), 855),\n  ('variant scenario 1', ('high_jump', '1.92'), 731),\n  ('variant scenario 2', ('shot_put', '8.87'), 418)],\n [('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '5:02.42'), 546),\n  ('variant scenario 1', ('400m', '49.41'), 842),\n  ('variant scenario 2', ('shot_put', '3.75'), 120)]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(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":"788f0d808c36962ea0f9a1e5231da9a609fe0151abe485119e3429834036a151","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(event, perf):\n    TABLE = {'100m': (25.4347, 18, 1.81, 'track'), '400m': (1.53775, 82, 1.81, 'track'),\n             '1500m': (0.03768, 480, 1.85, 'track'), 'long_jump': (0.14354, 220, 1.4, 'jump'),\n             'high_jump': (0.8465, 75, 1.42, 'jump'), 'shot_put': (51.39, 1.5, 1.05, 'throw')}\n    A, B, C, kind = TABLE[event]\n    if kind == 'track':\n        if ':' in perf:\n            m, s = perf.split(':')\n            p = int(m) * 60 + float(s)\n        else:\n            p = float(perf)\n        base = B - p\n    else:\n        p = float(perf)\n        if kind == 'jump':\n            p = round(p * 100)\n        base = p - B\n    if base <= 0:\n        return 0\n    return int(math.floor(A * base ** C))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '4:56.61'), 579),\n  ('variant scenario 1', ('100m', '12.05'), 641),\n  ('variant scenario 2', ('100m', '11.56'), 740)],\n [('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '4:22.46'), 795),\n  ('variant scenario 1', ('100m', '11.69'), 713),\n  ('variant scenario 2', ('shot_put', '10.17'), 496)],\n [('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '4:43.13'), 661),\n  ('variant scenario 1', ('400m', '48.88'), 867),\n  ('variant scenario 2', ('100m', '11.55'), 742)],\n [('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '4:13.72'), 855),\n  ('variant scenario 1', ('high_jump', '1.92'), 731),\n  ('variant scenario 2', ('shot_put', '8.87'), 418)],\n [('control 100m', ('100m', '10.50'), 975),\n  ('control long jump', ('long_jump', '7.50'), 935),\n  ('control shot put', ('shot_put', '15.00'), 790),\n  ('control 1500m', ('1500m', '4:30.00'), 745),\n  ('boundary slower than base', ('100m', '18.50'), 0),\n  ('control high jump', ('high_jump', '2.01'), 813),\n  ('regression: minutes parsing', ('1500m', '5:02.42'), 546),\n  ('variant scenario 1', ('400m', '49.41'), 842),\n  ('variant scenario 2', ('shot_put', '3.75'), 120)]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(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":"Stipulated, bounded toy contract stated in the contract field; not a claim of conformance with any governing body rulebook or operator house rules. 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-sports-scoring-decathlon-points-table-minutes-parsing","generated_at":"2026-09-29T14:50:29.795429+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Combined-event scoring tables are implemented from formulas with mixed units and orientations.","repair":"Convert minutes to seconds and keep the fractional seconds.","root_cause":"The minutes field is added as a raw number instead of multiplied by 60.","sha256":"fa2cf8a0c6b21aa021a05a13865be18492cae45fdc80274f92987f3a9ea24eb0","title":"Middle-distance time minutes not converted to seconds · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.944,"exit_code":1,"observations":[{"actual":975,"check":"control 100m","expected":975,"passed":true},{"actual":935,"check":"control long jump","expected":935,"passed":true},{"actual":790,"check":"control shot put","expected":790,"passed":true},{"actual":745,"check":"control 1500m","expected":745,"passed":true},{"actual":0,"check":"boundary slower than base","expected":0,"passed":true},{"actual":813,"check":"control high jump","expected":813,"passed":true},{"actual":583,"check":"regression: minutes parsing","expected":579,"passed":false},{"actual":641,"check":"variant scenario 1","expected":641,"passed":true},{"actual":740,"check":"variant scenario 2","expected":740,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control 100m\", \"actual\": 975, \"expected\": 975, \"passed\": true}, {\"check\": \"control long jump\", \"actual\": 935, \"expected\": 935, \"passed\": true}, {\"check\": \"control shot put\", \"actual\": 790, \"expected\": 790, \"passed\": true}, {\"check\": \"control 1500m\", \"actual\": 745, \"expected\": 745, \"passed\": true}, {\"check\": \"boundary slower than base\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"control high jump\", \"actual\": 813, \"expected\": 813, \"passed\": true}, {\"check\": \"regression: minutes parsing\", \"actual\": 583, \"expected\": 579, \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": 641, \"expected\": 641, \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": 740, \"expected\": 740, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.976,"exit_code":1,"observations":[{"actual":975,"check":"control 100m","expected":975,"passed":true},{"actual":935,"check":"control long jump","expected":935,"passed":true},{"actual":790,"check":"control shot put","expected":790,"passed":true},{"actual":3001,"check":"control 1500m","expected":745,"passed":false},{"actual":0,"check":"boundary slower than base","expected":0,"passed":true},{"actual":813,"check":"control high jump","expected":813,"passed":true},{"actual":2678,"check":"regression: minutes parsing","expected":579,"passed":false},{"actual":641,"check":"variant scenario 1","expected":641,"passed":true},{"actual":740,"check":"variant scenario 2","expected":740,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control 100m\", \"actual\": 975, \"expected\": 975, \"passed\": true}, {\"check\": \"control long jump\", \"actual\": 935, \"expected\": 935, \"passed\": true}, {\"check\": \"control shot put\", \"actual\": 790, \"expected\": 790, \"passed\": true}, {\"check\": \"control 1500m\", \"actual\": 3001, \"expected\": 745, \"passed\": false}, {\"check\": \"boundary slower than base\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"control high jump\", \"actual\": 813, \"expected\": 813, \"passed\": true}, {\"check\": \"regression: minutes parsing\", \"actual\": 2678, \"expected\": 579, \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": 641, \"expected\": 641, \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": 740, \"expected\": 740, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.228,"exit_code":0,"observations":[{"actual":975,"check":"control 100m","expected":975,"passed":true},{"actual":935,"check":"control long jump","expected":935,"passed":true},{"actual":790,"check":"control shot put","expected":790,"passed":true},{"actual":745,"check":"control 1500m","expected":745,"passed":true},{"actual":0,"check":"boundary slower than base","expected":0,"passed":true},{"actual":813,"check":"control high jump","expected":813,"passed":true},{"actual":579,"check":"regression: minutes parsing","expected":579,"passed":true},{"actual":641,"check":"variant scenario 1","expected":641,"passed":true},{"actual":740,"check":"variant scenario 2","expected":740,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control 100m\", \"actual\": 975, \"expected\": 975, \"passed\": true}, {\"check\": \"control long jump\", \"actual\": 935, \"expected\": 935, \"passed\": true}, {\"check\": \"control shot put\", \"actual\": 790, \"expected\": 790, \"passed\": true}, {\"check\": \"control 1500m\", \"actual\": 745, \"expected\": 745, \"passed\": true}, {\"check\": \"boundary slower than base\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"control high jump\", \"actual\": 813, \"expected\": 813, \"passed\": true}, {\"check\": \"regression: minutes parsing\", \"actual\": 579, \"expected\": 579, \"passed\": true}, {\"check\": \"variant scenario 1\", \"actual\": 641, \"expected\": 641, \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": 740, \"expected\": 740, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}