Child BMI-for-Age Calculator

ANALife Services AuthorityNational Calculator Authority›Child BMI-for-Age Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Child BMI-for-Age Calculator

Calculate Body Mass Index (BMI) and the corresponding age- and sex-specific percentile for children and adolescents aged 2–19 years using CDC growth chart LMS parameters.

Age (years, 2–19)

Sex

-- Select -- Male Female

Unit System

Metric (kg, cm) Imperial (lb, in)

Weight (kg)

Height (cm)

Weight (lb)

Height (in)

Calculate

// ── LMS tables (CDC 2000) ────────────────────────────────────────────────── // Each entry: [ageMidpoint_months, L, M, S] // Source: CDC Clinical Growth Charts LMS parameters // https://www.cdc.gov/growthcharts/percentile_data_files.htm // Age in months (24 to 240, step 1 month for ages 2-20) // We store every 6-month interval for brevity; interpolation handles the rest.

const CHI_LMS = { male: [ // [age_months, L, M, S] [24, -1.9699, 16.9392, 0.10975], [30, -2.0680, 16.5221, 0.10955], [36, -2.1415, 16.2064, 0.10947], [42, -2.1882, 15.9625, 0.10940], [48, -2.2138, 15.7685, 0.10940], [54, -2.2218, 15.6101, 0.10948], [60, -2.2150, 15.4786, 0.10963], [66, -2.1960, 15.3693, 0.10984], [72, -2.1663, 15.2786, 0.11010], [78, -2.1275, 15.2033, 0.11040], [84, -2.0808, 15.1413, 0.11074], [90, -2.0276, 15.0907, 0.11113], [96, -1.9690, 15.0505, 0.11156], [102, -1.9060, 15.0196, 0.11204], [108, -1.8395, 14.9972, 0.11257], [114, -1.7703, 14.9823, 0.11315], [120, -1.6991, 14.9741, 0.11379], [126, -1.6265, 14.9718, 0.11448], [132, -1.5530, 14.9749, 0.11522], [138, -1.4791, 14.9827, 0.11601], [144, -1.4052, 14.9946, 0.11685], [150, -1.3317, 15.0101, 0.11773], [156, -1.2590, 15.0287, 0.11866], [162, -1.1874, 15.0500, 0.11963], [168, -1.1173, 15.0736, 0.12063], [174, -1.0490, 15.0990, 0.12167], [180, -0.9827, 15.1260, 0.12274], [186, -0.9185, 15.1543, 0.12384], [192, -0.8566, 15.1836, 0.12496], [198, -0.7971, 15.2138, 0.12610], [204, -0.7401, 15.2447, 0.12726], [210, -0.6857, 15.2762, 0.12843], [216, -0.6339, 15.3081, 0.12961], [222, -0.5847, 15.3403, 0.13080], [228, -0.5382, 15.3727, 0.13199], [234, -0.4943, 15.4052, 0.13319] ], female: [ [24, -1.5539, 16.7474, 0.10963], [30, -1.6645, 16.3790, 0.10928], [36, -1.7462, 16.0942, 0.10908], [42, -1.8024, 15.8680, 0.10898], [48, -1.8367, 15.6882, 0.10895], [54, -1.8519, 15.5459, 0.10898], [60, -1.8508, 15.4337, 0.10907], [66, -1.8355, 15.3451, 0.10921], [72, -1.8082, 15.2749, 0.10940], [78, -1.7706, 15.2188, 0.10963], [84, -1.7243, 15.1733, 0.10990], [90, -1.6706, 15.1358, 0.11021], [96, -1.6108, 15.1040, 0.11056], [102, -1.5460, 15.0763, 0.11095], [108, -1.4773, 15.0516, 0.11138], [114, -1.4056, 15.0290, 0.11185], [120, -1.3317, 15.0079, 0.11236], [126, -1.2563, 14.9878, 0.11291], [132, -1.1800, 14.9684, 0.11350], [138, -1.1033, 14.9494, 0.11413], [144, -1.0267, 14.9306, 0.11480], [150, -0.9506, 14.9120, 0.11551], [156, -0.8754, 14.8934, 0.11626], [162, -0.8014, 14.8749, 0.11705], [168, -0.7289, 14.8564, 0.11788], [174, -0.6581, 14.8381, 0.11875], [180, -0.5892, 14.8199, 0.11966], [186, -0.5223, 14.8020, 0.12061], [192, -0.4575, 14.7845, 0.12159], [198, -0.3948, 14.7675, 0.12261], [204, -0.3343, 14.7511, 0.12366], [210, -0.2760, 14.7354, 0.12474], [216, -0.2199, 14.7205, 0.12585], [222, -0.1659, 14.7065, 0.12699], [228, -0.1141, 14.6935, 0.12815], [234, -0.0644, 14.6816, 0.12933] ] };

function chiToggleUnits() { const u = document.getElementById('chi-unit').value; document.getElementById('chi-metric-inputs').style.display = u === 'metric' ? '' : 'none'; document.getElementById('chi-imperial-inputs').style.display = u === 'imperial' ? '' : 'none'; }

// Linear interpolation of LMS at given age_months function chiInterpolateLMS(table, ageMo) { if (ageMo = table[table.length-1][0]) return table[table.length-1].slice(1); for (let i = 0; i = a0 && ageMo 19) { res.className = 'calc-result calc-result-error'; res.innerHTML = '⚠ Age must be between 2 and 19 years.'; return; } if (!sex) { res.className = 'calc-result calc-result-error'; res.innerHTML = '⚠ Please select a sex.'; return; }

let weightKg, heightM; if (unit === 'metric') { weightKg = parseFloat(document.getElementById('chi-weight-kg').value); const heightCm = parseFloat(document.getElementById('chi-height-cm').value); if (isNaN(weightKg) || weightKg 2.5) { res.className = 'calc-result calc-result-error'; res.innerHTML = '⚠ Height seems out of range. Please check your input.'; return; } if (weightKg 300) { res.className = 'calc-result calc-result-error'; res.innerHTML = '⚠ Weight seems out of range. Please check your input.'; return; }

const bmi = weightKg / (heightM * heightM); const ageMo = ageYr * 12; const table = CHI_LMS[sex]; const [L, M, S] = chiInterpolateLMS(table, ageMo);

const z = chiZScore(L, M, S, bmi); const pct = chiNormCDF(z) * 100;

// Weight status categories (CDC) let category, catClass, advice; if (pct ' + 'BMI' + bmi.toFixed(1) + ' kg/m²' + 'BMI Percentile' + pct.toFixed(1) + 'th percentile' + 'Z-Score' + z.toFixed(2) + '' + 'Weight Status' + category + '' + 'Healthy Weight Range' + hwLow.toFixed(1) + ' – ' + hwHigh.toFixed(1) + ' kg ' + '(' + (hwLow2.20462).toFixed(1) + ' – ' + (hwHigh2.20462).toFixed(1) + ' lb)' + '' + '' + advice + '

' + 'LMS parameters: L=' + L.toFixed(4) + ', M=' + M.toFixed(4) + ', S=' + S.toFixed(5) + '

'; }

#### Formula

Step 1 – BMI:

BMI = weight (kg) / height² (m²)

Step 2 – Z-score via CDC LMS method (Box-Cox power transformation):

If L ≠ 0:   Z = [ (BMI / M)L − 1 ] / (L × S) If L = 0:   Z = ln(BMI / M) / S

where L (Box-Cox power), M (median), and S (coefficient of variation) are age- and sex-specific parameters from the CDC 2000 growth charts, linearly interpolated to the child's exact age in months.

Step 3 – Percentile:

Percentile = Φ(Z) × 100, where Φ is the standard normal CDF.

Step 4 – Weight Status (CDC thresholds):

Healthy weight range is back-calculated from the 5th and 85th percentile BMI values (Z = −1.6449 and +1.0364) at the child's current height using the inverse LMS formula: BMI = M × (1 + L × S × Z)1/L.

#### Assumptions & References

CDC Growth Charts: https://www.cdc.gov/growthcharts/ - Kuczmarski RJ et al. (2002). 2000 CDC Growth Charts for the United States. Vital Health Stat 11(246). - Must A, Dallal GE, Dietz WH (1991). Reference data for obesity: 85th and 95th percentiles of BMI. Am J Clin Nutr 53:839–846.

More Calculators

Read Next

Firewall Rule Complexity Analyzer ANA › Life Services Authority › National Calculator Authority › Firewall Rule Complexity Analyzer .calc-container { max-width:...

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References