{"id":2879,"date":"2026-04-03T22:30:12","date_gmt":"2026-04-03T20:30:12","guid":{"rendered":"https:\/\/nature-o.net\/?page_id=2879"},"modified":"2026-04-03T22:30:13","modified_gmt":"2026-04-03T20:30:13","slug":"heat-risk-calculator","status":"publish","type":"page","link":"https:\/\/nature-o.net\/?page_id=2879","title":{"rendered":"Heat Risk Calculator"},"content":{"rendered":"\n<div class=\"eco-tool wp-block-group\" id=\"eco-tool-heat-b47k2\">\n  <div class=\"eco-tool__header\">\n    <h2 class=\"eco-tool__title\">Heat Risk Calculator<\/h2>\n    <p class=\"eco-tool__lead\">\n      Estimate heat risk based on temperature, humidity, and activity level.\n    <\/p>\n  <\/div>\n\n  <form class=\"eco-tool__form\" id=\"eco-heat-form-b47k2\" novalidate>\n    <div class=\"eco-tool__grid3\">\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-heat-temp-b47k2\">Temperature (\u00b0C)<\/label>\n        <input class=\"eco-tool__input\" id=\"eco-heat-temp-b47k2\" type=\"number\" min=\"-20\" max=\"60\" step=\"1\" value=\"30\" inputmode=\"numeric\" \/>\n        <div class=\"eco-tool__hint\">Air temperature in Celsius.<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-heat-humidity-b47k2\">Humidity (%)<\/label>\n        <input class=\"eco-tool__input\" id=\"eco-heat-humidity-b47k2\" type=\"number\" min=\"0\" max=\"100\" step=\"1\" value=\"60\" inputmode=\"numeric\" \/>\n        <div class=\"eco-tool__hint\">Relative humidity from 0 to 100.<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-heat-activity-b47k2\">Activity<br>level<\/label>\n        <select class=\"eco-tool__input\" id=\"eco-heat-activity-b47k2\">\n          <option value=\"rest\">Rest \/ indoors<\/option>\n          <option value=\"walk\">Walking<\/option>\n          <option value=\"exercise\">Exercise \/ hard work<\/option>\n        <\/select>\n        <div class=\"eco-tool__hint\">Choose the closest activity level.<\/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-heat-calc-b47k2\">Calculate<\/button>\n      <button type=\"button\" class=\"wp-element-button eco-tool__btn eco-tool__btn--ghost\" id=\"eco-heat-reset-b47k2\">Reset<\/button>\n      <div class=\"eco-tool__error\" id=\"eco-heat-error-b47k2\" aria-live=\"polite\"><\/div>\n    <\/div>\n  <\/form>\n\n  <div class=\"eco-tool__result\" id=\"eco-heat-result-b47k2\" 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 heat risk<\/div>\n        <div class=\"eco-tool__metric-value\" id=\"eco-heat-level-b47k2\">\u2014<\/div>\n        <div class=\"eco-tool__metric-sub\" id=\"eco-heat-score-b47k2\"><\/div>\n      <\/div>\n\n      <div class=\"eco-tool__card\">\n        <div class=\"eco-tool__metric-label\">Advice<\/div>\n        <div class=\"eco-tool__metric-sub\" id=\"eco-heat-advice-b47k2\"><\/div>\n      <\/div>\n    <\/div>\n\n    <p class=\"eco-tool__note\">\n      This is a simple educational estimate, not medical advice.\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        We combine temperature, humidity, and activity into a simple risk score. Higher humidity and harder activity increase heat stress.\n      <\/p>\n    <\/div>\n  <\/details>\n<\/div>\n\n<style>\n.eco-tool{\n  border:1px solid rgba(0,0,0,.12);\n  border-radius:12px;\n  padding:16px;\n}\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{\n  display:grid;\n  grid-template-columns:1fr;\n  gap:16px;\n}\n@media (min-width:860px){\n  .eco-tool__grid3{grid-template-columns:1fr 1fr 1fr;}\n}\n\n.eco-tool__field{\n  display:flex;\n  flex-direction:column;\n  gap:6px;\n}\n.eco-tool__label{font-weight:600;}\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.eco-tool__hint{\n  font-size:.92em;\n  opacity:.78;\n  min-height:38px;\n}\n\n.eco-tool__actions{\n  display:flex;\n  flex-wrap:wrap;\n  gap:10px;\n  align-items:center;\n  margin-top:16px;\n}\n.eco-tool__btn{padding:10px 22px;}\n.eco-tool__btn--ghost{\n  background:transparent !important;\n  border:1px solid rgba(0,0,0,.20) !important;\n}\n.eco-tool__btn--ghost:hover,\n.eco-tool__btn--ghost:focus{\n  background:rgba(0,0,0,.06) !important;\n  border-color:rgba(0,0,0,.35) !important;\n}\n.eco-tool__error{\n  min-height:1.2em;\n  font-weight:600;\n  flex:1 1 240px;\n}\n\n.eco-tool__result{margin-top:16px;}\n.eco-tool__subtitle{margin:0 0 10px;}\n.eco-tool__cards{\n  display:grid;\n  gap:10px;\n  grid-template-columns:1fr;\n}\n@media (min-width:860px){\n  .eco-tool__cards{grid-template-columns:1fr 1fr;}\n}\n.eco-tool__card{\n  border:1px solid rgba(0,0,0,.12);\n  border-radius:12px;\n  padding:12px;\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.eco-tool__note{margin:10px 0 0;opacity:.9;}\n\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 = \"b47k2\";\n  const el = (id) => document.getElementById(id + \"-\" + S);\n\n  const tempEl = el(\"eco-heat-temp\");\n  const humidityEl = el(\"eco-heat-humidity\");\n  const activityEl = el(\"eco-heat-activity\");\n  const calcBtn = el(\"eco-heat-calc\");\n  const resetBtn = el(\"eco-heat-reset\");\n  const errorEl = el(\"eco-heat-error\");\n  const resultEl = el(\"eco-heat-result\");\n  const levelEl = el(\"eco-heat-level\");\n  const scoreEl = el(\"eco-heat-score\");\n  const adviceEl = el(\"eco-heat-advice\");\n\n  const ACTIVITY_BONUS = {\n    rest: 0,\n    walk: 4,\n    exercise: 8\n  };\n\n  function setError(msg){\n    errorEl.textContent = msg || \"\";\n  }\n\n  function calculate(){\n    setError(\"\");\n\n    const temp = Number(tempEl.value);\n    const humidity = Number(humidityEl.value);\n    const activity = activityEl.value;\n\n    if (!Number.isFinite(temp) || temp < -20 || temp > 60){\n      setError(\"Please enter a valid temperature.\");\n      resultEl.hidden = true;\n      return;\n    }\n    if (!Number.isFinite(humidity) || humidity < 0 || humidity > 100){\n      setError(\"Please enter humidity from 0 to 100.\");\n      resultEl.hidden = true;\n      return;\n    }\n\n    let score = temp + (humidity * 0.08) + (ACTIVITY_BONUS[activity] || 0);\n\n    let level = \"\";\n    let advice = \"\";\n\n    if (score < 28){\n      level = \"Low\";\n      advice = \"Conditions look relatively manageable. Stay hydrated if you are outside for long periods.\";\n    } else if (score < 35){\n      level = \"Moderate\";\n      advice = \"Drink water, take breaks, and avoid long activity in direct sun.\";\n    } else if (score < 42){\n      level = \"High\";\n      advice = \"Limit exertion, seek shade or cooling, and hydrate often.\";\n    } else {\n      level = \"Very high\";\n      advice = \"Avoid intense activity, cool down indoors if possible, and watch for signs of heat illness.\";\n    }\n\n    levelEl.textContent = level;\n    scoreEl.textContent = `Heat score: ${score.toFixed(1)}`;\n    adviceEl.textContent = advice;\n    resultEl.hidden = false;\n  }\n\n  function reset(){\n    setError(\"\");\n    tempEl.value = \"30\";\n    humidityEl.value = \"60\";\n    activityEl.value = \"rest\";\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>Heat Risk Calculator Estimate heat risk based on temperature, humidity, and activity level. Temperature (\u00b0C) Air temperature in Celsius. Humidity (%) Relative humidity from 0 to 100. Activitylevel Rest \/&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":2457,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"_links":{"self":[{"href":"https:\/\/nature-o.net\/index.php?rest_route=\/wp\/v2\/pages\/2879"}],"collection":[{"href":"https:\/\/nature-o.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nature-o.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nature-o.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nature-o.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2879"}],"version-history":[{"count":1,"href":"https:\/\/nature-o.net\/index.php?rest_route=\/wp\/v2\/pages\/2879\/revisions"}],"predecessor-version":[{"id":2880,"href":"https:\/\/nature-o.net\/index.php?rest_route=\/wp\/v2\/pages\/2879\/revisions\/2880"}],"up":[{"embeddable":true,"href":"https:\/\/nature-o.net\/index.php?rest_route=\/wp\/v2\/pages\/2457"}],"wp:attachment":[{"href":"https:\/\/nature-o.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}