{"id":1219,"date":"2026-04-27T05:59:20","date_gmt":"2026-04-27T05:59:20","guid":{"rendered":"https:\/\/aiper.com\/blogs\/?page_id=1219"},"modified":"2026-06-24T03:46:17","modified_gmt":"2026-06-24T03:46:17","slug":"pool-filter-size-calculator","status":"publish","type":"page","link":"https:\/\/aiper.com\/blogs\/pool-filter-size-calculator\/","title":{"rendered":"Pool Filter Sizing Calculator"},"content":{"rendered":"\n<style>\n    .wp-calc-container {\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n        max-width: 800px;\n        margin: 0 auto;\n        padding: 20px;\n        border-radius: 12px;\n        background: #f9feff;\n        border: 1px solid #e1f5fe;\n        box-shadow: 0 2px 10px rgba(0,0,0,0.05);\n        line-height: 1.5;\n    }\n    \n    .calc-tabs {\n        display: flex;\n        gap: 5px;\n        margin-bottom: 20px;\n    }\n    \n    .calc-tab {\n        flex: 1;\n        text-align: center;\n        padding: 12px 5px;\n        cursor: pointer;\n        background: #e1f5fe;\n        color: #1ecad3; \/* \u4fee\u6539\uff1a\u975e\u6fc0\u6d3b\u72b6\u6001\u6587\u5b57\u989c\u8272 *\/\n        border-radius: 6px;\n        font-weight: 600;\n        transition: 0.3s;\n        font-size: 14px;\n    }\n    \n    .calc-tab.active {\n        background: #1ecad3; \/* \u4fee\u6539\uff1a\u6fc0\u6d3b\u72b6\u6001\u80cc\u666f\u8272 *\/\n        color: #fff;\n    }\n    \n    .calc-section {\n        background: #fff;\n        padding: 18px;\n        border-radius: 8px;\n        margin-bottom: 15px;\n        border: 1px solid #eee;\n    }\n    \n    .calc-section h3 {\n        margin: 0 0 15px 0;\n        font-size: 17px;\n        color: #333;\n        border-left: 4px solid #1ecad3; \/* \u4fee\u6539\uff1a\u6807\u9898\u88c5\u9970\u6761 *\/\n        padding-left: 10px;\n    }\n    \n    .calc-row {\n        display: flex;\n        gap: 15px;\n        margin-bottom: 12px;\n    }\n    \n    .calc-group {\n        flex: 1;\n        display: flex;\n        flex-direction: column;\n    }\n    \n    .calc-group label {\n        font-size: 14px;\n        margin-bottom: 6px;\n        font-weight: 500;\n        color: #555;\n    }\n    \n    .calc-group input, .calc-group select {\n        padding: 10px;\n        border: 1px solid #ddd;\n        border-radius: 4px;\n        font-size: 15px;\n        box-sizing: border-box;\n    }\n    \n    .calc-submit-btn {\n        background: #1ecad3; \/* \u4fee\u6539\uff1a\u6309\u94ae\u80cc\u666f\u8272 *\/\n        color: #fff;\n        border: none;\n        width: 100%;\n        padding: 15px;\n        border-radius: 6px;\n        font-size: 16px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: 0.3s;\n    }\n    \n    .calc-submit-btn:hover { \n        background: #19abb3; \/* \u4fee\u6539\uff1a\u60ac\u505c\u65f6\u7a0d\u5fae\u52a0\u6df1\u4e00\u70b9 *\/\n    }\n\n    .calc-results {\n        display: none;\n        margin-top: 20px;\n        padding: 20px;\n        background: #fff;\n        border: 2px solid #1ecad3; \/* \u4fee\u6539\uff1a\u7ed3\u679c\u6846\u8fb9\u6846 *\/\n        border-radius: 8px;\n    }\n\n    .res-val { \n        color: #1ecad3; \/* \u4fee\u6539\uff1a\u7ed3\u679c\u6570\u503c\u989c\u8272 *\/\n        font-weight: 700; \n    }\n    \n    .calc-info-note {\n        font-size: 13px;\n        color: #666;\n        background: #f5f5f5;\n        padding: 10px;\n        border-radius: 4px;\n        margin-top: 10px;\n    }\n\n    @media (max-width: 600px) {\n        .calc-row { flex-direction: column; gap: 10px; }\n    }\n<\/style>\n\n<div class=\"wp-calc-container\">\n    <div class=\"calc-tabs\">\n        <div class=\"calc-tab active\" onclick=\"setTab('rectangular')\">Rectangular<\/div>\n        <div class=\"calc-tab\" onclick=\"setTab('round')\">Round<\/div>\n        <div class=\"calc-tab\" onclick=\"setTab('oval')\">Oval<\/div>\n    <\/div>\n    \n    <form id=\"pool-calc-form\" onsubmit=\"doCalculate(event)\">\n        <div class=\"calc-section\">\n            <h3>1. Pool Dimensions<\/h3>\n            <div id=\"fields-rectangular\">\n                <div class=\"calc-row\">\n                    <div class=\"calc-group\">\n                        <label>Length (m)<\/label>\n                        <input type=\"number\" id=\"v-len\" step=\"0.1\" required>\n                    <\/div>\n                    <div class=\"calc-group\">\n                        <label>Width (m)<\/label>\n                        <input type=\"number\" id=\"v-wid\" step=\"0.1\" required>\n                    <\/div>\n                <\/div>\n                <div class=\"calc-group\">\n                    <label>Avg Depth (m)<\/label>\n                    <input type=\"number\" id=\"v-dep\" step=\"0.1\" required>\n                <\/div>\n            <\/div>\n            \n            <div id=\"fields-round\" style=\"display:none;\">\n                <div class=\"calc-row\">\n                    <div class=\"calc-group\">\n                        <label>Diameter (m)<\/label>\n                        <input type=\"number\" id=\"v-dia\" step=\"0.1\">\n                    <\/div>\n                    <div class=\"calc-group\">\n                        <label>Avg Depth (m)<\/label>\n                        <input type=\"number\" id=\"v-rdep\" step=\"0.1\">\n                    <\/div>\n                <\/div>\n            <\/div>\n            \n            <div id=\"fields-oval\" style=\"display:none;\">\n                <div class=\"calc-row\">\n                    <div class=\"calc-group\">\n                        <label>Length (m)<\/label>\n                        <input type=\"number\" id=\"v-olen\" step=\"0.1\">\n                    <\/div>\n                    <div class=\"calc-group\">\n                        <label>Width (m)<\/label>\n                        <input type=\"number\" id=\"v-owid\" step=\"0.1\">\n                    <\/div>\n                <\/div>\n                <div class=\"calc-group\">\n                    <label>Avg Depth (m)<\/label>\n                    <input type=\"number\" id=\"v-odep\" step=\"0.1\">\n                <\/div>\n            <\/div>\n        <\/div>\n        \n        <div class=\"calc-section\">\n            <h3>2. Requirements<\/h3>\n            <div class=\"calc-row\">\n                <div class=\"calc-group\">\n                    <label>Filter Type<\/label>\n                    <select id=\"v-type\" required>\n                        <option value=\"sand\">Sand Filter<\/option>\n                        <option value=\"cartridge\">Cartridge Filter<\/option>\n                        <option value=\"de\">DE Filter<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"calc-group\">\n                    <label>Turnovers \/ Day<\/label>\n                    <select id=\"v-rate\">\n                        <option value=\"1\">1 Time<\/option>\n                        <option value=\"1.5\" selected>1.5 Times<\/option>\n                        <option value=\"2\">2 Times<\/option>\n                    <\/select>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n        <button type=\"submit\" class=\"calc-submit-btn\">Calculate Now<\/button>\n    <\/form>\n    \n    <div id=\"res-box\" class=\"calc-results\">\n        <p>Pool Volume: <span id=\"out-vol\" class=\"res-val\">&#8212;<\/span> Litres<\/p>\n        <p>Required Flow: <span id=\"out-flow\" class=\"res-val\">&#8212;<\/span> LPM<\/p>\n        <hr style=\"border:0; border-top:1px solid #eee; margin:15px 0;\">\n        <div id=\"res-sand\" style=\"display:none;\">\n            <p><strong>Recommended Sand Filter:<\/strong> <span id=\"out-s-size\">&#8212;<\/span><\/p>\n            <p>Tank Diameter: <span id=\"out-s-dia\">&#8212;<\/span><\/p>\n        <\/div>\n        <div id=\"res-cart\" style=\"display:none;\">\n            <p><strong>Recommended Cartridge:<\/strong> <span id=\"out-c-size\">&#8212;<\/span><\/p>\n            <p>Area: <span id=\"out-c-area\">&#8212;<\/span> sq ft<\/p>\n        <\/div>\n        <div id=\"res-de\" style=\"display:none;\">\n            <p><strong>Recommended DE Filter:<\/strong> <span id=\"out-d-size\">&#8212;<\/span><\/p>\n            <p>Grid: <span id=\"out-d-area\">&#8212;<\/span> sq ft<\/p>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n    let curTab = 'rectangular';\n    function setTab(t) {\n        curTab = t;\n        ['rectangular', 'round', 'oval'].forEach(id => {\n            document.getElementById('fields-'+id).style.display = (id === t) ? 'block' : 'none';\n            document.querySelectorAll('#fields-'+id+' input').forEach(i => {\n                (id === t) ? i.setAttribute('required', '') : i.removeAttribute('required');\n            });\n        });\n        document.querySelectorAll('.calc-tab').forEach(el => {\n            el.classList.toggle('active', el.innerText.toLowerCase() === t);\n        });\n    }\n\n    function doCalculate(e) {\n        e.preventDefault();\n        let vol = 0;\n        if(curTab === 'rectangular') {\n            vol = document.getElementById('v-len').value * document.getElementById('v-wid').value * document.getElementById('v-dep').value * 1000;\n        } else if(curTab === 'round') {\n            let r = document.getElementById('v-dia').value \/ 2;\n            vol = Math.PI * r * r * document.getElementById('v-rdep').value * 1000;\n        } else {\n            vol = (document.getElementById('v-olen').value\/2) * (document.getElementById('v-owid').value\/2) * Math.PI * document.getElementById('v-odep').value * 1000;\n        }\n        vol = Math.round(vol);\n        const rate = parseFloat(document.getElementById('v-rate').value);\n        const flow = Math.round(vol \/ ((24 \/ rate) * 60));\n        const type = document.getElementById('v-type').value;\n\n        document.getElementById('out-vol').innerText = vol.toLocaleString();\n        document.getElementById('out-flow').innerText = flow.toLocaleString();\n        \n        ['res-sand', 'res-cart', 'res-de'].forEach(id => document.getElementById(id).style.display = 'none');\n\n        if(type === 'sand') {\n            document.getElementById('res-sand').style.display = 'block';\n            let s = vol <= 40000 ? [\"Small\", \"18\\\"\"] : (vol <= 65000 ? [\"Medium\", \"24\\\"\"] : [\"Large\", \"30\\\"+\"]);\n            document.getElementById('out-s-size').innerText = s[0];\n            document.getElementById('out-s-dia').innerText = s[1];\n        } else if(type === 'cartridge') {\n            document.getElementById('res-cart').style.display = 'block';\n            let s = vol <= 40000 ? [\"Small\", \"100\"] : (vol <= 65000 ? [\"Medium\", \"200\"] : [\"Large\", \"400\"]);\n            document.getElementById('out-c-size').innerText = s[0];\n            document.getElementById('out-c-area').innerText = s[1];\n        } else {\n            document.getElementById('res-de').style.display = 'block';\n            let s = vol <= 40000 ? [\"Small\", \"24-36\"] : (vol <= 65000 ? [\"Medium\", \"48\"] : [\"Large\", \"60-72\"]);\n            document.getElementById('out-d-size').innerText = s[0];\n            document.getElementById('out-d-area').innerText = s[1];\n        }\n        document.getElementById('res-box').style.display = 'block';\n    }\n<\/script>\n\n\n<!-- aiper-tool-links -->\n<div class=\"aiper-tool-links\">\n  <div class=\"aiper-tl-section\">\n    <div class=\"aiper-tl-heading\">More Tools<\/div>\n    <div class=\"aiper-tl-tags\">\n      <a href=\"https:\/\/aiper.com\/blogs\/pool-pump-size-calculator\/\" class=\"aiper-tl-tag\">Pool Pump Size Calculator<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/pool-fill-time-calculator\/\" class=\"aiper-tl-tag\">Pool Fill Time Calculator<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/pool-turnover-rate-calculator\/\" class=\"aiper-tl-tag\">Pool Turnover Rate Calculator<\/a>\n    <\/div>\n  <\/div>\n  <div class=\"aiper-tl-section\">\n    <div class=\"aiper-tl-heading\">Related Articles<\/div>\n    <div class=\"aiper-tl-tags\">\n      <a href=\"https:\/\/aiper.com\/blogs\/how-to-backwash-pool-filter\/\" class=\"aiper-tl-tag\">How to Backwash a Pool Filter<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/how-to-lower-alkalinity-in-pool\/\" class=\"aiper-tl-tag\">How to Lower Alkalinity in a Pool (and When You Actually Need To)<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/pool-robot-gets-stuck-on-main-drain\/\" class=\"aiper-tl-tag\">Why Does Your Pool Robot Get Stuck on the Main Drain?<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/how-to-winterize-inground-pool\/\" class=\"aiper-tl-tag\">How to Winterize an Inground Pool: Step-by-Step<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n.aiper-tool-links{margin:2.5rem 0 1.5rem;padding:1.5rem 1.75rem;background:linear-gradient(135deg,rgba(148,134,247,.04),rgba(30,202,211,.04));border-radius:12px;border:1px solid rgba(148,134,247,.10)}\n.aiper-tl-section{margin-bottom:1.25rem}\n.aiper-tl-section:last-child{margin-bottom:0}\n.aiper-tl-heading{font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#8899aa;margin:0 0 .65rem}\n.aiper-tl-tags{display:flex;flex-wrap:wrap;gap:.5rem}\n.aiper-tl-tag{display:inline-block;padding:.4rem .95rem;font-size:.82rem;font-weight:500;line-height:1.35;color:#9486f7;background:rgba(148,134,247,.055);border:1px solid rgba(30,202,211,.25);border-radius:22px;text-decoration:none;transition:all .18s}\n.aiper-tl-tag:hover{background:#1ecad3;color:#fff;border-color:#1ecad3;box-shadow:0 2px 10px rgba(30,202,211,.22)}\n<\/style>","protected":false},"excerpt":{"rendered":"<p>Rectangular Round Oval 1. Pool Dimensions Length (m) Width (m) Avg Depth (m) Diameter (m) Avg Depth (m) Length (m) Width (m) Avg Depth (m) 2. Requirements Filter Type Sand FilterCartridge FilterDE Filter Turnovers \/ Day 1 Time1.5 Times2 Times Calculate Now Pool Volume: &#8212; Litres Required Flow: &#8212; LPM Recommended Sand Filter: &#8212; Tank [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"aiper_reading_time":1,"aiper_last_reviewed":"","aiper_reviewer":0,"aiper_related_ids":[],"aiper_layout":"","footnotes":""},"class_list":["post-1219","page","type-page","status-publish","hentry"],"lang":"en","translations":{"en":1219,"de":2064,"fr":2065,"es":2066},"_links":{"self":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/1219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/comments?post=1219"}],"version-history":[{"count":8,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/1219\/revisions"}],"predecessor-version":[{"id":4301,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/1219\/revisions\/4301"}],"wp:attachment":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/media?parent=1219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}