Methodology

GOVO2 VO2max Calculation Method

Current calculation method for the GOVO2 ramp test engine, adapted from the May 16, 2026 web white paper.

Abstract

VO2max is the maximum rate at which the body can take up oxygen during intense exercise. GOVO2 estimates VO2max from a cycling ramp test. It does not measure gas exchange.

The test starts with a 5 minute warm-up at 40 percent of functional threshold power (FTP). The ramp then starts at 50 watts and increases every 60 seconds. The test ends when the rider can no longer hold at least 90 percent of the target power for 15 consecutive seconds.

The app calculates maximal aerobic power (MAP) from the last completed stage and the time held in the final stage. It then estimates VO2max using the Storer, Davis, and Caiozzo cycle-ergometry equation. The inputs are MAP in watts, body mass in kilograms, and age in years.

The output is reported in ml/kg/min. The result is best used for within-user trend tracking under consistent test conditions.

Defined Terms

1. Purpose and Scope

This method estimates VO2max in ml/kg/min from cycling power, body mass, and age. It is a field estimate, not a laboratory gas-exchange measurement.

Heart rate in bpm is recorded for context. It is not an input to the VO2max equation. It also does not decide whether a completed ramp result is saved.

2. Test Protocol

The rider warms up for 5 minutes at 40 percent of FTP. After the warm-up, the ramp starts at 50 watts. The target power increases once per minute.

Raw ramp rate = (FTP / 0.75 - 50) / 10

Rounded ramp rate = raw ramp rate rounded to the nearest 5 watts per minute

Ramp rate = rounded ramp rate, constrained to 15 to 35 watts per minute

The test ends when measured power stays below 90 percent of the current target for 15 consecutive seconds.

The ramp rate keeps the test usable across fitness levels. Stronger riders get larger steps. Lower-power riders get smaller steps. The goal is not to make every test identical across riders. The goal is to make each rider's test long enough to be useful and short enough to repeat.

3. Data Used and Stored

At test start, the app stores:

During the test, the app records one sample per second:

For each saved ramp result, the app stores:

If Apple Health permission allows it, the app writes the VO2max result to HealthKit with method metadata set to Storer1990.

4. MAP Calculation

MAP is the test's power-performance output. The calculation gives full credit for the last completed 60 second stage and partial credit for the time held in the final stage.

MAP = last completed stage power + ramp rate x seconds held in final stage / 60

Where last completed stage power is in watts, ramp rate is in watts per minute, seconds held in final stage is in seconds, and MAP is in watts.

Example: last completed stage power = 300 watts, ramp rate = 30 watts per minute, seconds held in final stage = 20 seconds, so MAP = 300 + 30 x 20 / 60 = 310 watts.

The displayed MAP is rounded to the nearest watt. The VO2max calculation uses the unrounded internal MAP. This interpolation avoids two errors. Counting the entire failed stage would overstate performance. Ignoring the time held in the failed stage would understate performance.

5. VO2max Equation

The method uses the Storer, Davis, and Caiozzo 1990 cycle-ergometry equation. The equation predicts absolute VO2max in ml/min from MAP in watts, body mass in kilograms, and age in years. The app divides that value by body mass in kilograms to report relative VO2max in ml/kg/min.

VO2max (ml/min) = 10.51 x MAP (watts) + 6.35 x body mass (kg) - 10.49 x age (years) + 519.3

VO2max (ml/kg/min) = VO2max (ml/min) / body mass (kg)

Storer 1990 is used because it was built for cycle ergometry and includes age and body mass. The age term keeps older and younger riders with the same MAP from receiving the same estimate. The body-mass term keeps the estimate from treating power alone as VO2max.

6. Why the Test Uses 60 Second Steps

A lab can increase workload continuously while measuring oxygen uptake directly. A consumer cycling test cannot assume that equipment or control.

GOVO2 uses 60 second steps because they work with common BLE power meters and trainers. The protocol is simple to execute, easy to repeat, and stable enough for trend tracking.

A continuous ramp and a 60 second step ramp are not identical. The key requirement is that the same rider repeats the same protocol over time.

7. Interpretation Limits

This method estimates VO2max in ml/kg/min from field-test performance. It does not measure oxygen uptake, ventilation, respiratory exchange ratio, lactate, cycling economy, or power-meter accuracy.

Important limits:

This is not a diagnostic test. It is not a substitute for cardiopulmonary exercise testing.

8. Worked Example

Example input: MAP = 331 watts, body mass = 72.6 kilograms, age = 47 years.

VO2max (ml/min) = 10.51 x 331 + 6.35 x 72.6 - 10.49 x 47 + 519.3

VO2max (ml/min) = 3966.09 ml/min

VO2max (ml/kg/min) = 3966.09 / 72.6

VO2max (ml/kg/min) = 54.6 ml/kg/min

Estimated FTP from this ramp result:

Estimated FTP = round(331 x 0.75)

Estimated FTP = 248 watts

9. Reference

Storer TW, Davis JA, Caiozzo VJ. Accurate prediction of VO2max in cycle ergometry. Medicine and Science in Sports and Exercise. 1990;22(5):704-712.

Run your first ramp test this weekend.

Twenty-five minutes. Your trainer, your iPhone, your Apple Watch. GOVO2 walks you through the ramp, shows you the math, and gives you a cycling VO2max that came from real power - not your morning walk. Retest every 6-8 weeks and you'll know whether the training is actually moving the number.