BMI Calculator: What Is Body Mass Index and How to Calculate It
Body Mass Index (BMI) is a simple number derived from your height and weight. Doctors, researchers, and health organisations use it as a quick screening tool to categorise body weight relative to height. In this guide you will learn the exact formula, what the ranges mean, how to calculate BMI in code, and — critically — what BMI cannot tell you.
What Is BMI?
BMI is a ratio of weight to height squared. It was developed by Belgian mathematician Adolphe Quetelet in the 1830s as a population-level statistic, not as an individual diagnostic tool. Despite this, it became the default clinical screening metric because it requires only a scale and a measuring tape.
A single number can never capture the full complexity of human health, but BMI is useful as a fast, free, zero-equipment filter that prompts deeper investigation when values fall outside normal ranges.
The BMI Formula
There are two versions depending on the unit system you use.
Metric (kg and cm)
BMI = weight (kg) ÷ height (m)²
Example: 75 kg, 175 cm (1.75 m)
BMI = 75 ÷ (1.75 × 1.75) = 75 ÷ 3.0625 ≈ 24.5
Imperial (lb and inches)
BMI = (weight (lb) × 703) ÷ height (inches)²
The factor 703 is a unit-conversion constant. Example: 165 lb, 69 inches (5′9″)
BMI = (165 × 703) ÷ (69 × 69) = 115 995 ÷ 4 761 ≈ 24.4
BMI Ranges (Adults)
| BMI | Category |
|---|---|
| Below 18.5 | Underweight |
| 18.5 – 24.9 | Normal / Healthy weight |
| 25.0 – 29.9 | Overweight |
| 30.0 – 34.9 | Obese (Class I) |
| 35.0 – 39.9 | Obese (Class II) |
| 40.0 and above | Severely obese (Class III) |
These cut-offs come from the World Health Organisation and are the most widely used reference. Some Asian health guidelines use lower thresholds (23 for overweight, 27.5 for obese) because the same BMI predicts higher cardiovascular risk in certain ethnic groups.
Children and Teenagers
For people under 20, raw BMI values are not used directly. Instead, BMI-for-age percentile charts are used because body fatness changes as children grow and differs between boys and girls. A BMI at the 85th–94th percentile is "overweight"; at or above the 95th percentile is "obese".
Calculating BMI in Code
JavaScript
function calcBMI(weightKg, heightCm) {
const heightM = heightCm / 100;
return weightKg / (heightM * heightM);
}
function bmiCategory(bmi) {
if (bmi < 18.5) return "Underweight";
if (bmi < 25) return "Normal weight";
if (bmi < 30) return "Overweight";
return "Obese";
}
const bmi = calcBMI(75, 175);
console.log(bmi.toFixed(1)); // 24.5
console.log(bmiCategory(bmi)); // Normal weight
Python
def calc_bmi(weight_kg: float, height_cm: float) -> float:
height_m = height_cm / 100
return weight_kg / (height_m ** 2)
def bmi_category(bmi: float) -> str:
if bmi < 18.5: return "Underweight"
if bmi < 25: return "Normal weight"
if bmi < 30: return "Overweight"
return "Obese"
bmi = calc_bmi(75, 175)
print(f"{bmi:.1f}") # 24.5
print(bmi_category(bmi)) # Normal weight
Go
package main
import "fmt"
func calcBMI(weightKg, heightCm float64) float64 {
heightM := heightCm / 100
return weightKg / (heightM * heightM)
}
func bmiCategory(bmi float64) string {
switch {
case bmi < 18.5: return "Underweight"
case bmi < 25: return "Normal weight"
case bmi < 30: return "Overweight"
default: return "Obese"
}
}
func main() {
bmi := calcBMI(75, 175)
fmt.Printf("%.1f — %s\n", bmi, bmiCategory(bmi))
// 24.5 — Normal weight
}
PHP
function calcBMI(float $weightKg, float $heightCm): float {
$heightM = $heightCm / 100;
return $weightKg / ($heightM ** 2);
}
function bmiCategory(float $bmi): string {
if ($bmi < 18.5) return 'Underweight';
if ($bmi < 25) return 'Normal weight';
if ($bmi < 30) return 'Overweight';
return 'Obese';
}
$bmi = calcBMI(75, 175);
echo number_format($bmi, 1) . ' — ' . bmiCategory($bmi);
// 24.5 — Normal weight
What BMI Does Not Measure
BMI is a starting point, not a diagnosis. Several important limitations:
1. It cannot distinguish muscle from fat.
A competitive bodybuilder may have a BMI of 30, technically "obese", while carrying very little body fat. Conversely, an older person with a "normal" BMI of 24 may have low muscle mass and high visceral fat.
2. It ignores fat distribution.
Visceral fat (stored around the organs) is metabolically more dangerous than subcutaneous fat. Waist circumference and waist-to-hip ratio capture this; BMI does not.
3. It is less accurate for short people.
The formula tends to overestimate adiposity in shorter individuals (below ~160 cm) because height is squared — small height differences amplify the result.
4. Age and sex matter.
For the same BMI, women typically have a higher body fat percentage than men. Older adults tend to have less muscle, so the same BMI represents more fat than in younger adults.
5. Ethnic differences in risk.
As noted above, South Asian, East Asian, and some other populations face higher cardiometabolic risk at lower BMI values than the standard WHO cut-offs reflect.
Better together: Use BMI alongside waist circumference, blood pressure, fasting glucose, and lipid panels for a fuller picture of health risk.
Ideal Weight From BMI
If you want to calculate the weight range that corresponds to a "normal" BMI (18.5–24.9) for a given height, rearrange the formula:
weight = BMI × height (m)²
For 175 cm (1.75 m):
- Lower: 18.5 × 3.0625 ≈ 56.7 kg
- Upper: 24.9 × 3.0625 ≈ 76.3 kg
This gives a healthy weight range of 56.7 – 76.3 kg for someone 175 cm tall.
FAQ
Is a BMI of 25 considered overweight?
Yes. The WHO cut-off for overweight begins at 25.0. A BMI of 24.9 is the upper end of the normal range.
What is a good BMI for a woman?
The same WHO ranges apply to adults regardless of sex: 18.5–24.9 is the normal range. However, women typically carry more essential body fat, so some guidelines suggest 18.5–24.0 as optimal for women.
Can you have a high BMI and still be healthy?
Yes, particularly if the high BMI is driven by muscle mass rather than excess fat. Athletes are the clearest example. Other metabolic markers are needed to assess actual health risk.
Does BMI change with age?
The formula itself does not change, but healthy cut-offs for older adults (65+) are sometimes considered slightly higher (22–27) because low body weight in old age is linked to frailty and mortality.
How often should I check my BMI?
BMI does not change quickly. Most health guidelines suggest once a year is sufficient for adults without specific medical reasons to monitor more frequently.
Calculate Your BMI Now
Skip the manual maths — use the BMI Calculator to get your result instantly in both metric and imperial units, together with your healthy weight range.