{"abstract":"Wall-clock conversions run fast by 0.2 percent at pulled-down rates.","category":"Broadcast timecode arithmetic","checks":7,"contract":"Rates \"23.976\", \"29.97\", \"59.94\" run at nominal*1000/1001 frames per second while labels count nominal frames per second (non-drop). mode \"to_ms\": label to elapsed milliseconds, rounded half up. mode \"to_tc\": milliseconds to the nearest frame (half up), formatted as a non-drop label wrapping at 24 hours.","contract_signature":"value, rate, mode","evaluation_group":"w2-broadcast-timecode-arithmetic-pulldown-wall-clock","failed_approach":"Dropping the scale of 1000 breaks the ratio against the millisecond denominator.","family":"w2-broadcast-timecode-arithmetic-pulldown-wall-clock-rate-numerator","id":"FA-78606","implementations":{"attempt":{"sha256":"e07153020de46f58523ace7c66779c34ac97b470580edb5260b35b48fd6ad988","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(value, rate, mode):\n    nominal={'23.976':24,'29.97':30,'59.94':60,'24':24,'25':25,'30':30}[rate]\n    den=1001 if '.' in rate else 1000\n    num=nominal\n    if mode=='to_ms':\n        h,m,s,f=map(int,value.split(':'))\n        n=((h*60+m)*60+s)*nominal+f\n        return (2*n*1000*den+num)//(2*num)\n    n=(2*value*num+1000*den)//(2000*den)\n    return '%02d:%02d:%02d:%02d'%(n//(3600*nominal)%24,n//(60*nominal)%60,n//nominal%60,n%nominal)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: rate numerator', ['01:00:00:00', '29.97', 'to_ms'], 3603600), ('regression variant: rate numerator', ['10:00:01:24', '25', 'to_ms'], 36001960), ('partial repair probe: rate numerator', [3600000, '29.97', 'to_tc'], '00:59:56:12'), ('partial repair variant: rate numerator', ['10:59:00:45', '23.976', 'to_ms'], 39581417), ('normal control', [1, '24', 'to_tc'], '00:00:00:00'), ('normal control', [0, '24', 'to_tc'], '00:00:00:00'), ('normal control', ['00:00:00:00', '29.97', 'to_ms'], 0)], [('regression: rate numerator', [3600000, '29.97', 'to_tc'], '00:59:56:12'), ('regression variant: rate numerator', [86399999, '25', 'to_tc'], '00:00:00:00'), ('partial repair probe: rate numerator', ['00:00:00:01', '25', 'to_ms'], 40), ('partial repair variant: rate numerator', [86399999, '23.976', 'to_tc'], '23:58:33:16'), ('normal control', [0, '59.94', 'to_tc'], '00:00:00:00'), ('normal control', [1, '25', 'to_tc'], '00:00:00:00'), ('normal control', [1, '30', 'to_tc'], '00:00:00:00')], [('regression: rate numerator', [3603600, '23.976', 'to_tc'], '01:00:00:00'), ('regression variant: rate numerator', ['10:59:00:45', '23.976', 'to_ms'], 39581417), ('partial repair probe: rate numerator', [1020, '24', 'to_tc'], '00:00:01:00'), ('partial repair variant: rate numerator', [250, '59.94', 'to_tc'], '00:00:00:15'), ('normal control', [0, '29.97', 'to_tc'], '00:00:00:00'), ('normal control', [20, '24', 'to_tc'], '00:00:00:00'), ('normal control', [1, '24', 'to_tc'], '00:00:00:00')], [('regression: rate numerator', [1020, '24', 'to_tc'], '00:00:01:00'), ('regression variant: rate numerator', [86399999, '23.976', 'to_tc'], '23:58:33:16'), ('partial repair probe: rate numerator', ['23:01:00:12', '30', 'to_ms'], 82860400), ('partial repair variant: rate numerator', ['10:59:00:00', '24', 'to_ms'], 39540000), ('normal control', [0, '23.976', 'to_tc'], '00:00:00:00'), ('normal control', ['00:00:00:00', '29.97', 'to_ms'], 0), ('normal control', [0, '59.94', 'to_tc'], '00:00:00:00')], [('regression: rate numerator', ['23:01:00:12', '30', 'to_ms'], 82860400), ('regression variant: rate numerator', ['10:59:00:00', '24', 'to_ms'], 39540000), ('partial repair probe: rate numerator', ['10:00:01:24', '25', 'to_ms'], 36001960), ('partial repair variant: rate numerator', ['01:01:01:36', '30', 'to_ms'], 3662200), ('normal control', [0, '30', 'to_tc'], '00:00:00:00'), ('normal control', [1, '30', 'to_tc'], '00:00:00:00'), ('normal control', [0, '29.97', 'to_tc'], '00:00:00:00')]]\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":"afb5473b00362fbc010a4fc7d3ed594b6e09c3a008eb55cfa2ee59aad2c569f8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(value, rate, mode):\n    nominal={'23.976':24,'29.97':30,'59.94':60,'24':24,'25':25,'30':30}[rate]\n    den=1001 if '.' in rate else 1000\n    num=nominal*1001\n    if mode=='to_ms':\n        h,m,s,f=map(int,value.split(':'))\n        n=((h*60+m)*60+s)*nominal+f\n        return (2*n*1000*den+num)//(2*num)\n    n=(2*value*num+1000*den)//(2000*den)\n    return '%02d:%02d:%02d:%02d'%(n//(3600*nominal)%24,n//(60*nominal)%60,n//nominal%60,n%nominal)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: rate numerator', ['01:00:00:00', '29.97', 'to_ms'], 3603600), ('regression variant: rate numerator', ['10:00:01:24', '25', 'to_ms'], 36001960), ('partial repair probe: rate numerator', [3600000, '29.97', 'to_tc'], '00:59:56:12'), ('partial repair variant: rate numerator', ['10:59:00:45', '23.976', 'to_ms'], 39581417), ('normal control', [1, '24', 'to_tc'], '00:00:00:00'), ('normal control', [0, '24', 'to_tc'], '00:00:00:00'), ('normal control', ['00:00:00:00', '29.97', 'to_ms'], 0)], [('regression: rate numerator', [3600000, '29.97', 'to_tc'], '00:59:56:12'), ('regression variant: rate numerator', [86399999, '25', 'to_tc'], '00:00:00:00'), ('partial repair probe: rate numerator', ['00:00:00:01', '25', 'to_ms'], 40), ('partial repair variant: rate numerator', [86399999, '23.976', 'to_tc'], '23:58:33:16'), ('normal control', [0, '59.94', 'to_tc'], '00:00:00:00'), ('normal control', [1, '25', 'to_tc'], '00:00:00:00'), ('normal control', [1, '30', 'to_tc'], '00:00:00:00')], [('regression: rate numerator', [3603600, '23.976', 'to_tc'], '01:00:00:00'), ('regression variant: rate numerator', ['10:59:00:45', '23.976', 'to_ms'], 39581417), ('partial repair probe: rate numerator', [1020, '24', 'to_tc'], '00:00:01:00'), ('partial repair variant: rate numerator', [250, '59.94', 'to_tc'], '00:00:00:15'), ('normal control', [0, '29.97', 'to_tc'], '00:00:00:00'), ('normal control', [20, '24', 'to_tc'], '00:00:00:00'), ('normal control', [1, '24', 'to_tc'], '00:00:00:00')], [('regression: rate numerator', [1020, '24', 'to_tc'], '00:00:01:00'), ('regression variant: rate numerator', [86399999, '23.976', 'to_tc'], '23:58:33:16'), ('partial repair probe: rate numerator', ['23:01:00:12', '30', 'to_ms'], 82860400), ('partial repair variant: rate numerator', ['10:59:00:00', '24', 'to_ms'], 39540000), ('normal control', [0, '23.976', 'to_tc'], '00:00:00:00'), ('normal control', ['00:00:00:00', '29.97', 'to_ms'], 0), ('normal control', [0, '59.94', 'to_tc'], '00:00:00:00')], [('regression: rate numerator', ['23:01:00:12', '30', 'to_ms'], 82860400), ('regression variant: rate numerator', ['10:59:00:00', '24', 'to_ms'], 39540000), ('partial repair probe: rate numerator', ['10:00:01:24', '25', 'to_ms'], 36001960), ('partial repair variant: rate numerator', ['01:01:01:36', '30', 'to_ms'], 3662200), ('normal control', [0, '30', 'to_tc'], '00:00:00:00'), ('normal control', [1, '30', 'to_tc'], '00:00:00:00'), ('normal control', [0, '29.97', 'to_tc'], '00:00:00:00')]]\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 bounded teaching model with a stipulated toy contract; it does not claim conformance to SMPTE or any broadcast standard. 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-broadcast-timecode-arithmetic-pulldown-wall-clock-rate-numerator","generated_at":"2026-09-29T14:49:36.685794+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Timecode arithmetic errors misplace edits, commercial breaks and captions against the broadcast clock.","root_cause":"The 1001 factor is applied to the numerator as well as the denominator.","sha256":"71340301c7c44a959719f54a98cb48546c58a7348716695e26a351e07c15b9b4","title":"Non-drop label to wall clock at pulled-down rates: rate numerator · 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":41.679,"exit_code":1,"observations":[{"actual":3603600000,"check":"regression: rate numerator","expected":3603600,"passed":false},{"actual":36001960000,"check":"regression variant: rate numerator","expected":36001960,"passed":false},{"actual":"00:00:03:18","check":"partial repair probe: rate numerator","expected":"00:59:56:12","passed":false},{"actual":39581416875,"check":"partial repair variant: rate numerator","expected":39581417,"passed":false},{"actual":"00:00:00:00","check":"normal control","expected":"00:00:00:00","passed":true},{"actual":"00:00:00:00","check":"normal control","expected":"00:00:00:00","passed":true},{"actual":0,"check":"normal control","expected":0,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: rate numerator\", \"actual\": 3603600000, \"expected\": 3603600, \"passed\": false}, {\"check\": \"regression variant: rate numerator\", \"actual\": 36001960000, \"expected\": 36001960, \"passed\": false}, {\"check\": \"partial repair probe: rate numerator\", \"actual\": \"00:00:03:18\", \"expected\": \"00:59:56:12\", \"passed\": false}, {\"check\": \"partial repair variant: rate numerator\", \"actual\": 39581416875, \"expected\": 39581417, \"passed\": false}, {\"check\": \"normal control\", \"actual\": \"00:00:00:00\", \"expected\": \"00:00:00:00\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:00:00\", \"expected\": \"00:00:00:00\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": 0, \"expected\": 0, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.721,"exit_code":1,"observations":[{"actual":3600000,"check":"regression: rate numerator","expected":3603600,"passed":false},{"actual":35965994,"check":"regression variant: rate numerator","expected":36001960,"passed":false},{"actual":"01:00:00:00","check":"partial repair probe: rate numerator","expected":"00:59:56:12","passed":false},{"actual":39541875,"check":"partial repair variant: rate numerator","expected":39581417,"passed":false},{"actual":"00:00:00:00","check":"normal control","expected":"00:00:00:00","passed":true},{"actual":"00:00:00:00","check":"normal control","expected":"00:00:00:00","passed":true},{"actual":0,"check":"normal control","expected":0,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: rate numerator\", \"actual\": 3600000, \"expected\": 3603600, \"passed\": false}, {\"check\": \"regression variant: rate numerator\", \"actual\": 35965994, \"expected\": 36001960, \"passed\": false}, {\"check\": \"partial repair probe: rate numerator\", \"actual\": \"01:00:00:00\", \"expected\": \"00:59:56:12\", \"passed\": false}, {\"check\": \"partial repair variant: rate numerator\", \"actual\": 39541875, \"expected\": 39581417, \"passed\": false}, {\"check\": \"normal control\", \"actual\": \"00:00:00:00\", \"expected\": \"00:00:00:00\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:00:00\", \"expected\": \"00:00:00:00\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": 0, \"expected\": 0, \"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."}}