{"id":1227,"date":"2026-04-27T08:58:03","date_gmt":"2026-04-27T08:58:03","guid":{"rendered":"https:\/\/aiper.com\/blogs\/?p=1227"},"modified":"2026-10-22T07:10:49","modified_gmt":"2026-10-22T07:10:49","slug":"how-to-open-a-pool","status":"publish","type":"post","link":"https:\/\/aiper.com\/blogs\/how-to-open-a-pool\/","title":{"rendered":"How to Open a Pool"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">You peel back the winter cover and the water looks like a swamp. Leaves float on the surface, a layer of sludge sits on the bottom, and the walls have a green film you could scrape off with a fingernail. Every pool owner knows this moment \u2014 that split second of regret before you roll up your sleeves and get to work.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Opening a pool isn&#8217;t complicated. But it <em>is<\/em> a sequence. Skip a step or do them out of order and you&#8217;ll spend the next two weeks fighting cloudy water while your chemical budget evaporates. This guide walks through the exact order \u2014 drawing from pool owners who open their own pools year after year \u2014 so you get clear, swim-ready water as quickly as possible. Prefer watching over reading? <a href=\"https:\/\/aiper.com\/blogs\/videos\/aiper-pro-club-episode-6-how-to-open-your-pool-for-swim-season\/\">Aiper Pro Club Episode 6<\/a> walks through the full opening process on video.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What you&#8217;ll need before you start<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The biggest mistake first-timers make is opening the cover, staring at the water, then driving to the pool store three separate times in one afternoon. Gather everything upfront.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tools and equipment<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Submersible cover pump (or a shop vac if the cover doesn&#8217;t have much water)<\/li>\n\n\n\n<li>Pool brush with a stiff nylon bristle head<\/li>\n\n\n\n<li>Telescopic pole<\/li>\n\n\n\n<li>Leaf net \/ skimmer net<\/li>\n\n\n\n<li>Garden hose (long enough to reach from your spigot to the pool)<\/li>\n\n\n\n<li>Silicone lubricant (for O-rings and gaskets)<\/li>\n\n\n\n<li>Replacement O-rings and drain plugs (if yours are cracked or missing)<\/li>\n\n\n\n<li>Water test kit or test strips (liquid drop kits are more accurate than strips)<\/li>\n\n\n\n<li>A robotic pool cleaner \u2014 optional, but it saves hours of manual vacuuming<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Chemicals (starter list)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Chlorine shock (liquid chlorine or granular calcium hypochlorite \u2014 liquid works faster for opening)<\/li>\n\n\n\n<li>pH increaser (soda ash) and pH decreaser (sodium bisulfate)<\/li>\n\n\n\n<li>Alkalinity increaser (baking soda works \u2014 cheap and effective)<\/li>\n\n\n\n<li>Cyanuric acid (CYA \/ stabilizer) \u2014 especially if you use unstabilized chlorine<\/li>\n\n\n\n<li>Calcium hardness increaser \u2014 if you have soft fill water<\/li>\n\n\n\n<li>Clarifier \u2014 helps the filter catch fine particles faster<\/li>\n\n\n\n<li>Algaecide \u2014 have it on hand in case you open to green water<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">When to open: earlier than you think<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The rule of thumb: open your pool <strong>when the water temperature is still below 60\u00b0F (15\u00b0C)<\/strong>. Once water crosses that threshold, dormant algae spores wake up and multiply fast. Waiting for &#8220;swimming weather&#8221; \u2014 say, late May in most of the US \u2014 means you&#8217;re opening into a green pool that needs triple the chemicals to clear.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For most regions in the northern US, target mid-April to early May. Southern states can open earlier. If you see trees starting to bud, your pool should already be open or opening that weekend.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Above ground vs. inground: what&#8217;s different<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The overall process is similar, but three things change depending on your pool type:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><\/td><td><strong>Above ground<\/strong><\/td><td><strong>Inground<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>Cover removal<\/strong><\/td><td>Usually manageable solo; stretch the cover across the pool as you pull it off to let water drain into the yard, not the pool<\/td><td>Often a two-person job; the cover is heavier and harder to control. Pump standing water off <em>before<\/em> removing<\/td><\/tr><tr><td><strong>Water refill<\/strong><\/td><td>Fill to the middle of the skimmer \u2014 same rule, but above-ground skimmers sit higher relative to the water line<\/td><td>Fill to the middle of the skimmer opening. If the water level dropped significantly over winter, check for liner leaks before refilling<\/td><\/tr><tr><td><strong>Equipment access<\/strong><\/td><td>Pump and filter are usually above ground, easy to inspect and service<\/td><td>Equipment pad is often below water level; make sure drain plugs and O-rings are properly sealed before priming or you&#8217;ll lose prime repeatedly<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">One pool owner&#8217;s real opening routine<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We asked a pool owner in the community who opens their pool without a winter cover every year. Here&#8217;s their routine \u2014 it&#8217;s a good reference for what an opening actually looks like in terms of time and sequence:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;I keep about one-third of the water in the pool over winter. Since there&#8217;s no cover, the surface and floor collect a lot of leaves and debris. The water looks terrible when I start. My process: first, I use the suction line from the pump room to clear out all the debris \u2014 that takes about half an hour. Then I refill the pool with clean water and scrub the corners and walls with a brush, making sure all the big chunks of grime and green algae dissolve into the water. After that, I add clarifier, pH adjuster, and liquid chlorine, then let the filter run for two to three days. By the end, the water is clear.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Their time breakdown per step:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Drain and pump out dirty water: 3\u20134 hours<\/li>\n\n\n\n<li>Remove leaves and large debris: 30 minutes<\/li>\n\n\n\n<li>Scrub walls, corners, and floor: 2\u20133 hours<\/li>\n\n\n\n<li>Water testing: 30 minutes<\/li>\n\n\n\n<li>Add chemicals: 30 minutes<\/li>\n\n\n\n<li>Filtration to clear the water: 2\u20133 days<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Total active work: about 6\u20138 hours spread across a weekend. Total time until swim-ready: about 3\u20134 days.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: drain the cover and pull it off<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you have a solid cover, pump the standing water off first. A submersible cover pump does this in 20\u201340 minutes. Do <strong>not<\/strong> try to pull the cover off with water still on top \u2014 it will dump debris, dead worms, and stagnant water straight into the pool.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For mesh covers: leaves and fine silt may have fallen through over winter. Expect the water underneath to be dirty. That&#8217;s normal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once the cover is off, let it dry completely on the lawn before folding, and check for the damage we cover in our <a href=\"https:\/\/aiper.com\/blogs\/how-to-repair-pool-cover\/\">guide to repairing pool cover rips and holes<\/a>. Wet covers stored in a garage or shed grow mold in days \u2014 and the smell is hard to get out.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: clear the debris and scrub the pool<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use a leaf net to scoop out everything visible on the surface and as much as you can from the floor. Don&#8217;t skip this step and jump straight to chemicals \u2014 chlorine can&#8217;t do its job when it&#8217;s busy oxidizing leaves and dead bugs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Next, brush the walls and floor. This is where the real work happens. Algae clings to surfaces in a thin film you can barely see. Brushing breaks it loose so the shock and filter can deal with it. Pay extra attention to corners, steps, and behind ladders \u2014 these are algae hideouts. Expect this to take two to three hours for a standard residential pool.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you have a robotic pool cleaner, drop it in now and let it run while you handle the equipment setup in the next step. It will pick up the fine sediment brushing kicks up.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: remove winterizing plugs and reinstall accessories<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Locate and remove all rubber expansion plugs from the skimmers and return lines. Don&#8217;t forget the &#8220;Gizzmo&#8221; or ice compensator threaded into the skimmer \u2014 it&#8217;s easy to miss and will block water flow.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Reinstall ladders, handrails, and diving boards. Lubricate bolts with a silicone-based lube \u2014 not WD-40, which washes off in water. Silicone lube prevents rust and makes fall closing easier.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: set up the equipment and refill<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check your pump, <a href=\"https:\/\/aiper.com\/blogs\/pool-filter-size-calculator\/\">filter<\/a>, and heater for drain plugs that were removed for winter. Screw them back in. Inspect every O-ring you can see: pump lid, filter housing, chlorinator. If an O-ring is flat, cracked, or feels hard instead of rubbery, replace it. A $3 O-ring that leaks air will prevent your pump from priming and send you on a wild goose chase.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now refill the pool. Attach a garden hose and bring the water level to the <strong>midpoint of the skimmer opening<\/strong>. This usually takes a few hours depending on your water pressure and how much water you kept over winter. If you drained the pool significantly, consider using a hose-end filter to catch metals and minerals from your fill water.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: prime the pump and start circulation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open the pump lid, fill the basket with water from the hose, and close it tight. Set your multiport valve to &#8220;Filter&#8221; \u2014 or &#8220;Backwash&#8221; first if you used antifreeze in the lines \u2014 and turn the system on.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Watch the pressure gauge for the first 30 seconds. If it spikes immediately, turn it off. Something is blocked or a valve is closed. Common culprits: a winterizing plug you missed, or a multiport valve gasket that dried out over winter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once the pump is running smoothly, let it circulate for at least an hour before adding any chemicals. This mixes the old water with the new fill water so your test readings are accurate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: test and balance the water<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After the water has circulated for an hour, test these four numbers in this order:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Parameter<\/strong><\/td><td><strong>Ideal range<\/strong><\/td><td><strong>Why it matters<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Total alkalinity (TA)<\/td><td>80\u2013120 ppm<\/td><td>Buffers pH. Fix this first \u2014 if TA is wrong, pH will drift no matter what you do<\/td><\/tr><tr><td>pH<\/td><td>7.2\u20137.6<\/td><td>Too high and chlorine loses effectiveness; too low and it irritates eyes and corrodes equipment<\/td><\/tr><tr><td>Calcium hardness<\/td><td>200\u2013400 ppm<\/td><td>Too low pulls calcium from plaster\/grout; too high causes scale on equipment<\/td><\/tr><tr><td>Cyanuric acid (CYA)<\/td><td>30\u201350 ppm<\/td><td>Protects chlorine from UV burn-off. If zero, your shock will disappear in a day of sun<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Adjust TA and pH first, wait 30 minutes of circulation, then move on to shock.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: shock the pool<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Shocking means raising chlorine to a level that oxidizes everything organic in the water \u2014 dead algae, bacteria, ammonia from winter breakdown. Use liquid chlorine (sodium hypochlorite, 10\u201312.5%) for a cleaner, faster result. Granular calcium hypochlorite works too but leaves calcium residue.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">How much? A standard opening shock dose is roughly 1 gallon of liquid chlorine per 10,000 gallons of pool water. If the water is green or cloudy, double it. Always add shock in the evening \u2014 sunlight burns off unstabilized chlorine within hours.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you open to a swamp \u2014 dark green water where you can&#8217;t see the bottom \u2014 don&#8217;t just shock. You need to <a href=\"https:\/\/aiper.com\/blogs\/how-to-get-rid-of-black-algae-in-pool\/\">remove the algae<\/a> aggressively with a combination of brushing, high chlorine levels, and an algaecide designed for your algae type (green, mustard, or black).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 8: run the filter and be patient<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the step that separates a clear pool from a cloudy one. Run your filter continuously for the next 48 to 72 hours. Backwash or clean the filter cartridges when the pressure gauge reads 8\u201310 psi above normal. For a sand filter, backwash daily during the opening period.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adding a clarifier on day one helps the filter catch particles faster \u2014 it clumps fine debris into larger pieces the filter media can actually trap. If the water still looks hazy after 72 hours, your filter might need a deep clean or the media (sand, cartridges, DE grids) may need replacing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">If you have a salt water pool<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Salt water pool opening follows the same physical steps, but the chemical sequence changes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Do <strong>not<\/strong> add salt until the water is balanced, clear, and the salt cell is inspected and clean. Adding salt to cold water (< 60\u00b0F) before the cell can generate chlorine is wasteful \u2014 the salt cell won't produce chlorine until the water warms up<\/li>\n\n\n\n<li>Start with manual chlorine (liquid shock) to get through the opening phase. Your SWG can&#8217;t generate enough chlorine fast enough to handle opening demand<\/li>\n\n\n\n<li>Inspect the salt cell for calcium scale buildup. If there&#8217;s white crust on the plates, soak the cell in a diluted muriatic acid solution (4:1 water to acid) for 10 minutes<\/li>\n\n\n\n<li>Add salt only after the water is clear and warm enough. Most cells need 60\u00b0F+ to operate. Test existing salt level first, then add in increments \u2014 oversalting means draining and diluting<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">DIY cost vs. hiring a pro<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pool companies typically charge $300\u2013$600 for a standard pool opening, depending on your area and pool size. That includes cover removal, equipment setup, chemical startup, and a basic cleaning \u2014 and a smooth startup starts months earlier with <a href=\"https:\/\/aiper.com\/blogs\/how-to-store-pool-chemicals\/\">where and how to store pool chemicals<\/a>. If your pool is green or has known equipment issues, expect to pay more.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Doing it yourself costs roughly:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Chemicals: $50\u2013$100 for a standard opening (shock, pH adjuster, alkalinity, CYA, clarifier)<\/li>\n\n\n\n<li>Replacement parts (O-rings, plugs, gaskets): $10\u2013$30<\/li>\n\n\n\n<li>If you open to a green pool, add $30\u2013$60 for extra shock and algaecide<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">DIY opening saves $200\u2013$500 per season. After doing it once or twice, most owners find it takes a Saturday morning and the confidence that comes from knowing your own system.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">When to call a pro instead<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">DIY opening works for most pools. Call a professional if:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You have a mesh safety cover with an anchor system that needs tensioning<\/li>\n\n\n\n<li>The equipment pad shows signs of freeze damage (cracked PVC, split pump housing)<\/li>\n\n\n\n<li>You suspect a leak \u2014 if the water level dropped more than expected over winter with a solid cover on, something isn&#8217;t right<\/li>\n\n\n\n<li>The heater won&#8217;t fire or makes unusual sounds on startup<\/li>\n\n\n\n<li>You open to a swamp so bad you can&#8217;t see the first step \u2014 severe algae blooms often need professional-grade chemicals and multiple treatments<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">5 mistakes that turn opening weekend into opening month<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Adding chemicals before the water circulates.<\/strong> Dumping shock into still, stratified water creates localized chemical spikes that can bleach a liner and leave other areas untreated. Always run the pump for at least an hour first.<\/li>\n\n\n\n<li><strong>Not testing CYA.<\/strong> If your CYA is at zero \u2014 common if the pool was partially drained over winter \u2014 unstabilized chlorine burns off in a few hours of direct sun. You&#8217;ll add shock, test the next day, see zero chlorine, and think the shock was bad. It wasn&#8217;t; it just had no protection.<\/li>\n\n\n\n<li><strong>Skipping the brush.<\/strong> Chemicals alone won&#8217;t clear algae that&#8217;s attached to surfaces. If you shock without brushing first, you&#8217;ll fight the same green tint for weeks. Brush first, shock second.<\/li>\n\n\n\n<li><strong>Not replacing dried-out O-rings.<\/strong> A pump that won&#8217;t prime usually comes down to one thing: air getting in through a flat O-ring. Inspect and replace them proactively \u2014 they cost pocket change.<\/li>\n\n\n\n<li><strong>Turning the pump off too soon.<\/strong> Water that looks &#8220;mostly clear&#8221; after 24 hours isn&#8217;t finished. Stop filtering early and the remaining dead algae settles and decomposes, dropping pH and clouding the water again. Let the filter run the full 48\u201372 hours.<\/li>\n<\/ol>\n\n\n\n<style>\n#pool-open-cl {\n  background: linear-gradient(145deg, #f8faff 0%, #f0f4ff 100%);\n  border-radius: 16px;\n  padding: 28px 24px 20px;\n  margin: 32px 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n  box-shadow: 0 2px 12px rgba(148,134,247,0.08);\n}\n#pool-open-cl .pocl-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin-bottom: 18px;\n  flex-wrap: wrap;\n  gap: 12px;\n}\n#pool-open-cl .pocl-title {\n  font-size: 1.15em;\n  font-weight: 700;\n  color: #2c3e50;\n  margin: 0;\n}\n#pool-open-cl .pocl-counter {\n  font-size: 0.9em;\n  color: #5a6c7d;\n  background: #fff;\n  padding: 4px 12px;\n  border-radius: 20px;\n  border: 1px solid #e0e5ec;\n}\n#pool-open-cl .pocl-counter strong {\n  color: #9486f7;\n}\n#pool-open-cl .pocl-bar-wrap {\n  width: 100%;\n  height: 6px;\n  background: #e0e5ec;\n  border-radius: 3px;\n  margin-bottom: 20px;\n  overflow: hidden;\n}\n#pool-open-cl .pocl-bar-fill {\n  height: 100%;\n  width: 0%;\n  background: linear-gradient(135deg, #1ecad3, #9486f7);\n  border-radius: 3px;\n  transition: width 0.35s ease;\n}\n#pool-open-cl .pocl-steps {\n  list-style: none;\n  padding: 0;\n  margin: 0;\n}\n#pool-open-cl .pocl-step {\n  display: flex;\n  align-items: flex-start;\n  gap: 12px;\n  padding: 12px 14px;\n  margin-bottom: 6px;\n  background: #fff;\n  border-radius: 10px;\n  border: 1px solid #e8ecf2;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  user-select: none;\n}\n#pool-open-cl .pocl-step:hover {\n  border-color: #c8cef0;\n  box-shadow: 0 1px 6px rgba(148,134,247,0.06);\n}\n#pool-open-cl .pocl-step.done {\n  background: #f0faf0;\n  border-color: #b8dcc0;\n}\n#pool-open-cl .pocl-step.done .pocl-label {\n  text-decoration: line-through;\n  color: #6a8a70;\n}\n#pool-open-cl .pocl-cb {\n  flex-shrink: 0;\n  width: 22px;\n  height: 22px;\n  border-radius: 6px;\n  border: 2px solid #c8ced4;\n  background: #fff;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transition: all 0.2s ease;\n  margin-top: 1px;\n}\n#pool-open-cl .pocl-step.done .pocl-cb {\n  background: #1ecad3;\n  border-color: #1ecad3;\n}\n#pool-open-cl .pocl-cb::after {\n  content: '';\n  display: block;\n  width: 6px;\n  height: 10px;\n  border: solid #fff;\n  border-width: 0 2px 2px 0;\n  transform: rotate(45deg) translateY(-1px);\n  opacity: 0;\n  transition: opacity 0.15s ease;\n}\n#pool-open-cl .pocl-step.done .pocl-cb::after {\n  opacity: 1;\n}\n#pool-open-cl .pocl-label {\n  font-size: 0.95em;\n  color: #2c3e50;\n  line-height: 1.5;\n  transition: color 0.2s ease;\n}\n#pool-open-cl .pocl-actions {\n  display: flex;\n  justify-content: flex-end;\n  margin-top: 14px;\n}\n#pool-open-cl .pocl-reset {\n  font-size: 0.82em;\n  color: #9486f7;\n  background: none;\n  border: 1px solid #d5cffc;\n  padding: 6px 16px;\n  border-radius: 20px;\n  cursor: pointer;\n  transition: all 0.2s ease;\n}\n#pool-open-cl .pocl-reset:hover {\n  background: #f5f3ff;\n  border-color: #9486f7;\n}\n@media (max-width: 600px) {\n  #pool-open-cl { padding: 20px 14px 14px; }\n  #pool-open-cl .pocl-step { padding: 10px 10px; }\n}\n<\/style>\n<div id=\"pool-open-cl\">\n  <div class=\"pocl-header\">\n    <span class=\"pocl-title\">Opening checklist<\/span>\n    <span class=\"pocl-counter\"><strong id=\"pocl-done\">0<\/strong> \/ <span id=\"pocl-total\">12<\/span> done<\/span>\n  <\/div>\n  <div class=\"pocl-bar-wrap\"><div class=\"pocl-bar-fill\" id=\"pocl-bar\"><\/div><\/div>\n  <ul class=\"pocl-steps\" id=\"pocl-list\"><\/ul>\n  <div class=\"pocl-actions\">\n    <button class=\"pocl-reset\" id=\"pocl-reset\">Reset<\/button>\n  <\/div>\n<\/div>\n<script>\n(function(){\n  var STEPS = [\n    \"Gather all tools and chemicals before touching the cover\",\n    \"Pump standing water off the cover, then remove and dry it\",\n    \"Scoop out leaves and debris with a net\",\n    \"Brush every surface \u2014 walls, floor, corners, steps, behind ladders\",\n    \"Remove winterizing plugs from skimmers and return lines\",\n    \"Reinstall drain plugs in pump, filter, and heater; inspect O-rings\",\n    \"Refill to the middle of the skimmer opening\",\n    \"Prime the pump and start circulation; run at least 1 hour before chemicals\",\n    \"Test TA \u2192 pH \u2192 calcium \u2192 CYA, in that order; adjust TA\/pH first\",\n    \"Shock in the evening; double the dose if water is green\",\n    \"Run the filter 48\u201372 hours continuously; backwash daily\",\n    \"Test chlorine and pH daily until levels hold steady\"\n  ];\n  var KEY = 'pool-open-cl-1227';\n  var list = document.getElementById('pocl-list');\n  var bar = document.getElementById('pocl-bar');\n  var doneEl = document.getElementById('pocl-done');\n  var totalEl = document.getElementById('pocl-total');\n  totalEl.textContent = STEPS.length;\n  var checked = [];\n  try {\n    var raw = localStorage.getItem(KEY);\n    if (raw) { checked = JSON.parse(raw); if (!Array.isArray(checked)) checked = []; }\n  } catch(e) { checked = []; }\n\n  function render() {\n    list.innerHTML = '';\n    STEPS.forEach(function(txt, i) {\n      var li = document.createElement('li');\n      li.className = 'pocl-step' + (checked[i] ? ' done' : '');\n      li.innerHTML = '<span class=\"pocl-cb\"><\/span><span class=\"pocl-label\">' + txt + '<\/span>';\n      li.addEventListener('click', (function(idx){\n        return function(){ toggle(idx); };\n      })(i));\n      list.appendChild(li);\n    });\n    var count = checked.filter(Boolean).length;\n    doneEl.textContent = count;\n    bar.style.width = (STEPS.length ? (count \/ STEPS.length * 100) : 0) + '%';\n  }\n\n  function toggle(i) {\n    checked[i] = !checked[i];\n    try { localStorage.setItem(KEY, JSON.stringify(checked)); } catch(e) {}\n    render();\n  }\n\n  document.getElementById('pocl-reset').addEventListener('click', function(){\n    checked = [];\n    try { localStorage.removeItem(KEY); } catch(e) {}\n    render();\n  });\n\n  render();\n})();\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\">Opening your pool yourself isn&#8217;t just about saving money. Once you&#8217;ve done it, you understand your system \u2014 and that confidence carries through the whole season. If manual scrubbing and vacuuming feels like too much after a long winter, an automated <a href=\"https:\/\/aiper.store\/us\/series\/robotic-pool-cleaners?utm_source=google&#038;utm_medium=organic&#038;utm_campaign=blog_seo\">pool cleaner<\/a> handles the ongoing cleaning so you can focus on the part that matters: using the pool.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You peel back the winter cover and the water looks like a swamp. Leaves float on the surface, a layer of sludge sits on the bottom, and the walls have a green film you could scrape off with a fingernail. Every pool owner knows this moment \u2014 that split second of regret before you roll [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":2907,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"aiper_reading_time":13,"aiper_last_reviewed":"","aiper_reviewer":0,"aiper_related_ids":[],"aiper_layout":"","_ai_overview_impressions":65,"footnotes":""},"categories":[20,101],"tags":[452,318],"class_list":["post-1227","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pool-care","category-seasonal-pool-care","tag-fix-a-problem","tag-how-to"],"lang":"en","translations":{"en":1227,"es":2436,"fr":1242,"de":1230},"_links":{"self":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/posts\/1227","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"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=1227"}],"version-history":[{"count":11,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/posts\/1227\/revisions"}],"predecessor-version":[{"id":8927,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/posts\/1227\/revisions\/8927"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/media\/2907"}],"wp:attachment":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/media?parent=1227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/categories?post=1227"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/tags?post=1227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}