{"id":3141,"date":"2026-05-09T12:05:01","date_gmt":"2026-05-09T10:05:01","guid":{"rendered":"https:\/\/bio-me.bio\/?page_id=3141"},"modified":"2026-05-09T12:05:02","modified_gmt":"2026-05-09T10:05:02","slug":"bmi-metabolic-rate-calculator","status":"publish","type":"page","link":"https:\/\/bio-me.bio\/?page_id=3141","title":{"rendered":"BMI + Metabolic Rate Calculator"},"content":{"rendered":"\n<div class=\"eco-tool wp-block-group\" id=\"eco-tool-bmi-bmr-5ac2d\">\n  <div class=\"eco-tool__header\">\n    <h2 class=\"eco-tool__title\">BMI + Metabolic Rate Calculator<\/h2>\n    <p class=\"eco-tool__lead\">\n      Calculate body mass index and estimate basal metabolic rate from height, weight, age, and sex.\n    <\/p>\n  <\/div>\n\n  <form class=\"eco-tool__form\" id=\"eco-bmi-form-5ac2d\" novalidate>\n    <div class=\"eco-tool__grid3\">\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-bmi-height-5ac2d\">Height<br>(cm)<\/label>\n        <input class=\"eco-tool__input\" id=\"eco-bmi-height-5ac2d\" type=\"number\" min=\"50\" step=\"0.1\" value=\"175\" inputmode=\"decimal\" \/>\n        <div class=\"eco-tool__hint\">Enter height in centimeters.<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-bmi-weight-5ac2d\">Weight<br>(kg)<\/label>\n        <input class=\"eco-tool__input\" id=\"eco-bmi-weight-5ac2d\" type=\"number\" min=\"10\" step=\"0.1\" value=\"70\" inputmode=\"decimal\" \/>\n        <div class=\"eco-tool__hint\">Enter weight in kilograms.<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-bmi-age-5ac2d\">Age<br>(years)<\/label>\n        <input class=\"eco-tool__input\" id=\"eco-bmi-age-5ac2d\" type=\"number\" min=\"1\" step=\"1\" value=\"30\" inputmode=\"numeric\" \/>\n        <div class=\"eco-tool__hint\">Used for BMR estimate.<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-bmi-sex-5ac2d\">Biological<br>sex<\/label>\n        <select class=\"eco-tool__input\" id=\"eco-bmi-sex-5ac2d\">\n          <option value=\"male\">Male<\/option>\n          <option value=\"female\">Female<\/option>\n        <\/select>\n        <div class=\"eco-tool__hint\">Used in a standard BMR formula.<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-bmi-activity-5ac2d\">Activity<br>level<\/label>\n        <select class=\"eco-tool__input\" id=\"eco-bmi-activity-5ac2d\">\n          <option value=\"1.2\">Sedentary<\/option>\n          <option value=\"1.375\">Lightly active<\/option>\n          <option value=\"1.55\" selected>Moderately active<\/option>\n          <option value=\"1.725\">Very active<\/option>\n          <option value=\"1.9\">Extra active<\/option>\n        <\/select>\n        <div class=\"eco-tool__hint\">Used for daily calorie estimate.<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-bmi-view-5ac2d\">Main result<br>view<\/label>\n        <select class=\"eco-tool__input\" id=\"eco-bmi-view-5ac2d\">\n          <option value=\"bmi\">Show BMI<\/option>\n          <option value=\"bmr\">Show BMR<\/option>\n        <\/select>\n        <div class=\"eco-tool__hint\">Choose what to emphasize first.<\/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-bmi-calc-5ac2d\">Calculate<\/button>\n      <button type=\"button\" class=\"wp-element-button eco-tool__btn eco-tool__btn--ghost\" id=\"eco-bmi-reset-5ac2d\">Reset<\/button>\n      <div class=\"eco-tool__error\" id=\"eco-bmi-error-5ac2d\" aria-live=\"polite\"><\/div>\n    <\/div>\n  <\/form>\n\n  <div class=\"eco-tool__result\" id=\"eco-bmi-result-5ac2d\" 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\">Main result<\/div>\n        <div class=\"eco-tool__metric-value\" id=\"eco-bmi-main-5ac2d\">\u2014<\/div>\n        <div class=\"eco-tool__metric-sub\" id=\"eco-bmi-main-sub-5ac2d\"><\/div>\n      <\/div>\n\n      <div class=\"eco-tool__card\">\n        <div class=\"eco-tool__metric-label\">Daily calorie estimate<\/div>\n        <div class=\"eco-tool__metric-value\" id=\"eco-bmi-tdee-5ac2d\">\u2014<\/div>\n        <div class=\"eco-tool__metric-sub\" id=\"eco-bmi-tdee-sub-5ac2d\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"eco-tool__card eco-tool__card--wide\">\n      <div class=\"eco-tool__metric-label\">Breakdown<\/div>\n      <div class=\"eco-tool__bars\" id=\"eco-bmi-bars-5ac2d\"><\/div>\n      <div class=\"eco-tool__metric-sub eco-tool__muted\" id=\"eco-bmi-tip-5ac2d\"><\/div>\n    <\/div>\n\n    <p class=\"eco-tool__note\">\n      This is a general estimate only. BMI and BMR do not capture body composition, medical status, or individual metabolism.\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        BMI = weight \/ height\u00b2. BMR uses the Mifflin-St Jeor equation. Daily calories are estimated as BMR \u00d7 activity factor.\n      <\/p>\n      <ul class=\"eco-tool__list\" id=\"eco-bmi-factors-5ac2d\"><\/ul>\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.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.eco-tool__field{display:flex;flex-direction:column;gap:6px}\n.eco-tool__label{font-weight:600}\n.eco-tool__input{width:100%;height:44px;padding:0 12px;border:1px solid rgba(0,0,0,.20);border-radius:10px;background:#fff;box-sizing:border-box;font:inherit}\n.eco-tool select.eco-tool__input{appearance:none;-webkit-appearance:none;line-height:44px;padding-right:40px;background-image:linear-gradient(45deg,transparent 50%,rgba(0,0,0,.60) 50%),linear-gradient(135deg,rgba(0,0,0,.60) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;background-size:6px 6px;background-repeat:no-repeat}\n.eco-tool__hint{font-size:.92em;opacity:.78;min-height:38px}\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,.eco-tool__btn--ghost:focus{background:rgba(0,0,0,.06)!important;border-color:rgba(0,0,0,.35)!important}\n.eco-tool__error{min-height:1.2em;font-weight:600;flex:1 1 240px}\n.eco-tool__result{margin-top:16px}\n.eco-tool__subtitle{margin:0 0 10px}\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.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.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.eco-tool__bars{display:grid;gap:10px;margin-top:12px}\n.eco-tool__barrow{display:grid;grid-template-columns:140px 1fr 90px;gap:10px;align-items:center}\n@media (max-width:480px){.eco-tool__barrow{grid-template-columns:100px 1fr 70px}}\n.eco-tool__barlabel{font-weight:600;opacity:.9}\n.eco-tool__bartrack{border:1px solid rgba(0,0,0,.12);border-radius:999px;height:12px;overflow:hidden;background:rgba(0,0,0,.03)}\n.eco-tool__barfill{height:100%;width:0%;background:rgba(0,0,0,.25)}\n.eco-tool__barval{text-align:right;opacity:.85;white-space:nowrap}\n.eco-tool__note{margin:10px 0 0;opacity:.9}\n.eco-tool__muted{opacity:.8}\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.eco-tool__list{margin:0;padding-left:18px}\n<\/style>\n\n<script>\n(function(){\n  const S = \"5ac2d\";\n  const el = (id) => document.getElementById(id + \"-\" + S);\n\n  const heightEl = el(\"eco-bmi-height\");\n  const weightEl = el(\"eco-bmi-weight\");\n  const ageEl = el(\"eco-bmi-age\");\n  const sexEl = el(\"eco-bmi-sex\");\n  const activityEl = el(\"eco-bmi-activity\");\n  const viewEl = el(\"eco-bmi-view\");\n\n  const calcBtn = el(\"eco-bmi-calc\");\n  const resetBtn = el(\"eco-bmi-reset\");\n  const errorEl = el(\"eco-bmi-error\");\n  const resultEl = el(\"eco-bmi-result\");\n\n  const mainEl = el(\"eco-bmi-main\");\n  const mainSubEl = el(\"eco-bmi-main-sub\");\n  const tdeeEl = el(\"eco-bmi-tdee\");\n  const tdeeSubEl = el(\"eco-bmi-tdee-sub\");\n  const barsEl = el(\"eco-bmi-bars\");\n  const tipEl = el(\"eco-bmi-tip\");\n  const factorsEl = el(\"eco-bmi-factors\");\n\n  function setError(msg){ errorEl.textContent = msg || \"\"; }\n  function fmt(x){ return x.toLocaleString(undefined,{minimumFractionDigits:1,maximumFractionDigits:1}); }\n\n  function bmiCategory(bmi){\n    if (bmi < 18.5) return \"Underweight\";\n    if (bmi < 25) return \"Normal\";\n    if (bmi < 30) return \"Overweight\";\n    return \"Obesity\";\n  }\n\n  function fillFactors(){\n    factorsEl.innerHTML = [\n      `<li><strong>BMI:<\/strong> weight (kg) \u00f7 height\u00b2 (m\u00b2)<\/li>`,\n      `<li><strong>BMR male:<\/strong> 10\u00d7kg + 6.25\u00d7cm \u2212 5\u00d7age + 5<\/li>`,\n      `<li><strong>BMR female:<\/strong> 10\u00d7kg + 6.25\u00d7cm \u2212 5\u00d7age \u2212 161<\/li>`,\n      `<li><strong>TDEE:<\/strong> BMR \u00d7 activity factor<\/li>`\n    ].join(\"\");\n  }\n\n  function barRow(label, pct, value){\n    const p = Math.max(0, Math.min(100, pct));\n    return `\n      <div class=\"eco-tool__barrow\">\n        <div class=\"eco-tool__barlabel\">${label}<\/div>\n        <div class=\"eco-tool__bartrack\"><div class=\"eco-tool__barfill\" style=\"width:${p}%;\"><\/div><\/div>\n        <div class=\"eco-tool__barval\">${value}<\/div>\n      <\/div>\n    `;\n  }\n\n  function calculate(){\n    setError(\"\");\n\n    const heightCm = Number(heightEl.value);\n    const weightKg = Number(weightEl.value);\n    const age = Number(ageEl.value);\n    const sex = sexEl.value;\n    const activity = Number(activityEl.value);\n    const view = viewEl.value;\n\n    if (!Number.isFinite(heightCm) || heightCm <= 0 ||\n        !Number.isFinite(weightKg) || weightKg <= 0 ||\n        !Number.isFinite(age) || age <= 0 ||\n        !Number.isFinite(activity) || activity <= 0) {\n      setError(\"Please enter valid values.\");\n      resultEl.hidden = true;\n      return;\n    }\n\n    const heightM = heightCm \/ 100;\n    const bmi = weightKg \/ (heightM * heightM);\n    const category = bmiCategory(bmi);\n    const bmr = sex === \"male\"\n      ? (10 * weightKg) + (6.25 * heightCm) - (5 * age) + 5\n      : (10 * weightKg) + (6.25 * heightCm) - (5 * age) - 161;\n    const tdee = bmr * activity;\n\n    if (view === \"bmr\") {\n      mainEl.textContent = `${fmt(bmr)} kcal`;\n      mainSubEl.textContent = `Estimated BMR per day`;\n    } else {\n      mainEl.textContent = fmt(bmi);\n      mainSubEl.textContent = category;\n    }\n\n    tdeeEl.textContent = `${fmt(tdee)} kcal`;\n    tdeeSubEl.textContent = `Estimated daily calories`;\n\n    const max = Math.max(bmi * 100, bmr, tdee, 1);\n    barsEl.innerHTML = [\n      barRow(\"BMI \u00d7100\", ((bmi * 100) \/ max) * 100, fmt(bmi)),\n      barRow(\"BMR\", (bmr \/ max) * 100, `${fmt(bmr)} kcal`),\n      barRow(\"Daily\", (tdee \/ max) * 100, `${fmt(tdee)} kcal`)\n    ].join(\"\");\n\n    tipEl.textContent =\n      bmi < 18.5 ? \"Tip: BMI is low, but body composition still matters.\"\n      : bmi < 25 ? \"Tip: BMI is in the normal range by this formula.\"\n      : bmi < 30 ? \"Tip: BMI is elevated, but fitness and muscle mass can affect interpretation.\"\n      : \"Tip: BMI is high by this formula, but it is still only a screening estimate.\";\n\n    resultEl.hidden = false;\n  }\n\n  function reset(){\n    setError(\"\");\n    heightEl.value = \"175\";\n    weightEl.value = \"70\";\n    ageEl.value = \"30\";\n    sexEl.value = \"male\";\n    activityEl.value = \"1.55\";\n    viewEl.value = \"bmi\";\n    resultEl.hidden = true;\n  }\n\n  fillFactors();\n  calcBtn.addEventListener(\"click\", calculate);\n  resetBtn.addEventListener(\"click\", reset);\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>BMI + Metabolic Rate Calculator Calculate body mass index and estimate basal metabolic rate from height, weight, age, and sex. Height(cm) Enter height in centimeters. Weight(kg) Enter weight in kilograms.&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":2452,"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\/3141"}],"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=3141"}],"version-history":[{"count":1,"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages\/3141\/revisions"}],"predecessor-version":[{"id":3142,"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages\/3141\/revisions\/3142"}],"up":[{"embeddable":true,"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages\/2452"}],"wp:attachment":[{"href":"https:\/\/bio-me.bio\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}