Calculating CDC Fecal and Vomit Incident Response for Pools
Contamination Response is a single-file, offline calculator that walks an operator through the CDC fecal/vomit incident protocol [1]: the hyperchlorination dose for the affected body of water, the CT-derived hold time, and a reopening countdown that survives a page reload. It is not a substitute for the CDC recommendations or the county health code — it is the arithmetic done correctly under stress [2].
The problem
A fecal incident closes a pool immediately, and everything that happens next is math performed by someone who would rather be doing anything else: how much chlorine raises this specific body of water to the target concentration, how long the hold lasts, and what clock time the pool can reopen. The diarrheal case adds a trap — cyanuric acid slows Cryptosporidium inactivation several-fold, so the standard 12.75-hour timetable is only valid at CYA ≈ 0, a condition that is easy to forget while the deck is being cleared. The tool hard-codes the protocol so the operator supplies readings, not recall.
How it works
Pick the incident type (formed stool / vomit, or diarrheal), the body of water, and enter the current FC, pH, and CYA readings plus the unstabilized chlorine on hand. The tool renders a numbered protocol — clear the water and close shared-filtration pools, remove the material (with a do not vacuum warning for diarrheal incidents), raise FC to target with a computed dose, re-balance pH to 7.2–7.5, hold — followed by a countdown timer. The timer starts only when the operator confirms FC is verified at target, and it persists through a reload or a dead tablet battery via localStorage. Copy incident log formats the whole event — readings at observation, dose, hold, reopen time — as a text block for DigiQuatics.
The math
Targets and hold times
The two incident classes implement the CDC response values [1]:
- Formed stool / vomit (lower risk, Giardia): raise FC to 2 ppm, pH 7.2–7.5, hold 30 minutes (CT 45).
- Diarrheal (higher risk, Cryptosporidium): raise FC to 20 ppm, pH 7.2–7.5, hold 12.75 hours (CT 15,300).
The hold is computed as:
hold_minutes = max(minHold, CT / targetFC)
For diarrheal, 15,300 ÷ 20 = 765 minutes = 12.75 h exactly. For formed stool, CT 45 ÷ 2 = 22.5 minutes, floored to the CDC field-guidance 30-minute minimum — the minHold term exists precisely so the CT arithmetic can't undercut published guidance.
Dose
The hyperchlorination dose reuses the same per-10,000-gallon constants as the Pump Room calculator [3], restricted to unstabilized chlorines (liquid 12.5%, cal-hypo 65/73%) — stabilized products would add CYA at the worst possible moment. Verified worked example: raising the Competition Pool (315,643 gal) from 3 to 20 ppm requires 44.9 gal of liquid chlorine 12.5%, or 68.8 lb of cal-hypo 65%.
The CYA interlock
For diarrheal incidents only, the CYA field is an interlock, not a note:
- A blank CYA reading blocks the timer from starting — the operator must measure it.
- CYA ≥ 1 ppm declares the 12.75-hour timetable INVALID, directs partial drain / dilution first, and the timer refuses to start on the standard clock.
Formed-stool incidents ignore CYA, matching the CDC guidance where stabilizer sensitivity applies to Crypto hyperchlorination.
Editing the config
Three tables at the top of the <script> block hold everything: POOLS (the four bodies and volumes, shared with Pump Room), INCIDENTS (target FC, CT, and minHold per incident class), and CHLOR (the unstabilized products and strengths). Some counties specify a 25-minute formed-stool hold rather than 30 — that is a one-line edit to minHold in the INCIDENTS table.
Limitations
- It deliberately does not implement the CDC extended stabilized-pool hold table. With CYA present in a diarrheal incident the tool's answer is lower the CYA first, not a longer clock — the extended holds run into multi-day territory where draining is almost always the right call anyway.
- Temperature must be ≥ 77 °F for the published CT values; the tool states this but does not model cold-water extensions.
- The countdown is informational. Reopening still requires verifying FC and pH at the end of the hold, and backwashing to waste after a diarrheal incident.
- County health codes override everything here. Verify the targets and holds against the facility's permit before relying on the tool.
References
- CDC — Fecal Incident Response Recommendations for Aquatic Staff
- Contamination Response Calculator
- Pump Room Chemistry Calculator — source of the shared dosing constants and pool volumes.