A jumper lands on the plate, an IMU rides on her waistband, and a phone films from the side at 60 fps. The force plate says ground contact ended and take-off began at 1.240 seconds into the trial. The IMU, on its own onboard clock, marks the same take-off at 1.223 seconds. The video, hand-started a beat before the app began logging, puts it somewhere around frame 74 or 75 depending on who's counting - roughly 1.23 to 1.26 seconds. None of the three systems is malfunctioning. Each is reporting its own event correctly, on its own clock. Nobody told the three clocks to agree on when zero was.
That gap sounds trivial until it lands on a phase-based metric. Reactive strength index depends on the exact instant contact ends and flight begins. Braking-to-propulsion ratio depends on the exact instant the center of mass stops descending. Contraction-coupling time depends on aligning a force onset against a kinematic event a fraction of a second later. Shift any one of those boundaries by 15-20 milliseconds and the phase split moves enough to change which leg looks asymmetric and which session looks like a breakthrough versus a regression - not because the athlete moved differently, but because the ruler moved.
Why a Few Milliseconds Move the Metric
It helps to know just how sensitive phase-based outputs actually are to small timing errors, because the intuition that '20 milliseconds is basically nothing' runs exactly backwards for this class of metric. Kristianslund, Krosshaug and van den Bogert (2012, Journal of Biomechanics) worked with side-cutting trials on synchronized force plate and motion capture hardware, then deliberately shifted the force data a few frames relative to the kinematic data to see what happened to peak knee abduction moment, a metric widely used in ACL-injury-risk screening. Combined with realistic filter cutoff choices, that shift alone moved the calculated peak moment by roughly 40% or more in some trials, with no change to how the athlete actually moved. Worth naming as a limitation: this was a single-lab dataset from an already well-synchronized research setup, simulating what a small timing error does rather than measuring an inherently unsynced multi-device stack, so it establishes the sensitivity of the calculation rather than a number that transfers directly to any specific force-plate/IMU/video combination.
The broader picture comes from van der Kruk and Reijne (2018, European Journal of Sport Science), whose review of motion capture accuracy for sport applications found synchronization method mattered as much as raw sensor accuracy. Systems tied together by a shared hardware trigger reported alignment within a millisecond or two. Systems relying on each device's own internal clock and post-hoc timestamp matching - the default for a standalone force plate, a wearable IMU, and a phone camera running separate apps - reported offsets commonly landing in the 10-50 millisecond range, sometimes drifting further as the session went on. The caveat: it's a synthesis across studies of uneven quality and hardware generations rather than one controlled measurement, so the range is a rough summary, not a guarantee for any specific rig. Put the two findings together and the shape is clear - an offset well within what an ungenlocked three-sensor setup produces routinely is large enough, on its own, to swing a phase-sensitive metric by a margin that looks like a real performance change.
Three Places the Offset Comes From
'The sensors don't line up' isn't one problem, and treating it as one leads to the wrong fix nine times out of ten. There are three distinct mechanisms, and each leaves its own fingerprint in the data.
| Fingerprint | Most Likely Cause | How to Tell | Fastest Test |
|---|---|---|---|
| Fixed offset, same size every trial in a session | Trigger/start-time mismatch | Consistent gap regardless of trial length or time into session | Compare a sharp, identifiable event (heel strike, clap) across all three exports |
| Offset grows the longer the session runs | Clock drift between internal oscillators | Gap at trial 1 smaller than the gap at trial 20 | Plot the same-event offset against trial number across the session |
| Offset jumps in fixed steps, never smooth | Video frame-rate rounding | Offset always a multiple of one frame duration (16.7ms at 60fps, 33.3ms at 30fps) | Check whether the offset is close to n x (1/frame rate) |
| Offset varies randomly trial to trial, no pattern | Wireless transmission or buffering latency | No correlation with session time, trial order, or frame count | Log the app's internal receive timestamp against the device's onboard timestamp |
Diagnosing a Trigger Mismatch
The most common cause is also the least glamorous: someone tapped 'record' on the video app, waited a beat, then tapped 'start' on the force plate software, then clipped the IMU into recording mode a moment after that. Each system's internal clock starts counting from its own zero, set by three separate human button-presses spread across a second or two. Every event in that trial inherits the same fixed offset, because the gap was set once at the start and nothing afterward corrects it.
The signature is a flat, repeating offset: measure the gap between the same physical event - a heel strike is easiest, since it produces a sharp spike on a force plate, on an IMU's accelerometer axis, and a visually obvious video frame - across the first trial and the tenth trial of a session. If the gap is close to identical both times, the systems were simply started at different moments and never re-aligned - not drifting, just off by a constant amount a one-time correction fixes for the whole session.
Diagnosing Clock Drift Over a Session
A subtler failure shows up only in longer sessions or repeated testing days: two devices start out reasonably aligned but the gap between them grows as minutes pass. This is clock drift - every device's internal timing crystal runs at a very slightly different actual frequency than its nominal rate, and low-cost consumer-grade oscillators (the kind in a phone or a compact IMU) can be off by tens of parts per million. A drift of even 20 parts per million works out to about 1.2 milliseconds per minute - easy to shrug off in a five-minute warm-up but enough to add up to 15-20 milliseconds or more across a 15-20 minute session with dozens of jumps, exactly the range the studies above show is sufficient to move a phase metric.
The tell is a widening gap: if the same-event offset measured early in a session is smaller than the offset measured late in the session, drift is the mechanism, not a trigger mismatch. The fix differs, too - a trigger mismatch needs one correction applied to the whole file, while drift needs either a periodic re-sync event inserted every few minutes or a linear correction that scales with elapsed time.
Diagnosing Video Frame-Rate Rounding
Video adds a failure mode the other two systems don't have: it can only report an event to the nearest frame. A camera at 30 fps samples the world every 33.3 milliseconds; a camera at 60 fps every 16.7 milliseconds. If take-off actually happens 8 milliseconds after a frame was captured, the video record shows take-off happening at that frame anyway, since there's no frame in between to catch the true instant. Even a perfectly synchronized feed carries this built-in rounding error, and it worsens whenever someone drops frame rate to save storage or battery.
The signature is a discrete, stepped offset rather than a smooth or growing one: the gap between video-derived and sensor-derived timing clusters near multiples of the frame duration - close to 16.7ms, 33.3ms, or 50ms, rather than an arbitrary value. That pattern means the fix isn't re-synchronizing the systems, since they may already be well aligned; it's accepting that video alone can't resolve an event finer than one frame, and either raising frame rate (120fps or higher for anything phase-critical) or treating the force plate or IMU as the timing reference and using video only for qualitative confirmation.
The Alignment Protocol
Run this before trusting a phase-based metric pulled from two or more independently started systems.
- Record a physical sync event before the real trials start. A hard clap directly above the force plate, or a sharp heel-strike onto it, produces a spike visible on the plate, on an IMU worn anywhere on the body, and as a clear frame in video.
- Measure the offset between systems at that sync event. Pull the raw timestamp of the spike from each export and record the gap between them in milliseconds - the correction to apply across that session, assuming no drift.
- Repeat the sync event at the end of the session. If the end-of-session offset matches the start within a couple of milliseconds, a single flat correction is safe. If it differs by more than roughly 5-10 milliseconds, drift occurred and a time-scaled correction is needed instead.
- Check the residual against the frame-duration table before trusting fine video timing. If what's left after correction is close to a multiple of the frame interval (16.7ms at 60fps, 33.3ms at 30fps), that's rounding, not a real alignment error - don't chase it with another correction pass.
- Re-run the sync check any time equipment changes mid-session. Swapping a phone, restarting the plate software, or re-pairing the IMU resets whatever offset was previously measured.
A Setup That Avoids Most of This
The cleanest fix is avoiding the need to correct for offset at all. Where hardware supports it, use a shared trigger - a TTL pulse or contact-closure signal starting the force plate, IMU logger and video capture at the same instant - since van der Kruk and Reijne's review found this class of setup aligning within a millisecond or two, an order of magnitude tighter than independently timestamped systems. Where triggering isn't available, standardize on a manual sync event at the start and end of every session as a fixed habit, not an occasional check, and prefer devices that log against a shared or network-synchronized clock over ones that timestamp locally and reconcile later. For anything phase-critical, push video capture to 120fps or higher rather than 30 or 60, since the frame-rounding error shrinks in direct proportion to frame rate.
Worked Example: Three Systems, One Jump
A countermovement jump is recorded simultaneously on a force plate, a waist-mounted IMU, and a 60fps phone camera, with a heel-tap sync event captured at session start on all three.
| System | Raw Take-Off Timestamp | Sync-Event Offset | Corrected Take-Off Time |
|---|---|---|---|
| Force plate | 1.240 s | Reference (0 ms) | 1.240 s |
| IMU | 1.223 s | +17 ms | 1.240 s |
| Video (60fps) | Frame 74 (1.233 s) | +7 ms, plus up to 16.7ms rounding | 1.233-1.250 s window |
The sync event shows the IMU running 17 milliseconds behind the plate all session, a flat offset consistent with a trigger mismatch rather than drift, since the same 17ms gap shows up at the end-of-session check too. Applying that correction, the IMU's raw 1.223s becomes 1.240s - a match with the plate. Video is a different story: its raw frame-74 reading is already close to the plate's value once the 7ms fixed portion is corrected, but a 60fps camera can only place the true instant somewhere within a 16.7ms window around that frame, so 1.233-1.250 seconds is the honest range, not a single value. Before correction, an analyst comparing the plate's 1.240s against the IMU's raw 1.223s would have logged a 17-millisecond discrepancy and possibly flagged an equipment fault - a false alarm chasing a hardware problem that a two-point sync check resolves as timing, not tracking, error.
Frequently asked questions
01How much time-sync offset is actually acceptable before it matters?+
02Can I just eyeball the video and force plate trace to line them up?+
03Does a more expensive IMU or force plate solve this by itself?+
04How does PoinT GO handle synchronization between its IMU and force plate data?+
05If my offset grows across a long session, is a linear correction good enough, or do I need something more complex?+
Related Articles
Force-Plate CMJ Phase Identification Errors: How Unweighting, Braking and Propulsion Get Mislabeled
Braking RFD jumped 50% overnight? Your force plate likely mislabeled the braking-propulsion boundary. Fix CMJ phase identification errors before they skew data.
Dual Force Plates: When Crosstalk Fakes an Asymmetry
A 'weak' side on a dual force-plate CMJ can be crosstalk between plates, not real asymmetry. Here's the swap-side test that tells them apart.
Fixing 2D Perspective Error in Video Barbell Velocity Readings
Camera angle and bar depth drift can throw off video velocity readings by 5-15%. See the geometry behind the error and how to correct your camera setup.
IMU Sampling Rate Too Low for Plyometrics: How to Diagnose and Fix It
Ground contact under 200ms needs real timing resolution. See how low IMU sampling rate creates quantization errors that skew RSI, and the minimum Hz to use.
Bluetooth Dropout Losing VBT Reps Mid-Set: How to Diagnose and Fix It
A set logs 4 of 6 reps and the velocity chart has a gap. Split the cause into interference, distance and buffering, then recover the missing data.
Chest-Strap Heart Rate Dropouts During Sprints: How to Diagnose and Fix Them
The trace looks fine on the jog in, then flatlines or spikes to 220 the moment you hit top speed. Separate the real causes and stop losing sprint HR data.
Fixing Force Plate Peak Force Clipping With Heavy Athletes
A 148kg prop's landing or pull can hit the plate's rated ceiling before it hits true peak force. Here's how to spot clipping and size capacity correctly.
How to Improve Acceleration in Football: IMU-Driven 0-10m Sprint Power Protocol
This 12-week protocol uses IMU jump and barbell velocity data to find where power leaks and build 0-10m acceleration in football players.
Measure performance with lab-grade accuracy