Measure your pulse for 60 seconds while fully relaxed.
Estimated VO2 Max
—
ml/kg/min
Understanding Your VO2 Max Result
This calculator uses the Uth-Sørensen-Overgaard-Pedersen estimation formula, which provides a convenient way to estimate your maximal oxygen uptake (VO2 max) without the need for intense physical exertion or expensive laboratory equipment.
The calculation is based on the ratio between your Maximum Heart Rate (MHR) and your Resting Heart Rate (RHR). The formula used is:
VO2 Max = 15.3 × (MHR / RHR)
Where MHR is estimated as 220 minus your age.
Why Resting Heart Rate Matters?
There is a strong inverse correlation between your resting heart rate and your cardiorespiratory fitness. Generally, a lower resting heart rate indicates a more efficient heart and a higher cardiovascular fitness level. As you improve your aerobic conditioning through activities like running, cycling, or swimming, your resting heart rate typically decreases, leading to a higher VO2 max score.
How to Measure RHR Accurately
To get the most accurate result from this calculator, ensure your input data is precise:
Timing: Measure your heart rate immediately after waking up in the morning, before getting out of bed.
Duration: Count your pulse for a full 60 seconds, or count for 30 seconds and multiply by 2.
Condition: Ensure you are fully relaxed and have not consumed caffeine or alcohol recently.
General Fitness Classifications
While VO2 max varies significantly by age and gender, the following general scale helps interpret your score:
Rating
Estimated VO2 Max Range
Superior
55+ ml/kg/min
Excellent
45 – 54 ml/kg/min
Good
35 – 44 ml/kg/min
Fair
26 – 34 ml/kg/min
Poor
< 25 ml/kg/min
Note: These are general population averages. Athletes will typically score much higher.
function calculateVO2() {
// Get input values
var ageInput = document.getElementById('vo2_age');
var rhrInput = document.getElementById('vo2_rhr');
var resultContainer = document.getElementById('vo2_result_container');
var resultValue = document.getElementById('vo2_final_value');
var ratingText = document.getElementById('vo2_text_rating');
var age = parseFloat(ageInput.value);
var rhr = parseFloat(rhrInput.value);
// Validation
if (isNaN(age) || age 110) {
alert("Please enter a valid age between 10 and 110.");
return;
}
if (isNaN(rhr) || rhr 200) {
alert("Please enter a valid resting heart rate (typically between 30 and 100 bpm).");
return;
}
// Logic: Uth-Sørensen-Overgaard-Pedersen estimation
// Formula: VO2max = 15.3 * (MHR / RHR)
// MHR Est: 220 – Age
var mhr = 220 – age;
var vo2max = 15.3 * (mhr / rhr);
// Display Result
resultContainer.style.display = "block";
resultValue.innerHTML = vo2max.toFixed(1);
// Determine Rating (General scale, non-gender specific for simplicity of the quick calculator)
var rating = "";
var color = "";
if (vo2max > 55) {
rating = "Superior Fitness";
color = "#27ae60"; // Green
} else if (vo2max >= 45) {
rating = "Excellent Fitness";
color = "#2ecc71"; // Light Green
} else if (vo2max >= 35) {
rating = "Good Fitness";
color = "#f1c40f"; // Yellow
} else if (vo2max >= 26) {
rating = "Fair Fitness";
color = "#e67e22"; // Orange
} else {
rating = "Needs Improvement";
color = "#c0392b"; // Red
}
ratingText.innerHTML = rating;
ratingText.style.color = color;
}