Investment Interest Rates Calculator

Body Fat Percentage Calculator (Navy Method)

Estimate your body composition using the US Navy Circumference Method.

Male Female

Understanding the Body Fat Percentage (Navy Method)

The US Navy Body Fat Calculator provides an estimate of your body composition by using circumference measurements from specific points on the body. Developed by the Navy Health Research Center, this method is widely used because it is cost-effective and relatively accurate when compared to expensive DEXA scans or hydrostatic weighing.

How to Take Accurate Measurements

To get the most accurate results, use a flexible non-stretchable measuring tape and follow these guidelines:

  • Height: Measure while standing straight, barefoot, against a flat wall.
  • Neck: Measure just below the larynx (Adam's apple), sloping the tape slightly downward to the front.
  • Waist: For men, measure at the navel level. For women, measure at the narrowest point of the natural waistline.
  • Hips (Women only): Measure at the widest point of the buttocks.

Example Calculation

Suppose we have a male individual with the following measurements:

  • Height: 180 cm
  • Waist: 90 cm
  • Neck: 40 cm

Using the formula: 495 / (1.0324 - 0.19077 * log10(90 - 40) + 0.15456 * log10(180)) - 450, the estimated body fat would be approximately 17.5%.

Body Fat Categories

Description Women (%) Men (%)
Essential Fat 10-13% 2-5%
Athletes 14-20% 6-13%
Fitness 21-24% 14-17%
Average 25-31% 18-24%
Obese 32%+ 25%+
function toggleHipField() { var gender = document.getElementById("gender").value; var hipContainer = document.getElementById("hip-container"); if (gender === "female") { hipContainer.style.display = "block"; } else { hipContainer.style.display = "none"; } } function calculateBodyFat() { var gender = document.getElementById("gender").value; var height = parseFloat(document.getElementById("height").value); var neck = parseFloat(document.getElementById("neck").value); var waist = parseFloat(document.getElementById("waist").value); var hip = parseFloat(document.getElementById("hip").value); var resultArea = document.getElementById("result-area"); var bfValueDisplay = document.getElementById("bf-value"); var bfCategoryDisplay = document.getElementById("bf-category"); // Validation if (isNaN(height) || isNaN(neck) || isNaN(waist) || height <= 0 || neck <= 0 || waist <= 0) { alert("Please enter valid positive numbers for height, neck, and waist."); return; } if (gender === "female" && (isNaN(hip) || hip <= 0)) { alert("Please enter a valid positive number for hip measurements."); return; } var bodyFat = 0; if (gender === "male") { // Formula for Men (Metric): 495 / (1.0324 – 0.19077 * log10(waist – neck) + 0.15456 * log10(height)) – 450 var logWaistNeck = Math.log10(waist – neck); var logHeight = Math.log10(height); bodyFat = 495 / (1.0324 – (0.19077 * logWaistNeck) + (0.15456 * logHeight)) – 450; } else { // Formula for Women (Metric): 495 / (1.29579 – 0.35004 * log10(waist + hip – neck) + 0.22100 * log10(height)) – 450 var logWaistHipNeck = Math.log10(waist + hip – neck); var logHeightW = Math.log10(height); bodyFat = 495 / (1.29579 – (0.35004 * logWaistHipNeck) + (0.22100 * logHeightW)) – 450; } if (bodyFat 100) bodyFat = 100; var bfp = bodyFat.toFixed(1); bfValueDisplay.innerHTML = bfp + "%"; // Determine Category var category = ""; var color = ""; if (gender === "male") { if (bfp < 6) { category = "Essential Fat"; color = "#3498db"; } else if (bfp < 14) { category = "Athlete"; color = "#2ecc71"; } else if (bfp < 18) { category = "Fitness"; color = "#27ae60"; } else if (bfp < 25) { category = "Average"; color = "#f39c12"; } else { category = "Obese"; color = "#e74c3c"; } } else { if (bfp < 14) { category = "Essential Fat"; color = "#3498db"; } else if (bfp < 21) { category = "Athlete"; color = "#2ecc71"; } else if (bfp < 25) { category = "Fitness"; color = "#27ae60"; } else if (bfp < 32) { category = "Average"; color = "#f39c12"; } else { category = "Obese"; color = "#e74c3c"; } } bfCategoryDisplay.innerHTML = "Category: " + category; bfCategoryDisplay.style.color = color; resultArea.style.display = "block"; resultArea.style.backgroundColor = "#fff"; resultArea.style.border = "2px solid " + color; }

Leave a Comment