Estimating club path and face-to-path from spin axis
Face-to-path is the gap between where your clubface is pointing at impact and the direction the club is actually swinging — and it's the single biggest reason a golf ball curves in the air. Whenever a monitor doesn't measure club delivery directly, ContactCoach works out club path, face angle, and face-to-path from spin axis and launch direction instead.
What do club path, face angle, and face-to-path actually mean?
Think of it like driving a car through a slight skid: club path is the direction the car is actually traveling down the road, and face angle is which way the steering wheel happens to be turned at that instant. Club path is the clubhead's direction through impact relative to your target line — positive means it's swinging in-to-out, negative means out-to-in. Face angle is where the clubface itself points at impact, relative to that same target line, and it's the biggest factor in your ball's starting direction. Face-to-path is the gap between the two — face angle minus path — and that gap is what curves the ball: positive (face pointing right of path, for a right-handed golfer) tends to produce a fade or slice, negative produces a draw or hook.
How does ContactCoach estimate it without a measured club path?
This is a simplified geometric model — sometimes called a "D-plane" model in ball-flight physics — not a physics simulation. It's built from two numbers every monitor already reports: your horizontal launch angle and your spin axis. Horizontal launch direction is dominated by where the face is pointing (more than where the path is going, for a full shot), so ContactCoach treats face angle as roughly equal to launch direction. Spin axis tilt, meanwhile, is driven by face-to-path — but not in a fixed 1:1 way. How much of that tilt shows up in spin axis depends on how high the ball is launching: a driver launched high "absorbs" more of that tilt into pure backspin, so ContactCoach has to divide by a bigger number to back face-to-path out of the spin axis reading. A wedge launched low and flighted needs a smaller divisor, because more of the tilt shows up directly as sidespin instead of getting soaked up by backspin. The exact numbers are in the box below.
For the nerds 🤓
impactCalc.ts builds the estimate from horizontal launch angle and spin axis:
face = launch_h // face ≈ where the ball starts
k = clamp(launch_v * 0.3, 1.5, 7) // scales with vertical launch
ftp = spin_axis / k // face-to-path estimate
path = face - ftp
k ranges from 1.5 (low, flighted launches, where spin axis tilt maps almost directly to face-to-path) up to 7 (high launches, where more of that tilt gets absorbed into backspin instead). The clamp keeps k from blowing up or collapsing at extreme launch angles.
How reliable is this per shot?
This is a rough, single-shot estimate, and it will disagree with a radar-measured face angle and club path — sometimes by several degrees. The biggest source of error is gear effect: catching the ball off-center is like flicking a spinning top away from its middle — the clubface twists slightly around its own center of gravity at impact, and that twist bends the ball's spin axis in a way that has nothing to do with your actual swing path. A toe strike, in particular, can tilt the spin axis enough to look like extra face-to-path that your swing never actually produced. Since this estimate has no way to know where on the face you struck the ball, it can't tell "your swing did this" apart from "your strike location did this."
What the estimate is genuinely good for is the pattern across a whole session. Average face-to-path over 15–20 shots with the same club and the mis-strikes wash out, leaving a real signal — "this driver session averaged +2° face-to-path" is something you can trust in a way that any single shot's +6° is not. Use individual shots to flag outliers worth a closer look, and use the per-club session average to judge your actual swing tendency.
When does ContactCoach use measured values instead?
Whenever a monitor exports both a measured face angle and a measured club path, ContactCoach uses those numbers as-is instead of the estimate, and marks the shot "measured" rather than "estimated." Trackman, Foresight's GCQuad, and FlightScope's Mevo+ with the Pro Package unlock all report both directly.
Try it
Upload your own session at / — or click "Explore a sample session" on that page — and compare per-club face-to-path averages across your bag. If you want to see how this pairs with landing behavior, the descent angle guide covers the other half of trajectory shape ContactCoach estimates.