Body fat percentage is a key health metric that measures the total mass of fat divided by total body mass, multiplied by 100. Unlike Body Mass Index (BMI), which only looks at weight and height, body fat percentage provides a clearer picture of body composition by distinguishing between muscle mass and fat tissue.
How the US Navy Method Works
The US Navy Method is one of the most popular ways to estimate body fat without expensive equipment like DEXA scans or hydrostatic weighing. It uses specific circumference measurements to estimate body density. For men, the calculation relies on neck and waist measurements. For women, it includes the hips because women naturally tend to store more essential fat in the lower body.
Ideal Body Fat Ranges
The ideal range for body fat varies significantly by gender and age. Here is a general breakdown of categories:
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
Suppose a male weighs 85 kg, stands 180 cm tall, has a neck measurement of 42 cm, and a waist measurement of 92 cm. Using the formula, his estimated body fat would be approximately 19.5%, placing him in the "Average" category for health.
function calculateBodyFat() {
var gender = document.querySelector('input[name="gender"]:checked').value;
var height = parseFloat(document.getElementById('height').value);
var weight = parseFloat(document.getElementById('weight').value);
var neck = parseFloat(document.getElementById('neck').value);
var waist = parseFloat(document.getElementById('waist').value);
var hip = parseFloat(document.getElementById('hip').value);
var resultBox = document.getElementById('result-box');
var resultValue = document.getElementById('result-value');
var resultCategory = document.getElementById('result-category');
var fatMassDisplay = document.getElementById('fat-mass');
if (!height || !weight || !neck || !waist || (gender === 'female' && !hip)) {
alert("Please enter all required measurements.");
return;
}
var bodyFat = 0;
if (gender === 'male') {
// US Navy Formula for Men (Metric)
// 495 / (1.0324 – 0.19077 * log10(waist – neck) + 0.15456 * log10(height)) – 450
bodyFat = 495 / (1.0324 – 0.19077 * Math.log10(waist – neck) + 0.15456 * Math.log10(height)) – 450;
} else {
// US Navy Formula for Women (Metric)
// 495 / (1.29579 – 0.35004 * log10(waist + hip – neck) + 0.22100 * log10(height)) – 450
bodyFat = 495 / (1.29579 – 0.35004 * Math.log10(waist + hip – neck) + 0.22100 * Math.log10(height)) – 450;
}
if (bodyFat < 2) bodyFat = 2; // Floor for physical reality
var category = "";
var bgColor = "";
if (gender === 'male') {
if (bodyFat < 6) { category = "Essential Fat"; bgColor = "#e8f6f3"; }
else if (bodyFat < 14) { category = "Athlete"; bgColor = "#d5f5e3"; }
else if (bodyFat < 18) { category = "Fitness"; bgColor = "#abebc6"; }
else if (bodyFat < 25) { category = "Average"; bgColor = "#fcf3cf"; }
else { category = "Obese"; bgColor = "#f9ebea"; }
} else {
if (bodyFat < 14) { category = "Essential Fat"; bgColor = "#e8f6f3"; }
else if (bodyFat < 21) { category = "Athlete"; bgColor = "#d5f5e3"; }
else if (bodyFat < 25) { category = "Fitness"; bgColor = "#abebc6"; }
else if (bodyFat < 32) { category = "Average"; bgColor = "#fcf3cf"; }
else { category = "Obese"; bgColor = "#f9ebea"; }
}
var fatWeight = (weight * (bodyFat / 100)).toFixed(1);
resultBox.style.display = "block";
resultBox.style.backgroundColor = bgColor;
resultValue.innerText = bodyFat.toFixed(1) + "%";
resultCategory.innerText = "Category: " + category;
fatMassDisplay.innerText = "Total Fat Mass: " + fatWeight + " kg";
}