BMI Calculator

Calculate your Body Mass Index and see your category, in metric or imperial units.

What is BMI?

Body Mass Index (BMI) is a simple screening measure that relates a person's weight to their height: BMI = weight (kg) / height² (m²). It is widely used because it only requires two easy-to-measure numbers, but it is a screening tool, not a diagnostic one — see the limitations section below.

BMI categories (WHO adult ranges)

BMI rangeCategory
Below 18.5Underweight
18.5 – 24.9Normal weight
25.0 – 29.9Overweight
30.0 and aboveObese

Limitations of BMI

BMI does not distinguish muscle mass from fat mass — muscular or athletic people are often classified as "overweight" despite low body fat, while older adults who have lost muscle mass can have a "normal" BMI despite higher body fat. It also doesn't account for sex, age, or where fat is distributed in the body (waist-to-hip ratio and waist circumference are often used alongside BMI for a fuller picture). Treat BMI as one data point, not a complete assessment of health.

How to calculate BMI in Python

def bmi(weight_kg: float, height_cm: float) -> float: height_m = height_cm / 100 return weight_kg / (height_m ** 2) def bmi_category(bmi_value: float) -> str: if bmi_value < 18.5: return "Underweight" if bmi_value < 25: return "Normal weight" if bmi_value < 30: return "Overweight" return "Obese" value = bmi(70, 175) # 22.9 print(bmi_category(value)) # Normal weight

How to calculate BMI in JavaScript

function bmi(weightKg, heightCm) { const heightM = heightCm / 100; return weightKg / (heightM * heightM); } function bmiCategory(value) { if (value < 18.5) return "Underweight"; if (value < 25) return "Normal weight"; if (value < 30) return "Overweight"; return "Obese"; } const value = bmi(70, 175); // 22.9 console.log(bmiCategory(value)); // Normal weight

This calculator is for informational purposes only and is not medical advice. Talk to a doctor or qualified healthcare provider about your individual health.

Related Tools