| Parameter | Low | Ideal | High | Notes |
|---|---|---|---|---|
| pH | < 7.2 | 7.4 - 7.6 | > 7.8 | Drifts up over time from CO₂ off-gassing |
| Free Chlorine (FC) | < 1 ppm | 3 - 5 ppm | > 10 ppm | Lower if ozone working; never bathe with 0 |
| Bromine (alt to Cl) | < 2 ppm | 3 - 5 ppm | > 8 ppm | Better choice without ozone |
| Total Alkalinity (TA) | < 60 ppm | 80 - 120 ppm | > 180 ppm | Low TA = pH bouncing; high = scale risk |
| Calcium Hardness | < 100 ppm | 150 - 250 ppm | > 400 ppm | Below 100 = foaming, equipment etching |
| Cyanuric Acid (CYA) | 0 ppm | 0 - 20 ppm | > 30 ppm | Keep LOW in spas; binds Cl in hot water |
| Temperature | < 95°F | 97 - 104°F | > 104°F | 104°F max for adults; 97-100°F for kids |
Reading a standard 4-way AquaChek-style strip (FC + pH + TA + CYA):
| Pad | Color shift | What it tells you |
|---|---|---|
| pH | Yellow → orange → red | Yellow = acidic, red = alkaline |
| FC | White → light purple → dark purple | White = no sanitizer (do not soak) |
| TA | Yellow → green → teal | Yellow = no buffering capacity |
| CYA | Yellow → orange → magenta → purple | Yellow ≈ 0 ppm (correct for spa) |
Corona-discharge ozone cells typically last 2-5 years. Test:
| Chlorine (bleach) | Bromine | Dichlor | |
|---|---|---|---|
| Cost/month | $5-10 | $10-15 | $10-15 |
| Adds CYA? | No good | No | Yes bad in spa |
| Hot water stability | Moderate | High best | Moderate |
| Daily attention | Yes (2-3 oz daily) | Minimal (floater) | Yes |
| Best for | Cooler spa, ozone-equipped | Hot spa, no ozone | Avoid in spa |
Adjust TA before pH. Bicarb raises both, so chasing pH first wastes chemicals. Same with shock — never add sanitizer when pH is below 7.0 (chlorine off-gasses as Cl₂) or above 8.0 (mostly inactive OCl⁻ form).
When to purge: every water change (3-4 months), after any contamination event (folliculitis outbreak, cloudy water that won't clear), after extended downtime (winter storage), or when buying a used tub.
Hot tub plumbing develops biofilm — a polysaccharide matrix that bacteria secrete to shield themselves from sanitizer. Chlorine kills planktonic (free-floating) bacteria in seconds but can't penetrate the biofilm matrix. A surfactant-based purge product is required to physically disrupt the matrix so chlorine can reach what's inside.
| Product | Form | Effectiveness | Cost/purge |
|---|---|---|---|
| Ahh-some (Unique Solutions / King Tech) | Gel or 16 oz liquid | Best | $3-5 |
| Oh Yuk | Liquid | Good (2-cycle) | $4-6 |
| Natural Chemistry Pipe Cleanse | Liquid | Moderate | $5-8 |
| TSP + bleach (DIY) | Powder + liquid | Acceptable | $3-5 |
Pseudomonas aeruginosa folliculitis ("hot tub rash") presents 1-4 days after exposure as red, itchy bumps concentrated in swimsuit-covered areas. Self-limiting in 7-14 days but actively treatable to shorten duration and prevent worsening.
| Intervention | Mechanism | Protocol |
|---|---|---|
| Chlorhexidine 4% (Hibiclens) | Hospital-grade antiseptic, kills Pseudomonas on skin and superficial follicles | Lather on affected areas in shower, 1-2 min contact, rinse. Once daily, 3-5 days. Avoid eyes, ears, mucous membranes. |
| Acetic acid compresses (1:1 white vinegar + water) | Pseudomonas cannot survive at low pH — same principle as swimmer's ear treatment | Soak washcloth, apply 10-15 min to affected areas, 2-3× daily until rash clears. |
| Wash all exposed fabric (hot + bleach) | Prevents re-inoculation; Pseudomonas survives on damp fabric for days | Swimsuits, towels, bath mats, robes. Hot wash, full detergent, 1/2 cup bleach if fabric allows. Sun-dry if possible. |
| Keep affected skin dry & uncovered | Occlusion + moisture + warmth = the conditions that caused this | Loose cotton, no tight elastic over rash, change if sweaty. |
| Scenario | Setpoint | Chemistry Implications |
|---|---|---|
| Adult relaxation | 102 - 104°F | Highest sanitizer demand, fastest pH drift up |
| Mixed family (kids) | 97 - 100°F | ~25% lower chlorine demand than 104°F; bromine advantage shrinks |
| Therapy / soak time only | 100 - 102°F | Standard setpoint, predictable chemistry |
| Storage between uses (1+ weeks) | Off or floor setpoint | ~3-4× longer chlorine residual; minimal heating cost |
| Decontamination wait period | Off / lowest possible | Slows bacterial growth, preserves chlorine |
| Symptom | Likely Cause | Fix |
|---|---|---|
| Cloudy water | High bather load, dead chlorine, biofilm release, or high TA/calcium | Test all parameters; shock to 10 ppm; clean filter; if persistent → purge plumbing |
| Foaming | Body oils, soap residue, low calcium hardness, or surfactant accumulation | Run purge product; raise calcium to 150+ ppm; long-term: rinse off before soaking |
| Strong chlorine smell | Chloramines (combined chlorine), not free chlorine. Counter-intuitive: indicates UNDER-chlorination | Shock to 10× combined chlorine reading; "breakpoint chlorination" |
| Rotten egg / musty smell | Anaerobic bacteria in plumbing (biofilm) | Full purge + drain + refill. Don't try to chlorinate through it. |
| Skin irritation, rash 1-4 days after use | Pseudomonas folliculitis (see dedicated section) | Hibiclens protocol + remediate tub before reuse |
| Itching during/right after soak | High chloramines, low pH, or chemical sensitivity | Verify pH 7.4-7.6, FC 3-5 (not higher), shock if combined Cl present |
| Green or pink-tinted water | Green = algae (rare in covered spa); pink = Methylobacterium biofilm | Shock + scrub + purge cycle |
| Chlorine won't hold (drops to 0 fast) | Chlorine lock from CYA, ammonia from bather waste, or biofilm consuming sanitizer | Test CYA; if >30 partial drain; if biofilm suspected → purge |
| pH keeps drifting up | Normal CO₂ off-gassing. High aeration (waterfall, air jets) accelerates it | Lower TA to 80 ppm; pH will be more stable. Reduce aeration when not in use. |
| Scale on heater / waterline | High calcium + high pH + high temp = CaCO₃ precipitation | Lower pH to 7.2-7.4, drain partial if Ca >400 ppm, descale with citric acid |
| Brand-name | Real chemical | Cheap source | Per-lb cost |
|---|---|---|---|
| "Alkalinity Up", "TA Increaser" | Sodium bicarbonate (NaHCO₃) | Costco baking soda 12 lb | $0.50/lb vs $3-5/lb branded |
| "pH Up" | Sodium carbonate (Na₂CO₃) / soda ash | Arm & Hammer Super Washing Soda | $1/lb vs $4/lb branded |
| "pH Down", "Dry Acid" | Sodium bisulfate (NaHSO₄) | Pool store / hardware store | $2/lb (same product across brands) |
| "Chlorine Shock", "Pool Shock" | Calcium hypochlorite (Cal-hypo) or sodium dichloroisocyanurate (dichlor) | For spa: avoid dichlor; use bleach | — |
| "Liquid Chlorine" | Sodium hypochlorite (NaOCl) 12.5% | Pool store; commercial bleach | $3-5/gal |
| Household bleach | Sodium hypochlorite 6% or 8.25% | Costco / Walmart Clorox | $5-7/gal |
| "Calcium Increaser" | Calcium chloride (CaCl₂) | Damprid refill, ice melt (food-grade) | $1/lb vs $5/lb branded |
| "Stabilizer", "Conditioner" | Cyanuric acid | Avoid in spa — do not buy | — |
| "Non-chlorine shock", "MPS" | Potassium monopersulfate | Pool store, same product all brands | $4-6/lb |