How a phone measures a treadmill run

Short answer

Indoors a phone cannot use satellites, so treadmill distance has to come from your step count multiplied by an estimate of your stride length. That estimate is a formula rather than a measurement, which is why an honest app labels the result as an estimate and why the treadmill console and the app will not agree. Knowing which of the two numbers is a guess is more useful than trying to make them match.

On a treadmill you are not travelling anywhere. Your phone cannot see satellites indoors either, so indoor distance has to be built out of the one thing it can still observe directly, which is your steps.

That makes treadmill distance an estimate by construction rather than by carelessness.

Why GPS is useless indoors

Two problems, and either one alone would be enough. The first is the roof. The United States government's GPS accuracy page lists satellite signal blockage from buildings, and indoor or underground use, among the common causes of degraded positioning, and puts open sky smartphone accuracy at roughly a 4.9 m radius (GPS.gov, GPS Accuracy, fetched 2 August 2026).

Problem two survives even a perfect fix. Satellite distance is the length of a path traced across the ground, and on a treadmill your position does not change. A tracker that somehow held a clean fix indoors would still report close to zero, with noise scattered around it, because there is no path to trace.

So indoor mode is not outdoor tracking with a handicap. It is a different measurement with a different failure mode.

Step count times stride length

The arithmetic is one line. Distance equals the number of steps you took multiplied by the length of one step. The phone can count the first term with dedicated hardware.

It cannot measure the second term at all.

On Android the counter is a hardware sensor. Google's documentation describes the value it reports as the number of steps taken by the user since the last reboot while the sensor was activated, and notes that it carries more latency, up to 10 seconds, in exchange for more accuracy than the step detector (Android motion sensors documentation, fetched 2 August 2026). The count is cumulative, not per session, so an app has to subtract a baseline, and a reboot sets it back to zero.

Core Motion's pedometer is the iPhone equivalent, and Apple's own reference is careful with the wording: the distance field is the estimated distance, in meters, travelled by the user, and cadence is the rate at which steps are taken, measured in steps per second (Apple, CMPedometerData, fetched 2 August 2026). Neither capability is guaranteed on every device, which is why Core Motion exposes separate availability checks for step counting and for distance (Apple, CMPedometer, fetched 2 August 2026).

Steps are the half of the sum that holds up well once you are running. In a laboratory test of a smartphone pedometer app against an instrumented treadmill, absolute percentage error was 0.4% to 0.7% at 6 km/h and 1.1% to 4.3% at 4 km/h, but rose to 19.3% to 24.1% at 2 km/h depending on where the phone was carried (Presset, Laurenczy, Malatesta and Barral, Journal of Exercise Science and Fitness, 2018).

Slow walking is hard to detect. Running is not.

Indoor distance: what is counted and what is assumed
TermWhere it comes fromWhat moves it
Step countA dedicated step counting sensor in the phoneWhere you carry the phone, and very slow movement
Step lengthA formula built from cadence and body sizeYour actual gait, which the phone cannot see
DistanceThe two multiplied togetherAny error in either term, compounded

Where the stride estimate comes from

From a formula. Cadence and body size go in, a step length comes out, and Runflake's indoor mode is one worked example with its constants written out in full. It is a separate recording path that never turns GPS on, distance is the step count multiplied by an estimated stride length, and the engine explicitly rejects the alternative of double integrating the accelerometer. The formula is a 0.30 m base plus 0.006 m for every step per minute of cadence, scaled by your height against a 170 cm reference. At that reference height it gives 1.20 m per step at 150 steps per minute and 1.38 m per step at 180. If the app knows your height it uses it. If it does not, the estimate falls back to the 170 cm reference, silently.

Cadence for that formula is itself derived, not sampled. It is computed from the steps counted in a rolling 10 second window, and a batch covering a longer span is normalised by its own duration so that no steps are dropped, and because a rolling window smooths and lags, a change of gear on the belt reaches the cadence figure slightly after you make it.

Runners do not all buy speed the same way, and that is the weak point of any cadence based formula. In one treadmill study, cadence rose only from 169.2 steps per minute to 177.9 as speed went from 2.68 m/s to 3.83 m/s, while mean stride length rose from 0.98 m to 1.30 m, and eight of the runners changed cadence by no more than four steps per minute and took longer steps instead (Leacox et al., International Journal of Sports Physical Therapy, 2025). A formula reading cadence has to guess the part those eight runners were using.

Indoors the step feed is the only clock, so the phone pushes the last cumulative step value once per second even when you are standing still. The timer keeps running while the distance does not.

That stride estimate does not improve with use: it is the same on your first indoor run as on your hundredth.

What the app cannot know about your treadmill

Your phone is a passenger. It has no connection to the machine and no reading of the belt, so a whole category of information is missing from the recorded run.

  • Belt speed.
  • Incline. Nothing in a step count carries gradient, which is why indoor runs show no elevation numbers.
  • Whether you were holding the handrails, which changes the run but not the step signal.
  • Whether the machine is in calibration, which is a question about the console's number and not the phone's.
  • Where the phone is. Carried on your body it sees your steps, not the setting on the console. Parked on the console tray it does not move with you.

Placement is not a small detail. In the treadmill study above, error at 2 km/h varied with where the phone was worn: 19.3% on a waist belt, 19.7% strapped to the upper arm and 24.1% attached to a jacket, while at 6 km/h all three positions sat between 0.4% and 0.7% (Presset et al., 2018). Placement matters most when you are moving slowly. Keep the phone in the same place from session to session and the bias at least stays consistent.

Why the console and the app disagree

They are answering different questions.

The console measures the belt. Manufacturer service documentation describes the mechanism plainly.

The speed sensor is a reed switch mounted beside the drive roller pulley. There are two magnets in the drive roller pulley that activates the reed switch (speed sensor) once each revolution.

Precor 9.23 treadmill service manual, speed sensor troubleshooting procedure

What the console reads is the roller turning under the belt, and its figure is built from that (Precor 9.23 service manual, procedure 5.3, fetched 2 August 2026), while the phone counts your steps and multiplies by an assumed step length. Two different quantities, measured by two instruments that were never compared against each other, and no reason for them to land on the same number.

The belt side is not a fixed truth either. Sole, a treadmill manufacturer, states that treadmill speed is usually accurate to within 0.1 MPH of what is shown on the screen and recommends professional calibration at least once a year (Sole Fitness, How Accurate Is Treadmill Speed, fetched 2 August 2026). A belt that has stretched or a machine that has never been calibrated will still display a confident figure.

Stop reconciling them. Choose one source for treadmill sessions and stay with it, exactly as you would when the same outdoor run comes back with two different distances from two apps. The reasoning is the same in both cases, and is covered in why two apps measure the same run differently.

What a phone with no step sensor can still do

Time. That is the value most training is written in anyway. Step based distance needs a hardware step counter and motion permission. If either is missing there is no honest distance to show, but the session is still recordable.

  1. Run the session to the clockSet the workout in minutes, not kilometres. A 40 minute steady run and a 6 x 3 minute session both work without a distance figure.
  2. Take the console figure if you want a distanceIt is the machine's own number, derived from belt travel. Stay on the same machine and whatever error it carries stays constant. Write down that the figure came from the console.
  3. Record effort next to the numbersA rating of perceived exertion, or a note like comfortable, steady or hard, compares across machines in a way no distance readout can.
  4. Check what your app does when the sensor is absentAn app that keeps the clock running and says distance is unavailable is telling you the truth. One that draws 0.00 km is filling a gap you cannot see.

Check that last one before your next indoor block, not after it. What a phone alone can and cannot cover across both indoor and outdoor sessions is set out in running with only your phone.

What indoor mode does not include

The gaps are as informative as the features. In Runflake, indoor runs show no elevation numbers, because without GPS there is nothing to base them on. Curated courses cannot be followed indoors. Interval workouts and goals do work indoors. Only outdoor GPS runs enter a ranking board, so treadmill sessions never appear on one, and an indoor run cannot set the best 1 km lap that achievement badges are scored on.

Two further absences are worth naming. There is no treadmill calibration screen, so the console figure cannot be typed in to pull the estimate toward it. And steps taken while the app is closed can be recovered on iPhone, while on Android that interval cannot be recovered, so a session that gets killed on an Android phone loses the steps taken in the gap.

The refusals are explicit, not silent. That is the thing to check in any app: whether a missing sensor produces a sentence or a zero.

  • Indoor running requires a hardware step sensor and motion permission. With no step sensor the app refuses to start an indoor run, shows "Indoor distance is not available", and offers to run outdoors instead.
  • If the sensor or the permission is missing, the step feed emits nothing rather than zeros, and the screen says: "This phone has no step sensor, so distance is not measured. Time is still recording."
  • Before the first steps arrive, the screen reads "Waiting for your first steps. Time is already recording." instead of a zero distance.
  • A run with no step samples reports no pace and no cadence at all, instead of a fabricated 0:00/km.
  • Every indoor run carries an Estimated marker on the distance.

Reading an estimate honestly in your training log

Treat indoor distance as a unit of its own. It is not a kilometre that can be compared with an outdoor kilometre, and the comparison you can trust is indoor against indoor, from the same source, with the phone in the same place.

  1. Log duration first and distance second. Duration is measured. Distance indoors is derived.
  2. Note the source next to the number, console or app. A log with two unlabelled sources produces phantom improvements every time you switch machines.
  3. If indoor and outdoor distance go into one weekly total, keep the split visible underneath it.
  4. Watch cadence on the treadmill, not pace. Cadence comes from counting steps, the part the phone actually observes.
  5. Repeat the same session on the same machine when you want evidence of progress. That holds the belt, the calibration and the stride formula constant, so the only thing left changing is you.

None of this is a reason to skip indoor sessions. Know which of your numbers is measured and which is inferred, so that a change in the log means a change in your running. The other half of that discipline is making sure the session survives at all, covered in why running apps lose runs.

Common questions

Why does my phone show a different distance from the treadmill console?
They are computing two different quantities. The console reads the drive roller turning and builds its figure from belt travel, while the phone counts your steps and multiplies by an estimated step length. Neither figure is calibrated against the other, so a gap between them is the normal result rather than a fault in either one.
Can a phone track a treadmill run without a watch?
Yes, if the phone has a hardware step counter and you grant motion permission. The phone counts steps and derives distance from an assumed step length, which is why the result is presented as an estimate. A watch has to infer indoor distance from motion in the same way, so wearing one does not remove the guess.
Should I log the treadmill distance or the app distance?
Pick one source and use it for every treadmill session so that week to week comparisons stay meaningful. Mixing the console figure into a log that otherwise holds app figures creates fake progress and fake regressions. Time and effort are the two values that carry across both sources without any conversion.
Does holding the handrails change what the phone records?
The phone has no way to know whether you are holding on, so nothing in the recorded distance reflects it. All it sees is the step signal from its own sensor, which continues as long as your body keeps producing step impacts. That is one of several things a treadmill knows about your session that a phone in your pocket does not.

Keep reading

All articles