
Methodology
This page documents exactly how every number on this site is computed, from the raw input in the calculator to the final percentile rank and fitness category. We prioritize reproducibility: if you follow the formulas and data below, you should get the same result as the on-site calculator.
VO2 max estimation formulas
Each of the 17 field tests has its own regression formula from a peer-reviewed source. The full list, with variable definitions and citations, is on the formula reference page. Formulas are implemented as pure functions in lib/formulas.ts and covered by unit tests.
Where the source paper gave the formula in mixed units (e.g., weight in kg, HR in bpm, time in minutes), we reproduce the formula exactly as published. Unit conversion happens in the UI layer before the formula is called, so users can enter imperial or metric inputs equivalently.
Percentile norm data
Percentile norms come from The Cooper Institute, a nonprofit research organization in Dallas, Texas founded by Dr. Kenneth H. Cooper in 1970. The Cooper Institute's Aerobics Center Longitudinal Study (ACLS) has collected standardized maximal treadmill VO2 max data (with open-circuit spirometry) on more than 80,000 adults since the late 1970s.
The specific norms we use — VO2 max values at the 5th, 10th, 25th, 50th, 75th, 90th, and 95th percentiles, for men and women across six age decades (20–29 through 70–79) — are the published ACLS percentile tables reproduced in:
- American College of Sports Medicine. ACSM's Guidelines for Exercise Testing and Prescription, 11th edition (2021). Table 4.7.
- The Cooper Institute, Physical Fitness Specialist Certification reference materials, 2019 edition.
The same percentile tables have been used in clinical exercise physiology and sports medicine curricula for decades. They are the de facto North American standard.
Percentile interpolation
The Cooper Institute publishes seven percentile breakpoints per age-and-sex bracket (5th, 10th, 25th, 50th, 75th, 90th, 95th). To return a precise percentile for a given VO2 max value, we linearly interpolate between adjacent breakpoints:
if v is between breakpoint p1 (value v1) and p2 (value v2): ratio = (v − v1) / (v2 − v1) percentile = p1 + ratio × (p2 − p1)
Values below the 5th-percentile breakpoint return a percentile proportional to the ratio (capped at ≥1); values above the 95th return a percentile in [95, 99].
Linear interpolation between percentile breakpoints is the standard approach in population-health statistics when the underlying full-cohort distribution is not available. Accuracy within a narrow band (±5 ml/kg/min of a breakpoint) is within 2–3 percentile points of what the full underlying distribution would produce.
Fitness categories
ACSM groups percentile rankings into six categories:
- Poor: below 20th percentile
- Fair: 20th–39th
- Average: 40th–59th
- Good: 60th–79th
- Excellent: 80th–94th
- Superior: 95th and above
These thresholds apply within each age-and-sex bracket. A score that is "Average" for a 25-year-old woman may be "Excellent" for a 70-year-old woman at the same absolute VO2 max.
Known limitations
- Field-test VO2 max is an estimate, not a measurement. Direct VO2 max measurement requires maximal exercise with open-circuit spirometry. Field-test formulas are validated against that gold standard but have standard errors of estimate ranging from about 3 to 8 ml/kg/min depending on test.
- Norms are North American. The Cooper Institute cohort is predominantly white, middle-class, and U.S.-resident. Non-North American populations may differ in distribution, though the structural shape (decline with age, sex gap) is consistent across published international datasets.
- Binary sex categories. The source data records sex as male/female. We report norms accordingly. We recognize this framework does not capture all human physiological variation; users with a chromosomal, hormonal, or anatomical profile not well-represented by binary norms should interpret results with additional caution.
- Age 18–19 and 80+ are out of range. Our norms table covers 20–79. Users outside this range are bucketed to the nearest bracket (20–29 for 18–19; 70–79 for 80+), which introduces additional uncertainty.
- The HRmax = 220 − age formula is imprecise. Any test that uses HRmax (Åstrand, YMCA cycle, resting HR method) inherits a ±10 bpm uncertainty from this formula. A lab-determined HRmax improves accuracy.
Reproducibility
Every formula is a pure function in the repository's lib/formulas.ts. Unit tests in tests/formulas.test.ts verify each formula against worked examples from the original papers. Norm data is in lib/norms.ts with the source header.
If you find a discrepancy between our computation and your reading of the source paper, please get in touch via the about page. Corrections are applied on the next release.