{
  "slug": "pool-opening-closing-cost",
  "title": "Pool Opening and Closing Cost Calculator",
  "heading": "Pool Opening and Closing Job Cost Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/pool-opening-closing-cost",
  "summary": "Price seasonal pool opening and closing jobs with labor, chemicals, and parts.",
  "description": "Pool opening and closing are one-time seasonal jobs distinct from weekly maintenance, and they involve more variable labor (removing/installing covers, backwashing, winterizing lines) plus chemical shock treatment and occasional parts replacement. This calculator prices the job from labor hours, chemical kit cost, and an allowance for common small parts like plugs and gizzmos, then applies a margin target.",
  "formula": "Total cost = labor hours × crew cost + chemical kit + parts allowance. Price = total cost ÷ (1 − target margin).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=pool-opening-closing-cost",
  "inputs": [
    {
      "id": "laborHours",
      "label": "Labor hours (crew total)",
      "kind": "number",
      "hint": null,
      "default": 2.5,
      "unit": null,
      "min": 0.5,
      "max": null
    },
    {
      "id": "crewCostHour",
      "label": "Crew cost per hour",
      "kind": "number",
      "hint": null,
      "default": 50,
      "unit": "$",
      "min": 10,
      "max": null
    },
    {
      "id": "chemicalKit",
      "label": "Chemical/shock kit cost",
      "kind": "number",
      "hint": null,
      "default": 45,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "partsAllowance",
      "label": "Parts allowance (plugs, gizzmos)",
      "kind": "number",
      "hint": null,
      "default": 20,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "margin",
      "label": "Target margin",
      "kind": "number",
      "hint": null,
      "default": 40,
      "unit": "%",
      "min": 5,
      "max": 80
    }
  ],
  "outputs": [
    {
      "id": "price",
      "label": "Job price",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "totalCost",
      "label": "Total job cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "laborCost",
      "label": "Labor cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "profit",
      "label": "Profit",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Labor hours (crew total): 2.5",
      "Crew cost per hour: 50 $",
      "Chemical/shock kit cost: 45 $",
      "Parts allowance (plugs, gizzmos): 20 $",
      "Target margin: 40 %"
    ],
    "outputs": [
      "Job price: $317",
      "Total job cost: $190",
      "Labor cost: $125",
      "Profit: $127"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter labor hours (crew total).",
      "Enter crew cost per hour ($).",
      "Enter chemical/shock kit cost ($).",
      "Enter parts allowance (plugs, gizzmos) ($).",
      "Enter target margin (%).",
      "Read your job price 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": {
        "laborHours": 1.5,
        "crewCostHour": 30,
        "chemicalKit": 25,
        "partsAllowance": 10,
        "margin": 24
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "laborHours": 2.5,
        "crewCostHour": 50,
        "chemicalKit": 45,
        "partsAllowance": 20,
        "margin": 40
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "laborHours": 4,
        "crewCostHour": 80,
        "chemicalKit": 70,
        "partsAllowance": 30,
        "margin": 64
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "Why are opening and closing priced separately from weekly service?",
      "a": "They require different skills and time investment than routine maintenance: closing involves draining lines, adding antifreeze, installing a winter cover, and often blowing out plumbing to prevent freeze damage; opening reverses all of that plus a shock treatment to clear winter growth. Both are riskier jobs (freeze damage liability, cover installation) that justify separate, higher per-visit pricing than a standard weekly stop."
    },
    {
      "q": "What typically drives cost overruns on these jobs?",
      "a": "Winter damage discovered at opening (cracked returns, a torn liner, a dead pump from a freeze) is the most common overrun, along with older covers that are difficult to remove and clean, and gizzmos/plugs that seize and need replacement. Building a parts allowance into the base price, with a clear policy for charging extra when major damage is found, avoids absorbing surprise costs."
    },
    {
      "q": "How does regional climate change pricing?",
      "a": "In colder climates with hard winterization requirements (blowing lines, adding antifreeze, mandatory below-frost-line plugs), closing jobs run longer and higher-risk than in milder climates where pools may only need partial winterization or none at all. Adjust labor hours and parts allowance based on your actual regional winterization requirements."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/pool-chemical-cost",
    "https://www.revenuelab.fyi/toolbox/crew-hour-job-pricing"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Pool Opening and Closing Cost Calculator (https://www.revenuelab.fyi/toolbox/pool-opening-closing-cost)"
}