US Navy Body Fat Calculator
The US Navy Body Fat formula provides a standardized method for estimating body fat percentage using circumference measurements. Use a soft tape measure and record measurements to the nearest 0.5 inches.
Height (inches)
Neck (inches)
Waist (inches)
Hips (inches)
Calculate Body Fat %
Estimated Body Fat Percentage
0%
How the Navy Body Fat Method Works
The United States Navy Body Fat Calculator utilizes a specific formula developed by the Naval Health Research Center. It is an estimation tool that uses simple body measurements—height, neck circumference, waist circumference, and hip circumference (for women)—to calculate body composition. This method is preferred for its accessibility as it doesn't require expensive DXA scans or skinfold calipers.
The Mathematical Formulas
The calculator uses the following logarithmic equations for calculation based on imperial units (inches):
For Men: % Fat = 495 / (1.0324 – 0.19077 × log10(Waist – Neck) + 0.15456 × log10(Height)) – 450
For Women: % Fat = 495 / (1.29579 – 0.35004 × log10(Waist + Hip – Neck) + 0.22100 × log10(Height)) – 450
How to Measure Accurately
To ensure the most accurate results, follow these measurement protocols:
Height: Measure without shoes, standing straight against a flat wall.
Neck: Measure just below the larynx (Adam's apple) with the tape slanted slightly downward toward the front.
Waist:
Men: Measure horizontally at the navel level.
Women: Measure at the narrowest point of the natural waist (usually above the navel).
Hips (Women only): Measure at the widest horizontal point of the buttocks.
Navy Maximum Body Fat Standards
The Navy sets specific standards based on age groups. Exceeding these limits typically requires enrollment in a Fitness Enhancement Program (FEP).
Age Group
Male Max %
Female Max %
18 – 21 years
22%
33%
22 – 29 years
23%
34%
30 – 39 years
24%
35%
40+ years
26%
36%
function calculateNavyBFP() {
var gender = document.querySelector('input[name="gender"]:checked').value;
var height = parseFloat(document.getElementById('navyHeight').value);
var neck = parseFloat(document.getElementById('navyNeck').value);
var waist = parseFloat(document.getElementById('navyWaist').value);
var resultDiv = document.getElementById('navyResult');
var bfpDisplay = document.getElementById('bfpValue');
var categoryDisplay = document.getElementById('navyCategory');
if (isNaN(height) || isNaN(neck) || isNaN(waist) || height <= 0 || neck <= 0 || waist <= 0) {
alert("Please enter valid positive numbers for all measurements.");
return;
}
var bfp = 0;
if (gender === "male") {
// Men formula: 495 / (1.0324 – 0.19077 * log10(waist – neck) + 0.15456 * log10(height)) – 450
if (waist <= neck) {
alert("Waist measurement must be larger than neck measurement.");
return;
}
var denominator = 1.0324 – (0.19077 * Math.log10(waist – neck)) + (0.15456 * Math.log10(height));
bfp = (495 / denominator) – 450;
} else {
// Women formula: 495 / (1.29579 – 0.35004 * log10(waist + hip – neck) + 0.22100 * log10(height)) – 450
var hip = parseFloat(document.getElementById('navyHip').value);
if (isNaN(hip) || hip <= 0) {
alert("Please enter a valid Hip measurement.");
return;
}
if ((waist + hip) <= neck) {
alert("Check measurements: Waist + Hip must be larger than neck.");
return;
}
var denominator = 1.29579 – (0.35004 * Math.log10(waist + hip – neck)) + (0.22100 * Math.log10(height));
bfp = (495 / denominator) – 450;
}
// Sanitizing result
if (bfp 60) bfp = 60; // Upper bound cap for estimation
bfpDisplay.innerText = bfp.toFixed(1) + "%";
// Assign Category
var category = "";
var color = "";
if (gender === "male") {
if (bfp < 6) { category = "Essential Fat"; color = "#3498db"; }
else if (bfp < 14) { category = "Athletes"; color = "#2ecc71"; }
else if (bfp < 18) { category = "Fitness"; color = "#27ae60"; }
else if (bfp < 25) { category = "Acceptable"; color = "#f1c40f"; }
else { category = "Obese"; color = "#e74c3c"; }
} else {
if (bfp < 14) { category = "Essential Fat"; color = "#3498db"; }
else if (bfp < 21) { category = "Athletes"; color = "#2ecc71"; }
else if (bfp < 25) { category = "Fitness"; color = "#27ae60"; }
else if (bfp < 32) { category = "Acceptable"; color = "#f1c40f"; }
else { category = "Obese"; color = "#e74c3c"; }
}
categoryDisplay.innerText = category;
categoryDisplay.style.color = color;
resultDiv.style.display = "block";
resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}