{
  "slug": "pool-shock-calculator",
  "title": "Pool Shock Calculator",
  "heading": "Pool Shock Calculator",
  "category": "other",
  "url": "https://www.revenuelab.fyi/toolbox/pool-shock-calculator",
  "summary": "Calculate how many bags of pool shock to use based on pool gallons and shock level needed.",
  "description": "Shocking a pool means adding a large dose of oxidizer, usually calcium hypochlorite or sodium dichlor, to rapidly raise free chlorine and destroy algae, chloramines, and organic contaminants that regular daily chlorine dosing can't keep up with. Shock product labels are formulated around a standard dose per 10,000 gallons of pool water, so getting an accurate gallon count first is essential before scaling that dose up or down to your pool's actual size. This calculator takes your pool's total gallons and the shock level you're targeting — normal maintenance shock, algae-clearing shock, or opening/closing shock, each requiring a different multiple of the base dose — and returns how many standard 1lb bags of shock to use. Always shock in the evening or at night since sunlight rapidly burns off unstabilized chlorine, and keep swimmers out of the water until chlorine levels drop back into the safe swimming range, typically 1-4 ppm, which can take anywhere from a few hours to overnight depending on shock strength.",
  "formula": "Bags = ceil((Pool Gallons ÷ 10000) × Dose Multiplier)",
  "dateModified": "2026-09-06",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=pool-shock-calculator",
  "inputs": [
    {
      "id": "poolGallons",
      "label": "Pool volume",
      "kind": "number",
      "hint": null,
      "default": 20000,
      "unit": "gal",
      "min": 500,
      "max": null
    },
    {
      "id": "shockLevel",
      "label": "Shock level",
      "kind": "select",
      "hint": null,
      "default": "normal",
      "options": [
        {
          "value": "normal",
          "label": "Normal maintenance (1 bag/10,000 gal)"
        },
        {
          "value": "algae",
          "label": "Algae clearing (2-3 bags/10,000 gal)"
        },
        {
          "value": "opening",
          "label": "Opening/closing (2 bags/10,000 gal)"
        }
      ]
    }
  ],
  "outputs": [
    {
      "id": "bags",
      "label": "1lb shock bags needed",
      "format": "number",
      "hint": null,
      "primary": true
    },
    {
      "id": "rawBags",
      "label": "Exact bags before rounding",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "multiplier",
      "label": "Dose multiplier used",
      "format": "decimal",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Pool volume: 20000 gal",
      "Shock level: Normal maintenance (1 bag/10,000 gal)"
    ],
    "outputs": [
      "1lb shock bags needed: 2",
      "Exact bags before rounding: 2",
      "Dose multiplier used: 1"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter pool volume (gal).",
      "Enter shock level.",
      "Read your 1lb shock bags needed on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "poolGallons": 12000,
        "shockLevel": "normal"
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "poolGallons": 20000,
        "shockLevel": "normal"
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "poolGallons": 32000,
        "shockLevel": "normal"
      }
    }
  ],
  "limitations": [
    "Estimates assume standard, average conditions — local rules, pricing, and materials vary.",
    "Results are rounded for readability; add a buffer before ordering, booking, or committing.",
    "Double-check anything with a real cost attached against a local quote."
  ],
  "faq": [
    {
      "q": "How often should I shock my pool?",
      "a": "Weekly during heavy swim season is standard for maintenance shock, with additional shocks after heavy rain, a big pool party, or visible algae, and mandatory shocks at seasonal opening and closing."
    },
    {
      "q": "How long do I have to wait to swim after shocking?",
      "a": "Wait until free chlorine drops back to the safe range of 1-4 ppm, which typically takes several hours to overnight depending on shock strength — always retest before letting anyone back in."
    },
    {
      "q": "What's the difference between cal-hypo and dichlor shock?",
      "a": "Cal-hypo is unstabilized and works fast but raises calcium hardness over time, while dichlor is stabilized against sun degradation and dissolves quickly, making it common for spas and smaller pools."
    },
    {
      "q": "Can I shock a pool during the day?",
      "a": "It's better to shock at dusk or night since UV sunlight rapidly breaks down unstabilized chlorine, burning off much of the dose's effectiveness before it has time to work."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/pool-salt-pounds-calculator",
    "https://www.revenuelab.fyi/toolbox/pool-gallons-rectangular-calculator",
    "https://www.revenuelab.fyi/toolbox/hot-tub-gallons-calculator"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Pool Shock Calculator (https://www.revenuelab.fyi/toolbox/pool-shock-calculator)"
}