krengo
NO

Can GPS measure bike lean angle?

It can estimate it, under conditions. In synthetic 1 Hz tests at 35 km/h on 60 m-radius turns with independent 3 m position noise per axis, the median absolute error was 2.3° and the 90th percentile 5.7°, on the 83.9% of recorded turning points that received an estimate. This has not been validated on real rides. In tight turns, or when the watch records in Smart Recording mode, it gets much worse.

That is a software test, not a field result. Read it as a map of where the method can work and where it cannot, not as “±2.3° for your watch”.

Why GPS can estimate lean at all

In a steady turn, a bike leans so that gravity and the sideways acceleration balance. The sideways acceleration is speed times turn rate, so the tilt of the line from the tyre contact to the combined centre of mass of rider and bike is

tan θ = v · ω / g

where v is speed in metres per second, ω is how fast the heading changes in radians per second, and g is gravitational acceleration. Because ω = v / r, this is the same relationship as θ = atan(v² / (g · r)) in our guide to measuring bike lean angle. The ω form is handy because it comes straight from a track.

A GPS file stores position and speed at each recorded point. Heading follows from consecutive positions, and its change over a few seconds gives ω. The model we tested smooths over a 3 s window, ignores speeds below 3 m/s and refuses gaps longer than 2.5 s between points. Those limits are why the recording interval matters so much further down.

The result describes the idealised tilt of the rider-and-bike centre of mass in a steady turn on a flat road. GPS does not observe the frame, so it is an estimate of lean, not a measurement of it.

How we tested it

We built synthetic rides from exact straights and circular arcs: a 180° right turn, a right-left S-bend and a 360° roundabout, each at constant speed. Speeds ranged from 15 to 55 km/h and radii from 8 to 60 m, and the true lean for each case is atan(v² / (g · r)). We added noise to the positions, ran our unchanged GPS lean model on the result, and repeated every case with 30 independent noise draws. The noise here is independent Gaussian error with a standard deviation of 3 m on each of the east and north axes. That is a harsher reading of Garmin’s “about 3 m” than treating it as a radial 95th percentile, so it is a deliberately demanding scenario. The sources for the noise range are Garmin’s GPS accuracy article and GPS.gov; neither gives the error structure of a specific watch, so every noise level here is an assumption. No real ride, route or person is involved.

How the error changes with turn radius

Estimation error against turn radius for three speeds In synthetic 1 Hz tests with 3 m position noise, the median error on 60 m turns is 2.32° to 2.65° at 25, 35 and 55 km/h. On 15 m turns it rises to 4.15° to 9.68°, and the 90th percentile reaches 45.14° at 55 km/h. 0° 10° 20° 30° 40° 50° 15 m 30 m 60 m Turn radius (log scale)
  • 25 km/h
  • 35 km/h
  • 55 km/h
  • median error
  • 90th percentile
Synthetic 1 Hz tests, independent 3 m position noise per axis, 30 repetitions per case. Solid lines: median absolute error. Dashed lines: 90th percentile. The 8 m radius is left out because it is a stress case. Not real rides.
Synthetic 1 Hz tests, independent 3 m position noise per axis
SpeedRadiusMedian error90th percentilePoints with an estimate
25 km/h15 m4.15°11.48°53.50%
25 km/h30 m2.44°6.12°50.52%
25 km/h60 m2.44°5.64°57.27%
35 km/h15 m5.99°21.01°75.95%
35 km/h30 m2.89°8.92°75.36%
35 km/h60 m2.32°5.67°83.89%
55 km/h15 m9.68°45.14°100.00%
55 km/h30 m4.60°17.82°99.05%
55 km/h60 m2.65°8.67°98.17%

Wide turns work best. On 60 m radius the median error stays between 2.32° and 2.65° from 25 to 55 km/h, and the 90th percentile between 5.64° and 8.67°. At 15 m the median is 4.15° to 9.68°, and the 90th percentile reaches 45.14° at 55 km/h.

Not every point gets an estimate. The error is calculated only on points that received one. At 25 km/h that was 50.52% to 57.27% of the turning points, and at 35 km/h 75.36% to 83.89%. A small error on half the points is not the same as a small error on the whole turn.

The noise model matters. If the position error drifts slowly instead of jumping independently at every point (a Gauss-Markov model with a 30 s correlation time), the same 35 km/h, 60 m case gives a median of 0.83° and a 90th percentile of 2.66°. We have not measured which behaviour a real device shows, which is the main reason we do not quote one typical number.

The peak is the least trustworthy number. With independent noise, the estimated peak in the 35 km/h, 60 m case had a median of 13.66° against a true 9.13°. Noise adds jitter, and a maximum picks the upward jitter. If you share the highest lean of a ride, treat it as an upper-leaning guess.

What makes the estimate wrong

Tight turns

Smoothing over 3 s flattens a sharp corner. At 35 km/h on a 15 m radius the true peak is 32.72°, and the estimated peak had a median of 25.71°. The average bias there is −8.60°: the estimate loses lean on both sides. At the extreme of 55 km/h on an 8 m radius, a mathematical stress case with a true 71.42° that no real ride resembles, even noise-free data gave a median peak of only 56.16° on the half circle and no estimate at all on the full roundabout.

Short turns

A 3 s window needs time to follow a change. A quick flick, a chicane or a switchback is over before the estimate has caught up, and the start and end of every corner are blurred. Our error figures include corner entry and exit, which is part of why short corners score worse than long ones.

Road banking and rider position

The model assumes a flat road and a steady turn, and it estimates the tilt of the combined centre of mass. A rider who hangs off the inside, a banked corner, braking, climbing or a GPS outlier near trees or buildings can all move the real frame lean away from the GPS number. None of these is modelled in our test, so we cannot say how much each one costs.

Smart Recording ruins the corners

Garmin devices can store points at variable intervals (Smart Recording) instead of once every second (“Every Second”). Smart Recording can leave gaps between points, but a corner needs consecutive points less than 2.5 s apart.

In our test we gave the recording uneven 1 to 8 s intervals. That distribution is an assumption: it is not Garmin’s actual algorithm. The result was blunt. At 35 km/h on 60 m turns, none of 520 turning points received an estimate, and in all but two of the speed and radius cases not a single turning point did. When a file has no usable estimates and sparse points like this, our analyser says so instead of drawing a flat line.

The fix has to happen before the ride: on Garmin, set Data Recording to Every Second (menus differ by device). A file already recorded with Smart Recording cannot be repaired afterwards.

So, should you trust it?

The next step would be real rides against an independent reference. Until then, this page only shows where the method can work.

Try it on your own ride

Our free analyser runs entirely in your browser: your file never leaves your device. GPS estimates. Krengo measures: a fixed IMU observes the frame’s orientation directly instead of inferring it from a track, though its accuracy also needs checking against an independent reference.

Frequently asked questions

Can GPS measure bike lean angle?

It can estimate it from speed and turn rate, in a steady turn on flat road. In synthetic 1 Hz tests at 35 km/h on 60 m-radius turns the median error was 2.3° and the 90th percentile 5.7°; this has not been validated on real rides.

Why do tight turns give worse results?

The estimate smooths over about 3 s of track, which flattens a sharp corner. At 35 km/h on a 15 m radius the true peak was 32.72° and the estimated peak had a median of 25.71°.

Does Garmin Smart Recording affect lean estimates?

Yes. A corner needs points less than 2.5 s apart. In our test with uneven 1 to 8 s recording, none of 520 turning points at 35 km/h on 60 m turns received an estimate. Set Data Recording to Every Second before the ride.

Is GPS lean the same as the lean of the frame?

No. It estimates the tilt of the combined rider and bike centre of mass in an ideal steady turn. Rider position, banking and braking can make the frame angle differ.

Related pages

Method: synthetic straights and circular arcs, 30 noise draws per case, Garmin and GPS.gov pages used only for the noise range. All figures come from a software test of our own model and are not field results.

Back to krengo.pro