Required for calculating internal wall area (resurfacing/tiling).
Water Surface Area (2D):–
Perimeter:–
Total Internal Area (Walls + Floor):–
*Internal area is an approximation based on avg depth.
Understanding Swimming Pool Surface Area Calculation
Calculating the surface area of your swimming pool is a critical step for maintenance, renovations, and equipment purchasing. Whether you are looking to purchase a solar cover, calculate the amount of chemicals needed, or estimate the cost of resurfacing your pool interior, knowing the exact square footage is essential.
Why Surface Area Matters
There are generally two "surface areas" pool owners care about:
Water Surface Area (2D): This is the flat area of the water at the top. You need this number for buying pool covers, solar blankets, and determining evaporation rates.
Internal Surface Area (3D): This includes the floor and the walls of the pool. You need this number if you are planning to replaster, paint, or retile the pool.
Pro Tip for Resurfacing: When calculating internal area for plaster or pebble finishes, estimating is done by adding the floor area to the wall area. A common rule of thumb formula used by contractors is: Internal Area = Water Surface Area + (Perimeter × Average Depth).
Formulas Used in This Calculator
Depending on the shape of your pool, different geometric formulas are required to get an accurate measurement.
1. Rectangular Pools
The most straightforward shape. The area is simply length multiplied by width.
Area: Length × Width
Perimeter: 2 × (Length + Width)
2. Circular Pools
For round pools, spas, or jacuzzis, we use the radius (half of the diameter).
Area: π × Radius² (or 3.14159 × r × r)
Perimeter: 2 × π × Radius
3. Oval / Elliptical Pools
Oval pools are treated mathematically as ellipses.
To calculate the internal surface area (the "shell" of the pool), you need the average depth. If your pool slopes gradually from a shallow end to a deep end, calculate it as follows:
Average Depth = (Shallow End Depth + Deep End Depth) / 2
For example, if your pool is 3 feet at the shallow end and 8 feet at the deep end, your average depth is (3 + 8) / 2 = 5.5 feet.
function toggleInputs() {
var shape = document.getElementById('poolShape').value;
var sections = document.getElementsByClassName('input-section');
// Hide all sections first
for (var i = 0; i < sections.length; i++) {
sections[i].classList.remove('active');
}
// Show specific section
if (shape === 'rectangular') {
document.getElementById('rectInputs').classList.add('active');
} else if (shape === 'circular') {
document.getElementById('circleInputs').classList.add('active');
} else if (shape === 'oval') {
document.getElementById('ovalInputs').classList.add('active');
} else if (shape === 'oblong') {
document.getElementById('oblongInputs').classList.add('active');
}
// Hide results when changing shape
document.getElementById('resultsArea').style.display = 'none';
}
function calculatePool() {
var shape = document.getElementById('poolShape').value;
var avgDepth = parseFloat(document.getElementById('avgDepth').value);
var waterArea = 0;
var perimeter = 0;
var internalArea = 0;
var isValid = true;
if (shape === 'rectangular') {
var l = parseFloat(document.getElementById('rectLength').value);
var w = parseFloat(document.getElementById('rectWidth').value);
if (isNaN(l) || isNaN(w) || l <= 0 || w <= 0) isValid = false;
else {
waterArea = l * w;
perimeter = 2 * (l + w);
}
}
else if (shape === 'circular') {
var d = parseFloat(document.getElementById('circDiameter').value);
if (isNaN(d) || d <= 0) isValid = false;
else {
var r = d / 2;
waterArea = Math.PI * r * r;
perimeter = 2 * Math.PI * r;
}
}
else if (shape === 'oval') {
var l = parseFloat(document.getElementById('ovalLength').value);
var w = parseFloat(document.getElementById('ovalWidth').value);
if (isNaN(l) || isNaN(w) || l <= 0 || w <= 0) isValid = false;
else {
// Ellipse area: PI * a * b
waterArea = Math.PI * (l / 2) * (w / 2);
// Ramanujan approximation for ellipse perimeter
var a = l / 2;
var b = w / 2;
perimeter = Math.PI * (3 * (a + b) – Math.sqrt((3 * a + b) * (a + 3 * b)));
}
}
else if (shape === 'oblong') {
// Oblong = Rectangle + 2 Semicircles (which make 1 full circle)
// The "Length" usually includes the rounded ends.
// So straight part length = Total Length – Width (since radius is Width/2 on both sides)
var totalL = parseFloat(document.getElementById('oblongLength').value);
var w = parseFloat(document.getElementById('oblongWidth').value);
if (isNaN(totalL) || isNaN(w) || totalL <= 0 || w <= 0 || totalL 0) {
internalArea = waterArea + (perimeter * avgDepth);
} else {
internalArea = 0; // Indicates not calculated
}
// Display Results
var resultDiv = document.getElementById('resultsArea');
resultDiv.style.display = 'block';
document.getElementById('resSurfaceArea').innerHTML = waterArea.toFixed(2) + " sq. ft.";
document.getElementById('resPerimeter').innerHTML = perimeter.toFixed(2) + " ft.";
if (internalArea > 0) {
document.getElementById('resInternalArea').innerHTML = internalArea.toFixed(2) + " sq. ft.";
} else {
document.getElementById('resInternalArea').innerHTML = "Enter Depth to Calc";
}
}