To calculate your Resting Heart Rate (RHR) manually, take your pulse for 15 seconds three times (ideally upon waking) and enter the counts below.
Your Calculated Resting Heart Rate (RHR)
—BPM
Based on your manual pulse inputs. Myzone will automatically detect this value when you wear the belt at rest.
Estimated Myzone Max Heart Rate
—BPM
Calculated using the standard formula: 211 – (0.64 × Age).
Your Myzone Effort Zones
Zone
Color
Intensity (%)
Heart Rate (BPM)
MEPs / Min
How Does Myzone Calculate Resting Heart Rate?
Understanding how the Myzone system determines your metrics is crucial for earning maximum Myzone Effort Points (MEPs). While many fitness trackers use generic formulas, Myzone combines formula-based predictions with actual biometric data.
Automatic Detection vs. Manual Calculation
Technically, Myzone does not "calculate" your Resting Heart Rate (RHR) using a mathematical formula like it does for your Max Heart Rate. Instead, it measures it.
The Myzone Logic: Whenever you wear your Myzone belt, the system samples your heart rate. It automatically updates your RHR setting to the lowest heart rate value it has recorded while the device is active.
This ensures your profile remains accurate to your current fitness level. As you get fitter, your RHR typically drops, and the Myzone system will adjust accordingly without you needing to manually input data.
The Max Heart Rate Formula
While RHR is measured, Myzone determines your maximum heart rate (MHR) using the "Hunt Formula," which is generally considered more accurate for active populations than the standard "220 minus age" equation. The calculation used is:
Max HR = 211 – (0.64 × Age)
Your effort zones (Grey, Blue, Green, Yellow, Red) are then calculated as percentages of this Maximum Heart Rate number.
Why Resting Heart Rate Matters for MEPs
Although your RHR is not the primary factor for the standard percentage-based zones, it is vital for:
Health Tracking: A lower RHR is a strong indicator of cardiovascular health and recovery status.
Zone 1 (Grey Zone): The Grey zone starts at 50% of your Max HR. If your RHR is high (due to stress or illness), you might find yourself sitting in the Grey zone even when sedentary, earning MEPs simply for existing, which indicates the system may need recalibration or your body is under stress.
How to Check Your RHR Manually
If you do not have your belt handy or want to verify your stats, you can calculate your RHR manually using the tool above. To do this:
Find your pulse (wrist or neck) immediately after waking up, before getting out of bed.
Count the beats for 15 seconds.
Multiply by 4 (or use our calculator to average three 15-second samples).
Consistent tracking of this number helps you understand if you are overtraining or if your cardiovascular fitness is improving over time.
function calculateMyzoneStats() {
// 1. Get Inputs
var ageInput = document.getElementById('mzAge');
var p1Input = document.getElementById('pulse1');
var p2Input = document.getElementById('pulse2');
var p3Input = document.getElementById('pulse3');
var age = parseFloat(ageInput.value);
var p1 = parseFloat(p1Input.value);
var p2 = parseFloat(p2Input.value);
var p3 = parseFloat(p3Input.value);
// Validation
if (isNaN(age) || age < 1) {
alert("Please enter a valid age.");
return;
}
// 2. Calculate Max HR (Myzone Formula: 211 – 0.64 * Age)
var maxHR = 211 – (0.64 * age);
maxHR = Math.round(maxHR);
// 3. Calculate Manual RHR (if inputs exist)
var avgRHR = 0;
var rhrText = "N/A";
// Check if pulse inputs are provided
var hasPulseData = !isNaN(p1);
// We allow p2 and p3 to be empty, but if provided, include them in average
if (hasPulseData) {
var totalBeats = p1;
var count = 1;
if (!isNaN(p2)) {
totalBeats += p2;
count++;
}
if (!isNaN(p3)) {
totalBeats += p3;
count++;
}
// Average 15s count then multiply by 4 for BPM
var avg15s = totalBeats / count;
avgRHR = Math.round(avg15s * 4);
rhrText = avgRHR;
} else {
rhrText = "Enter Pulse";
}
// 4. Update Display
document.getElementById('displayMaxHR').innerHTML = maxHR;
document.getElementById('displayRHR').innerHTML = rhrText;
// 5. Generate Zone Table
// Zones:
// Grey: 50-59%
// Blue: 60-69%
// Green: 70-79%
// Yellow: 80-89%
// Red: 90-100%
var zones = [
{ name: "Grey", class: "zone-gray", minPct: 0.50, maxPct: 0.59, meps: 1 },
{ name: "Blue", class: "zone-blue", minPct: 0.60, maxPct: 0.69, meps: 2 },
{ name: "Green", class: "zone-green", minPct: 0.70, maxPct: 0.79, meps: 3 },
{ name: "Yellow", class: "zone-yellow", minPct: 0.80, maxPct: 0.89, meps: 4 },
{ name: "Red", class: "zone-red", minPct: 0.90, maxPct: 1.00, meps: 4 }
];
var tableHtml = "";
for (var i = 0; i < zones.length; i++) {
var z = zones[i];
var minBpm = Math.round(maxHR * z.minPct);
var maxBpm = Math.round(maxHR * z.maxPct);
// Adjust max bpm of Red zone to be open ended or strictly maxHR?
// Usually standard is just up to MaxHR.
var pctRange = (z.minPct * 100).toFixed(0) + "% – " + (z.maxPct * 100).toFixed(0) + "%";
var bpmRange = minBpm + " – " + maxBpm;
tableHtml += "