Estimate daily water loss and refill costs based on environmental conditions.
Estimated Evaporation Results
Evaporation Rate (Gallons/Hour):–
Daily Water Loss (Gallons):–
Weekly Water Loss (Gallons):–
Water Level Drop (Inches/Week):–
Estimated Monthly Refill Cost:–
Understanding Pool Evaporation
Swimming pool evaporation is the primary cause of water loss in residential and commercial pools. While splashing and backwashing contribute to water usage, the silent process of evaporation works 24/7, converting your pool water into vapor. This calculator helps pool owners estimate exactly how much water they are losing based on physics, rather than guesswork.
The Physics of the Calculation
This tool utilizes a variation of the Carrier Equation, adapted for open water surfaces (ASHRAE methodology). The rate at which your pool loses water is determined by four main factors:
Vapor Pressure Differential: This is the "pull" force. It is the difference between the pressure of saturated vapor at the water's surface (determined by water temperature) and the partial pressure of vapor in the air (determined by air temperature and humidity). The larger this difference, the faster the water evaporates.
Water Temperature: Warmer water has molecules with higher kinetic energy, making it easier for them to escape into the air. Heating your pool significantly increases evaporation.
Wind Speed: Wind sweeps away the layer of humid air sitting directly above the water surface, replacing it with drier air. This maintains a high evaporation rate. Even a light breeze of 5 mph can double evaporation compared to still air.
Humidity: High humidity means the air is already saturated with water vapor, leaving less "room" for new evaporation. Conversely, dry air acts like a sponge, absorbing pool water rapidly.
Interpreting Your Results
Daily Water Loss (Gallons): This metric shows the sheer volume of water disappearing every 24 hours. For a typical 15×30 foot pool, losing 20-50 gallons a day is common in summer.
Water Level Drop (Inches): This is the visual indicator you see on your skimmer or tile line. A drop of 1/4 inch per day is considered normal during peak summer heat. If you are losing significantly more than calculated here, you may have a leak in your plumbing or liner.
How to Reduce Evaporation
Use a Solar Cover: The single most effective way to stop evaporation is to cover the water surface. A basic solar blanket can reduce evaporation by up to 95%.
Windbreaks: Planting shrubs or installing fences to block wind flow across the pool surface can reduce the evaporation rate considerably.
Lower Water Temperature: If the pool is not in use, reducing the heater setting (if applicable) lowers the vapor pressure of the water, slowing down the loss.
The "Bucket Test" Verification
If the calculator results seem much lower than your actual water loss, you should perform a bucket test to rule out leaks:
Fill a bucket with pool water and place it on the pool steps (so water temps are similar).
Mark the water level on the inside of the bucket and the outside (pool level).
Wait 24 hours.
If the pool water level (outside mark) dropped more than the bucket water level (inside mark), you likely have a leak, as evaporation would affect both equally.
function calculateEvaporation() {
// 1. Retrieve Input Values
var area = parseFloat(document.getElementById('poolSurfaceArea').value);
var tempWaterF = parseFloat(document.getElementById('waterTemp').value);
var tempAirF = parseFloat(document.getElementById('airTemp').value);
var humidity = parseFloat(document.getElementById('relativeHumidity').value);
var windMph = parseFloat(document.getElementById('windSpeed').value);
var costPer1k = parseFloat(document.getElementById('waterCost').value);
// 2. Validation
if (isNaN(area) || area <= 0) {
alert("Please enter a valid pool surface area.");
return;
}
if (isNaN(tempWaterF) || isNaN(tempAirF) || isNaN(humidity) || isNaN(windMph)) {
alert("Please ensure all temperature and weather fields are filled correctly.");
return;
}
// 3. Physics Calculations (ASHRAE / Carrier Method Adaptation)
// Convert Temps to Celsius for Vapor Pressure Calc
var tempWaterC = (tempWaterF – 32) * 5 / 9;
var tempAirC = (tempAirF – 32) * 5 / 9;
// Calculate Saturation Vapor Pressure (inHg) using Magnus Formula variation
// P (kPa) = 0.6112 * exp((17.67 * T) / (T + 243.5))
// 1 kPa = 0.2953 inHg
var vpWaterKpa = 0.6112 * Math.exp((17.67 * tempWaterC) / (tempWaterC + 243.5));
var vpWaterInHg = vpWaterKpa * 0.2953;
var vpAirSatKpa = 0.6112 * Math.exp((17.67 * tempAirC) / (tempAirC + 243.5));
var vpAirActualKpa = vpAirSatKpa * (humidity / 100);
var vpAirInHg = vpAirActualKpa * 0.2953;
// Pressure differential (inHg)
var deltaP = vpWaterInHg – vpAirInHg;
// If air is warmer and humid enough, condensation can occur, but for pool loss we floor at 0
if (deltaP < 0) deltaP = 0;
// Evaporation Rate Formula (lb / hr / sq ft)
// Using a standard engineering approximation for pools: Rate = (0.09 + 0.1 * Wind_mph) * (Pw – Pa)
// This is based on Stiffwell & Watt / Carrier
var evapRateLbSqFtHr = (0.09 + (0.1 * windMph)) * deltaP;
// 4. Convert to Volume
// Total lbs per hour
var totalLbsPerHour = evapRateLbSqFtHr * area;
// Convert lbs to gallons (1 gallon water = 8.34 lbs)
var gallonsPerHour = totalLbsPerHour / 8.34;
var gallonsPerDay = gallonsPerHour * 24;
var gallonsPerWeek = gallonsPerDay * 7;
var gallonsPerMonth = gallonsPerDay * 30;
// Calculate Inch Drop
// 1 cubic foot = 7.48 gallons
// Total Cubic Feet loss per week
var cubicFeetLossWeek = gallonsPerWeek / 7.48;
// Drop in feet = Total Cubic Feet / Area
var dropFeetWeek = cubicFeetLossWeek / area;
// Drop in inches
var dropInchesWeek = dropFeetWeek * 12;
// Calculate Cost
// Cost = (Total Gallons / 1000) * Cost per 1k
var monthlyCost = (gallonsPerMonth / 1000) * costPer1k;
// 5. Update DOM
document.getElementById('res_gal_hour').innerText = gallonsPerHour.toFixed(2);
document.getElementById('res_gal_day').innerText = Math.round(gallonsPerDay).toLocaleString();
document.getElementById('res_gal_week').innerText = Math.round(gallonsPerWeek).toLocaleString();
document.getElementById('res_inch_week').innerText = dropInchesWeek.toFixed(2) + '"';
document.getElementById('res_cost_month').innerText = '$' + monthlyCost.toFixed(2);
// Show results container
document.getElementById('results').style.display = 'block';
}