{"id":2640,"date":"2026-03-02T20:20:18","date_gmt":"2026-03-02T18:20:18","guid":{"rendered":"https:\/\/nature-o.net\/?page_id=2640"},"modified":"2026-03-09T13:21:13","modified_gmt":"2026-03-09T11:21:13","slug":"pollution-pm2-5-to-aqi-calculator-us-epa","status":"publish","type":"page","link":"https:\/\/nature-o.net\/?page_id=2640","title":{"rendered":"Pollution PM2.5 to AQI Calculator (US EPA)"},"content":{"rendered":"\n<div class=\"eco-tool wp-block-group\" id=\"eco-tool-aqi-6b2e4\">\n  <div class=\"eco-tool__header\">\n    <h2 class=\"eco-tool__title\">Pollution PM2.5 to AQI Calculator (US EPA)<\/h2>\n    <p class=\"eco-tool__lead\">\n      Convert PM2.5 concentration (\u00b5g\/m\u00b3) into Air Quality Index (AQI) using the US EPA scale.\n    <\/p>\n  <\/div>\n\n  <form class=\"eco-tool__form\" id=\"eco-aqi-form-6b2e4\" novalidate>\n    <div class=\"eco-tool__grid3\">\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-aqi-pm-6b2e4\">PM2.5 concentration (\u00b5g\/m\u00b3)<\/label>\n        <input class=\"eco-tool__input\" id=\"eco-aqi-pm-6b2e4\" type=\"number\" min=\"0\" step=\"0.1\" value=\"35\" inputmode=\"decimal\" \/>\n        <div class=\"eco-tool__hint\">Fine particulate matter (24-hour average).<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-aqi-round-6b2e4\">Rounding<\/label>\n        <select class=\"eco-tool__input\" id=\"eco-aqi-round-6b2e4\">\n          <option value=\"0\" selected>Whole AQI<\/option>\n          <option value=\"1\">1 decimal<\/option>\n        <\/select>\n        <div class=\"eco-tool__hint\">Display precision.<\/div>\n      <\/div>\n\n    <\/div>\n\n    <div class=\"eco-tool__actions\">\n      <button type=\"button\" class=\"wp-element-button eco-tool__btn\" id=\"eco-aqi-calc-6b2e4\">Calculate<\/button>\n      <button type=\"button\" class=\"wp-element-button eco-tool__btn eco-tool__btn--ghost\" id=\"eco-aqi-reset-6b2e4\">Reset<\/button>\n      <div class=\"eco-tool__error\" id=\"eco-aqi-error-6b2e4\" aria-live=\"polite\"><\/div>\n    <\/div>\n  <\/form>\n\n  <div class=\"eco-tool__result\" id=\"eco-aqi-result-6b2e4\" hidden>\n    <h3 class=\"eco-tool__subtitle\">Result<\/h3>\n\n    <div class=\"eco-tool__cards\">\n      <div class=\"eco-tool__card\" id=\"eco-aqi-card-6b2e4\">\n        <div class=\"eco-tool__metric-label\">AQI<\/div>\n        <div class=\"eco-tool__metric-value\" id=\"eco-aqi-value-6b2e4\">\u2014<\/div>\n        <div class=\"eco-tool__metric-sub\" id=\"eco-aqi-category-6b2e4\"><\/div>\n      <\/div>\n\n      <div class=\"eco-tool__card\">\n        <div class=\"eco-tool__metric-label\">Air quality level<\/div>\n        <div class=\"eco-tool__metric-sub\" id=\"eco-aqi-desc-6b2e4\"><\/div>\n      <\/div>\n    <\/div>\n\n    <p class=\"eco-tool__note\">\n      Based on US EPA AQI breakpoints for PM2.5 (24-hour average).\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n.eco-tool{border:1px solid rgba(0,0,0,.12);border-radius:12px;padding:16px}\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,.2);border-radius:10px;background:#fff;box-sizing:border-box;font:inherit}\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,.2)!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__cards{display:grid;gap:10px;margin-top:16px}\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__metric-label{opacity:.85;font-weight:600}\n.eco-tool__metric-value{font-size:1.8em;font-weight:800;margin-top:6px}\n.eco-tool__metric-sub{opacity:.9;margin-top:6px}\n<\/style>\n\n<script>\n(function(){\n  const S=\"6b2e4\";\n  const el=id=>document.getElementById(id+\"-\"+S);\n\n  const pmEl=el(\"eco-aqi-pm\");\n  const roundEl=el(\"eco-aqi-round\");\n\n  const calcBtn=el(\"eco-aqi-calc\");\n  const resetBtn=el(\"eco-aqi-reset\");\n  const errEl=el(\"eco-aqi-error\");\n\n  const resEl=el(\"eco-aqi-result\");\n  const valEl=el(\"eco-aqi-value\");\n  const catEl=el(\"eco-aqi-category\");\n  const descEl=el(\"eco-aqi-desc\");\n  const cardEl=el(\"eco-aqi-card\");\n\n  function setError(m){ errEl.textContent=m||\"\"; }\n\n  const breakpoints = [\n    { cLow:0.0,  cHigh:12.0,  iLow:0,   iHigh:50,  cat:\"Good\", color:\"#00e400\", desc:\"Air quality is satisfactory.\" },\n    { cLow:12.1, cHigh:35.4,  iLow:51,  iHigh:100, cat:\"Moderate\", color:\"#ffff00\", desc:\"Acceptable; some pollutants may affect sensitive individuals.\" },\n    { cLow:35.5, cHigh:55.4,  iLow:101, iHigh:150, cat:\"Unhealthy for Sensitive Groups\", color:\"#ff7e00\", desc:\"Sensitive groups may experience health effects.\" },\n    { cLow:55.5, cHigh:150.4, iLow:151, iHigh:200, cat:\"Unhealthy\", color:\"#ff0000\", desc:\"Everyone may begin to experience health effects.\" },\n    { cLow:150.5,cHigh:250.4, iLow:201, iHigh:300, cat:\"Very Unhealthy\", color:\"#8f3f97\", desc:\"Health alert: risk for everyone.\" },\n    { cLow:250.5,cHigh:500.4, iLow:301, iHigh:500, cat:\"Hazardous\", color:\"#7e0023\", desc:\"Serious health effects for the entire population.\" }\n  ];\n\n  function calculateAQI(pm){\n    for(const b of breakpoints){\n      if(pm >= b.cLow && pm <= b.cHigh){\n        const aqi =\n          ((b.iHigh - b.iLow)\/(b.cHigh - b.cLow)) *\n          (pm - b.cLow) + b.iLow;\n        return { aqi, ...b };\n      }\n    }\n    return null;\n  }\n\n  calcBtn.addEventListener(\"click\", function(){\n    setError(\"\");\n\n    const pm = Number(pmEl.value);\n    if(!Number.isFinite(pm) || pm < 0){\n      setError(\"Please enter a valid PM2.5 value (0 or higher).\");\n      resEl.hidden=true;\n      return;\n    }\n\n    const result = calculateAQI(pm);\n    if(!result){\n      setError(\"Value is outside the EPA PM2.5 AQI range (0\u2013500.4 \u00b5g\/m\u00b3).\");\n      resEl.hidden=true;\n      return;\n    }\n\n    const d = Number(roundEl.value);\n    const aqi = (d===0)\n      ? Math.round(result.aqi)\n      : Math.round(result.aqi*10)\/10;\n\n    valEl.textContent = aqi.toLocaleString();\n    catEl.textContent = result.cat;\n    descEl.textContent = \"Category based on EPA AQI scale.\";\n\n    cardEl.style.background = result.color;\n    cardEl.style.color = (result.cat===\"Moderate\") ? \"#000\" : \"#fff\";\n\n    resEl.hidden=false;\n  });\n\n  resetBtn.addEventListener(\"click\", function(){\n    setError(\"\");\n    pmEl.value=\"35\";\n    roundEl.value=\"0\";\n    resEl.hidden=true;\n    cardEl.style.background=\"\";\n    cardEl.style.color=\"\";\n  });\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Pollution PM2.5 to AQI Calculator (US EPA) Convert PM2.5 concentration (\u00b5g\/m\u00b3) into Air Quality Index (AQI) using the US EPA scale. PM2.5 concentration (\u00b5g\/m\u00b3) Fine particulate matter (24-hour average). Rounding&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":2432,"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\/2640"}],"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=2640"}],"version-history":[{"count":2,"href":"https:\/\/nature-o.net\/index.php?rest_route=\/wp\/v2\/pages\/2640\/revisions"}],"predecessor-version":[{"id":2703,"href":"https:\/\/nature-o.net\/index.php?rest_route=\/wp\/v2\/pages\/2640\/revisions\/2703"}],"up":[{"embeddable":true,"href":"https:\/\/nature-o.net\/index.php?rest_route=\/wp\/v2\/pages\/2432"}],"wp:attachment":[{"href":"https:\/\/nature-o.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}