{"id":1753,"date":"2026-05-19T04:31:01","date_gmt":"2026-05-19T04:31:01","guid":{"rendered":"https:\/\/aiper.com\/blogs\/?page_id=1753"},"modified":"2026-10-21T09:16:58","modified_gmt":"2026-10-21T09:16:58","slug":"pool-shock-calculator","status":"publish","type":"page","link":"https:\/\/aiper.com\/blogs\/pool-shock-calculator\/","title":{"rendered":"Pool Shock Calculator"},"content":{"rendered":"\n<div class=\"pool-calculator-container\">\n    <h2>Pool Shock Calculator<\/h2>\n    <p class=\"calc-subtitle\">Calculate the exact amount of shock needed to restore your pool&#8217;s balance.<\/p>\n    <hr class=\"calc-divider\">\n\n    <!-- STEP 1: Reason for Shocking -->\n    <div class=\"calc-step\">\n        <label for=\"shock-reason\"><strong>Step 1:<\/strong> Why are you shocking the pool?<\/label>\n        <select id=\"shock-reason\" onchange=\"updateReasonText()\">\n            <option value=\"routine\">Routine Weekly Shock<\/option>\n            <option value=\"light-algae\">Light Algae (Green tint)<\/option>\n            <option value=\"heavy-algae\">Heavy Algae (Dark green \/ black)<\/option>\n            <option value=\"cloudy\">Cloudy Water<\/option>\n            <option value=\"heavy-use\">After Heavy Use or Rain<\/option>\n            <option value=\"opening\">Pool Opening<\/option>\n            <option value=\"custom\">Custom Target<\/option>\n        <\/select>\n        <p id=\"reason-help-text\" class=\"help-text\">Raises free chlorine to ~10 ppm for regular sanitation<\/p>\n    <\/div>\n\n    <!-- STEP 2: Type of Pool Shock -->\n    <div class=\"calc-step\">\n        <label for=\"shock-type\"><strong>Step 2:<\/strong> Select Type of Pool Shock<\/label>\n        <select id=\"shock-type\">\n            <option value=\"cal-hypo\">Calcium Hypochlorite (Cal-Hypo 68%)<\/option>\n            <option value=\"liquid\">Liquid Chlorine (Sodium Hypochlorite 12.5%)<\/option>\n            <option value=\"dichlor\">Dichlor (Sodium Dichloro 56%)<\/option>\n        <\/select>\n    <\/div>\n\n    <!-- STEP 3: Chemical and Volume Inputs -->\n    <div class=\"calc-step\">\n        <label><strong>Step 3:<\/strong> Enter Pool Specifications<\/label>\n        \n        <!-- Pool Volume Wrapper with Unit Toggle -->\n        <div class=\"input-group-header\">\n            <span class=\"input-label\">Pool Volume<\/span>\n            <div class=\"toggle-container\">\n                <button type=\"button\" class=\"toggle-btn active\" id=\"unit-gal\" onclick=\"setVolumeUnit('gal')\">Gallons<\/button>\n                <button type=\"button\" class=\"toggle-btn\" id=\"unit-l\" onclick=\"setVolumeUnit('l')\">Liters<\/button>\n                <button type=\"button\" class=\"toggle-btn\" id=\"unit-m3\" onclick=\"setVolumeUnit('m3')\">m\u00b3<\/button>\n            <\/div>\n        <\/div>\n        <input type=\"number\" id=\"pool-volume\" value=\"10000\" min=\"1\">\n        <p class=\"help-text\">Don&#8217;t know? Use our <a href=\"https:\/\/aiper.com\/blogs\/pool-volume-calculator\/\" target=\"_blank\" rel=\"noopener\">pool volume calculator<\/a>.<\/p>\n\n        <!-- FC Inputs -->\n        <div class=\"fc-inputs-row\">\n            <div class=\"fc-input-box\">\n                <label for=\"current-fc\">Current Free Chlorine (ppm)<\/label>\n                <input type=\"number\" id=\"current-fc\" value=\"1\" min=\"0\" step=\"0.1\">\n            <\/div>\n            <div class=\"fc-input-box\">\n                <label for=\"target-fc\">Target Free Chlorine (ppm)<\/label>\n                <input type=\"number\" id=\"target-fc\" value=\"10\" min=\"0\" step=\"0.1\">\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- STEP 4: Action Button -->\n    <div class=\"calc-step action-step\">\n        <button type=\"button\" id=\"calculate-btn\" onclick=\"calculateShock()\">Calculate it<\/button>\n    <\/div>\n\n    <!-- RESULTS SECTION -->\n    <div id=\"results-box\" class=\"results-container\" style=\"display: none;\">\n        <h3>Required Shock Amount<\/h3>\n        <div class=\"output-toggle-container\">\n            <span class=\"output-label\">Display Result In:<\/span>\n            <div class=\"toggle-container\">\n                <button type=\"button\" class=\"toggle-btn active\" id=\"out-primary\" onclick=\"setOutputUnit('primary')\">Ounces (oz \/ fl oz)<\/button>\n                <button type=\"button\" class=\"toggle-btn\" id=\"out-metric\" onclick=\"setOutputUnit('metric')\">Metric (g \/ ml \/ kg)<\/button>\n            <\/div>\n        <\/div>\n        <div class=\"result-display\">\n            <span id=\"result-value\">0<\/span> <span id=\"result-unit\">oz<\/span>\n        <\/div>\n        <p id=\"shock-notes\" class=\"help-text style-note\"><\/p>\n    <\/div>\n<\/div>\n\n<style>\n\/* CSS Stylesheet tailored for WordPress compatibility *\/\n.pool-calculator-container {\n    background-color: #f9f9f9;\n    border: 2px solid #e1e1e1;\n    border-top: 5px solid #1ecad3;\n    border-radius: 8px;\n    padding: 25px;\n    max-width: 550px;\n    margin: 20px auto;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n    color: #333;\n    box-shadow: 0 4px 6px rgba(0,0,0,0.05);\n}\n.pool-calculator-container h2 {\n    color: #222;\n    margin-top: 0;\n    margin-bottom: 5px;\n    font-size: 24px;\n}\n.calc-subtitle {\n    font-size: 14px;\n    color: #666;\n    margin-bottom: 15px;\n}\n.calc-divider {\n    border: 0;\n    height: 1px;\n    background: #e1e1e1;\n    margin-bottom: 20px;\n}\n.calc-step {\n    margin-bottom: 22px;\n}\n.calc-step label {\n    display: block;\n    margin-bottom: 8px;\n    font-size: 15px;\n}\n.pool-calculator-container select, \n.pool-calculator-container input[type=\"number\"] {\n    width: 100%;\n    padding: 10px;\n    border: 1px solid #ccc;\n    border-radius: 4px;\n    box-sizing: border-box;\n    font-size: 15px;\n    background-color: #fff;\n}\n.pool-calculator-container select:focus, \n.pool-calculator-container input:focus {\n    border-color: #1ecad3;\n    outline: none;\n    box-shadow: 0 0 0 2px rgba(30, 202, 211, 0.2);\n}\n.help-text {\n    font-size: 13px;\n    color: #555;\n    margin: 6px 0 0 0;\n}\n.help-text a {\n    color: #1ecad3;\n    text-decoration: underline;\n    font-weight: 600;\n}\n.help-text a:hover {\n    color: #169fa6;\n}\n.input-group-header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    margin-bottom: 6px;\n}\n.input-label {\n    font-size: 14px;\n    font-weight: bold;\n}\n.toggle-container {\n    display: inline-flex;\n    border: 1px solid #ccc;\n    border-radius: 4px;\n    overflow: hidden;\n    background: #eee;\n}\n.toggle-btn {\n    background: #eee;\n    border: none;\n    padding: 4px 10px;\n    font-size: 12px;\n    cursor: pointer;\n    color: #555;\n    transition: all 0.2s ease;\n}\n.toggle-btn:hover {\n    background: #e0e0e0;\n}\n.toggle-btn.active {\n    background: #1ecad3;\n    color: #fff;\n    font-weight: bold;\n}\n.fc-inputs-row {\n    display: flex;\n    gap: 15px;\n    margin-top: 15px;\n}\n.fc-input-box {\n    flex: 1;\n}\n.fc-input-box label {\n    font-size: 13px;\n    color: #444;\n}\n.action-step {\n    text-align: center;\n    margin-top: 25px;\n    margin-bottom: 10px;\n}\n#calculate-btn {\n    background-color: #1ecad3;\n    color: #ffffff;\n    border: none;\n    padding: 12px 30px;\n    font-size: 16px;\n    font-weight: bold;\n    border-radius: 4px;\n    cursor: pointer;\n    width: 100%;\n    transition: background 0.2s ease;\n}\n#calculate-btn:hover {\n    background-color: #169fa6;\n}\n.results-container {\n    background-color: #f0fdfd;\n    border: 1px solid #bcecf0;\n    border-radius: 6px;\n    padding: 20px;\n    margin-top: 20px;\n    animation: fadeIn 0.4s ease;\n}\n.results-container h3 {\n    margin-top: 0;\n    margin-bottom: 15px;\n    color: #137e83;\n    font-size: 18px;\n}\n.output-toggle-container {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    margin-bottom: 15px;\n}\n.output-label {\n    font-size: 13px;\n    color: #555;\n}\n.result-display {\n    font-size: 32px;\n    font-weight: 800;\n    color: #126366;\n    text-align: center;\n    margin: 15px 0;\n}\n.style-note {\n    text-align: center;\n    font-style: italic;\n    border-top: 1px dashed #bcecf0;\n    padding-top: 10px;\n    margin-top: 10px;\n}\n@keyframes fadeIn {\n    from { opacity: 0; transform: translateY(5px); }\n    to { opacity: 1; transform: translateY(0); }\n}\n<\/style>\n\n<script>\n\/\/ State management variables\nlet currentVolumeUnit = 'gal';\nlet currentOutputUnitSetting = 'primary'; \/\/ 'primary' (oz\/fl oz) vs 'metric' (g\/ml\/kg)\nlet globalOuncesCalculated = 0; \/\/ Cache calculations for real-time toggling\nlet isLiquidShock = false;\n\n\/\/ Reason text and target updates lookup map\nconst targetReasonConfig = {\n    'routine': { target: 10, text: \"Raises free chlorine to ~10 ppm for regular sanitation\" },\n    'light-algae': { target: 20, text: \"Raises free chlorine to ~20 ppm to kill early-stage algae\" },\n    'heavy-algae': { target: 30, text: \"Raises free chlorine to ~30 ppm \u2014 the nuclear option for stubborn algae\" },\n    'cloudy': { target: 12, text: \"Raises free chlorine to ~12 ppm to clear hazy or cloudy water\" },\n    'heavy-use': { target: 12, text: \"Raises free chlorine to ~12 ppm to eliminate contaminants from heavy bather load or rain\" },\n    'opening': { target: 15, text: \"Raises free chlorine to ~15 ppm \u2014 ideal for spring pool opening\" },\n    'custom': { target: null, text: \"Set your own target free chlorine level below\" }\n};\n\nfunction updateReasonText() {\n    const reasonValue = document.getElementById('shock-reason').value;\n    const config = targetReasonConfig[reasonValue];\n    \n    document.getElementById('reason-help-text').innerText = config.text;\n    \n    if (config.target !== null) {\n        document.getElementById('target-fc').value = config.target;\n    }\n}\n\nfunction setVolumeUnit(unit) {\n    \/\/ Update volume toggle layout states\n    document.getElementById('unit-gal').classList.remove('active');\n    document.getElementById('unit-l').classList.remove('active');\n    document.getElementById('unit-m3').classList.remove('active');\n    \n    document.getElementById('unit-' + unit).classList.add('active');\n    currentVolumeUnit = unit;\n}\n\nfunction setOutputUnit(unitSetting) {\n    \/\/ Update result toggle layout states\n    document.getElementById('out-primary').classList.remove('active');\n    document.getElementById('out-metric').classList.remove('active');\n    \n    document.getElementById('out-' + unitSetting).classList.add('active');\n    currentOutputUnitSetting = unitSetting;\n    \n    if (globalOuncesCalculated > 0) {\n        displayConvertedResults();\n    }\n}\n\nfunction calculateShock() {\n    let volume = parseFloat(document.getElementById('pool-volume').value);\n    const currentFC = parseFloat(document.getElementById('current-fc').value);\n    const targetFC = parseFloat(document.getElementById('target-fc').value);\n    const shockType = document.getElementById('shock-type').value;\n\n    if (isNaN(volume) || volume <= 0 || isNaN(currentFC) || isNaN(targetFC)) {\n        alert(\"Please enter valid positive numerical measurements.\");\n        return;\n    }\n\n    \/\/ 1. Normalize input volume variables to standard Base US Gallons\n    let volumeInGallons = volume;\n    if (currentVolumeUnit === 'l') {\n        volumeInGallons = volume * 0.264172;\n    } else if (currentVolumeUnit === 'm3') {\n        volumeInGallons = volume * 264.172;\n    }\n\n    const desiredIncrease = targetFC - currentFC;\n    if (desiredIncrease <= 0) {\n        alert(\"Your target Free Chlorine must be greater than your current Free Chlorine level.\");\n        return;\n    }\n\n    \/\/ 2. Perform Pool Chemistry Calculations\n    \/\/ Formulas compute ounces needed to raise 10,000 gallons by 1 ppm FC:\n    \/\/ Cal-Hypo 68%: ~2 oz weight raises 10k gal by 1 ppm\n    \/\/ Liquid Chlorine 12.5%: ~10.5 fl oz raises 10k gal by 1 ppm\n    \/\/ Dichlor 56%: ~2.4 oz weight raises 10k gal by 1 ppm\n    let ozRequiredPer10kGalPer1Ppm = 2.0; \n    isLiquidShock = false;\n\n    if (shockType === 'liquid') {\n        ozRequiredPer10kGalPer1Ppm = 10.5;\n        isLiquidShock = true;\n    } else if (shockType === 'dichlor') {\n        ozRequiredPer10kGalPer1Ppm = 2.4;\n    } else if (shockType === 'cal-hypo') {\n        ozRequiredPer10kGalPer1Ppm = 2.0;\n    }\n\n    \/\/ Total baseline calculation in dry\/fluid ounces\n    globalOuncesCalculated = (volumeInGallons \/ 10000) * desiredIncrease * ozRequiredPer10kGalPer1Ppm;\n\n    \/\/ Render output\n    displayConvertedResults();\n    document.getElementById('results-box').style.display = 'block';\n}\n\nfunction displayConvertedResults() {\n    const valElement = document.getElementById('result-value');\n    const unitElement = document.getElementById('result-unit');\n    const noteElement = document.getElementById('shock-notes');\n\n    if (currentOutputUnitSetting === 'primary') {\n        \/\/ Output in typical US Pool units (Ounces \/ Fluid Ounces)\n        valElement.innerText = globalOuncesCalculated.toFixed(1);\n        unitElement.innerText = isLiquidShock ? 'fl. oz.' : 'oz (by weight)';\n        noteElement.innerText = isLiquidShock ? \"Measure using a liquid measuring cup.\" : \"For best results, weigh dry shock components with a scale.\";\n    } else {\n        \/\/ Output converted metric measurements (Grams, Milliliters, or Kilograms)\n        if (isLiquidShock) {\n            let milliliters = globalOuncesCalculated * 29.5735;\n            if (milliliters >= 1000) {\n                valElement.innerText = (milliliters \/ 1000).toFixed(2);\n                unitElement.innerText = 'Liters (L)';\n            } else {\n                valElement.innerText = Math.round(milliliters);\n                unitElement.innerText = 'mL';\n            }\n            noteElement.innerText = \"Pre-dilute liquid shock in a bucket of pool water before spreading.\";\n        } else {\n            let grams = globalOuncesCalculated * 28.3495;\n            if (grams >= 1000) {\n                valElement.innerText = (grams \/ 1000).toFixed(2);\n                unitElement.innerText = 'Kilograms (kg)';\n            } else {\n                valElement.innerText = Math.round(grams);\n                unitElement.innerText = 'Grams (g)';\n            }\n            noteElement.innerText = \"Always pre-dissolve granular shock options to protect pool vinyl liners.\";\n        }\n    }\n}\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">How to Shock Your Swimming Pool<\/h2>\n\n\n\n<div class=\"schema-how-to wp-block-yoast-how-to-block\"><p class=\"schema-how-to-description\">Follow these core steps in the evening for the best results, as the sun&#8217;s UV rays burn off unstabilized chlorine quickly.<\/p> <ol class=\"schema-how-to-steps\"><li class=\"schema-how-to-step\" id=\"how-to-step-1779161277603\"><strong class=\"schema-how-to-step-name\">Test and Balance the Water<\/strong> <p class=\"schema-how-to-step-text\">Before adding shock, test your pool water. Ensure your pH is between &lt;strong>7.2 and 7.4&lt;\/strong> and Total Alkalinity is between &lt;strong>80 and 120 ppm&lt;\/strong>. Shocking is significantly more effective when your water chemistry is properly balanced.<\/p> <\/li><li class=\"schema-how-to-step\" id=\"how-to-step-1779161414321\"><strong class=\"schema-how-to-step-name\">Calculate Your Dosage<\/strong> <p class=\"schema-how-to-step-text\">Determine your pool&#8217;s total volume and choose your shock type. Use our custom calculator above to find the exact ounces or liters required based on your current free chlorine level and the reason you are treating the pool.<\/p> <\/li><li class=\"schema-how-to-step\" id=\"how-to-step-1779161424027\"><strong class=\"schema-how-to-step-name\">Pre-Dissolve or Prepare the Shock<\/strong> <p class=\"schema-how-to-step-text\">If you are using liquid shock, you can pour it directly into the pool. If using granular shock like Cal-Hypo, pre-dissolve it in a 5-gallon bucket of pool water first to prevent the concentrated grains from bleaching or damaging your pool liner.<\/p> <\/li><li class=\"schema-how-to-step\" id=\"how-to-step-1779161444008\"><strong class=\"schema-how-to-step-name\">Pour Around the Perimeter<\/strong> <p class=\"schema-how-to-step-text\">Turn on your pool&#8217;s filtration pump to maximum speed. Slowly pour the prepared shock mixture around the deep end and edges of the pool perimeter. Walk around while pouring to ensure uniform distribution and optimal chemical circulation.<\/p> <\/li><li class=\"schema-how-to-step\" id=\"how-to-step-1779161460063\"><strong class=\"schema-how-to-step-name\">Wait and Re-test Before Swimming<\/strong> <p class=\"schema-how-to-step-text\">Keep your pool filter running continuously for at least &lt;strong>8 to 24 hours&lt;\/strong> after treating. Re-test the water before letting anyone enter; it is safe to swim once your Free Chlorine level drops back down to a safe range between 1 and 4 ppm.<\/p> <\/li><\/ol><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pool Shock Frequently Asked Questions<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1779164606871\"><strong class=\"schema-faq-question\">Is shock and chlorine the same thing for pools?<\/strong> <p class=\"schema-faq-answer\">Not exactly. Chlorine is a chemical sanitizer that maintains daily cleanliness, while &#8220;shock&#8221; is a high-intensity chemical treatment method. Most pool shocks are made of concentrated chlorine, but they are designed to drastically raise sanitizer levels all at once to burn off combined chlorine (chloramines) and organic waste.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164625202\"><strong class=\"schema-faq-question\">When should you put shock in your pool?<\/strong> <p class=\"schema-faq-answer\">You should shock your pool at dusk or night. Sunlight&#8217;s UV rays burn off unstabilized chlorine in as little as 1 to 2 hours. Shocking after sunset ensures the chemical stays in the water long enough to aggressively eliminate bacteria and algae.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164647972\"><strong class=\"schema-faq-question\">Will pool shock raise my pH?<\/strong> <p class=\"schema-faq-answer\">It depends on the type. Calcium Hypochlorite (Cal-Hypo) and Liquid Chlorine have high native pH levels and will temporarily raise your pool&#8217;s pH. Dichlor shock is slightly acidic and won&#8217;t noticeably increase pH, while Non-Chlorine shock (MPS) is neutral to slightly acidic.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164671943\"><strong class=\"schema-faq-question\">Do I run my pump when I shock my pool?<\/strong> <p class=\"schema-faq-answer\">Yes, absolutely. Run your filtration pump on its highest speed setting for at least 8 to 24 hours after adding shock. Continuous circulation is vital to distribute the chemical evenly, prevent concentrated bleaching, and filter out dead algae debris.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164680950\"><strong class=\"schema-faq-question\">Is it possible to over shock a pool?<\/strong> <p class=\"schema-faq-answer\">It is difficult to &#8220;over shock&#8221; from a sanitation standpoint, as heavy algae blooms often require a double or triple dose. However, adding too much granular stabilized shock (like Dichlor) can cause dangerous Cyanuric Acid buildup, and adding too much Cal-Hypo can unsafely spike your Calcium Hardness levels over time.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164705816\"><strong class=\"schema-faq-question\">Why is my pool still green after shock and algaecide?<\/strong> <p class=\"schema-faq-answer\">This typically happens for three reasons: your pH is too high (which renders chlorine ineffective), your Cyanuric Acid (stabilizer) is too high causing &#8220;chlorine lock,&#8221; or you didn&#8217;t add enough shock to completely kill off a heavy algae bloom. Test your water balance and re-calculate your required target ppm.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164729657\"><strong class=\"schema-faq-question\">Which is better: liquid or powder pool shock?<\/strong> <p class=\"schema-faq-answer\">Neither is objectively &#8220;better,&#8221; as they serve different purposes. Liquid chlorine is cheaper, leaves zero chemical residue, and can be poured directly into the water, making it highly convenient. Powder (granular) shock is lighter to transport, has a longer shelf life, and options like Dichlor are great for quick sun protection.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164749446\"><strong class=\"schema-faq-question\">Is pool stabilizer the same as shock?<\/strong> <p class=\"schema-faq-answer\">No. Pool stabilizer (Cyanuric Acid or CYA) acts as sunscreen to protect your chlorine from evaporating under UV rays. Pool shock is the active sanitizer used to destroy contaminants. They are completely separate chemicals, though some granular shocks (like Dichlor) come blended with stabilizer.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164769158\"><strong class=\"schema-faq-question\">What is the active ingredient in pool shock?<\/strong> <p class=\"schema-faq-answer\">The active ingredient depends on the product type. The most common active ingredients are Calcium Hypochlorite (granular), Sodium Hypochlorite (liquid), Sodium Dichloro-s-triazinetrione (stabilized powder), or Potassium Monopersulfate (for non-chlorine oxidizers).<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164825676\"><strong class=\"schema-faq-question\">Is it ok to shock pool when raining?<\/strong> <p class=\"schema-faq-answer\">Yes, shocking during light or moderate rain is fine because the water is already getting diluted and contaminated by organic atmospheric particles. However, avoid shocking during heavy, torrential downpours or severe thunderstorms, as excessive runoff can wash the chemicals right out of the pool.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164844133\"><strong class=\"schema-faq-question\">Why is shock not dissolving in pool?<\/strong> <p class=\"schema-faq-answer\">Granular shocks like Cal-Hypo dissolve slowly because they contain calcium. If your pool water is cold, or if your pool&#8217;s pH or Total Alkalinity levels are too high, the granules will struggle to dissolve and will settle on the floor. Always pre-dissolve dry shock in a bucket of warm water before adding it.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164882157\"><strong class=\"schema-faq-question\">Why is pool shock so expensive now?<\/strong> <p class=\"schema-faq-answer\">The cost of pool shock stems from supply chain adjustments following chemical plant incidents and rising global raw material and transportation costs. Liquid chlorine often remains the most budget-stable option during market fluctuations.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164899372\"><strong class=\"schema-faq-question\">Why is my pool foaming after adding shock?<\/strong> <p class=\"schema-faq-answer\">Foaming is rarely caused by the shock itself. It usually happens if you added a cheap, copper-based algaecide right before shocking; the high chlorine level agitates the algaecide surfactants, creating foam. It can also be caused by a heavy concentration of organic bather waste (soap, lotion, cosmetics) being oxidized by the shock.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1779164917907\"><strong class=\"schema-faq-question\">What is the cheapest way to shock a pool?<\/strong> <p class=\"schema-faq-answer\">The most cost-effective method is using commercial-grade Liquid Chlorine (Sodium Hypochlorite 12.5%). It yields the lowest cost per pound of pure available chlorine, requires no pre-mixing equipment, and prevents hidden expenses associated with correcting calcium or stabilizer over-saturation down the road.<\/p> <\/div> <\/div>\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-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<a href=\"https:\/\/aiper.com\/blogs\/pool-saturation-index-calculator\/\" class=\"aiper-tl-tag\">Pool Saturation Index 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-shock-a-pool\/\" class=\"aiper-tl-tag\">How to Shock a Pool Properly: Timing, Dosing, and Safety<\/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>Pool Shock Calculator Calculate the exact amount of shock needed to restore your pool&#8217;s balance. Step 1: Why are you shocking the pool? Routine Weekly ShockLight Algae (Green tint)Heavy Algae (Dark green \/ black)Cloudy WaterAfter Heavy Use or RainPool OpeningCustom Target Raises free chlorine to ~10 ppm for regular sanitation Step 2: Select Type of&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-1753","page","type-page","status-publish","hentry"],"lang":"en","translations":{"en":1753,"de":2082,"fr":2083,"es":2084},"_links":{"self":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/1753","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=1753"}],"version-history":[{"count":8,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/1753\/revisions"}],"predecessor-version":[{"id":11906,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/1753\/revisions\/11906"}],"wp:attachment":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/media?parent=1753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}