What splash! does
splash! estimates how a small outdoor playpool behaves thermally. It combines your pool size, heater output, tariff, passive cover plan, current water temperature, and forecast weather to estimate heating effort, overnight losses, and running cost.
Forecast entry options
- Manual entry: type the three daily air temperatures, cloud percentages, and any extra heater hours yourself. This is always available.
- Global location auto-fill: when online, you can search country/city/town names, select the best match, and click Use selected place forecast. The page uses Open-Meteo geocoding for coordinates, then requests a 3-day daily forecast plus 48 hourly points (2 days) from
api.open-meteo.com/v1/forecast. - The fetched values are still editable afterwards, so you can adjust them if your local knowledge differs from the public feed.
- A simple 3-day pool temperature forecast chart updates immediately from either manual values or location-filled weather.
Mathematical model deep-dive
- Thermal storage: the water is treated as one well-mixed thermal mass with heat capacity
mass × specific heat. That is usually reasonable for small playpools after circulation or normal mixing. - Heat losses: losses are represented with an overall
UAvalue split across the surface, side walls, and base. Surface loss is the most important term because it bundles convection, evaporation, and long-wave radiation. - Solar gain: monthly solar baselines are converted into daytime heat input. Monthly climate can be loaded from public global daily archive data for your selected location, with fallback baselines if archive data is unavailable.
- Forecast stepping: the 3-day forecast uses stepped simulation over each day rather than a single 24-hour average temperature equation. That reduces a common error where night-time temperatures looked too optimistic because daytime solar had been smeared across the whole day.
- Hourly near-term weather: when location weather is available, the 2-day chart uses hourly air temperature, cloud, and shortwave-radiation data so overnight cooling and daytime gain respond to changing atmospheric conditions.
- Custom heating hours: if you choose a custom number of heating hours per day, the planner treats that as equivalent average daily heater duty unless you explicitly choose off-peak-only mode. This is deliberate because the exact timing is unknown.
Critical appraisal and corrected mis-steps
- Solar timing correction: earlier forecast logic could over-credit solar heat overnight by spreading daily solar energy evenly across 24 hours. v1.3.0 keeps this correction by restricting solar gain to daylight.
- Boost-hour cap: extra heater hours are now capped so the model cannot charge for more than 24 total heater hours in a single day.
- Reference-month metrics: the planner now uses a location-aware reference month (warmest monthly average in the active climate profile) instead of fixed UK July assumptions for key comparative cards and charts.
- Remaining limitations: the planner still uses public monthly climate normals and a simplified single-body water model. Wind spikes, rain, splashing, and stratification can shift real outcomes noticeably.
What’s new in v1.6.4
- Forced HTML refresh: splash now checks a live version manifest and reloads stale HTML shells so browser and PWA users pick up new releases more reliably.
- Fresh HTML caching strategy: the service worker now prefers live network responses for HTML and the version manifest while still falling back to cached pages offline.
What’s new in v1.6.3
- Standard chemistry targets clarified: the chemistry guide now explains that its bands are standard reference targets for a typical residential outdoor chlorine pool, not dip-stick-brand-specific normals.
- Default CYA target tightened: the standard ideal stabiliser band is now shown as 40–60 ppm, while still keeping 30 ppm as the outdoor minimum and 90 ppm as the practical upper limit.
- Hardness guidance broadened: hardness now uses a wider default band with an explicit note that vinyl/liner pools often run lower and plaster/concrete pools often run higher.
What’s new in v1.6.0
- 2-day near-term forecast: near-term forecasting now uses 48 hourly points instead of 36.
- Improved solar validity: near-term simulation now consumes hourly shortwave radiation when the weather feed provides it, reducing reliance on cloud-only solar approximation.
- Removed coarse 7-day schedule chart: the old fixed 7-day reference simulation graph was removed in favour of the weather-driven near-term forecast trend.
What’s new in v1.5.0
- Expert-flow UX order: controls now follow practical maintenance workflow: location first, then dimensions/environment, season/water costs, basic chemistry choice, then deeper thermal/tariff/cover controls.
- Target as a single value: desired range is now auto-calculated around the target temperature for pool vs hot-tub modes.
- Main-page weather action: a new Fetch current forecast button is available from the top page actions.
- Mobile UX improvements: floating options button and a bottom close button in the sidebar for easier one-handed use.
- Chemistry quantity guidance: location-aware rough product quantity table now estimates stabilised chlorine, liquid chlorine alternatives, and refill guidance, with hard/soft water caveats.
- Appendices page: new
/splash/appendices.htmdocuments formulas, assumptions, and source references used in calculations.
What’s new in v1.4.0
- Pool chemistry guide: introduced chemistry targets, FC:CYA logic, dosing estimates, and chemistry schedule exports.
- Global location search and weather auto-fill: search/use locations worldwide with 3-day and hourly weather support.
- Location-aware climate profiling: monthly ambient/solar inputs can be derived from public global archive data with fallback behavior.
- Versioned cache refresh: on app version change, splash forces a local cache refresh while preserving saved configuration values.
Temporary pool season costs
If your pool is set up seasonally (rather than used year-round), you can enter Pool In from and Pool Away by dates in the Pool Season card in the settings panel. This unlocks a season summary section in the results showing:
- Season Duration — the number of days the pool is in use.
- Season Electricity Cost — heating electricity cost for the season, calculated by weighting each calendar month's monthly cost figure by how many days of that month fall within your season.
- Water Fill Cost — pool volume × number of fills × water rate. The default rate of
0.55 p/Lreflects the Anglian Water metered domestic rate. Change it to match your local supplier or your tariff letter. - Total Season Cost — electricity plus water fills combined.
- Cost per Day — total season cost divided by season duration.
Understanding exports
The text summary, JSON, and CSV exports are generated locally in your browser. They include the current settings, calculated outputs, and version/copyright metadata.
The forecast boost figure is expressed as a peak-rate equivalent for the heat added by top-ups and extra heater runtime. Treat it as a planning comparison metric rather than a guaranteed metered bill for hot-water already stored in a cylinder.
Evidence quality and scope
splash! combines first-principles heat-balance equations with published pool-water treatment guidance from WHO, PWTAG, CDC MAHC, ANSI/APSP/ICC standards, and established water-treatment references.
Thermal model formulas
- Pool volume: circular
V = πr²d; rectangularV = xyd. - Water thermal capacity:
C = m × c_p, wherem = ρV. - Heat balance:
dT/dt = (P_heater + P_solar − UA(T−T_air)) / C. - Equilibrium temperature:
T_eq = T_air + (P_heater + P_solar)/UA. - Time constant:
τ = C / UA. - Analytical warm-up:
T(t)=T_eq + (T0−T_eq)e^(−t/τ). - Solar baseline scaling: monthly baseline irradiance scaled using extraterrestrial horizontal irradiance ratio at selected latitude.
Chemistry formulas and dosing derivations
| Quantity | Formula / Derivation | Notes |
|---|---|---|
| FC dosing from available chlorine | g product per 1000 L per 1 ppm FC = 1 / available_cl_fraction | Dichlor 56% → 1.79 g; Trichlor 90% → 1.11 g. |
| CYA side-load from stabilised chlorine | ppm CYA per ppm FC = (MW cyanurate ring / MW product) / available_cl_fraction_adjustment | Dichlor ≈ 1.05; Trichlor ≈ 0.62. |
| TA raise (NaHCO₃) | Theoretical 84/50 = 1.68 g/1000L/ppm; practical guide 1.8 | Industry guide value used. |
| CH raise (CaCl₂ ~77%) | Practical guide 1.5 g/1000L/ppm | Depends on product purity. |
| CYA raise | 1 ppm = 1 mg/L ⇒ 1 g per 1000 L per ppm | Direct mass-balance. |
| FC minimum with CYA | FC_min = max(1.0, 0.075 × CYA) | CDC MAHC FC:CYA ratio rule. |
| Combined chlorine | CC = TC − FC; breakpoint shock rough guide 10 × CC | Operational rule-of-thumb, then retest. |
Environmental assumptions used in quantity guides
- Temperature-driven FC depletion bands are used to estimate routine chlorine demand by season/location.
- Location-aware monthly climate profile (archive when available; fallback baseline otherwise) is used for monthly scheduling context.
- Hard/soft water scenario ranges are intentionally broad and marked as rough guides because local supply chemistry can vary significantly, even within the same region.
- Product quantity tables are planning aids only and should always be corrected using measured TA/pH/CH/CYA/FC/TC readings.
Primary references (official and validated)
- WHO (2006). Guidelines for Safe Recreational Water Environments, Vol 2: Swimming Pools and Similar Environments. ISBN 9789241546768.
- PWTAG (2017). Swimming Pool Water: Treatment and Quality Standards for Pools and Spas.
- CDC (2023). Model Aquatic Health Code (MAHC), 5th Edition. cdc.gov/mahc.
- ANSI/APSP/ICC 11-2019. Water Quality in Public Pools and Spas.
- DOE Energy Saver guidance for pool heating and covers (energy.gov/energysaver).
- White, G.C. (1999). Handbook of Chlorination and Alternative Disinfectants, 4th ed., Wiley.
- Wojtowicz, J.C. (2001). Effect of temperature on chemical equilibria in swimming pools. Journal of the Swimming Pool and Spa Industry.
- Taylor Technologies. Pool & Spa Water Chemistry professional reference materials.
- Open-Meteo API documentation and datasets for geocoding, forecast, and archive climate inputs.