Skip to content
VoiceDeck

Timecode Drift Calculator

See exactly how far non-drop timecode drifts from the wall clock as a program runs — an SVG chart with drift markers at 30 s, 22 min, 44 min, 90 min and 2 hours, a movable custom-length marker, and the drop-frame comparison line, free in your browser.

VoiceDeck

Client review & approval for video, audio, images & PDF — one link, no per-seat fees.

Try Free

Rate & Range

Non-drop (NDF) timecode drifts a steady 0.1% of elapsed program time, everywhere in the 29.97/59.94/23.976 family — the frame rate only changes how that drift converts to a frame count.

Drift vs. Elapsed Program Time

NDF drift is exact and linear — 0.1% of elapsed program time, not a rounded constant — so the NDF line is dead straight. Drop-frame's own residual drift is about a thousand times smaller and hugs zero at this scale; hover, tap or tab to any marker for its precise readout.

Every marker below is focusable — tab through them with a keyboard for the same readouts as hover or tap.

DF vs NDF timecode drift chart NDF drift (seconds) Elapsed program time DF (≈3.6 ms/h residual) NDF (0.1% of elapsed time)
Hover, tap or tab to a marker on the chart for its exact NDF and DF drift readout.

NDF drift
DF residual

Pinned Program Lengths

30 seconds, 22 minutes, 44 minutes, 90 minutes and 2 hours — 22 and 44 minutes are the standard US half-hour and hour-long broadcast content lengths once commercial time is stripped out, so they're the running times a delivery QC pass actually times a program against.

Program length Elapsed seconds NDF drift Frames behind DF residual

Drop-frame's residual is about 3.6 ms per hour — roughly a thousand times tighter than NDF, and small enough to only cost a full frame after about 9.3 hours of continuous roll.

Charting drift, not relabeling timecodes.

This page shows how far non-drop timecode drifts from the wall clock as a program runs. To actually convert a set of timecodes between drop-frame and non-drop, use the DF/NDF Subtitle Timecode Converter. To convert time-of-day timecode to real wall-clock time with the same drift annotated, see the Timecode ↔ Wall-Clock Calculator, or add and subtract SMPTE timecode outright with the Timecode Calculator.

About Timecode Drift Calculator

Why NDF drifts and DF doesn't

The cause fits in one sentence: 29.97 fps is exactly 30 x 1000/1001, so a timecode counter that labels 30 frames every second is counting 0.1% slower than the video actually plays. Run the exact fraction through: 30 divided by (30000/1001) = 1001/1000 = 1.001 -- not a rounded approximation, an exact ratio, because 29.97 fps is defined as 30000/1001, not a decimal. That means one second of non-drop (NDF) timecode label corresponds to 1.001 real seconds, and the gap between the two -- 1.001 minus 1 = 0.001 -- is exactly 0.1%. So for any program timed to L labeled seconds, the real running time is L times 1.001, and the drift is:

drift (seconds) = L x 0.001

That is the whole derivation. No rounding, no fudge factor -- it falls straight out of the 1001-based definition of the NTSC-derived rate family.

The pinned markers, worked

Take the 22-minute row in full, since it is the one worth checking by hand: 22 minutes = 1,320 seconds. Drift = 1,320 x 0.001 = 1.32 seconds. Converted to frames at 29.97 fps: 1.32 x 29.97 is about 39.56, which rounds to about 40 frames. Run the same arithmetic across the standard program lengths broadcast QC actually times against:

Program length Elapsed seconds NDF drift Frames behind (29.97)
30 s 30 0.03 s ~1 frame
22 min 1,320 1.32 s ~40 frames
44 min 2,640 2.64 s ~79 frames
90 min 5,400 5.4 s ~162 frames
2 h 7,200 7.2 s ~216 frames

22 and 44 minutes are not arbitrary -- they are the standard US half-hour and hour-long broadcast content lengths once commercial time is stripped out, which is exactly the running time a delivery QC pass times a program against. A 44-minute program that was cut and timed entirely on NDF timecode is roughly 2.64 seconds -- about 79 frames, well over two seconds -- ahead of where its own on-screen counter says it should be relative to the wall clock. On air, against a hard out-cue or a network junction point, that is not a rounding error; it is a missed break.

Drop-frame: the fix, and its own (much smaller) residual

Drop-frame timecode (DF) corrects this by skipping frame labels 00 and 01 at the start of every minute except each tenth minute -- 108 skipped labels per hour -- which realigns the counter to the wall clock without touching a single frame of picture. DF is not perfect either: because the correction happens in whole-frame jumps rather than continuously, it leaves a residual of approximately 3.6 milliseconds per hour -- roughly a thousand times tighter than NDF, and small enough that it only accumulates to a full frame after about 9.3 hours of continuous roll. For any program at normal broadcast lengths, that residual is functionally zero.

When NDF is still the right call

Drop-frame is not free -- the discontinuous numbering complicates edit math and confuses anyone reading timecode off a monitor. So NDF stays the right default for short-form work (anything under about ten minutes keeps drift under a second), for film-adjacent post at 23.976 fps (which has no drop-frame equivalent at all -- 23.976 is a slowed-down true-24 rate, not a broadcast-native NTSC rate, so there is no SMPTE drop-frame spec for it and the 0.1% drift is simply lived with or corrected downstream), and for any workflow that never has to line up against a hard broadcast automation out-cue.

Drift in seconds is rate-family-invariant -- 23.976 and 59.94 drift the identical seconds as 29.97, because the 0.1% comes from the shared 1000/1001 ratio; only the frame count differs, since 59.94 counts twice as many labels per second as 29.97.

Once a program is confirmed to be timed on the wrong scheme, this chart tells you how much it is off by -- to actually relabel a set of timecodes from NDF to DF (or back), use the DF/NDF Subtitle Timecode Converter.

How to use the Timecode Drift Calculator

  1. Pick a frame rate family - the 29.97 or 59.94 NTSC-derived rates where drop-frame applies.

  2. Read the drift at the five pinned markers: 30 seconds, 22 minutes, 44 minutes, 90 minutes and 2 hours, each in seconds and frames.

  3. Type your own program length for an exact figure, or convert a time-of-day timecode with the Timecode and Wall-Clock Calculator.

Frequently Asked Questions

How much does non-drop timecode drift per hour?

Exactly 3.6 seconds per hour at any NTSC-derived rate — non-drop timecode runs 0.1% slow because 29.97 fps is exactly 30 x 1000/1001, so an hour of labeled time (3,600 s x 0.001) ends up 3.6 seconds short of the wall clock. In frames at 29.97 fps that is about 108 frames behind; at 59.94 fps it is about 216 frames, since twice as many labels are counted each second for the same 3.6 seconds of drift.

Is drop-frame timecode perfectly accurate?

No, though it comes close: drop-frame corrects the 0.1% NDF drift by skipping frame labels, but because the correction happens in discrete whole-frame jumps rather than continuously, it leaves a residual of about 3.6 milliseconds per hour. That accumulates to roughly one full frame off every ~9.3 hours of continuous roll — irrelevant for any normal broadcast program length, but not literally zero.

Why does a 44-minute program matter?

44 minutes is the standard US one-hour broadcast content length once commercial time is stripped out — the exact running time a delivery QC pass times a program against. Cut and timed entirely on NDF timecode, a 44-minute program drifts about 2.64 seconds (roughly 79 frames) from the wall clock, which is more than enough to miss a hard out-cue or network junction point.

Does 23.976 have drop-frame?

No. Drop-frame only exists for the 29.97/59.94 NTSC-derived family; 23.976 fps is a slowed-down true-24 rate used for film and episodic post, and there is no SMPTE drop-frame specification for it. Workflows at 23.976 simply live with the 0.1% NDF drift, or convert to a different timecode base downstream, rather than correcting it in-label.

When is NDF acceptable?

Any time the drift stays small relative to the workflow's tolerance: short-form pieces under about 10 minutes (drift stays under a second), film-adjacent post at 23.976 fps, and any edit or review process that never has to line up against a hard broadcast automation out-cue. Once a program approaches broadcast lengths and has to hit an exact time, drop-frame (or a wall-clock-accurate conversion) is the safer choice.

How many frames behind is NDF after 2 hours?

About 216 frames at 29.97 fps. Two hours is 7,200 seconds, so NDF drift is 7,200 x 0.001 = 7.2 seconds, and 7.2 x 29.97 fps is about 216 frames. At 59.94 fps the same 7.2 seconds of drift works out to about 432 frames, since that rate counts twice as many labels per second.

More Video Calculators tools

Broadcast-accurate client review in VoiceDeck

VoiceDeck adds client review & approval for video, audio, images & PDF — one shareable link, no per-seat fees, so every file ships in spec.