The U.S. Navy Body Fat Method is a widely used algorithm developed by the United States Navy to estimate a person's body fat percentage using simple circumference measurements. Unlike BMI, which only considers height and weight, the Navy method accounts for body composition by measuring the neck, waist, and (for women) the hips.
How to Take Accurate Measurements
To ensure the most accurate results with this calculator, follow these measurement guidelines:
Height: Measure standing straight without shoes.
Neck: Measure below the larynx, with the tape sloping 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 part of the buttocks/hips.
Interpreting Your Results
Your body fat percentage is a better indicator of health than weight alone. Here is the general categorization for body fat levels:
Category
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%+
Example Calculation
If a male weighs 85kg, is 180cm tall, has a 90cm waist, and a 40cm neck:
Calculated Body Fat: ~19.5%
Category: Average
Lean Body Mass: ~68.4 kg
function toggleHipField() {
var gender = document.getElementById("gender").value;
var hipGroup = document.getElementById("hip-group");
if (gender === "female") {
hipGroup.style.display = "block";
} else {
hipGroup.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 weight = parseFloat(document.getElementById("weight").value);
var hip = parseFloat(document.getElementById("hip").value);
var resultsArea = document.getElementById("results-area");
var bfPercentEl = document.getElementById("bf-percent");
var bfCategoryEl = document.getElementById("bf-category");
var leanMassEl = document.getElementById("lean-mass");
if (isNaN(height) || isNaN(neck) || isNaN(waist) || isNaN(weight) || (gender === "female" && isNaN(hip))) {
alert("Please enter valid numeric values for all fields.");
return;
}
var bodyFatPercentage = 0;
if (gender === "male") {
// Navy Formula for Men (Metric):
// %BF = 495 / (1.0324 – 0.19077 * log10(waist – neck) + 0.15456 * log10(height)) – 450
bodyFatPercentage = 495 / (1.0324 – 0.19077 * Math.log10(waist – neck) + 0.15456 * Math.log10(height)) – 450;
} else {
// Navy Formula for Women (Metric):
// %BF = 495 / (1.29579 – 0.35004 * log10(waist + hip – neck) + 0.22100 * log10(height)) – 450
bodyFatPercentage = 495 / (1.29579 – 0.35004 * Math.log10(waist + hip – neck) + 0.22100 * Math.log10(height)) – 450;
}
if (bodyFatPercentage < 2) bodyFatPercentage = 2; // Physical floor
var category = "";
if (gender === "male") {
if (bodyFatPercentage < 6) category = "Essential Fat";
else if (bodyFatPercentage < 14) category = "Athlete";
else if (bodyFatPercentage < 18) category = "Fitness";
else if (bodyFatPercentage < 25) category = "Average";
else category = "Obese";
} else {
if (bodyFatPercentage < 14) category = "Essential Fat";
else if (bodyFatPercentage < 21) category = "Athlete";
else if (bodyFatPercentage < 25) category = "Fitness";
else if (bodyFatPercentage < 32) category = "Average";
else category = "Obese";
}
var leanMass = weight * (1 – (bodyFatPercentage / 100));
bfPercentEl.innerHTML = "Estimated Body Fat: " + bodyFatPercentage.toFixed(1) + "%";
bfCategoryEl.innerHTML = "Category: " + category;
leanMassEl.innerHTML = "Estimated Lean Body Mass: " + leanMass.toFixed(2) + " kg";
resultsArea.style.display = "block";
resultsArea.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}