Estimate your body composition using the U.S. Navy Method
<select id="units" onchange="var labels = document.getElementsByClassName('unit-label'); for(var i=0; i
Metric (cm, kg)
Imperial (in, lbs)
Your Estimated Body Fat
–%
Understanding Body Fat Percentage
Body fat percentage is a much more accurate health metric than BMI (Body Mass Index) because it distinguishes between lean muscle mass and fat mass. While BMI only considers your height and weight, this calculator uses the U.S. Navy Method, which relies on circumferential measurements to estimate your body composition.
How to Measure Correctly
To get the most accurate results, use a flexible measuring tape and follow these guidelines:
Height: Measure without shoes, standing straight against a wall.
Neck: Measure just below the larynx (Adam's apple), sloping slightly downward toward the front.
Waist: For men, measure horizontally at the navel. For women, measure at the narrowest part of the torso (natural waistline).
Hips (Women only): Measure at the widest point of the buttocks or hips.
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%+
Example Calculation
Imagine a male individual who is 180 cm tall, with a neck circumference of 40 cm and a waist circumference of 90 cm. Using the Navy formula, his estimated body fat would be approximately 19.5%, placing him in the "Average" health category.
function calculateBF() {
var gender = document.querySelector('input[name="gender"]:checked').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 resultDiv = document.getElementById('bf-result');
var valSpan = document.getElementById('bf-value');
var catSpan = document.getElementById('bf-category');
if (!height || !neck || !waist || (gender === 'female' && !hip)) {
alert("Please enter all required measurements.");
return;
}
// Convert to CM if Imperial
if (units === 'imperial') {
height = height * 2.54;
neck = neck * 2.54;
waist = waist * 2.54;
hip = hip * 2.54;
}
var bodyFat = 0;
if (gender === 'male') {
// U.S. Navy Formula for Men
bodyFat = 495 / (1.0324 – 0.19077 * Math.log10(waist – neck) + 0.15456 * Math.log10(height)) – 450;
} else {
// U.S. Navy Formula for Women
bodyFat = 495 / (1.29579 – 0.35004 * Math.log10(waist + hip – neck) + 0.22100 * Math.log10(height)) – 450;
}
if (bodyFat < 2) bodyFat = 2; // Minimum floor for logic
valSpan.innerHTML = bodyFat.toFixed(1) + "%";
resultDiv.style.display = "block";
// Determine Category
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";
}
catSpan.innerHTML = "Category: " + category;
resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}