Toolmingo
Guides5 min read

BMI Calculator: What Is Body Mass Index and How to Calculate It

Learn what BMI is, how to calculate it manually, what the ranges mean, and the limitations of using BMI as a health metric.

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.

Related tools

Keep reading

All Toolmingotools are free & run in your browser

No sign-up, no upload, no watermark. Your files never leave your device.

Browse all tools