ForHosting KIT · Health & fitness

Body fat calculator

A man 180 cm tall with a 38 cm neck and an 85 cm waist comes out at 16.1% body fat, in the fitness range. The US Navy method needs only a tape measure: height, neck and waist, plus hips for women. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Sex
Male
Height (cm)
180
Neck cm
38
Waist cm
85
You get
Body fat (%)
16.1
Category
fitness

US Navy free

How the tape-measure method works

The US Navy method estimates body fat from circumferences instead of a scale or calipers. Every measurement is in centimetres. For men it uses height, neck and waist: the larger the waist compared with the neck, for a given height, the higher the estimate. For women the hips are added to the waist before the neck is subtracted, which is why the hip measurement is required for them and ignored for men. The formulas use base-10 logarithms, and the result is rounded and placed in a category. For men the bands are essential below 6%, athletes below 14%, fitness below 18%, average below 25% and obese from 25%; for women the cut-offs are 14, 21, 25 and 32%.

Getting a measurement you can trust

The estimate assumes the circumferences are taken at the standard Navy landmarks, so measuring somewhere else gives a different number. A common mistake is mixing inches and centimetres: enter everything in centimetres. If a man's waist is not larger than his neck, or a woman's waist plus hips is not larger than her neck, the numbers cannot be right and are refused rather than turned into a meaningless percentage. This is a statistical estimate, not a direct measurement, so it does not replace hydrostatic weighing or a DEXA scan.

Categories, rounding and output

The rounded value is then bucketed into a fitness category. For men the thresholds are essential below 6%, athletes below 14%, fitness below 18%, average below 25% and obese at 25% or more. For women they are essential below 14%, athletes below 21%, fitness below 25%, average below 32% and obese at 32% or more.

Fitness apps

Show members an instant body-fat estimate from three tape measurements, no caliper or scale required.

What units are expected?

Centimetres for every measurement. All log10 terms assume cm.

How is the category decided?

The rounded percent is bucketed into essential, athletes, fitness, average or obese using sex-specific thresholds.

Is it medically accurate?

It is a validated estimate, not a clinical measurement like DEXA.

Why do women need a hip measurement?

Because the women's version of the Navy formula adds hip circumference to the waist before subtracting the neck. For men the hips play no part, so the measurement is only required when you choose female.

Why is my measurement refused?

For men the waist must be larger than the neck, and for women the waist plus hips must be larger than the neck, because the formula takes a logarithm of that difference. Otherwise the numbers are refused instead of producing a meaningless percentage.

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.

POSThttps://api.kit.forhosting.com/dev/body-fat

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.

curl -X POST https://api.kit.forhosting.com/dev/body-fat \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sex":"male","height_cm":180,"neck_cm":38,"waist_cm":85}'
{
  "sex": "male",
  "height_cm": 180,
  "neck_cm": 38,
  "waist_cm": 85
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.body_fat",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Estimates body-fat percentage with the US Navy circumference formula from sex, height_cm, neck_cm and waist_cm (hip_cm required for women), returning the rounded percent and a fitness category.

The US Navy formulas

The estimate uses the US Navy circumference method, which needs only a tape measure. Every measurement is in centimetres. For men the formula is 495 / (1.0324 − 0.19077·log10(waist_cm − neck_cm) + 0.15456·log10(height_cm)) − 450. For women it becomes 495 / (1.29579 − 0.35004·log10(waist_cm + hip_cm − neck_cm) + 0.22100·log10(height_cm)) − 450, so hip_cm is mandatory when sex is female and ignored for men. The base-10 logarithm arguments must stay positive, so the code guards them explicitly: waist_cm − neck_cm must be greater than zero for men and waist_cm + hip_cm − neck_cm greater than zero for women, otherwise a typed invalid_input error is returned rather than producing a NaN percentage from a bad measurement combination.

Categories, rounding and output

The response is a JSON object with four keys: sex, body_fat_percent, category and method, where method is always the string us_navy so consumers can record which estimator produced the number and reproduce it later.

Validation and what it is not

Because the method is a statistical estimate rather than a direct measurement, it is not a substitute for hydrostatic weighing or a DEXA scan, and it assumes the circumferences are taken at the standard Navy landmarks. Every field is validated before any arithmetic. sex must be exactly male or female; height_cm, neck_cm and waist_cm must each be a finite number greater than zero; hip_cm is only read for women and must also be a positive finite number. decimals must be an integer between 0 and 2. Any violation throws a typed invalid_input error that names the field, so a form can highlight the exact input at fault.

Progress tracking

Log body_fat_percent and category over time to visualise recomposition during a training block.

Cohort analysis

Call the API over a spreadsheet of measurements to categorise a whole team in one batch job.

Which formula is used?

The US Navy circumference method, with separate equations for men and women; method in the output is always us_navy.

Do I need a hip measurement?

Only for women. hip_cm is required when sex is female and ignored for men.

Read the full KIT documentation →