• Unified API
  • Mobile SDK
  • Connection Widget
  • Streaming
  • Lab Reports API
  • Graph API
  • Health Scores
  • Health Rewards
  • Planned Workouts
  • Lab Testing
  • AI Interface
  • Enterprise
  • Insurance
  • Integrations
  • Research
  • Podcast
  • Blog
  • Reports
  • Events
  • Documentation
  • Community
  • Example apps
  • Wearable Data
  • About
  • Customers
  • Partners
  • Careers
  • Support
  • Pricing
Terra
Pricing
Become an integrationGet started

Cookie Preferences

Essential CookiesAlways On
Advertisement Cookies
Analytics Cookies

Crunch Time: Embrace the Cookie Monster Within!

We use cookies to enhance your browsing experience and analyse our traffic. By clicking “Accept All”, you consent to our use of cookies according to our Cookie Policy. You can change your mind any time by visiting out cookie policy.

Cookies Policy
All papers
All papers

In this research paper:

  • 01What is VO₂max?
  • 02Turning external workload into oxygen demand
  • 03From oxygen demand to VO₂max
  • 04Model 1: Running
  • 05Model 2: Cycling
  • 06Model 3: Starting from Rest
  • 07Where the real-world problems begin
  • 08Confidence matters too
  • 09What would proper validation look like?
  • 10What I have learnt
  • 11Summary questions

VO2 Max

How Your Watch Actually Comes Up With Your Vo2 max

A sports watch turns power, pace and heart rate into a Vo2 Max through a chain of estimates. Here's each step, and where it can go wrong.


Alistair Brownlee
Alistair BrownleeHead of Research
·
Cameron Crawford
Cameron CrawfordAI Engineer
·
Halvard Ramstad
Halvard RamstadEditor-in-Chief

17 September 2026

Key takeaways

  • A watch can't measure oxygen, so it infers VO₂max in three steps. 
  • In some users, two models put VO₂max 30 ml/kg/min apart. 
  • Try it on your own data. Below you'll find our own VO₂max calculator: 

VO2 Max Calculator

I spend a lot of time looking at wearable data. The athlete and consumer in me looks at a number and thinks about whether it is interesting or useful. The researcher in me increasingly asks a different question: how did we actually get that number?

VO₂max is a good example. It is one of the most familiar metrics on a sports watch, but until I started looking into how I could calculate it myself from wearable data, I had never really thought about what sits between the raw signals and the number on the screen.

The basic idea turns out to be surprisingly simple. Estimate how much oxygen a particular workload requires, use heart rate to estimate how hard that workload is relative to someone's maximum, and extrapolate from there. The difficult bit is making that work with people exercising in the real world. 

GPS is noisy, gradient matters a lot, heart rate takes time to respond, maximum heart rate may be wrong, and two people can use different amounts of oxygen to perform exactly the same external workload.

That tension between a simple physiological principle and messy real-world data is what I found most interesting.

What is VO₂max?

VO₂max is the highest rate at which the body can take in, transport and use oxygen during exercise. It is normally expressed as milliliters of oxygen per kilogram of body weight per minute.

In a laboratory, we can actually measure it. An athlete exercises progressively harder, towards their maximum, while wearing a mask, and a metabolic cart analyses the gases they breathe in and out. VO₂max matters because it captures a large part of the aerobic system in a single number: oxygen has to enter the lungs, pass into the blood, be pumped around the body and ultimately be used by working muscle.

It is strongly associated with endurance performance and, at a population level, with long-term health. It certainly is not the only determinant of endurance performance. Threshold, economy and durability matter enormously too. We can use it to predict endurance performance; Joyner's classic model of marathon performance combines VO₂max, the fraction of it an athlete can sustain, and running economy. 

In very simple terms, VO₂max describes the size of the aerobic engine while the other variables help determine how effectively it can be used.

The important distinction is that a watch does not measure VO₂max in the same way as a metabolic cart. It has no gas analyzer on your wrist. It has to infer it.

Get the latest Terra Research reports and insights every week as soon as they're published.

By continuing, I agree to the Privacy Policy and Terms of Service.

Turning external workload into oxygen demand

The first part of that inference is converting external workload into an estimate of metabolic demand.

Cycling provides the easiest example. A power meter tells us how much mechanical power is reaching the pedals. If a rider produces 250 watts, they are delivering 250 joules of mechanical energy every second.

The body has to generate considerably more energy than this because human muscle is not perfectly efficient. Gross efficiency describes the proportion of metabolic energy that ends up as useful mechanical work. In trained cycling, gross efficiency is often somewhere in the low-to-mid 20% range, although there are meaningful differences between individuals.

If a rider were 23% efficient, producing 250 watts at the pedals would require about 1,087 watts of metabolic power. Converting that energy demand into its oxygen equivalent gives us an estimate of oxygen consumption.

The commonly used ACSM (American College of Sports Medicine) cycling equation is:

Estimated VO₂ = 10.8 × watts per kilogram + 7

For a 70 kg rider producing 250 watts, this gives an estimated oxygen requirement of about 46 ml/kg/min.

Running follows the same principle, but external work is harder to measure directly. Instead, laboratory studies have established relationships between running speed, gradient and oxygen demand. The ACSM running equation uses speed and gradient to estimate how much oxygen a particular running workload should require.

This is the first important layer of inference. The wearable is not measuring oxygen consumption. It is measuring the external workload and using a population relationship to estimate its likely metabolic cost.

Those relationships are not identical between people. Cycling gross efficiency varies, just as running economy does. Two runners traveling at exactly the same speed can require different amounts of oxygen to do it. The equations are useful estimates, not direct measurements.

From oxygen demand to VO₂max

The second part of the calculation comes from heart rate.

I use heart-rate reserve, which positions the current heart rate between resting and maximum heart rate:

HR reserve = (current HR − resting HR) / (maximum HR − resting HR)

The important physiological finding is that percentage heart-rate reserve corresponds reasonably closely to percentage VO₂ reserve during aerobic exercise. VO₂ reserve is the difference between resting oxygen consumption and maximum oxygen consumption.

Resting oxygen consumption is conventionally approximated as about 3.5 ml/kg/min. This means that if someone is exercising at a workload requiring an estimated 35 ml/kg/min of oxygen while sitting at 70% of their heart-rate reserve, we can extrapolate from that towards their likely VO₂max.

Importantly, the calculation needs to include resting VO₂ rather than simply dividing workload VO₂ by heart-rate reserve.

That is essentially the whole physiological idea: estimate the oxygen requirement of the workload, use heart rate to estimate where that workload sits between rest and maximum, then extrapolate towards maximum.

Model 1: Running

My first running model looked for clean periods within a workout, estimated oxygen demand from speed and gradient, calculated heart-rate reserve, and produced a VO₂max estimate from each period.

I have since changed the approach. A single period gives too much influence to any small error in GPS, gradient or heart rate. Instead, I now build the relationship between estimated oxygen demand and heart-rate reserve across multiple suitable periods and workouts, then extrapolate that relationship towards maximum.

This should be more robust because one slightly poor observation becomes a noisy point rather than determining the answer.

The difficult part is deciding which observations are trustworthy. Heart rate does not react instantly to changes in workload. If someone accelerates up a hill, the metabolic demand rises quickly while heart rate takes time to catch up. Pair the new high workload with the old lower heart rate and the model can conclude that the athlete is considerably fitter than they really are.

I therefore want both workload and heart rate to be reasonably stable before using a section of data. Maximum heart rate is another important input. If someone's true maximum is 190 bpm but the model assumes 175, every heart-rate-reserve calculation is distorted. 

Where possible, I therefore want the model to learn HRmax from the person's own data: a genuine measured maximum, repeated high values during hard efforts, or a tested value entered by the user.

An age-predicted maximum is useful when nothing else exists, but it should be a fallback rather than automatically being treated as ground truth.

Model 2: Cycling

Cycling has one major advantage: if someone has a good power meter, external workload itself is measured much more cleanly.

GPS speed is a poor proxy for cycling workload. Thirty kilometers per hour could mean freewheeling downhill, sitting in a bunch, riding with a strong tailwind or pushing hard into a headwind. Two hundred and fifty watts has a much clearer meaning.

Power therefore gives us an excellent starting point for estimating oxygen demand, which can then be related to heart-rate reserve in much the same way as running.

The difficulty is that outdoor cycling is often highly variable. Power repeatedly changes through hills, corners, descents, drafting and coasting, while heart rate is still responding to what happened several seconds earlier.

Cycling therefore gives us a cleaner measurement of external work but not necessarily a cleaner physiological observation.

There is also genuine variation in cycling efficiency. Two athletes producing the same wattage can consume different amounts of oxygen because their gross efficiency differs.

Again, power is an excellent measurement of work, but it is not itself a measurement of metabolism.

Model 3: Starting from Rest

What happens if somebody has not done a suitable run or a ride with power?

Resting heart rate also contains some information about aerobic fitness. Uth and colleagues developed a simple equation using the ratio between maximum and resting heart rate:

VO₂max ≈ 15.3 × HRmax / HRrest

It worked surprisingly well in the relatively narrow population in which it was developed, but the limitations are obvious. Resting heart rate is influenced by sleep, illness, stress, medication, alcohol, genetics and accumulated training fatigue as well as aerobic fitness.

I therefore think of a rest-based estimate as a useful starting point rather than an equivalent replacement for an exercise-derived score. If I know someone's age, sex, resting heart rate and some information about their activity, I can make an informed initial estimate.

As actual exercise data accumulates, better evidence should progressively replace it.

Increasingly, I do not think of run, ride and rest as three competing VO₂max scores. They are different sources of evidence about the same underlying physiological quantity, with very different levels of reliability.

Where the real-world problems begin

Some of my early results showed just how quickly those sources of uncertainty can accumulate. In a few users, my running and cycling estimates differed by around 30 ml/kg/min.

There are genuine differences between running and cycling VO₂max, but normally nothing approaching that magnitude. Rather than concluding that those people were extraordinarily good runners and poor cyclists, the discrepancy is much more likely to be telling me something about the models.

This is an important lesson in itself. When two models disagree dramatically, the answer is not necessarily to pick whichever result looks more believable. Sometimes the disagreement is telling you that one or both inference chains are not working properly.

The famous treadmill '1% rule' is another good example of how seemingly simple physiology becomes complicated in the real world. Jones and Doust found that setting a treadmill to approximately a 1% gradient could better reproduce the energetic cost of outdoor running at certain speeds.

That does not mean we should simply add 1% to the measured gradient of every outdoor run. I therefore use the measured outdoor gradient while accepting that applying treadmill-derived metabolic equations outdoors introduces some uncertainty.

Confidence matters too

Each of my models is accompanied by a confidence score, which we plan to display simply using traffic-light colors. I think this is important because two identical VO₂max estimates can be supported by very different amounts of evidence.

A running estimate based on months of good-quality workouts, a well-established HRmax and a broad range of stable intensities should carry much more confidence than one extrapolated from a handful of easy runs using an age-predicted maximum heart rate.

Similarly, cycling power gives us a stronger measure of workload than cycling speed, while a rest-based estimate should generally carry less confidence than one supported by suitable exercise data.

The confidence score therefore considers the quality and amount of the underlying evidence: whether HRmax has actually been observed, how many useful periods are available, the range of exercise intensities covered, how recent the data is, and how consistently the relationship between workload and heart rate appears across sessions.

I like this because it starts to expose something wearable scores often hide. A number can look precise without being particularly certain.

What would proper validation look like?

Proper validation requires laboratory VO₂max measurements.

The experiment I would really like to run is straightforward in principle: take a reasonably large group of people with good CPET measurements, look at their wearable histories without using the laboratory result, and see what the model predicts.

I would also want to know more than the average error. Can the model rank people correctly? Can it detect genuine improvements in fitness? Does it remain stable when fitness has not changed? And how much confidence should we place in each estimate?

That last question is particularly important. Someone with months of running data, power-meter rides, hard efforts and a well-established maximum heart rate gives us far more information than someone with a week of resting-heart-rate data.

Yet wearable products often present both results with the same apparent precision.

What I have learnt

The more I have worked on this, the more I have come back to the same conclusion. The basic physiology behind wearable VO₂max estimation is not especially complicated. External workload gives us an estimate of metabolic demand.

Heart rate tells us approximately where that demand sits relative to the person's aerobic range. From there, we extrapolate towards maximum.

The complexity comes from the assumptions hidden inside each of those steps. The external workload might be wrong. Its conversion into oxygen demand is based on population averages.

Heart rate may not yet have responded to the workload, and resting and maximum heart rate may themselves only be estimates. Heat, fatigue, dehydration and caffeine can all change the relationship further.

None of this makes wearable VO₂max useless. In fact, I find almost the opposite. It is remarkable that we can take signals collected passively from a watch and get anywhere close to a physiological measurement that traditionally requires somebody exercising to exhaustion while wearing a mask in a laboratory.

But working through the calculation has changed the way I look at the number on the screen. A wearable VO₂max is not simply a measurement. It is the end of a chain of estimates, assumptions and decisions about which data to trust.

That probably applies to many wearable scores. The challenge is not just producing a number; it is understanding how much evidence sits behind it, where the uncertainty comes from, and how much confidence we should place in the answer.

References

  • Åstrand PO, Ryhming I. A nomogram for calculation of aerobic capacity from pulse rate during submaximal work. Journal of Applied Physiology. 1954;7:218–221. https://doi.org/10.1152/jappl.1954.7.2.218
  • Swain DP, Leutholtz BC. Heart rate reserve is equivalent to %VO₂ reserve, not to %VO₂max. Medicine & Science in Sports & Exercise. 1997;29:410–414. https://pubmed.ncbi.nlm.nih.gov/9139182/
  • American College of Sports Medicine. ACSM's Guidelines for Exercise Testing and Prescription. https://www.acsm.org/education-resources/books/guidelines-exercise-testing-prescription
  • Joyner MJ. Modeling: optimal marathon performance on the basis of physiological factors. Journal of Applied Physiology. 1991;70:683–687. https://doi.org/10.1152/jappl.1991.70.2.683
  • Uth N, Sørensen H, Overgaard K, Pedersen PK. Estimation of VO₂max from the ratio between HRmax and HRrest — the Heart Rate Ratio Method. European Journal of Applied Physiology. 2004;91:111–115. https://doi.org/10.1007/s00421-003-0988-y
  • Jones AM, Doust JH. A 1% treadmill grade most accurately reflects the energetic cost of outdoor running. Journal of Sports Sciences. 1996;14:321–327. https://pubmed.ncbi.nlm.nih.gov/8887211/
  • Jobson SA, Hopker JG, Korff T, Passfield L. Gross efficiency and cycling performance: a review. Journal of Science and Cycling. 2012;1:3–8. https://www.jsc-journal.com/index.php/JSC/article/view/12
  • Apple. Using Apple Watch to Estimate Cardio Fitness with VO₂ max. https://www.apple.com/healthcare/docs/site/Using_Apple_Watch_to_Estimate_Cardio_Fitness_with_VO2_max.pdf
  • Nazaret A et al. Personalised heart rate response models. npj Digital Medicine. 2023. https://www.nature.com/articles/s41746-023-00926-4

Summary questions

How does my watch actually calculate VO₂max without measuring my breath?
It infers it through a two-step chain. First it estimates the oxygen demand of your workload using population equations — for cycling, the ACSM formula (10.8 × watts/kg + 7) converts power to an oxygen cost; for running, speed and gradient are plugged into a similar equation. Then it uses your heart-rate reserve to estimate where that workload sits between rest and max, and extrapolates toward your VO₂max. No gas analyzer required — just workload, heart rate, and a lot of assumptions.
Why do my running and cycling VO₂max scores differ so much?
In early testing, some users showed differences of around 30 ml/kg/min between running and cycling estimates — far larger than any genuine physiological gap between the two modes. That kind of discrepancy is almost certainly a model problem, not a real fitness gap. When two inference chains disagree dramatically, the honest interpretation is that one or both are struggling with noisy inputs like GPS gradient, heart-rate lag, or a wrong HRmax — not that you're secretly an elite runner and a poor cyclist.
Why does maximum heart rate matter so much for VO₂max estimates?
Every heart-rate-reserve calculation depends on HRmax, so getting it wrong distorts the entire extrapolation. If your true max is 190 bpm but the model assumes 175, all your submaximal workloads look harder than they are and VO₂max is underestimated. That's why a genuinely observed maximum — repeated high values during hard efforts or a tested value — should always beat the age-predicted formula, which should be treated as a fallback rather than ground truth.
Is cycling power a better input than running speed for VO₂max?
Yes, for measuring external work. A power meter reading of 250 watts has an unambiguous meaning, whereas 30 km/h could be freewheeling downhill or grinding into a headwind. But power still isn't a metabolic measurement — gross efficiency in trained cyclists sits in the low-to-mid 20% range and varies between individuals, so two riders at 250 W can consume different amounts of oxygen. Cleaner workload, but the physiological inference layer still applies.
Can my resting heart rate alone estimate VO₂max?
Partially. The Uth equation (VO₂max ≈ 15.3 × HRmax/HRrest) works surprisingly well in the population it was developed in, and gives a reasonable starting point when no exercise data exists. But resting heart rate is influenced by sleep, illness, stress, alcohol, medication and genetics as well as fitness, so a rest-based number should carry lower confidence than one built from actual workouts and be replaced as exercise data accumulates.
Why is heart-rate lag such a big problem for these estimates?
Heart rate doesn't respond instantly to workload changes. If you accelerate up a hill, metabolic demand spikes immediately but heart rate takes seconds to catch up — pairing the new high workload with the old lower heart rate makes the model think you're much fitter than you are. That's why robust models require both workload and heart rate to be stable before trusting a data window, and why building the workload–HR relationship across many periods is safer than relying on any single one.
Should I trust my wearable VO₂max score?
Trust it as evidence, not as a measurement. It's the end of a chain of estimates — external workload converted via population averages, heart-rate reserve mapped to VO₂ reserve, extrapolated toward a possibly-wrong HRmax, with resting VO₂ assumed at 3.5 ml/kg/min. It's remarkable the number gets close to lab CPET at all, but two identical scores can sit on very different amounts of evidence. That's why confidence scoring — factoring in whether HRmax was observed, how many stable periods exist, and the intensity range covered — matters as much as the number itself.
How much should I read into small changes in my VO₂max score?
Less than the precision suggests. A wearable number can look exact without being certain, and factors like heat, dehydration, caffeine, fatigue, or a poorly-estimated HRmax can shift the calculation independently of actual fitness. Look for consistent trends across many workouts with stable heart-rate–workload relationships, ideally with an observed maximum heart rate — not day-to-day wobbles of a couple of ml/kg/min, which are almost certainly noise in the inference chain.
Alistair Brownlee
Alistair Brownlee

Alistair Brownlee is Head of Research, where he leads large-scale analysis of wearable health data to better understand sleep, recovery and human performance, translating these insights into products that help people live healthier lives.

Cameron Crawford
Cameron Crawford

Cameron Crawford is an AI Engineer at Terra API, solving the technical and product issues that arise when giving AI access to health data.

Halvard Ramstad
Halvard Ramstad

Halvard Ramstad is Editor-in-Chief at Terra Research, responsible for shaping how the team's findings reach the world.

next ventures
pioneer fund
samsung next
y combinator
general catalyst

The world's best health apps run on Terra data

Get started
ProductsIntegrationsAI InterfaceAuthenticationMobile DevelopmentDocumentationGraphAPI
DocumentationAPISDKQuickstart
CommunityBlogResearchCommunityPodcastAuthorsGithub
CompanyAboutCareersCustomersBecome an IntegrationCookies PolicyGDPRPrivacy PolicyTerms of Purchase
© Terra API. 2026 — All rights reserved.
Previous

Continue reading

An Evening Nap Pushes Your Bedtime Back 80 Mins
Sleep Tracking

An Evening Nap Pushes Your Bedtime Back 80 Mins

We analyzed 340,889 nights that followed a nap. Before 11 AM a nap costs nothing, but after 5pm it moves bedtime by 80 minutes.

15 September 2026

Pregnancy Shows Up in Wearable Data Before a Missed Period
Women's Health

Pregnancy Shows Up in Wearable Data Before a Missed Period

What 266 pregnancies reveal about how temperature, heart rate, and breathing change from the first days after conception.

8 September 2026

Your Body's Response to Altitude Is Highly Individual
Altitude Training

Your Body's Response to Altitude Is Highly Individual

What 1,045 altitude nights reveal about why the same mountain hits people differently.

4 September 2026

It Takes Four Days to Recover From a Night Shift
Sleep Series

It Takes Four Days to Recover From a Night Shift

What 17,775 shift nights reveal about how night work changes sleep, REM, and recovery.

1 September 2026