Incremental Interest Rate Calculator

U.S. Navy Body Fat Calculator

Accurate body fat estimation using the official military formula.

Male Female

Understanding the U.S. Navy Body Fat Method

The U.S. Navy Body Fat Calculator is a widely respected tool used to estimate a person's body composition. Unlike Body Mass Index (BMI), which only looks at height and weight, the Navy formula uses circumference measurements to differentiate between lean mass and adipose tissue (fat).

How the Calculation Works

The formula relies on the relationship between your height and the circumference of specific areas where the body naturally stores fat. For men, this is primarily the waist and neck. For women, the formula also includes hip measurements to account for the biological distribution of fat in the lower body.

  • Men: Logarithmic equation using Waist, Neck, and Height.
  • Women: Logarithmic equation using Waist, Hips, Neck, and Height.

How to Take Accurate Measurements

To get the most accurate results, use a soft measuring tape and follow these guidelines:

  1. Neck: Measure just below the larynx (Adam's apple), pulling the tape snug but not tight.
  2. Waist: For men, measure at the navel. For women, measure at the narrowest part of the torso (natural waistline).
  3. Hips (Women only): Measure around the widest part of the buttocks.
  4. Height: Measure while standing straight against a wall, without shoes.

Body Fat Category Chart

Category Men Range Women Range
Essential Fat 2 – 5% 10 – 13%
Athletes 6 – 13% 14 – 20%
Fitness 14 – 17% 21 – 24%
Acceptable 18 – 24% 25 – 31%
Obese 25% + 32% +

Example Calculation

A male standing 180cm tall, with a 90cm waist and 40cm neck, would calculate as follows:

Estimated Body Fat: 19.1%
Category: Acceptable / Fitness Range

function updateGenderFields() { var gender = document.getElementById("gender").value; var hipField = document.getElementById("hipField"); if (gender === "female") { hipField.style.display = "block"; } else { hipField.style.display = "none"; } } function calculateBF() { var gender = document.getElementById("gender").value; var h = parseFloat(document.getElementById("height").value); var n = parseFloat(document.getElementById("neck").value); var w = parseFloat(document.getElementById("waist").value); var resultBox = document.getElementById("result-box"); var bfOutput = document.getElementById("bf-output"); var catOutput = document.getElementById("category-output"); if (!h || !n || !w || (gender === "female" && !document.getElementById("hips").value)) { alert("Please enter all required measurements."); return; } var bf = 0; // Conversion factor for metric to imperial (the original Navy formula uses inches) var cmToIn = 0.393701; var hIn = h * cmToIn; var nIn = n * cmToIn; var wIn = w * cmToIn; if (gender === "male") { // Formula: 86.010*log10(waist-neck) – 70.041*log10(height) + 36.76 bf = 86.010 * Math.log10(wIn – nIn) – 70.041 * Math.log10(hIn) + 36.76; } else { var hipIn = parseFloat(document.getElementById("hips").value) * cmToIn; // Formula: 163.205*log10(waist+hip-neck) – 97.684*log10(height) – 78.387 bf = 163.205 * Math.log10(wIn + hipIn – nIn) – 97.684 * Math.log10(hIn) – 78.387; } bf = Math.max(2, bf.toFixed(1)); // Realistic floor var category = ""; var color = ""; if (gender === "male") { if (bf < 6) { category = "Essential Fat"; color = "#3498db"; } else if (bf < 14) { category = "Athlete"; color = "#2ecc71"; } else if (bf < 18) { category = "Fitness"; color = "#27ae60"; } else if (bf < 25) { category = "Average"; color = "#f1c40f"; } else { category = "Obese"; color = "#e74c3c"; } } else { if (bf < 14) { category = "Essential Fat"; color = "#3498db"; } else if (bf < 21) { category = "Athlete"; color = "#2ecc71"; } else if (bf < 25) { category = "Fitness"; color = "#27ae60"; } else if (bf < 32) { category = "Average"; color = "#f1c40f"; } else { category = "Obese"; color = "#e74c3c"; } } resultBox.style.display = "block"; resultBox.style.backgroundColor = color + "22"; bfOutput.innerHTML = bf + "% Body Fat"; catOutput.innerHTML = "Category: " + category; catOutput.style.color = color; }

Leave a Comment