Relative fat mass calculator
A man 178 cm tall with an 86 cm waist comes out at 22.6 % body fat on the relative fat mass formula. You only need a tape measure and your height, with no scale or calipers. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Height
- 178
- Waist
- 86
- Sex
- Male
- Sex code
- 0
- Height over waist
- 2.069767
- Body fat percent
- 22.6
- Relative fat mass
- 22.6
The relative fat mass calculator estimates whole-body fat percentage from standing height, waist circumference, and sex using the Woolcott and Bergman RFM equation. Unlike BMI, which folds fat and lean tissue into one mass-over-height-squared index, RFM uses the height-to-waist ratio plus a sex-specific intercept, so a tape measure and a stadiometer are enough. Adult men use sixty-four minus twenty times height over waist; adult women use seventy-six minus twenty times the same ratio. Height and waist must share one linear unit because the quotient is dimensionless.
What relative fat mass measures and how the RFM formula works
Relative fat mass, abbreviated RFM in the original papers, is an estimator of whole-body fat percentage introduced by Woolcott and Bergman after they compared several simple anthropometric indices with dual-energy X-ray absorptiometry in a large sample of American adults. The working idea is that the ratio of standing height to waist circumference already tracks how much of the torso is occupied by central fat, and a sex-specific intercept then rescales that ratio onto a percent-fat axis people already use in coaching and epidemiology.
For adult men the intercept is 64 and the slope is minus twenty times height divided by waist. For adult women the intercept is 76 with the same slope, which is algebraically the same as adding twelve when sex is coded one for female and zero for male. Treat the result as a screening-style estimate rather than a clinical diagnosis: dual-energy X-ray absorptiometry, hydrostatic weighing, air displacement, and multi-compartment models remain the reference options when a care decision requires measured composition.
Do not confuse RFM with the US Navy circumference method, Jackson-Pollock skinfold polynomials, the Gallagher BMI-age-sex equation, Covert Bailey girths, or a raw waist-to-height ratio; those use different measurements and occupy different search landings so each formula keeps its own page.
What you can do with it
Coaching and wellness logs from a tape and a height
Convert stored height, waist, and sex into a deterministic RFM body-fat percent for charts and longitudinal wellness logs without caliper hardware or a scale.
FAQ
What inputs does the relative fat mass calculator need?
Standing height, waist circumference in the same linear unit, and sex (male or female). Optional precision sets decimal places (default 2).
What happens if waist circumference is not a positive number?
Zero, negative, missing, empty, or non-numeric waist values are rejected and not billed, because height divided by waist would be undefined or non-physical.
Is relative fat mass the same as BMI, US Navy, or Gallagher body fat?
No. BMI is mass over height squared and does not report percent fat. US Navy uses neck and (for women) hip circumferences. Gallagher predicts percent fat from BMI, age, and sex. RFM uses only height, waist, and sex, and has its own SEO landing.
Where exactly should I measure my waist for RFM?
Measure on bare skin at the end of a normal breath out, either halfway between your lowest rib and the top of your hip bone or at the narrowest point. Use the same spot every time you track it.
Can I enter my height and waist in inches?
Yes. Only the ratio of height to waist matters, so centimetres, metres or inches all work as long as both measurements use the same unit. Mixing centimetres and inches gives a wrong figure that nothing in the numbers can reveal.
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/relative-fat-mass \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"height":178,"waist":86,"sex":"male"}'const res = await fetch("https://api.kit.forhosting.com/health/relative-fat-mass", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"height": 178,
"waist": 86,
"sex": "male"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/relative-fat-mass",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"height": 178,
"waist": 86,
"sex": "male"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/relative-fat-mass", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"height":178,"waist":86,"sex":"male"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"height":178,"waist":86,"sex":"male"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/relative-fat-mass", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"height": 178,
"waist": 86,
"sex": "male"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.relative_fat_mass",
"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
The path is fully offline and deterministic: no network, no random seed, and no clock, so coaching apps, classroom oracles, and prepaid API clients receive identical JSON for the same inputs every time. Missing fields, non-numeric values, and a waist circumference that is not a positive number fail with invalid_input and are not billed. Use the free browser tool for quick checks, or call the API at $0.002 per successful item when pipelines need a stable RFM contract.
What relative fat mass measures and how the RFM formula works
Because height and waist appear only as a quotient, centimetres, metres, or inches all work as long as both measurements share the unit; mixing centimetres of height with inches of waist silently wrecks the estimate and is a user error this endpoint cannot detect from numbers alone. This capability implements that identity as pure arithmetic. It does not consult lookup tables, apply ethnicity switches, consume age, or ask for neck, hip, or skinfold data.
Input contract, how to measure waist, and reading the response
Waist is the circumference at the agreed landmark—typically the midpoint between the lowest rib and the iliac crest, or the narrowest point, measured on bare skin at the end of a normal expiration—as a finite number that must be strictly greater than zero. Non-positive height, unsupported sex strings, and non-finite values fail the same way, naming the offending field. POST a JSON object with required height, waist, and sex. Height is standing stature as a finite positive number in any linear unit you choose; aliases height_cm, stature, and ht are accepted so forms can reuse familiar labels. Aliases waist_cm, waist_circumference, and circumference are recognized. Sex accepts male or female and common short forms such as m, f, man, and woman after case folding; aliases gender and sex_at_birth are also recognized. Optional precision, with aliases decimals and dp, chooses zero through twelve decimal places for rounded outputs and defaults to two, which matches how percent fat is usually displayed. A waist circumference that is missing, empty, non-numeric, zero, or negative raises invalid_input and is not billed; that is the explicit contract for this tool. On success you receive the echoed height, waist, and sex, a sex_code of zero for male and one for female matching the published RFM identity, height_over_waist used inside the slope, body_fat_percent as the estimated percentage, relative_fat_mass equal to that same percentage so callers can key on either name, method always set to relative_fat_mass, formula restating the identity, and the precision used.
Where a relative fat mass API earns its keep and how pricing works
Coaches and population-health programs use a relative fat mass calculator when height and a single waist tape are already on file and they need a sex-aware fat estimate without calipers, neck measurements, or a scale. Exercise-physiology and nutrition courses assign RFM labs and need an oracle that rejects a non-positive waist instead of inventing a silent infinity from a zero denominator. Keep clinical expectations honest—this is not a diagnostic medical device—and pair the number with context about muscle mass, hydration, and how the waist was measured so a large waist from clothing or post-meal bloating is not mistaken for a change in fat. On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, validation failures are not charged, and nothing is stored after the response returns. That split matches the rest of the KIT tier-A catalog: free interactive exploration and a priced, identical automation path. If your workflow already stores skinfolds, use the Jackson-Pollock endpoint; if you only have BMI, age, and sex, use Gallagher; if you only need the waist-to-height ratio without converting it to percent fat, use that dedicated calculator rather than forcing RFM into a ratio-only job.
Integration use cases
Classroom RFM formula checks
Students verify Woolcott–Bergman arithmetic against homework keys with stable JSON suitable for grading scripts, including the required rejection of a non-positive waist.
Fitness apps and CI fixtures
Apps and test suites call a pure prepaid endpoint so client UIs and server goldens share the same height-waist-sex contract and the same body_fat_percent field.
Technical questions
What is the relative fat mass formula?
RFM = 64 − 20 × (height / waist) for men and RFM = 76 − 20 × (height / waist) for women, equivalently RFM = 64 − 20 × (height / waist) + 12 × sex with sex coded 0 for male and 1 for female. The result is estimated body-fat percent.
What does the relative fat mass calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.