Skinfold sum body density calculator
A 58 mm skinfold sum, your protocol's published coefficients and an age of 30 give a body density of 1.045465, which the Siri equation turns into a body fat percentage. Any density regression fits, not just one preset. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Sum
- 58
- Intercept
- 1.0994921
- Sum coef
- -0.0009929
- Sum sq coef
- 0.0000023
- Age coef
- -0.0001392
- Age
- 30
- Sum mm
- 58
- Age (years)
- 30
- Body density
- 1.045465
- Fat formula
- Siri
This skinfold sum body density calculator predicts body density from a millimetre sum of caliper sites and the linear or quadratic regression coefficients of your chosen anthropometric protocol, then optionally converts that density into body-fat percent with the classic Siri or Brozek equations. Unlike a fixed three-site product page, you supply intercept, sum coefficient, optional sum-squared and age coefficients, the skinfold sum, and age when the protocol needs it—so Jackson–Pollock, Durnin–Womersley-style density regressions, or classroom coefficient tables all share one deterministic contract. A typical check might use sum fifty-eight millimetres, intercept one point zero nine nine four nine two one, sum coefficient negative zero point zero zero zero nine nine two nine, sum-squared coefficient zero point zero zero zero zero zero two three, age coefficient negative zero point zero zero zero one three nine two, and age thirty, recovering body density near one point zero four five and a mid-twenties fat percent under Siri.
How inputs are validated and how the algebra stays reproducible
Every required number must parse as a finite decimal; empty strings, non-numeric tokens, Infinity, and NaN fail with a message that names the field. The skinfold sum must be strictly positive. Fat formula defaults to Siri: four hundred ninety-five divided by density minus four hundred fifty.
Brozek uses four hundred fifty-seven over density minus four hundred fourteen point two. Precision defaults to six decimal places and caps at fifteen so goldens stay stable; density is reported with at least six places when precision is lower enough that the conversion remains auditable.
Where general skinfold density regressions fit in practice and software
Students meet these regressions in exercise physiology labs when textbooks introduce hydrostatic weighing ideals and skinfold prediction equations side by side; entering published intercepts and slopes next to a measured sum reinforces that fat percent is a second step, not a primary measurement.
Product teams call the same contract from scripts to seed deterministic test vectors for health dashboards, to apply protocol coefficients stored in a database without shipping a separate calculator per formula, or to satisfy programming assignments that demand density from Σ and coefficients rather than a single hard-coded preset. Treat the output as an educational and planning estimate: technique, hydration, and site placement affect caliper readings, coefficients are population-specific, and clinical or research decisions should prefer multi-method body composition and a qualified professional when accuracy matters.
Pair this tool with lean-mass or calorie helpers when you need related anthropometrics, keep millimetres honest, and never mix inch-scale caliper readings without converting first.
What you can do with it
Protocol-specific coaching logs
Apply published intercept and sum coefficients to a measured skinfold sum so density and fat percent match the protocol your program standardizes on.
Exercise physiology labs
Let students compute BD from Σ and textbook coefficients, then compare Siri versus Brozek fat conversion on the same density.
FAQ
What does the skinfold sum body density calculator cost?
It is free in your browser on this page.
How is body-fat percent computed?
By default Siri: BF% = (495 / BD) − 450. Choose brozek for BF% = (457 / BD) − 414.2, or none for density only.
Does this replace DEXA or hydrostatic weighing?
No. It applies your supplied skinfold regression algebra. Use laboratory composition methods when clinical accuracy is required.
Where do I get the coefficients?
From the published regression of the protocol you measured with, such as Jackson-Pollock or Durnin-Womersley style equations, or from your course's table. Coefficients are population-specific, so use the set that matches the person's sex, age and sites.
Why do my caliper readings change from day to day?
Technique, hydration and exact site placement all shift a skinfold reading. Measure with the same caliper, the same sites and similar conditions, and treat the result as an estimate for tracking rather than a precise measurement.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/health/skinfold-body-density \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"sum":58,"intercept":1.0994921,"sum_coef":-0.0009929}'const res = await fetch("https://api.kit.forhosting.com/health/skinfold-body-density", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"sum": 58,
"intercept": 1.0994921,
"sum_coef": -0.0009929
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/skinfold-body-density",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"sum": 58,
"intercept": 1.0994921,
"sum_coef": -0.0009929
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/skinfold-body-density", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"sum":58,"intercept":1.0994921,"sum_coef":-0.0009929}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"sum":58,"intercept":1.0994921,"sum_coef":-0.0009929}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/skinfold-body-density", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"sum": 58,
"intercept": 1.0994921,
"sum_coef": -0.0009929
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.skinfold_body_density",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Everything runs offline with no randomness and no network: invalid or incomplete inputs fail with a clear invalid_input message instead of inventing composition numbers.
What body density from skinfold sum means and what the response returns
Exercise physiology textbooks and field protocols often estimate whole-body density from subcutaneous fat thickness before converting density to percent fat. Calipers measure double folds of skin and fat at protocol-defined sites; those millimetre readings are summed into a single Σ, and a published regression of the form body density equals intercept plus a coefficient times Σ plus an optional coefficient times Σ squared plus an optional coefficient times age yields density in grams per cubic centimetre. This calculator implements that general regression without hard-coding a single population equation: you pass the sum and the coefficients that belong to your method, age, and sex or site set. The response echoes normalized inputs (sum_mm, intercept, sum_coef, sum_sq_coef, age_coef, age_years), reports body_density, names the fat_formula applied (siri, brozek, or none), includes a human-readable formula string, and applies the chosen precision to rounded numeric fields. When fat conversion is enabled, body_fat_percent is included so density and fat stay one atomic result. There is no DEXA simulation, no bioelectrical impedance model, no ethnicity lookup table, and no percentile chart in this contract: the engine either forms a positive finite density from the algebra you supplied or rejects the request with invalid_input.
How inputs are validated and how the algebra stays reproducible
Preferred fields are sum for the millimetre skinfold total, intercept and sum_coef for the mandatory regression terms, optional sum_sq_coef and age_coef (defaulting to zero when omitted), optional age in years, fat_formula among siri, brozek, and none, and optional precision. Aliases include skinfold_sum, sum_mm, and sigma for the sum; c0 or a for intercept; c1 or b for sum_coef; c2 or c for sum_sq_coef; c_age, c3, or d for age_coef; age_years or years for age; formula or bf_formula for the fat conversion choice; and decimals or dp for precision. When age_coef is non-zero, age is required and must be strictly positive; when age_coef is zero you may omit age and it is treated as zero in the density equation. Choosing none returns density only and omits body_fat_percent so optional fields never appear as null.
Where general skinfold density regressions fit in practice and software
Coaches and sports scientists use coefficient-driven density calculators when a program standardizes on a published equation for a sex and site set, when they compare density before choosing a fat conversion, or when they need the intermediate body_density field for research logs rather than only a black-box fat percentage. On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split—free interactive exploration and a priced, identical API—matches the rest of the KIT tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the mathematical result.
Integration use cases
Deterministic health fixtures
Generate reproducible body_density and optional body_fat_percent fields for unit tests, dashboards, and CI assertions on fixed sums and coefficients.
Technical questions
Which formula is used for body density?
BD = intercept + sum_coef·Σ + sum_sq_coef·Σ² + age_coef·age, with optional coefficients defaulting to zero when omitted.
What happens if sum or a required coefficient is missing?
The input is rejected with invalid_input. Sum, intercept, and sum_coef are required; age is required when age_coef is non-zero.