The skinfold caliper method is a practical way to estimate body fat percentage by measuring the thickness of subcutaneous fat (fat directly under the skin). This calculator uses the Jackson-Pollock 3-Site Formula, which is widely recognized as one of the most accurate field tests for body composition.
Measurement Sites for Men
Chest: A diagonal fold taken half the distance between the anterior axillary line (armpit) and the nipple.
Abdominal: A vertical fold taken 2 cm to the right of the umbilicus (belly button).
Thigh: A vertical fold on the anterior midline of the thigh, midway between the proximal border of the patella (knee cap) and the inguinal fold (hip crease).
Measurement Sites for Women
Triceps: A vertical fold on the posterior midline of the upper arm, halfway between the acromion (shoulder) and olecranon (elbow) processes.
Suprailiac: A diagonal fold in line with the natural angle of the iliac crest (just above the hip bone).
Thigh: A vertical fold on the anterior midline of the thigh, midway between the knee and the hip crease.
Example Calculation
If a 30-year-old male has skinfold readings of 12mm (Chest), 20mm (Abdomen), and 15mm (Thigh), the total sum is 47mm. Using the Jackson-Pollock density formula and the Siri equation, the result would be approximately 13.8% body fat.
Interpretation Table
Category
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%+
function updateLabels() {
var gender = document.getElementById("gender").value;
var l1 = document.getElementById("label1");
var l2 = document.getElementById("label2");
var l3 = document.getElementById("label3");
if (gender === "male") {
l1.innerText = "Chest Skinfold (mm)";
l2.innerText = "Abdominal Skinfold (mm)";
l3.innerText = "Thigh Skinfold (mm)";
} else {
l1.innerText = "Triceps Skinfold (mm)";
l2.innerText = "Suprailiac Skinfold (mm)";
l3.innerText = "Thigh Skinfold (mm)";
}
}
function calculateBodyFat() {
var gender = document.getElementById("gender").value;
var age = parseFloat(document.getElementById("age").value);
var s1 = parseFloat(document.getElementById("site1").value);
var s2 = parseFloat(document.getElementById("site2").value);
var s3 = parseFloat(document.getElementById("site3").value);
if (isNaN(age) || isNaN(s1) || isNaN(s2) || isNaN(s3)) {
alert("Please enter valid numbers for all fields.");
return;
}
var sum = s1 + s2 + s3;
var bodyDensity;
var bodyFatPercent;
if (gender === "male") {
// Jackson-Pollock 3-site formula for men
bodyDensity = 1.10938 – (0.0008267 * sum) + (0.0000016 * Math.pow(sum, 2)) – (0.0002574 * age);
} else {
// Jackson-Pollock 3-site formula for women
bodyDensity = 1.0994921 – (0.0009929 * sum) + (0.0000023 * Math.pow(sum, 2)) – (0.0001392 * age);
}
// Siri Equation: Body Fat % = [(4.95 / Body Density) – 4.5] * 100
bodyFatPercent = ((4.95 / bodyDensity) – 4.5) * 100;
// Sanity check for output
if (bodyFatPercent 60) bodyFatPercent = 60;
var resultBox = document.getElementById("result-box");
var bfDisplay = document.getElementById("bf-percentage");
var catDisplay = document.getElementById("bf-category");
bfDisplay.innerText = bodyFatPercent.toFixed(1) + "%";
resultBox.style.display = "block";
// Determine category
var category = "";
if (gender === "male") {
if (bodyFatPercent < 6) category = "Essential Fat";
else if (bodyFatPercent < 14) category = "Athlete";
else if (bodyFatPercent < 18) category = "Fitness";
else if (bodyFatPercent < 25) category = "Average";
else category = "Obese";
} else {
if (bodyFatPercent < 14) category = "Essential Fat";
else if (bodyFatPercent < 21) category = "Athlete";
else if (bodyFatPercent < 25) category = "Fitness";
else if (bodyFatPercent < 32) category = "Average";
else category = "Obese";
}
catDisplay.innerText = "Category: " + category;
// Smooth scroll to result
resultBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}