{"abstract":"The first label of a new minute is a label that should have been dropped.","category":"Broadcast timecode arithmetic","checks":9,"contract":"Given a valid drop-frame label at rate \"29.97\" (nominal 30, drop 2) or \"59.94\" (nominal 60, drop 4), return the next label: frames carry into seconds at the nominal rate, seconds into minutes, minutes into hours (wrapping at 24); on entering a new minute not divisible by 10 the first drop labels are skipped.","evaluation_group":"w2-broadcast-timecode-arithmetic-df-label-increment","failed_approach":"Hard-coding a skip of 2 is wrong for 59.94, which drops four labels.","family":"w2-broadcast-timecode-arithmetic-df-label-increment-skipped-label-count","id":"FA-78451","implementations":{"attempt":{"sha256":"7e094d70bd609c7f61463970d5a9b63a90e0ceefd17d5da54f32eba396a83e25","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport re\nN = 1\nobservations = []\ndef solve(tc, rate):\n    n=30 if rate=='29.97' else 60\n    drop=2 if n==30 else 4\n    h,m,s,f=map(int,re.split('[:;]',tc))\n    f+=1\n    if f==n:\n        f=0\n        s+=1\n        if s==60:\n            s=0\n            m+=1\n            if m==60:\n                m=0\n                h=(h+1)%24\n            if m%10!=0:\n                f=2\n    return '%02d:%02d:%02d;%02d'%(h,m,s,f)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: skipped label count', ['00:00:59;29', '29.97'], '00:01:00;02'), ('regression variant: skipped label count', ['01:00:59;29', '29.97'], '01:01:00;02'), ('partial repair probe: skipped label count', ['00:01:59;59', '59.94'], '00:02:00;04'), ('partial repair variant: skipped label count', ['23:00:59;59', '59.94'], '23:01:00;04'), ('boundary control', ['00:09:59;29', '29.97'], '00:10:00;00'), ('boundary control', ['23:59:59;29', '29.97'], '00:00:00;00'), ('normal control', ['00:01:00;02', '29.97'], '00:01:00;03'), ('normal control', ['01:01:01;02', '29.97'], '01:01:01;03'), ('normal control', ['00:09:00;58', '59.94'], '00:09:00;59')], [('regression: skipped label count', ['00:00:59;59', '59.94'], '00:01:00;04'), ('regression variant: skipped label count', ['01:01:59;59', '59.94'], '01:02:00;04'), ('partial repair probe: skipped label count', ['23:01:59;59', '59.94'], '23:02:00;04'), ('partial repair variant: skipped label count', ['23:10:59;59', '59.94'], '23:11:00;04'), ('boundary control', ['23:59:59;29', '29.97'], '00:00:00;00'), ('boundary control', ['00:01:00;02', '29.97'], '00:01:00;03'), ('normal control', ['23:09:59;59', '59.94'], '23:10:00;00'), ('normal control', ['01:10:58;29', '29.97'], '01:10:59;00'), ('normal control', ['00:29:59;00', '59.94'], '00:29:59;01')], [('regression: skipped label count', ['09:01:59;29', '29.97'], '09:02:00;02'), ('regression variant: skipped label count', ['01:01:59;29', '29.97'], '01:02:00;02'), ('partial repair probe: skipped label count', ['09:00:59;59', '59.94'], '09:01:00;04'), ('partial repair variant: skipped label count', ['00:10:59;59', '59.94'], '00:11:00;04'), ('boundary control', ['00:01:00;02', '29.97'], '00:01:00;03'), ('boundary control', ['00:09:59;29', '29.97'], '00:10:00;00'), ('normal control', ['09:19:00;04', '59.94'], '09:19:00;05'), ('normal control', ['00:59:59;59', '59.94'], '01:00:00;00'), ('normal control', ['01:29:58;58', '59.94'], '01:29:58;59')], [('regression: skipped label count', ['09:10:59;29', '29.97'], '09:11:00;02'), ('regression variant: skipped label count', ['00:01:59;59', '59.94'], '00:02:00;04'), ('partial repair probe: skipped label count', ['01:00:59;59', '59.94'], '01:01:00;04'), ('partial repair variant: skipped label count', ['00:00:59;59', '59.94'], '00:01:00;04'), ('boundary control', ['00:09:59;29', '29.97'], '00:10:00;00'), ('boundary control', ['23:59:59;29', '29.97'], '00:00:00;00'), ('normal control', ['23:00:00;00', '59.94'], '23:00:00;01'), ('normal control', ['23:59:59;03', '59.94'], '23:59:59;04'), ('normal control', ['23:01:58;03', '29.97'], '23:01:58;04')], [('regression: skipped label count', ['09:00:59;29', '29.97'], '09:01:00;02'), ('regression variant: skipped label count', ['23:01:59;59', '59.94'], '23:02:00;04'), ('partial repair probe: skipped label count', ['01:10:59;59', '59.94'], '01:11:00;04'), ('partial repair variant: skipped label count', ['01:01:59;59', '59.94'], '01:02:00;04'), ('boundary control', ['23:59:59;29', '29.97'], '00:00:00;00'), ('boundary control', ['00:01:00;02', '29.97'], '00:01:00;03'), ('normal control', ['09:29:59;59', '59.94'], '09:30:00;00'), ('normal control', ['00:09:59;02', '59.94'], '00:09:59;03'), ('normal control', ['23:19:59;05', '59.94'], '23:19:59;06')]]\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":"527cbc4c09b7c1671a141f2ac8b7ead1f460a6561179fc370a6bf31f8257704e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport re\nN = 1\nobservations = []\ndef solve(tc, rate):\n    n=30 if rate=='29.97' else 60\n    drop=2 if n==30 else 4\n    h,m,s,f=map(int,re.split('[:;]',tc))\n    f+=1\n    if f==n:\n        f=0\n        s+=1\n        if s==60:\n            s=0\n            m+=1\n            if m==60:\n                m=0\n                h=(h+1)%24\n            if m%10!=0:\n                f=drop-1\n    return '%02d:%02d:%02d;%02d'%(h,m,s,f)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: skipped label count', ['00:00:59;29', '29.97'], '00:01:00;02'), ('regression variant: skipped label count', ['01:00:59;29', '29.97'], '01:01:00;02'), ('partial repair probe: skipped label count', ['00:01:59;59', '59.94'], '00:02:00;04'), ('partial repair variant: skipped label count', ['23:00:59;59', '59.94'], '23:01:00;04'), ('boundary control', ['00:09:59;29', '29.97'], '00:10:00;00'), ('boundary control', ['23:59:59;29', '29.97'], '00:00:00;00'), ('normal control', ['00:01:00;02', '29.97'], '00:01:00;03'), ('normal control', ['01:01:01;02', '29.97'], '01:01:01;03'), ('normal control', ['00:09:00;58', '59.94'], '00:09:00;59')], [('regression: skipped label count', ['00:00:59;59', '59.94'], '00:01:00;04'), ('regression variant: skipped label count', ['01:01:59;59', '59.94'], '01:02:00;04'), ('partial repair probe: skipped label count', ['23:01:59;59', '59.94'], '23:02:00;04'), ('partial repair variant: skipped label count', ['23:10:59;59', '59.94'], '23:11:00;04'), ('boundary control', ['23:59:59;29', '29.97'], '00:00:00;00'), ('boundary control', ['00:01:00;02', '29.97'], '00:01:00;03'), ('normal control', ['23:09:59;59', '59.94'], '23:10:00;00'), ('normal control', ['01:10:58;29', '29.97'], '01:10:59;00'), ('normal control', ['00:29:59;00', '59.94'], '00:29:59;01')], [('regression: skipped label count', ['09:01:59;29', '29.97'], '09:02:00;02'), ('regression variant: skipped label count', ['01:01:59;29', '29.97'], '01:02:00;02'), ('partial repair probe: skipped label count', ['09:00:59;59', '59.94'], '09:01:00;04'), ('partial repair variant: skipped label count', ['00:10:59;59', '59.94'], '00:11:00;04'), ('boundary control', ['00:01:00;02', '29.97'], '00:01:00;03'), ('boundary control', ['00:09:59;29', '29.97'], '00:10:00;00'), ('normal control', ['09:19:00;04', '59.94'], '09:19:00;05'), ('normal control', ['00:59:59;59', '59.94'], '01:00:00;00'), ('normal control', ['01:29:58;58', '59.94'], '01:29:58;59')], [('regression: skipped label count', ['09:10:59;29', '29.97'], '09:11:00;02'), ('regression variant: skipped label count', ['00:01:59;59', '59.94'], '00:02:00;04'), ('partial repair probe: skipped label count', ['01:00:59;59', '59.94'], '01:01:00;04'), ('partial repair variant: skipped label count', ['00:00:59;59', '59.94'], '00:01:00;04'), ('boundary control', ['00:09:59;29', '29.97'], '00:10:00;00'), ('boundary control', ['23:59:59;29', '29.97'], '00:00:00;00'), ('normal control', ['23:00:00;00', '59.94'], '23:00:00;01'), ('normal control', ['23:59:59;03', '59.94'], '23:59:59;04'), ('normal control', ['23:01:58;03', '29.97'], '23:01:58;04')], [('regression: skipped label count', ['09:00:59;29', '29.97'], '09:01:00;02'), ('regression variant: skipped label count', ['23:01:59;59', '59.94'], '23:02:00;04'), ('partial repair probe: skipped label count', ['01:10:59;59', '59.94'], '01:11:00;04'), ('partial repair variant: skipped label count', ['01:01:59;59', '59.94'], '01:02:00;04'), ('boundary control', ['23:59:59;29', '29.97'], '00:00:00;00'), ('boundary control', ['00:01:00;02', '29.97'], '00:01:00;03'), ('normal control', ['09:29:59;59', '59.94'], '09:30:00;00'), ('normal control', ['00:09:59;02', '59.94'], '00:09:59;03'), ('normal control', ['23:19:59;05', '59.94'], '23:19:59;06')]]\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":"beacb86447db851384d7a6d19a1d5f5df113c7dd813468ebb8799136083c2d2d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport re\nN = 1\nobservations = []\ndef solve(tc, rate):\n    n=30 if rate=='29.97' else 60\n    drop=2 if n==30 else 4\n    h,m,s,f=map(int,re.split('[:;]',tc))\n    f+=1\n    if f==n:\n        f=0\n        s+=1\n        if s==60:\n            s=0\n            m+=1\n            if m==60:\n                m=0\n                h=(h+1)%24\n            if m%10!=0:\n                f=drop\n    return '%02d:%02d:%02d;%02d'%(h,m,s,f)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: skipped label count', ['00:00:59;29', '29.97'], '00:01:00;02'), ('regression variant: skipped label count', ['01:00:59;29', '29.97'], '01:01:00;02'), ('partial repair probe: skipped label count', ['00:01:59;59', '59.94'], '00:02:00;04'), ('partial repair variant: skipped label count', ['23:00:59;59', '59.94'], '23:01:00;04'), ('boundary control', ['00:09:59;29', '29.97'], '00:10:00;00'), ('boundary control', ['23:59:59;29', '29.97'], '00:00:00;00'), ('normal control', ['00:01:00;02', '29.97'], '00:01:00;03'), ('normal control', ['01:01:01;02', '29.97'], '01:01:01;03'), ('normal control', ['00:09:00;58', '59.94'], '00:09:00;59')], [('regression: skipped label count', ['00:00:59;59', '59.94'], '00:01:00;04'), ('regression variant: skipped label count', ['01:01:59;59', '59.94'], '01:02:00;04'), ('partial repair probe: skipped label count', ['23:01:59;59', '59.94'], '23:02:00;04'), ('partial repair variant: skipped label count', ['23:10:59;59', '59.94'], '23:11:00;04'), ('boundary control', ['23:59:59;29', '29.97'], '00:00:00;00'), ('boundary control', ['00:01:00;02', '29.97'], '00:01:00;03'), ('normal control', ['23:09:59;59', '59.94'], '23:10:00;00'), ('normal control', ['01:10:58;29', '29.97'], '01:10:59;00'), ('normal control', ['00:29:59;00', '59.94'], '00:29:59;01')], [('regression: skipped label count', ['09:01:59;29', '29.97'], '09:02:00;02'), ('regression variant: skipped label count', ['01:01:59;29', '29.97'], '01:02:00;02'), ('partial repair probe: skipped label count', ['09:00:59;59', '59.94'], '09:01:00;04'), ('partial repair variant: skipped label count', ['00:10:59;59', '59.94'], '00:11:00;04'), ('boundary control', ['00:01:00;02', '29.97'], '00:01:00;03'), ('boundary control', ['00:09:59;29', '29.97'], '00:10:00;00'), ('normal control', ['09:19:00;04', '59.94'], '09:19:00;05'), ('normal control', ['00:59:59;59', '59.94'], '01:00:00;00'), ('normal control', ['01:29:58;58', '59.94'], '01:29:58;59')], [('regression: skipped label count', ['09:10:59;29', '29.97'], '09:11:00;02'), ('regression variant: skipped label count', ['00:01:59;59', '59.94'], '00:02:00;04'), ('partial repair probe: skipped label count', ['01:00:59;59', '59.94'], '01:01:00;04'), ('partial repair variant: skipped label count', ['00:00:59;59', '59.94'], '00:01:00;04'), ('boundary control', ['00:09:59;29', '29.97'], '00:10:00;00'), ('boundary control', ['23:59:59;29', '29.97'], '00:00:00;00'), ('normal control', ['23:00:00;00', '59.94'], '23:00:00;01'), ('normal control', ['23:59:59;03', '59.94'], '23:59:59;04'), ('normal control', ['23:01:58;03', '29.97'], '23:01:58;04')], [('regression: skipped label count', ['09:00:59;29', '29.97'], '09:01:00;02'), ('regression variant: skipped label count', ['23:01:59;59', '59.94'], '23:02:00;04'), ('partial repair probe: skipped label count', ['01:10:59;59', '59.94'], '01:11:00;04'), ('partial repair variant: skipped label count', ['01:01:59;59', '59.94'], '01:02:00;04'), ('boundary control', ['23:59:59;29', '29.97'], '00:00:00;00'), ('boundary control', ['00:01:00;02', '29.97'], '00:01:00;03'), ('normal control', ['09:29:59;59', '59.94'], '09:30:00;00'), ('normal control', ['00:09:59;02', '59.94'], '00:09:59;03'), ('normal control', ['23:19:59;05', '59.94'], '23:19:59;06')]]\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-df-label-increment-skipped-label-count","generated_at":"2026-09-29T14:49:35.329075+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.","repair":"Start the new minute at frame number drop.","root_cause":"The skip lands on the last dropped label instead of the first valid one.","sha256":"27abfe331be8f8c0e8d9290ca91b6adfed932c700dda758ddf898514b77bc217","title":"Drop-frame label increment: skipped label count · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.655,"exit_code":1,"observations":[{"actual":"00:01:00;02","check":"regression: skipped label count","expected":"00:01:00;02","passed":true},{"actual":"01:01:00;02","check":"regression variant: skipped label count","expected":"01:01:00;02","passed":true},{"actual":"00:02:00;02","check":"partial repair probe: skipped label count","expected":"00:02:00;04","passed":false},{"actual":"23:01:00;02","check":"partial repair variant: skipped label count","expected":"23:01:00;04","passed":false},{"actual":"00:10:00;00","check":"boundary control","expected":"00:10:00;00","passed":true},{"actual":"00:00:00;00","check":"boundary control","expected":"00:00:00;00","passed":true},{"actual":"00:01:00;03","check":"normal control","expected":"00:01:00;03","passed":true},{"actual":"01:01:01;03","check":"normal control","expected":"01:01:01;03","passed":true},{"actual":"00:09:00;59","check":"normal control","expected":"00:09:00;59","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: skipped label count\", \"actual\": \"00:01:00;02\", \"expected\": \"00:01:00;02\", \"passed\": true}, {\"check\": \"regression variant: skipped label count\", \"actual\": \"01:01:00;02\", \"expected\": \"01:01:00;02\", \"passed\": true}, {\"check\": \"partial repair probe: skipped label count\", \"actual\": \"00:02:00;02\", \"expected\": \"00:02:00;04\", \"passed\": false}, {\"check\": \"partial repair variant: skipped label count\", \"actual\": \"23:01:00;02\", \"expected\": \"23:01:00;04\", \"passed\": false}, {\"check\": \"boundary control\", \"actual\": \"00:10:00;00\", \"expected\": \"00:10:00;00\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": \"00:00:00;00\", \"expected\": \"00:00:00;00\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:01:00;03\", \"expected\": \"00:01:00;03\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"01:01:01;03\", \"expected\": \"01:01:01;03\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:09:00;59\", \"expected\": \"00:09:00;59\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":49.88,"exit_code":1,"observations":[{"actual":"00:01:00;01","check":"regression: skipped label count","expected":"00:01:00;02","passed":false},{"actual":"01:01:00;01","check":"regression variant: skipped label count","expected":"01:01:00;02","passed":false},{"actual":"00:02:00;03","check":"partial repair probe: skipped label count","expected":"00:02:00;04","passed":false},{"actual":"23:01:00;03","check":"partial repair variant: skipped label count","expected":"23:01:00;04","passed":false},{"actual":"00:10:00;00","check":"boundary control","expected":"00:10:00;00","passed":true},{"actual":"00:00:00;00","check":"boundary control","expected":"00:00:00;00","passed":true},{"actual":"00:01:00;03","check":"normal control","expected":"00:01:00;03","passed":true},{"actual":"01:01:01;03","check":"normal control","expected":"01:01:01;03","passed":true},{"actual":"00:09:00;59","check":"normal control","expected":"00:09:00;59","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: skipped label count\", \"actual\": \"00:01:00;01\", \"expected\": \"00:01:00;02\", \"passed\": false}, {\"check\": \"regression variant: skipped label count\", \"actual\": \"01:01:00;01\", \"expected\": \"01:01:00;02\", \"passed\": false}, {\"check\": \"partial repair probe: skipped label count\", \"actual\": \"00:02:00;03\", \"expected\": \"00:02:00;04\", \"passed\": false}, {\"check\": \"partial repair variant: skipped label count\", \"actual\": \"23:01:00;03\", \"expected\": \"23:01:00;04\", \"passed\": false}, {\"check\": \"boundary control\", \"actual\": \"00:10:00;00\", \"expected\": \"00:10:00;00\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": \"00:00:00;00\", \"expected\": \"00:00:00;00\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:01:00;03\", \"expected\": \"00:01:00;03\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"01:01:01;03\", \"expected\": \"01:01:01;03\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:09:00;59\", \"expected\": \"00:09:00;59\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.85,"exit_code":0,"observations":[{"actual":"00:01:00;02","check":"regression: skipped label count","expected":"00:01:00;02","passed":true},{"actual":"01:01:00;02","check":"regression variant: skipped label count","expected":"01:01:00;02","passed":true},{"actual":"00:02:00;04","check":"partial repair probe: skipped label count","expected":"00:02:00;04","passed":true},{"actual":"23:01:00;04","check":"partial repair variant: skipped label count","expected":"23:01:00;04","passed":true},{"actual":"00:10:00;00","check":"boundary control","expected":"00:10:00;00","passed":true},{"actual":"00:00:00;00","check":"boundary control","expected":"00:00:00;00","passed":true},{"actual":"00:01:00;03","check":"normal control","expected":"00:01:00;03","passed":true},{"actual":"01:01:01;03","check":"normal control","expected":"01:01:01;03","passed":true},{"actual":"00:09:00;59","check":"normal control","expected":"00:09:00;59","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: skipped label count\", \"actual\": \"00:01:00;02\", \"expected\": \"00:01:00;02\", \"passed\": true}, {\"check\": \"regression variant: skipped label count\", \"actual\": \"01:01:00;02\", \"expected\": \"01:01:00;02\", \"passed\": true}, {\"check\": \"partial repair probe: skipped label count\", \"actual\": \"00:02:00;04\", \"expected\": \"00:02:00;04\", \"passed\": true}, {\"check\": \"partial repair variant: skipped label count\", \"actual\": \"23:01:00;04\", \"expected\": \"23:01:00;04\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": \"00:10:00;00\", \"expected\": \"00:10:00;00\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": \"00:00:00;00\", \"expected\": \"00:00:00;00\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:01:00;03\", \"expected\": \"00:01:00;03\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"01:01:01;03\", \"expected\": \"01:01:01;03\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:09:00;59\", \"expected\": \"00:09:00;59\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}