# VO2 Max Calculator

> Estimates maximal oxygen uptake (VO2max, ml/kg/min) from the distance covered in the Cooper 12-minute run test, and/or from the ratio of maximum to resting heart rate (Uth et al. 2004).

- Calculator id: `vo2-max` · Category: Sports & Fitness (`fitness`) · Tool name: `estimate_vo2_max`
- Canonical page: https://tttkmbb.com/fitness/vo2-max · This document: https://tttkmbb.com/fitness/vo2-max.md · JSON definition: https://tttkmbb.com/fitness/vo2-max.json

## Purpose

Estimates maximal oxygen uptake (VO2max, ml/kg/min) from the distance covered in the Cooper 12-minute run test, and/or from the ratio of maximum to resting heart rate (Uth et al. 2004).

**Use when:** You have a 12-minute run distance or resting and maximum heart rates and want a field estimate of aerobic fitness.

**Do not use when:** A laboratory or wearable-measured VO2max is available, or the person cannot run continuously for 12 minutes; the heart-rate method also requires a true (measured) maximum heart rate.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `distance_m` | number | m | optional | Distance covered in 12 minutes of running (Cooper test). Omit if using heart rates only. (min 600, max 6000) |
| `resting_heart_rate` | number | bpm | optional | Resting heart rate, measured on waking. Needed together with max_heart_rate for the heart-rate ratio method. (min 25, max 150) |
| `max_heart_rate` | number | bpm | optional | Measured maximum heart rate (an age formula such as 220 − age adds error). (min 80, max 250) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `vo2max_ml_kg_min` | number | ml/kg/min | Primary estimate: Cooper test when distance_m is given, otherwise the heart-rate ratio method. |
| `method` | string |  | Which estimate is reported as primary. |
| `vo2max_cooper_ml_kg_min` | number | ml/kg/min | (distance_m − 504.9) / 44.73; only when distance_m is given. |
| `vo2max_heart_rate_ratio_ml_kg_min` | number | ml/kg/min | 15.3 × max_heart_rate / resting_heart_rate; only when both heart rates are given. |

## Formula

`Cooper: VO2max = (distance_m − 504.9) / 44.73; heart-rate ratio: VO2max = 15.3 × max_heart_rate / resting_heart_rate (ml/kg/min)`

Cooper (1968) correlated 12-minute run distance with treadmill VO2max in US Air Force personnel (r = 0.90). The heart-rate ratio method (Uth 2004) was derived in trained men; its standard error is about 4.5 ml/kg/min.

## Data Sources

- Cooper KH (1968) A means of assessing maximal oxygen intake: correlation between field and treadmill testing, JAMA 203:201-204 — https://pubmed.ncbi.nlm.nih.gov/5694044/ (peer_reviewed, retrieved 2026-09-23)
- Uth N et al. (2004) Estimation of VO2max from the ratio between HRmax and HRrest – the Heart Rate Ratio Method, Eur J Appl Physiol 91:111-115 — https://pubmed.ncbi.nlm.nih.gov/14624296/ (peer_reviewed, retrieved 2026-09-23)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/vo2-max?`
- `POST https://tttkmbb.com/api/v1/calculate/vo2-max` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/vo2-max · OpenAPI operationId `estimate_vo2_max` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "vo2-max", "inputs": {…}}`

## Example

- Cooper test 2800 m: inputs `{"distance_m":2800}` → `{"vo2max_ml_kg_min":51.3,"vo2max_cooper_ml_kg_min":51.3,"method":"Cooper 12-minute run test"}`
- Resting 60 bpm, max 180 bpm: inputs `{"resting_heart_rate":60,"max_heart_rate":180}` → `{"vo2max_ml_kg_min":45.9,"vo2max_heart_rate_ratio_ml_kg_min":45.9,"method":"Heart-rate ratio (Uth 2004)"}`

```
GET https://tttkmbb.com/api/v1/calculate/vo2-max?distance_m=2800
```

## Limitations

A laboratory or wearable-measured VO2max is available, or the person cannot run continuously for 12 minutes; the heart-rate method also requires a true (measured) maximum heart rate. Cooper (1968) correlated 12-minute run distance with treadmill VO2max in US Air Force personnel (r = 0.90). The heart-rate ratio method (Uth 2004) was derived in trained men; its standard error is about 4.5 ml/kg/min. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**What is a good VO2 max?**

Population norms depend strongly on age and sex: roughly 35–45 ml/kg/min for healthy adults in their 30s, above 55 for well-trained endurance athletes and 70–85 for elites.

**Can I use 220 − age for the maximum heart rate?**

You can, but the individual error of age formulas (±10–12 bpm) propagates directly into the estimate; a measured maximum from an all-out effort is better.

## Related

- [Heart Rate Zone Calculator](https://tttkmbb.com/health/heart-rate-zones.md) — Training zones from the same maximum and resting heart rates.
- [Race Time Predictor](https://tttkmbb.com/fitness/race-time-predictor.md) — Predict race times from a known performance.
