# FFMI Calculator

> Computes the fat-free mass index (FFMI = lean mass / height²) and the height-normalized FFMI (FFMI + 6.1 × (1.8 − height in m)) from weight, height and body-fat percentage, and interprets it with the bands derived from Kouri et al. (1995), whose steroid-free athletes did not exceed a normalized FFMI of about 25.

- Calculator id: `ffmi` · Category: Sports & Fitness (`fitness`) · Tool name: `calculate_ffmi`
- Canonical page: https://tttkmbb.com/fitness/ffmi · This document: https://tttkmbb.com/fitness/ffmi.md · JSON definition: https://tttkmbb.com/fitness/ffmi.json

## Purpose

Computes the fat-free mass index (FFMI = lean mass / height²) and the height-normalized FFMI (FFMI + 6.1 × (1.8 − height in m)) from weight, height and body-fat percentage, and interprets it with the bands derived from Kouri et al. (1995), whose steroid-free athletes did not exceed a normalized FFMI of about 25.

**Use when:** You want to judge muscularity independent of height, compare lean mass between people, or track a strength-training or bodybuilding progression.

**Do not use when:** You have no body-fat estimate (use body-fat or skinfold-body-fat first) or want a weight classification (use bmi); the interpretation bands come from a male athlete sample and results are informational.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `weight_kg` | number | kg | required | Body weight in kilograms. (> 0, max 400) |
| `height_cm` | number | cm | required | Height in centimetres. (min 100, max 250) |
| `body_fat_percent` | number | % | required | Body-fat percentage from calipers, DEXA, BIA or a tape-measure estimate. (min 2, max 70) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `lean_mass_kg` | number | kg | weight_kg × (1 − body_fat_percent / 100). |
| `fat_mass_kg` | number | kg | weight_kg × body_fat_percent / 100. |
| `ffmi` | number | kg/m² | lean_mass_kg / height_m². |
| `normalized_ffmi` | number | kg/m² | ffmi + 6.1 × (1.8 − height_m): adjusted to a reference height of 1.80 m. |
| `interpretation` | string |  | Band of the normalized FFMI: < 18 below average, 18–20 average, 20–22 above average, 22–23 excellent, 23–25 superior, > 25 rarely attained without anabolic steroids (male norms). |

## Formula

`lean_mass_kg = weight_kg × (1 − body_fat_percent / 100); ffmi = lean_mass_kg / (height_cm / 100)²; normalized_ffmi = ffmi + 6.1 × (1.8 − height_cm / 100)`

Kouri et al. (1995) measured 157 male athletes and found that no steroid non-user exceeded a normalized FFMI of 25.0, while users ranged higher; the bands below 25 are the customary reading of that sample, not clinical categories. Women carry less muscle, so their typical normalized FFMI is about 4–5 units lower. Informational.

## Data Sources

- Kouri EM, Pope HG, Katz DL, Oliva P (1995) Fat-free mass index in users and nonusers of anabolic-androgenic steroids, Clin J Sport Med 5:223-228 — https://pubmed.ncbi.nlm.nih.gov/7496846/ (peer_reviewed, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/ffmi?weight_kg=…&height_cm=…&body_fat_percent=…`
- `POST https://tttkmbb.com/api/v1/calculate/ffmi` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/ffmi · OpenAPI operationId `calculate_ffmi` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "ffmi", "inputs": {…}}`

## Example

- 80 kg, 180 cm, 15 % body fat: inputs `{"weight_kg":80,"height_cm":180,"body_fat_percent":15}` → `{"lean_mass_kg":68,"fat_mass_kg":12,"ffmi":20.99,"normalized_ffmi":20.99,"interpretation":"Above average (20–22)"}`
- 95 kg, 175 cm, 12 % body fat: inputs `{"weight_kg":95,"height_cm":175,"body_fat_percent":12}` → `{"lean_mass_kg":83.6,"ffmi":27.3,"normalized_ffmi":27.6,"interpretation":"Rarely attained without anabolic steroids (> 25)"}`

```
GET https://tttkmbb.com/api/v1/calculate/ffmi?weight_kg=80&height_cm=180&body_fat_percent=15
```

## Limitations

You have no body-fat estimate (use body-fat or skinfold-body-fat first) or want a weight classification (use bmi); the interpretation bands come from a male athlete sample and results are informational. Kouri et al. (1995) measured 157 male athletes and found that no steroid non-user exceeded a normalized FFMI of 25.0, while users ranged higher; the bands below 25 are the customary reading of that sample, not clinical categories. Women carry less muscle, so their typical normalized FFMI is about 4–5 units lower. Informational. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Why normalize to 1.80 m?**

FFMI still rises slightly with height in the Kouri data; the 6.1 × (1.8 − height) term removes that trend so people of different heights can be compared on one scale.

**Is a normalized FFMI above 25 proof of steroid use?**

No. It was the upper limit of the non-users in one 1995 sample; rare genetics, measurement error and an underestimated body-fat percentage can all push the number above 25.

**Do the bands apply to women?**

They were derived from men; women's values run several units lower, so use them only for relative tracking.

## Related

- [Skinfold Body Fat Calculator](https://tttkmbb.com/fitness/skinfold-body-fat.md) — Caliper-based body-fat percentage to feed into the FFMI.
- [Body Fat Calculator](https://tttkmbb.com/health/body-fat.md) — Tape-measure body-fat estimate.
- [BMI Calculator](https://tttkmbb.com/health/bmi.md) — Weight-based index for comparison.
