Estimating VO₂max from training data: How the number on your watch is made
A straight line through heart rate and power, extended to maximum heart rate: that is how VO₂max is made without a lab. What the number can do, why HRmax decides everything and where the model stops.
Almost every sports watch shows a VO₂max value today, and almost nobody who sees it has ever been in a lab. The number comes out of ordinary training sessions. This article sorts out how that works, why two devices show different values for the same person, and what you can actually do with the number. It ends with where the estimate breaks down, because that is the part hardly any manufacturer writes down.
What VO₂max actually is
VO₂max is the largest amount of oxygen your body can take up and use per minute, expressed in millilitres per kilogram of body weight per minute. It is the size of your aerobic engine: cardiac output, blood volume, capillaries and mitochondria in a single number. In the lab it is measured with a cardiopulmonary exercise test, a step or ramp protocol to exhaustion with gas analysis. Untrained adults mostly sit between 35 and 45, ambitious endurance athletes between 50 and 65, professional cyclists and cross-country skiers between 75 and 90.
For classification, Garmin, the American College of Sports Medicine and trace all use the norms of the FRIEND registry (Kaminsky et al. 2015), graded by age and sex. The lower bounds of each category, in ml/kg/min:
| Age | Average | Good | Very good | Excellent |
|---|---|---|---|---|
| Men 20 to 29 | 41.7 | 45.4 | 51.1 | 55.4 |
| Men 30 to 39 | 40.5 | 44.0 | 48.3 | 54.0 |
| Men 40 to 49 | 38.5 | 42.4 | 46.4 | 52.5 |
| Men 50 to 59 | 35.6 | 39.2 | 43.4 | 48.9 |
| Women 20 to 29 | 36.1 | 39.5 | 43.9 | 49.6 |
| Women 30 to 39 | 34.4 | 37.8 | 42.4 | 47.4 |
| Women 40 to 49 | 33.0 | 36.3 | 39.7 | 45.3 |
| Women 50 to 59 | 30.1 | 33.0 | 36.7 | 41.1 |
Below the first column counts as below average. These bands are population norms, not performance classes: "excellent" at 55 is a solid amateur in cycling, not a pro.
How a watch estimates without a lab
The trick rests on an old relationship: within one person, heart rate rises roughly linearly with oxygen demand (Swain et al. 1994). And the oxygen demand of a given effort can be computed from the effort itself. On the bike, every watt burns about 12 millilitres of oxygen per minute, plus a baseline of around 300 ml. When running, every kilometre per hour on flat ground costs about 3.5 ml/kg/min, more uphill. These are the ACSM equations that have been in exercise physiology textbooks for decades.
That turns every session into an experiment. An algorithm looks for stretches in which power (or pace) and heart rate are stable, computes the oxygen demand of each stretch, plots it against heart rate and fits a straight line. It then extends that line to maximum heart rate. The value there is the VO₂max estimate. Firstbeat patented the method, Garmin, Suunto and Polar use variants of it, and it is how trace computes the number too.
A worked example
A 75 kg rider does one steady block at 200 W with a heart rate of 150 and a harder one at 260 W with a heart rate of 170.
- 200 W: (12.35 × 200 + 300) / 75 = 36.9 ml/kg/min at 150 bpm
- 260 W: (12.35 × 260 + 300) / 75 = 46.8 ml/kg/min at 170 bpm
The slope of the line is (46.8 − 36.9) / (170 − 150) = 0.495 ml/kg/min per beat. With a maximum heart rate of 190 there are 20 beats left above the hard block: 46.8 + 20 × 0.495 = 56.7 ml/kg/min. Real sessions contain dozens of stretches instead of two points and the line is fitted with weights, but the principle is exactly this.
And now the most important thing about the example: with a maximum heart rate of 185 the same session would give 54.2, with 195 it would give 59.2. Five beats in the assumption about your max heart rate move the result by two and a half points. If you do not know your HRmax and let the watch use an age formula (Tanaka: 208 − 0.7 × age), you get a number whose error bar is bigger than a whole year of training progress.
What trace does beyond the bare formula
The line is only as good as the points that carry it. So a series of filters sits in front of the regression, and a second method checks the first afterwards.
- Stable stretches only. Blocks of 30 seconds to four minutes count, in which heart rate varies by at most 2.5 beats and power by at most 12 percent. Starts, traffic lights and descents drop out.
- No cardiac drift. If heart rate climbs by more than 1.5 beats per minute at constant power, that is dehydration, heat or fatigue, not oxygen demand. Such stretches are discarded; otherwise the drift flattens the line and drags the estimate down.
- Plausible slope. Physiologically the gain lies between 0.15 and 1.0 ml/kg/min per beat. Fits outside that range are noise and are not extrapolated to HRmax.
- Goodness of fit. A session only counts as a measurement when the line explains at least half of the scatter (r² of 0.5 or more). An easy base run in which heart rate and pace barely vary therefore often yields no value at all, and that is correct.
- Altitude and heat. Power above 1,500 metres is hypoxically depressed and gets normalised to sea level. Hot sessions at low acclimatisation are partially corrected upwards, because heat raises heart rate without more oxygen flowing.
- A second method. On the bike, the best 5-minute power of the session counts alongside the regression, a direct measure of maximal aerobic power. For running, three approaches compete: the hardest sustained window (Daniels' VDOT, projected to race effort), a long tempo block at threshold, and heart-rate-to-pace linearity. The method with the higher confidence wins; on a tie, the more direct one.
Why the value does not jump every day
Every qualifying session produces one sample, and single samples scatter by several units. If the app showed the latest sample, the curve would look like a seismograph. trace smooths the samples with a confidence-weighted moving average, caps the step per sample, and holds the highest value of the past weeks, fading it gradually instead of dropping it at a window edge. The displayed value may also move by at most 0.1 per day, which is why trace shows it as a whole number: a decimal would claim a precision the measurement does not have.
Easy sessions produce no sample and therefore cannot pull the value down. What lowers it is doing nothing: Coyle et al. (1984) found that well-trained athletes lose about 7 percent of their VO₂max after twelve days of complete rest and 16 percent after twelve weeks, after which the loss flattens. trace therefore counts training-free days, not sample-free days: if you keep riding or running, just without hard stretches, you keep your value (Hickson et al. 1985 showed that cutting volume by two thirds preserved VO₂max for 15 weeks). Only a real break lowers it, gently and never below a physiological floor.
Why two devices show two numbers
Your watch and trace compute from the same sessions and still rarely land on the same number. The reasons are almost always the same four:
- Maximum heart rate. The example above shows why. A watch often uses the age formula or the highest value ever recorded, which may be a sensor glitch. trace uses the HRmax in your profile and only accepts observed values once a second session confirms them.
- Body weight. The number is relative to body weight. Three kilograms of difference in the profile are a good two points at a value around 55.
- The sport. VO₂max is specific. Cyclists measure higher on the bike than running, for runners it is the other way round, and a ten-point gap between the two is not unusual. trace keeps bike and run separate.
- The filters. Which stretches count, how much smoothing is applied and whether heat is corrected decides two to three points.
A difference of three to five points between devices is therefore normal and no sign that one of them is wrong. Compare the trends, not the absolute values.
What you can do with the number
The absolute value places you on a scale, nothing more. VO₂max becomes useful over time and through what can be derived from it. trace turns the value into maximal aerobic power on the bike (watts per kilogram) and into training paces for running (VDOT as an approximation; the Daniels tables hit interval and threshold pace almost exactly). Both are starting points for zones when no critical power curve exists yet.
For training, VO₂max responds most to intervals of three to five minutes at 90 to 95 percent of maximum heart rate. Helgerud et al. (2007) found about 7 percent gain in eight weeks with 4 × 4 minutes, while steady base training barely moved the value. The second lever is simply body weight, because the number is relative. And the third is patience: from about 30 onwards, VO₂max declines by around one percent per year without training, considerably slower with it. A value that stays stable over years is a success.
Where the estimate reaches its limits
It is an estimate, not a measurement, and it comes with clear conditions. Knowing them is what lets you read the number correctly.
- No hard stretches, no measurement. If you train easy for weeks, you get no new sample. trace then shows the value as "held" instead of pretending it is fresh.
- Cycling without a power meter. From heart rate and speed alone, no oxygen demand can be derived on the bike; too much depends on wind, gradient and drafting. Without watts there is no cycling value.
- Heart rate is slow and moody. It lags the effort by 30 to 60 seconds and rises with heat, caffeine, poor sleep and an oncoming cold. Each of those shifts looks like less fitness to the regression. The filters catch part of it, not all.
- Terrain interferes when running. Trail, wind and soft ground raise the cost per kilometre without the formula seeing it. Downhill, too little oxygen is assumed, which is why trace removes downhill windows from the best-effort calculation. Flat road runs give the most reliable values.
- The absolute value versus the lab. Manufacturers quote errors around 5 percent; independent studies find systematic deviations of several points depending on the group, mostly overestimation in less trained people. If you need an exact number, for a medical assessment say, you need the lab test.
- One number per sport, not per session. The single measurement of a session is deliberately not what is displayed. If you wonder why a strong interval session moved the value by only 0.1: that is the smoothing, and it is intentional.
Bottom line
VO₂max from training data is an honest approximation when three things are right: your maximum heart rate, your weight, and regular hard stretches in your sessions. Then the trend over months is a reliable signal for your aerobic engine. The absolute value is a classification with an error bar, and the differences between devices say more about their assumptions than about your form. How trace places the value next to critical power, readiness and training load is on the features page.
Sources
- Kaminsky LA et al. (2015): Reference standards for cardiorespiratory fitness measured with cardiopulmonary exercise testing (FRIEND Registry). Mayo Clinic Proceedings.
- Swain DP et al. (1994): Target heart rates for the development of cardiorespiratory fitness. Medicine & Science in Sports & Exercise.
- American College of Sports Medicine: ACSM's Guidelines for Exercise Testing and Prescription, metabolic equations.
- Firstbeat Technologies (2014): Automated Fitness Level (VO₂max) Estimation with Heart Rate and Speed Data. White paper.
- Tanaka H, Monahan KD, Seals DR (2001): Age-predicted maximal heart rate revisited. Journal of the American College of Cardiology.
- Coyle EF et al. (1984): Time course of loss of adaptations after stopping prolonged intense endurance training. Journal of Applied Physiology.
- Hickson RC et al. (1985): Reduced training intensities and loss of aerobic power, endurance, and cardiac growth. Journal of Applied Physiology.
- Helgerud J et al. (2007): Aerobic high-intensity intervals improve VO₂max more than moderate training. Medicine & Science in Sports & Exercise.