What a golf swing analyzer app can and cannot measure

A single phone camera behind you measures posture, swing plane, hand depth, hip movement and head movement well. It cannot measure clubface angle at impact, strike location on the face, true 3D club path, or pressure shift — those need a launch monitor or multiple cameras. An app that reports all of them from one video is inferring, not measuring.

What one camera behind you reads well

The down-the-line view is the most informative single angle in golf, and these are the things it genuinely measures:

What these share: they are large, positional, and visible in two dimensions. That is the domain where phone video is genuinely good.

What it cannot see

The frame rate problem

Golf happens faster than consumer video samples it. Event-detection error of about 20 milliseconds — barely more than one frame at 60 fps — can shift a knee-angle reading by up to 20°. Precise localisation of transition and impact really wants 120 fps and prefers 240.

The extreme case: ball contact lasts under a millisecond, so genuinely capturing it would take something around 2000 fps. Every phone-based analysis is therefore working with the nearest visible frame to impact, not impact itself. That is a perfectly reasonable approximation. Claiming otherwise is not.

Why pose estimation is harder than it looks

Reading a body from a single camera means reconstructing three dimensions from two, and the missing dimension has to be inferred. Occlusion, depth loss and parallax all work against it, and hands specifically are among the least reliable points in golf-specific evaluations of monocular pose models — which is unfortunate, given how much of golf is about where the hands are.

This is the argument for tracking the club with its own dedicated model rather than guessing club position from body pose. It is also the argument for confidence: when a joint is occluded by the club, motion-blurred through transition, or cropped out of frame, the honest response is to soften or suppress the feedback, not to report a number with false precision.

Why club selection changes the answer

A checkpoint range that is correct for a 7-iron is wrong for a 3-wood. Shorter, higher-lofted clubs produce a more vertical swing plane; longer clubs are naturally shallower. Shots off the ground want a descending strike, while a driver generally benefits from a less negative or slightly positive attack angle.

Any app that grades every club against one set of thresholds will tell you your wedge swing is too steep and your fairway wood is too flat, when both were fine. Club-aware ranges are not a refinement; they are a correctness requirement.

On-device versus upload

Two ways to run this analysis. Upload your video to a server and process it there, or run the model on the phone.

On-device means the video never leaves your phone. There is no clip of you sitting in someone's storage bucket, no retention policy to read, no breach that can expose it. It also works without a signal, which matters at a range with poor reception, and there is no upload wait between swings.

The engineering constraint is real — the model has to be small enough to run on the device — but modern phones handle body-pose and object-tracking models comfortably. If an app uploads your swing video, it is worth knowing what happens to it afterwards.

What to look for

It does not replace a coach

Worth stating plainly. Video analysis measures what one camera can see and tells you which visible thing is costing you most. A coach sees what you cannot film, watches you hit balls in real time, understands your physical limitations, and adjusts as you change.

The realistic role for an app is the space between lessons — the range session on a Tuesday where nobody is watching, and the honest answer to whether the thing your coach told you to change has actually changed.

Measure it instead of guessing

FormCaddie runs entirely on your iPhone, measures the twelve things a rear-view camera reads reliably, and says out loud what it cannot see.

Download FormCaddie free