Maffetone Heart Rate Zones Calculator

Maffetone Heart Rate Zones Calculator (180 Formula) .maf-calculator-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; background: #f9f9f9; border: 1px solid #e0e0e0; border-radius: 8px; } .maf-header { text-align: center; margin-bottom: 30px; } .maf-header h2 { color: #2c3e50; margin: 0; font-size: 28px; } .maf-header p { color: #7f8c8d; margin-top: 10px; } .maf-row { display: flex; flex-wrap: wrap; gap: 20px; margin-bottom: 20px; } .maf-col { flex: 1; min-width: 280px; } .maf-input-group { margin-bottom: 15px; } .maf-input-group label { display: block; margin-bottom: 8px; font-weight: 600; color: #34495e; } .maf-input-group input, .maf-input-group select { width: 100%; padding: 12px; border: 1px solid #bdc3c7; border-radius: 4px; font-size: 16px; box-sizing: border-box; } .maf-input-group input:focus, .maf-input-group select:focus { outline: none; border-color: #3498db; box-shadow: 0 0 5px rgba(52,152,219,0.3); } .maf-btn { width: 100%; padding: 14px; background-color: #e74c3c; color: white; border: none; border-radius: 4px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background-color 0.2s; margin-top: 10px; } .maf-btn:hover { background-color: #c0392b; } .maf-result-box { margin-top: 30px; background: #fff; padding: 25px; border-left: 5px solid #e74c3c; box-shadow: 0 2px 10px rgba(0,0,0,0.05); display: none; } .maf-result-item { margin-bottom: 20px; border-bottom: 1px solid #eee; padding-bottom: 15px; } .maf-result-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .maf-label { font-size: 14px; color: #7f8c8d; text-transform: uppercase; letter-spacing: 1px; } .maf-value { font-size: 32px; font-weight: 800; color: #2c3e50; margin-top: 5px; } .maf-value span { font-size: 18px; font-weight: normal; color: #7f8c8d; } .maf-content { margin-top: 50px; line-height: 1.6; color: #333; } .maf-content h3 { color: #2c3e50; margin-top: 30px; border-bottom: 2px solid #ecf0f1; padding-bottom: 10px; } .maf-content ul { padding-left: 20px; } .maf-content li { margin-bottom: 10px; } .maf-note { background-color: #fff3cd; border: 1px solid #ffeeba; color: #856404; padding: 15px; border-radius: 4px; margin-top: 15px; font-size: 0.95em; }

Maffetone Heart Rate Calculator

Determine your Maximum Aerobic Function (MAF) using the 180 Formula

Recovering from major illness/surgery or taking regular medication (-10) Injured, regression in training, asthma, or >2 colds/year (-5) Inconsistent training or training for less than 2 years (-5) Training consistently >2 years without injury or problems (0) Elite athlete: Training >2 years + improving race times (+5)
Maximum Aerobic Heart Rate
0 bpm
Optimal Training Zone
0 – 0 bpm
Training Advice: For optimal aerobic development, keep your heart rate within the training zone listed above. Do not exceed the Maximum Aerobic Heart Rate during base training.

What is the Maffetone Method?

The Maffetone Method is a low-heart-rate training philosophy developed by Dr. Phil Maffetone. Unlike "no pain, no gain" approaches, this method focuses on building a massive aerobic base by training exclusively at a heart rate where your body burns fat for fuel rather than sugar.

The core of this method is the 180 Formula, which calculates your Maximum Aerobic Function (MAF) heart rate. By training at or below this number, athletes can improve endurance, reduce injury risk, and prevent overtraining.

How to Calculate Your MAF Heart Rate

The calculation starts simply: 180 minus your age. However, to find your true physiological limit, you must adjust this number based on your health and training history:

  • Subtract 10: If you are recovering from a major illness (heart disease, surgery, hospital stay) or are on regular medication.
  • Subtract 5: If you are injured, have regressed in training, get more than two colds a year, have asthma/allergies, or have been training inconsistently.
  • Subtract 5: If you have been training consistently for less than two years.
  • No Change (0): If you have been training consistently for more than two years without any of the problems listed above.
  • Add 5: If you have been training for more than two years, are making progress in competition, and are injury-free (typically applies to elite athletes).

Understanding Your Results

The calculator provides two key metrics:

  1. Maximum Aerobic Heart Rate: This is your "ceiling." You should not exceed this heart rate during your aerobic base building runs or rides. If your alarm goes off, walk or slow down immediately.
  2. Optimal Training Zone: This is the range between your MAF heart rate and 10 beats below it (MAF-10 to MAF). For example, if your MAF is 145, your zone is 135–145 bpm. Spending time in this specific zone maximizes mitochondrial development.

Why Train Slow to Race Fast?

Training at high intensities (anaerobic) produces acid and utilizes glucose (sugar) for fuel. While effective for speed, it creates stress. Aerobic training utilizes fat for fuel. By increasing your pace at the same low heart rate over weeks and months, you become metabolically efficient. Eventually, you will be running fast, but your heart rate will remain low, conserving energy for race day.

function calculateMafZones() { // 1. Get Input Values var ageInput = document.getElementById('mafAge'); var healthSelect = document.getElementById('mafHealth'); var resultBox = document.getElementById('mafResult'); // 2. Parse values var age = parseFloat(ageInput.value); var modifier = parseFloat(healthSelect.value); // 3. Validation if (isNaN(age) || age 120) { alert("Please enter a valid age between 1 and 120."); return; } // 4. Calculation Logic (180 Formula) // Base formula: 180 – Age var baseMaf = 180 – age; // Apply health/fitness modifier var finalMafHr = baseMaf + modifier; // Determine the training zone (MAF-10 to MAF) var lowerZone = finalMafHr – 10; var upperZone = finalMafHr; // 5. Update HTML Output document.getElementById('displayMaxRate').innerHTML = finalMafHr + " bpm"; document.getElementById('displayZone').innerHTML = lowerZone + " – " + upperZone + " bpm"; // 6. Show Results resultBox.style.display = "block"; }

Leave a Comment