{"id":2742,"date":"2026-03-21T12:15:11","date_gmt":"2026-03-21T10:15:11","guid":{"rendered":"https:\/\/bio-me.bio\/?page_id=2742"},"modified":"2026-04-07T00:22:34","modified_gmt":"2026-04-06T22:22:34","slug":"body-surface-area-calculator","status":"publish","type":"page","link":"https:\/\/bio-me.bio\/?page_id=2742","title":{"rendered":"Body Surface Area Calculator"},"content":{"rendered":"\n<div class=\"eco-tool\" id=\"eco-bsa-tool-6c1f4\">\n  <div class=\"eco-tool__header\">\n    <h2 class=\"eco-tool__title\">Body Surface Area Calculator<\/h2>\n    <p class=\"eco-tool__lead\">\n      Estimate body surface area (BSA) using your height and weight. This value is often used in physiology and clinical calculations.\n    <\/p>\n  <\/div>\n\n  <form class=\"eco-tool__form\" id=\"eco-bsa-form-6c1f4\" novalidate>\n    <div class=\"eco-tool__grid3\">\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-bsa-height-6c1f4\">Height (cm)<\/label>\n        <input class=\"eco-tool__input\" id=\"eco-bsa-height-6c1f4\" type=\"number\" min=\"50\" max=\"250\" step=\"0.1\" value=\"175\" inputmode=\"decimal\" \/>\n        <div class=\"eco-tool__hint\">Enter body height in centimeters.<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-bsa-weight-6c1f4\">Weight (kg)<\/label>\n        <input class=\"eco-tool__input\" id=\"eco-bsa-weight-6c1f4\" type=\"number\" min=\"2\" max=\"300\" step=\"0.1\" value=\"70\" inputmode=\"decimal\" \/>\n        <div class=\"eco-tool__hint\">Enter body weight in kilograms.<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-bsa-formula-6c1f4\">Formula<\/label>\n        <select class=\"eco-tool__input\" id=\"eco-bsa-formula-6c1f4\">\n          <option value=\"mosteller\" selected>Mosteller<\/option>\n          <option value=\"dubois\">Du Bois<\/option>\n          <option value=\"haycock\">Haycock<\/option>\n        <\/select>\n        <div class=\"eco-tool__hint\">Mosteller is simple and widely used.<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-bsa-agegroup-6c1f4\">Age group<\/label>\n        <select class=\"eco-tool__input\" id=\"eco-bsa-agegroup-6c1f4\">\n          <option value=\"adult\" selected>Adult<\/option>\n          <option value=\"child\">Child<\/option>\n          <option value=\"infant\">Infant<\/option>\n        <\/select>\n        <div class=\"eco-tool__hint\">Shown for interpretation only.<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"eco-tool__actions\">\n      <button type=\"button\" class=\"wp-element-button eco-tool__btn\" id=\"eco-bsa-calc-6c1f4\">Calculate<\/button>\n      <button type=\"button\" class=\"wp-element-button eco-tool__btn eco-tool__btn--ghost\" id=\"eco-bsa-reset-6c1f4\">Reset<\/button>\n      <div class=\"eco-tool__error\" id=\"eco-bsa-error-6c1f4\" aria-live=\"polite\"><\/div>\n    <\/div>\n  <\/form>\n\n  <div class=\"eco-tool__result\" id=\"eco-bsa-result-6c1f4\" hidden>\n    <h3 class=\"eco-tool__subtitle\">Result<\/h3>\n\n    <div class=\"eco-tool__cards\">\n      <div class=\"eco-tool__card\">\n        <div class=\"eco-tool__metric-label\">Estimated BSA<\/div>\n        <div class=\"eco-tool__metric-value\" id=\"eco-bsa-value-6c1f4\">\u2014<\/div>\n        <div class=\"eco-tool__metric-sub\" id=\"eco-bsa-sub-6c1f4\"><\/div>\n      <\/div>\n\n      <div class=\"eco-tool__card\">\n        <div class=\"eco-tool__metric-label\">Formula used<\/div>\n        <div class=\"eco-tool__metric-value\" id=\"eco-bsa-formulaname-6c1f4\">\u2014<\/div>\n        <div class=\"eco-tool__metric-sub\" id=\"eco-bsa-formulasub-6c1f4\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"eco-tool__card eco-tool__card--wide\">\n      <div class=\"eco-tool__metric-label\">Interpretation<\/div>\n      <div class=\"eco-tool__metric-sub\" id=\"eco-bsa-note-6c1f4\"><\/div>\n    <\/div>\n\n    <p class=\"eco-tool__note\">\n      This is an estimate only. Different formulas can produce slightly different results, especially at body-size extremes.\n    <\/p>\n  <\/div>\n\n  <details class=\"eco-tool__details\">\n    <summary class=\"eco-tool__summary\">How we calculate<\/summary>\n    <div class=\"eco-tool__details-body\">\n      <p class=\"eco-tool__text\">\n        BSA is estimated from height and weight using one of several common equations. Mosteller uses\n        <strong>\u221a((height \u00d7 weight) \/ 3600)<\/strong>, while Du Bois and Haycock use slightly different exponents.\n      <\/p>\n    <\/div>\n  <\/details>\n<\/div>\n\n<style>\n.eco-tool{ border:1px solid rgba(0,0,0,.12); border-radius:12px; padding:16px; }\n.eco-tool__header{ margin-bottom:12px; }\n.eco-tool__title{ margin:0 0 8px; }\n.eco-tool__lead{ margin:0; opacity:.9; }\n.eco-tool__form{ margin-top:12px; }\n\n.eco-tool__grid3{ display:grid; grid-template-columns:1fr; gap:16px; }\n@media (min-width:860px){ .eco-tool__grid3{ grid-template-columns:1fr 1fr 1fr; } }\n\n.eco-tool__field{ display:flex; flex-direction:column; gap:6px; }\n.eco-tool__label{ font-weight:600; }\n\n.eco-tool__input{\n  width:100%;\n  height:44px;\n  padding:0 12px;\n  border:1px solid rgba(0,0,0,.20);\n  border-radius:10px;\n  background:#fff;\n  box-sizing:border-box;\n  font:inherit;\n}\n.eco-tool select.eco-tool__input{\n  appearance:none;\n  -webkit-appearance:none;\n  line-height:44px;\n  padding-right:40px;\n  background-image:\n    linear-gradient(45deg, transparent 50%, rgba(0,0,0,.60) 50%),\n    linear-gradient(135deg, rgba(0,0,0,.60) 50%, transparent 50%);\n  background-position:\n    calc(100% - 18px) 50%,\n    calc(100% - 12px) 50%;\n  background-size:6px 6px;\n  background-repeat:no-repeat;\n}\n\n.eco-tool__hint{ font-size:.92em; opacity:.78; min-height:38px; }\n\n.eco-tool__actions{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:16px; }\n.eco-tool__btn{ padding:10px 22px; }\n.eco-tool__btn--ghost{ background:transparent !important; border:1px solid rgba(0,0,0,.20) !important; }\n.eco-tool__btn--ghost:hover,\n.eco-tool__btn--ghost:focus{ background:rgba(0,0,0,.06) !important; border-color:rgba(0,0,0,.35) !important; }\n\n.eco-tool__error{ min-height:1.2em; font-weight:600; flex:1 1 240px; }\n\n.eco-tool__result{ margin-top:16px; }\n.eco-tool__subtitle{ margin:0 0 10px; }\n\n.eco-tool__cards{ display:grid; gap:10px; grid-template-columns:1fr; }\n@media (min-width:860px){ .eco-tool__cards{ grid-template-columns:1fr 1fr; } }\n\n.eco-tool__card{ border:1px solid rgba(0,0,0,.12); border-radius:12px; padding:12px; }\n.eco-tool__card--wide{ margin-top:10px; }\n\n.eco-tool__metric-label{ opacity:.85; font-weight:600; }\n.eco-tool__metric-value{ font-size:1.6em; font-weight:800; margin-top:6px; line-height:1.1; }\n.eco-tool__metric-sub{ opacity:.85; margin-top:6px; }\n\n.eco-tool__note{ margin:10px 0 0; opacity:.9; }\n.eco-tool__details{ margin-top:14px; }\n.eco-tool__summary{ cursor:pointer; font-weight:700; }\n.eco-tool__details-body{ margin-top:10px; }\n.eco-tool__text{ margin:0 0 10px; }\n<\/style>\n\n<script>\n(function(){\n  const S = \"6c1f4\";\n  const el = (id) => document.getElementById(id + \"-\" + S);\n\n  const heightEl = el(\"eco-bsa-height\");\n  const weightEl = el(\"eco-bsa-weight\");\n  const formulaEl = el(\"eco-bsa-formula\");\n  const ageGroupEl = el(\"eco-bsa-agegroup\");\n\n  const calcBtn = el(\"eco-bsa-calc\");\n  const resetBtn = el(\"eco-bsa-reset\");\n  const errorEl = el(\"eco-bsa-error\");\n\n  const resultEl = el(\"eco-bsa-result\");\n  const valueEl = el(\"eco-bsa-value\");\n  const subEl = el(\"eco-bsa-sub\");\n  const formulaNameEl = el(\"eco-bsa-formulaname\");\n  const formulaSubEl = el(\"eco-bsa-formulasub\");\n  const noteEl = el(\"eco-bsa-note\");\n\n  function setError(msg){\n    errorEl.textContent = msg || \"\";\n  }\n\n  function calculateBSA(heightCm, weightKg, formula){\n    if (formula === \"mosteller\"){\n      return Math.sqrt((heightCm * weightKg) \/ 3600);\n    }\n    if (formula === \"dubois\"){\n      return 0.007184 * Math.pow(heightCm, 0.725) * Math.pow(weightKg, 0.425);\n    }\n    if (formula === \"haycock\"){\n      return 0.024265 * Math.pow(heightCm, 0.3964) * Math.pow(weightKg, 0.5378);\n    }\n    return Math.sqrt((heightCm * weightKg) \/ 3600);\n  }\n\n  function formulaName(formula){\n    if (formula === \"mosteller\") return \"Mosteller\";\n    if (formula === \"dubois\") return \"Du Bois\";\n    if (formula === \"haycock\") return \"Haycock\";\n    return \"Mosteller\";\n  }\n\n  function calculate(){\n    setError(\"\");\n\n    const height = Number(heightEl.value);\n    const weight = Number(weightEl.value);\n    const precision = 2;\n\n    if (!Number.isFinite(height) || height <= 0){\n      setError(\"Please enter a valid height.\");\n      resultEl.hidden = true;\n      return;\n    }\n\n    if (!Number.isFinite(weight) || weight <= 0){\n      setError(\"Please enter a valid weight.\");\n      resultEl.hidden = true;\n      return;\n    }\n\n    const formula = formulaEl.value;\n    const bsa = calculateBSA(height, weight, formula);\n\n    valueEl.textContent = `${bsa.toFixed(precision)} m\u00b2`;\n    subEl.textContent = `Estimated from ${height} cm and ${weight} kg.`;\n\n    formulaNameEl.textContent = formulaName(formula);\n    formulaSubEl.textContent =\n      formula === \"mosteller\"\n        ? \"Simple and commonly used.\"\n        : formula === \"dubois\"\n        ? \"Classic historical formula.\"\n        : \"Often used for pediatric or broader body-size reference.\";\n\n    let note = \"This gives a general estimate of body surface area based on height and weight.\";\n\n    if (ageGroupEl.value === \"child\"){\n      note += \" In children, formula choice may matter slightly more than in typical adult body sizes.\";\n    }\n    if (ageGroupEl.value === \"infant\"){\n      note += \" In infants, specialized pediatric interpretation may be more important than the raw number alone.\";\n    }\n\n    noteEl.textContent = note;\n    resultEl.hidden = false;\n  }\n\n  function reset(){\n    setError(\"\");\n    heightEl.value = \"175\";\n    weightEl.value = \"70\";\n    formulaEl.value = \"mosteller\";\n    ageGroupEl.value = \"adult\";\n    resultEl.hidden = true;\n  }\n\n  calcBtn.addEventListener(\"click\", calculate);\n  resetBtn.addEventListener(\"click\", reset);\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Body Surface Area Calculator Estimate body surface area (BSA) using your height and weight. This value is often used in physiology and clinical calculations. Height (cm) Enter body height in&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":2462,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"_links":{"self":[{"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages\/2742"}],"collection":[{"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bio-me.bio\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2742"}],"version-history":[{"count":2,"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages\/2742\/revisions"}],"predecessor-version":[{"id":2896,"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages\/2742\/revisions\/2896"}],"up":[{"embeddable":true,"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages\/2462"}],"wp:attachment":[{"href":"https:\/\/bio-me.bio\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}