Body fat percentage is a measurement of the total fat mass in your body divided by your total body mass. Unlike Body Mass Index (BMI), which only uses height and weight, body fat percentage accounts for body composition, making it a more accurate health metric for athletes and individuals with high muscle mass.
How the U.S. Navy Method Works
This calculator uses the U.S. Navy Circumference Method, which is widely regarded as one of the most accurate tape-measure methods for estimating body composition. It uses height and circumference measurements of the neck, waist, and (for women) hips to estimate fat volume.
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%+
Tips for Accurate Measurements
Consistency: Measure at the same time of day, preferably in the morning before eating.
Horizontal Tape: Ensure the measuring tape is level around your body and parallel to the floor.
Snug, Not Tight: The tape should be flat against the skin but not compressing the tissue.
Neck: Measure just below the larynx (Adam's apple).
Waist: For men, measure at the navel; for women, measure at the narrowest point of the abdomen.
function toggleHips() {
var gender = document.querySelector('input[name="bf_gender"]:checked').value;
var hipGroup = document.getElementById('hip_group');
if (gender === 'female') {
hipGroup.style.display = 'block';
} else {
hipGroup.style.display = 'none';
}
}
function calculateBodyFat() {
var gender = document.querySelector('input[name="bf_gender"]:checked').value;
var height = parseFloat(document.getElementById('bf_height').value);
var neck = parseFloat(document.getElementById('bf_neck').value);
var waist = parseFloat(document.getElementById('bf_waist').value);
var resultArea = document.getElementById('bf-result-area');
if (!height || !neck || !waist || (gender === 'female' && !document.getElementById('bf_hips').value)) {
resultArea.style.display = 'block';
resultArea.className = 'bf-warning';
resultArea.innerHTML = 'Error: Please fill in all required fields.';
return;
}
var bodyFat = 0;
if (gender === 'male') {
// Navy Method Formula (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 {
var hips = parseFloat(document.getElementById('bf_hips').value);
// Navy Method Formula (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 + hips – neck) + 0.22100 * Math.log10(height)) – 450;
}
if (isNaN(bodyFat) || bodyFat <= 0) {
resultArea.style.display = 'block';
resultArea.className = 'bf-warning';
resultArea.innerHTML = 'Check Inputs: The measurements provided resulted in an invalid calculation. Please ensure your waist is larger than your neck.';
return;
}
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";
}
resultArea.style.display = 'block';
resultArea.className = 'bf-success';
resultArea.innerHTML = 'Your Estimated Body Fat: ' + bodyFat.toFixed(1) + '%Category: ' + category;
}