Measured on a public benchmark
How accurate is AnchorStance?
We measured our production pipeline against GolfDB, a public dataset of real golf swings with every key position marked frame-by-frame by independent annotators, using the same strict metric academic systems report. Here are the numbers, and exactly how we got them.
91.4%
Face-on key positions on time
210 real swings, all 8 positions, GolfDB tolerance
96.1%
Impact within ±1 frame
Face-on strict tolerance, the moment that matters most
77.4%
Down-the-line key positions
277 swings, the harder camera angle, reported anyway
95.9%
Of clips analyzed
The rest screened out with a specific reason, never silently
Above the published research baseline
Face-on key-position detection under GolfDB’s unmodified strict metric, with identical scoring for both systems.
SwingNet is the detector published with the GolfDB dataset (McNally et al., 2019); 76.1% is its reported score on the dataset’s full test split.
Accuracy by timing tolerance
Face-on, all 8 positions. One frame at 30fps is 33 ms, and most detections land within a single frame of the human annotation.
Every position, measured
Face-on results for each of the 8 detected swing positions across 205 analyzed swings, including the ones that are hardest to pin down.
| Swing position | On time | Median timing error |
|---|---|---|
| Address † | 89.3% | 50 ms |
| Takeaway | 96.6% | 17 ms |
| Mid-backswing | 95.1% | 0 ms |
| Top | 85.4% | 17 ms |
| Mid-downswing | 94.6% | 33 ms |
| Impact | 96.1% | 17 ms |
| Follow-through | 94.1% | 17 ms |
| Finish † | 80.0% | 117 ms |
† Address and finish are scored at ±250 ms: the GolfDB paper notes these two moments are subjective even between human annotators. All other positions use the strict ~±1-frame tolerance. Down-the-line swings score 76.7% overall under the same rules, a harder camera angle we publish anyway and keep improving.
How we measured it
Accuracy claims are easy to make and hard to check, so here is the full recipe. Evaluated September 2026. We re-run the benchmark as the pipeline evolves.
A public, independently annotated benchmark
We evaluate against GolfDB (McNally et al., CVPR Workshops 2019), a public research dataset of real golf swings in which humans marked the exact frame of all 8 swing positions. The ground truth was created by independent annotators for academic research, not by us.
487 human-verified swings, mirroring real app input
The benchmark covers 210 face-on and 277 down-the-line swings at 30 and 60 fps, each clip trimmed to the swing the way the app trims your uploads (~5 seconds), with every trim verified frame-exactly by hand. All clips are normal-speed phone-style footage, the same kind of video the app is built for.
The exact pipeline customers run
Results come from the production analysis pipeline in its shipping configuration: no evaluation-only tuning, no cherry-picked model. When the pipeline can’t verify a clip (for example the ball isn’t clearly visible at address), it says so and screens the clip out rather than returning a confident-but-wrong analysis. That happened on 20 of 487 clips, each with an actionable reason, mostly triggered by broadcast-TV artifacts like on-screen graphics that phone recordings don’t have.
A strict, published metric
A position counts as correct only within GolfDB’s tolerance, roughly ±1 frame for in-swing positions. Address and finish are scored at ±250 ms because the GolfDB authors themselves note those two moments are subjective even for human annotators (when exactly a setup “starts” spans a fraction of a second). The comparison against SwingNet uses the unmodified paper metric for both systems.
Key-position timing is the foundation every downstream number is built on. A metric measured at the wrong frame is a wrong metric. It isn’t the whole story: individual swing metrics are also labelled measured or estimated in the app, so you always know how much to trust a number.
Measure your own swing against tour ranges.
The same pipeline we benchmark is the one that analyzes your swing.