Estimate your body composition using the U.S. Navy Method
Male
Female
Metric (cm/kg)
Imperial (in/lb)
Understanding Body Fat Percentage
Body fat percentage is the total mass of fat divided by total body mass, multiplied by 100. Unlike Body Mass Index (BMI), which only uses height and weight, body fat percentage provides a more accurate picture of your health and physical fitness by distinguishing between lean muscle mass and fat tissue.
Standard Categories (ACE Guidelines)
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%+
Example Calculation
A male measuring 180cm tall with a 40cm neck and a 90cm waist would calculate as follows:
Input: Height: 180cm, Neck: 40cm, Waist: 90cm
Navy Formula Applied: 495 / (1.0324 – 0.19077 * log10(90 – 40) + 0.15456 * log10(180)) – 450
Result: Approximately 17.8% (Fitness Category)
Measurement Tips
Neck: Measure below the larynx, 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 horizontal circumference around the buttocks.
Ensure the tape is snug but not compressing the skin.
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 units = document.getElementById("units").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) || 0;
var resultBox = document.getElementById("result-box");
var resultVal = document.getElementById("result-value");
var resultCat = document.getElementById("result-category");
if (isNaN(height) || isNaN(neck) || isNaN(waist) || (gender === "female" && isNaN(hip))) {
alert("Please enter valid numbers for all measurements.");
return;
}
var bodyFat = 0;
// US Navy Formula
if (units === "metric") {
if (gender === "male") {
bodyFat = 495 / (1.0324 – 0.19077 * Math.log10(waist – neck) + 0.15456 * Math.log10(height)) – 450;
} else {
bodyFat = 495 / (1.29579 – 0.35004 * Math.log10(waist + hip – neck) + 0.22100 * Math.log10(height)) – 450;
}
} else {
// Imperial formula (using inches)
if (gender === "male") {
bodyFat = 86.010 * Math.log10(waist – neck) – 70.041 * Math.log10(height) + 36.76;
} else {
bodyFat = 163.205 * Math.log10(waist + hip – neck) – 97.684 * Math.log10(height) – 78.387;
}
}
if (bodyFat 60) {
resultVal.innerHTML = "Out of Range";
resultCat.innerHTML = "Please check your measurements.";
} else {
var bfFixed = bodyFat.toFixed(1);
resultVal.innerHTML = bfFixed + "%";
var category = "";
if (gender === "male") {
if (bodyFat < 6) category = "Essential Fat";
else if (bodyFat < 14) category = "Athlete";
else if (bodyFat < 18) category = "Fitness";
else if (bodyFat < 25) category = "Average";
else category = "Obese";
} else {
if (bodyFat < 14) category = "Essential Fat";
else if (bodyFat < 21) category = "Athlete";
else if (bodyFat < 25) category = "Fitness";
else if (bodyFat < 32) category = "Average";
else category = "Obese";
}
resultCat.innerHTML = "Category: " + category;
}
resultBox.style.display = "block";
}