HealthCalcPlus

Runs in your browser · no sign-up · your inputs are never uploaded

VO2 Max Calculator

Two field tests in, two estimates out — and the gap between them. Run as far as you can in twelve minutes and type the distance; add your maximum and resting heart rate if you have them. The page prints the Cooper estimate from the run, the heart-rate-ratio estimate, how far apart they are, the 12-minute pace your score implies, and a table from 30 to 70 ml/kg/min. It opens on 2.80 km, 190 bpm and 55 bpm.

The 12-minute run

Between 1,000 and 6,000 m. The test only works if the twelve minutes were maximal — a steady run you could have continued is not this test, and it will read low.

Your heart-rate range

Use a maximum heart rate you have actually seen on a watch in a hard effort, not 220 minus your age — the age formula is a population average and it moves this estimate by several points. Resting rate is best taken lying down, after waking, before coffee.

or press Enter

Your VO2 max, from the 12-minute run

51.3

12-minute estimate
—
Heart-rate estimate
—
Gap
—
Gap, percent
—
12-min pace / km
—
12-min pace / mile
—
Run the HR estimate needs
—
HRmax ÷ HRrest
—

Do the two numbers agree?

—

VO2 max, and what it is worth in metres

VO2 max 12-min distance Pace / km Pace / mile HRmax ÷ HRrest

Both directions are inverses of the same two equations: the distance column is Cooper's regression solved for distance, the ratio column is the 2004 constant solved for the heart-rate ratio. Nothing in this table is a measurement of a person; each row is a value the two published equations can produce.

What this page does

A VO2 max calculator usually asks for your age, your sex and your weight, and then looks your score up in a table. This page does something narrower, and for a field test more honest: it runs the two estimates that have a published equation behind them, prints both, and tells you how far apart they are.

The first is the twelve-minute run. Run as far as you can in twelve minutes, type the distance, and Cooper's 1968 regression turns that distance into millilitres of oxygen per kilogram per minute. The second is the heart-rate ratio: your maximum heart rate divided by your resting heart rate, multiplied by a constant published in 2004. Neither equation needs your age, your sex or your weight — which is exactly why they can be printed here with their coefficients showing.

The gap between the two is the point of the page. One number comes from a performance and one from a cardiac range, so they are two independent checks on the same quantity. When they land close together you have a number worth writing down. When they do not, one of the two inputs is wrong, and the page names the three things to check, in the order that usually finds it.

Everything runs in your browser. Nothing you type is sent to a server, there is no account and no upload, and the three numbers you enter never leave the page.

How the numbers are calculated

Two equations, both transcribed from their publications and both printed here in full. The first is Cooper's regression from the twelve-minute run, written with the distance in kilometres:

VO2max = 22.351 × d − 11.288

  • d — the distance you covered in twelve minutes, in kilometres. 2,800 m is 2.800 km.
  • 22.351 — the slope of the published regression, in ml · kg−1 · min−1 per kilometre.
  • −11.288 — the intercept of the same regression, in ml · kg−1 · min−1.
  • VO2max — the estimate, in millilitres of oxygen per kilogram of body mass per minute. That unit is the whole output; there is no second unit and no conversion on this page.

The second is the heart-rate ratio, which needs no test at all beyond two heart rates you can measure at home:

VO2max ≈ 15.3 × (HRmax ÷ HRrest)

  • HRmax — your maximum heart rate in beats per minute, measured, not estimated from your age.
  • HRrest — your resting heart rate in beats per minute, taken under the same conditions every time.
  • 15.3 — the published constant. It is a single number, not a table, and it carries a population with it: it was derived on well-trained men aged 21 to 51.

Both equations run backwards on this page. Solved for distance, the first one gives the run a VO2 max would require, which is the fourth column of the table and the “run the HR estimate needs” stat:

d = (VO2max + 11.288) ÷ 22.351

Solved for the ratio, the second one gives the heart-rate range a VO2 max would need, which is the last column:

HRmax ÷ HRrest = VO2max ÷ 15.3

A worked example: 2.80 km, 190 bpm, 55 bpm

The example the page opens on. d = 2.800 km, HRmax = 190, HRrest = 55:

  • From the run — 22.351 × 2.800 = 62.583, minus 11.288 = 51.29, printed 51.3.
  • From the heart rates — 190 ÷ 55 = 3.4545, × 15.3 = 52.85, printed 52.9.
  • The gap — 52.85 − 51.29 = 1.56, which is 3.0% of the run estimate.
  • The pace that run implies — 12 minutes is 720 s over 2.800 km, so 257.1 s per km, printed 4:17; the same run is 6:54 per mile.
  • The run the heart rates imply — (52.85 + 11.288) ÷ 22.351 = 2.8698 km, printed 2,870 m. Two hundred metres short of the run you typed, which is what a 1.6-point gap looks like in metres.

Every printed number is rounded once, at the end: VO2 max to one decimal, paces to the nearest second, distances in metres to the nearest metre. Nothing is rounded in the middle of a chain.

Where the two equations come from

Both are transcribed, not measured here. That distinction matters, so it is worth stating exactly what was borrowed and from where:

  • Cooper's regression — Cooper K.H. (1968), “A Means of Assessing Maximal Oxygen Intake: Correlation Between Field and Treadmill Testing”, JAMA 203(3):203. The coefficients 22.351 and −11.288 are quoted from the kilometre form of that regression as printed in Bandyopadhyay A. (2015), Biology of Sport 32(1):59–63 (PMC4314605), which tested the equation against measured values.
  • The heart-rate constant — Uth N., Sørensen H., Overgaard K., Pedersen P.K. (2004), European Journal of Applied Physiology 91(1):111–115. The constant is 15.3, derived on well-trained men aged 21 to 51, and the authors state it is most reliable with a measured maximum heart rate rather than an age-predicted one.

Neither is a measurement of any one athlete, and neither is a race result. They are population regressions: a line drawn through a group of people, applied to you. The page says so on every number it prints rather than only here.

Why two numbers instead of one

One estimate from a run and one from a heart-rate range are not two versions of the same measurement. They fail in different ways, which is what makes comparing them useful.

The run estimate fails when the twelve minutes were not maximal, when the course was not flat or not measured, or when the runner is outside the population the regression was drawn from. The heart-rate estimate fails when the maximum was guessed rather than seen, when the resting rate was taken after coffee or a bad night, or when the runner is outside well-trained men aged 21 to 51. A single number hides all of that. Two numbers that disagree do not.

The threshold the page uses, and where it comes from

The page calls the two estimates in agreement when they are within 6 ml/kg/min of each other. That is not a number invented for this page. In the 2015 validation of Cooper's equation on sedentary male university students, the predicted values averaged 42.8 ± 4.0 ml/kg/min against measured values of 39.8 ± 4.0, with limits of agreement of 0.10 to 5.94 ml/kg/min and a correlation of r = 0.93 (P < 0.001). A gap wider than the top of that band is wider than the error the equation showed on the population where it was actually tested.

That band is a baseline from that group, not a universal tolerance — it was measured on sedentary male students, and this page applies it to everybody. It is used because it is the only published error figure attached to the equation being run, and using a published number with its population attached is better than using a round number with nothing attached. If your gap is 7 and you know your maximum heart rate is measured and your test was maximal, you are allowed to shrug at it.

When they disagree, check these three, in this order

  • 1. Was the twelve minutes actually maximal? This is the most common cause by a distance. A twelve-minute run at a pace you could have held for twenty minutes is not the test, and it reads low — which shows up as the heart-rate estimate sitting well above the run estimate.
  • 2. Is the maximum heart rate measured or predicted? If you typed 220 minus your age, the heart-rate estimate is built on a population average rather than on you. A predicted maximum that is five beats too high lifts the estimate by about 1.4 ml/kg/min at a resting rate of 55; ten beats lifts it by 2.8.
  • 3. When was the resting rate taken? Caffeine, a late night, illness or taking it standing up all raise it. Resting rate sits in the denominator, so the same ten-beat error there moves the estimate by about 9.5 ml/kg/min at a maximum of 190 — far more than the same error in the maximum.

That asymmetry is worth remembering: an error in the resting rate costs about six times as much as the same error in the maximum, because the resting rate is the smaller number in a division. If you can only measure one of the two carefully, measure the resting one.

The table: what a VO2 max is worth in metres

The table above is the two equations turned sideways. Pick a row and read across:

  • VO2 max — the estimate, from 30 to 70 ml/kg/min in steps of five. The range is chosen to cover club runners through to the pointy end; the calculator itself accepts anything the two equations can produce from valid inputs.
  • 12-min distance — the distance that score requires in twelve minutes, from Cooper's regression solved for distance. 50 needs 2,742 m.
  • Pace / km and pace / mile — that same distance expressed as a pace over twelve minutes. 2,742 m in 720 s is 4:23 per kilometre, which is 7:03 per mile.
  • HRmax ÷ HRrest — the heart-rate ratio that score requires, from the 2004 constant solved for the ratio. 50 needs 3.27, so a maximum of 190 pairs with a resting rate of 58.

The row nearest your own number is highlighted after you calculate, so the table doubles as a way of reading the result at a glance: if your estimate is 51.3, you are between the 50 and 55 rows, closer to 50, and the two rows tell you what the next five points would cost in metres and in seconds per kilometre.

Two warnings about reading a table like this. The rows are even-pace rows: they assume the twelve minutes were run at a constant pace, which almost nobody does, so treat the pace column as an average rather than as a target to hold from the gun. And the ratio column is an average across a population, not a prescription — a runner with an unusually low resting rate will hit a given VO2 max at a lower ratio than the table suggests.

Which number goes in your log

If you test yourself repeatedly, the run estimate is the one to track. It is a performance, measured the same way each time, and its error is dominated by how hard you actually ran — which is the thing you are trying to improve. The heart-rate estimate is the better daily signal: resting rate moves with fatigue, sleep and illness within days, and the run estimate cannot be repeated often enough to see that.

Three rules that keep the numbers comparable:

  • Same course, same surface, same time of day. A twelve-minute run on a treadmill and one on a track are two different tests, and the regression does not know which one you did.
  • Same resting-rate protocol. Lying down, after waking, before coffee, averaged over three mornings beats one reading on a bad day — and the denominator is where the error is most expensive.
  • Do not compare this number to a laboratory number. A lab test measures the oxygen you actually breathe; these two equations predict it from something else. A few points of difference between the two is normal and says nothing about your fitness.

What the number is genuinely good for is direction: it moves when your training works, it stalls when it does not, and it is cheap enough to repeat. What it is not good for is a grade, and the next section explains why the page refuses to give you one.

Supported range and limits

  • 12-minute distance: 1,000 to 6,000 m, entered in metres, kilometres or miles. Below 1,000 m the Cooper regression returns a number under 11 ml/kg/min, which is below any measured human value; above 6,000 m it returns a number no one has recorded. The page refuses both rather than printing them.
  • Maximum heart rate: 120 to 230 bpm. Resting heart rate: 30 to 120 bpm, and it must be at least 20 bpm below the maximum, because a ratio near 1 is not a heart-rate range.
  • Units: the run distance can be typed in metres, kilometres or miles; the answer is always ml · kg−1 · min−1.
  • Rounding: VO2 max to one decimal, paces to the nearest second, distances to the nearest metre, the ratio to two decimals. One rounding, at the end.
  • Cost: none. No account, no email, no paywall, no daily limit, no request to a server.
  • Privacy: every number is computed in your browser. Nothing you type is sent anywhere or stored — reload the page and it is gone.
  • Works offline once the page has loaded, and on a phone.

What this page deliberately does not do

  • No age-and-sex grading. Every “is my VO2 max good?” table is a set of cut-points that differ by age band and by sex, and this page has no source it can stand behind for those cut-points. Rather than ship a made-up table it prints the number and leaves the grading to whoever has the norms.
  • No weight or body-composition correction. The unit is already per kilogram of body mass, and correcting further needs a model of what fraction of that mass is doing the work. That model is not on this page.
  • No laboratory claim. This is not a measurement of expired gas. It is two regressions applied to two field inputs, and the page says so next to every number.
  • No race-time prediction. Turning a VO2 max into a 5K or a marathon time needs a running-economy model and a duration curve, and this page has neither. Predicting a finish time from a race you have actually run is the race time predictor on the home page, which uses Riegel's equation and needs no VO2 max at all.
  • No training zones. Zone percentages by fraction of VO2 max exist in the coaching literature, but the exact boundaries differ between books and this page could not cite one set from a source it can verify. Rather than pick one and present it as settled, it leaves zones out. Pace zones you can actually run are what the race pace calculator and the 5K pace calculator do.
  • No other test protocols. The beep test, the 1.5-mile run and the Bruce treadmill protocol each have their own regression, and each would need its own coefficients checked. This page ships the two it can cite rather than four it half-knows.
  • No medical interpretation. A low estimate is not a diagnosis and a high one is not a clearance. Nothing here is medical advice.

Questions

What is a VO2 max calculator?

It estimates the maximum rate at which your body can take up and use oxygen during hard exercise, in millilitres per kilogram per minute, without measuring your breathing in a laboratory. It does that by applying a published regression to something you can measure yourself: a distance run in a fixed time, or a heart-rate range. This page runs two such regressions — the 12-minute run and the heart-rate ratio — and shows both answers so you can see whether they agree.

How accurate is the 12-minute run estimate?

In the 2015 validation of Cooper's equation on sedentary male university students, the predicted values averaged 42.8 ± 4.0 ml/kg/min against measured values of 39.8 ± 4.0, with a correlation of r = 0.93 and limits of agreement of 0.10 to 5.94 ml/kg/min. That is a wide band: a single estimate can sit several points away from a laboratory value and still be behaving exactly as the equation does. The page treats a gap of up to 6 ml/kg/min between its two estimates as agreement, because that is the size of error the equation itself showed.

Can I use 220 minus my age for my maximum heart rate?

You can, but the heart-rate estimate will inherit that formula's error. 220 minus age is a population average with a spread of roughly ten beats either side, and the constant 15.3 was derived against measured maximums on well-trained men aged 21 to 51. At a resting rate of 55, a maximum that is five beats too high lifts the estimate by about 1.4 ml/kg/min, and ten beats lifts it by about 2.8. If you have seen a higher number on a watch in a genuinely hard effort, use that number instead.

What resting heart rate should I use?

One taken lying down, after waking, before coffee, and averaged over several mornings rather than taken once. Resting rate sits in the denominator of the heart-rate ratio, so it is the expensive input: at a maximum of 190, a resting rate that is ten beats too high pulls the estimate down by about 9.5 ml/kg/min, roughly six times the damage the same error in the maximum would do. If your two estimates disagree, check this input first after checking whether the run was maximal.

Why do the two estimates disagree?

Because they fail differently. The run estimate reads low if the twelve minutes were not maximal, if the course was not flat or not measured, or if you are outside the population the regression came from. The heart-rate estimate reads wrong if the maximum was predicted rather than measured, if the resting rate was taken under bad conditions, or if you are outside well-trained men aged 21 to 51. A gap wider than 6 ml/kg/min means one of those is happening; the page lists the three checks in the order that usually finds it.

What pace is a VO2 max of 50?

Fifty is 2,742 metres in twelve minutes, which is 4:23 per kilometre and 7:03 per mile, and it needs a heart-rate ratio of 3.27 — a maximum of 190 paired with a resting rate of about 58. The table above carries the same four numbers for every score from 30 to 70 in steps of five, and the calculator prints the row nearest whatever it computes for you.

What is a good VO2 max?

This page will not answer that, and the reason is in the “does not do” section: every answer to it is a set of cut-points that change with age and sex, and the page has no source it can stand behind for those cut-points. What it will do is give you a number from two independent methods, tell you whether they agree, and let you track it over months on the same protocol — which is the part that actually tells you whether your training is working.

Is this the same as a laboratory test?

No. A laboratory test measures the oxygen you actually breathe in and out while the intensity climbs, which is a direct measurement. Both equations here are predictions from something else — a distance, or two heart rates — and each carries the error of the population it was drawn from. A difference of a few ml/kg/min between a lab result and either estimate is normal, and it does not mean either number is broken.