Hardwood Floor Refinishing Coverage Calculator

ANALife Services AuthorityNational Calculator Authority›Hardwood Floor Refinishing Coverage Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Hardwood Floor Refinishing Coverage Calculator

Estimate the amount of stain, polyurethane finish, and sandpaper needed to refinish your hardwood floors based on room dimensions and product coverage rates.

Room Length (ft)

Room Width (ft)

Waste Factor (%)

Stain Coverage (sq ft / quart)

Polyurethane Finish Coverage (sq ft / quart)

Number of Finish Coats

Sandpaper Sheet Coverage (sq ft / sheet)

Sanding Passes

Calculate

function harCalc() { var length = parseFloat(document.getElementById('har-length').value); var width = parseFloat(document.getElementById('har-width').value); var waste = parseFloat(document.getElementById('har-waste').value); var stainCov = parseFloat(document.getElementById('har-stain-cov').value); var finishCov = parseFloat(document.getElementById('har-finish-cov').value); var finCoats = parseFloat(document.getElementById('har-finish-coats').value); var sandCov = parseFloat(document.getElementById('har-sand-cov').value); var sandPasses = parseFloat(document.getElementById('har-sand-passes').value);

var resultDiv = document.getElementById('har-result');

// --- Validation --- if (isNaN(length) || length Please enter a valid Room Length (must be > 0).'; return; } if (isNaN(width) || width Please enter a valid Room Width (must be > 0).'; return; } if (isNaN(waste) || waste 50) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Waste Factor must be between 0% and 50%.'; return; } if (isNaN(stainCov) || stainCov Stain Coverage must be > 0.'; return; } if (isNaN(finishCov) || finishCov Finish Coverage must be > 0.'; return; } if (isNaN(finCoats) || finCoats 6) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Number of Finish Coats must be between 1 and 6.'; return; } if (isNaN(sandCov) || sandCov Sandpaper Sheet Coverage must be > 0.'; return; } if (isNaN(sandPasses) || sandPasses 6) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Sanding Passes must be between 1 and 6.'; return; }

// --- Core Calculations ---

// Base area (sq ft) var baseArea = length * width;

// Effective area with waste factor // effectiveArea = baseArea * (1 + waste/100) var effectiveArea = baseArea * (1 + waste / 100);

// Stain // quartsStain = effectiveArea / stainCov (one coat of stain) var quartsStainRaw = effectiveArea / stainCov; var quartsStain = Math.ceil(quartsStainRaw * 4) / 4; // round up to nearest 0.25 qt var gallonsStain = quartsStain / 4;

// Polyurethane Finish // quartsFinish = (effectiveArea * finCoats) / finishCov var quartsFinishRaw = (effectiveArea * finCoats) / finishCov; var quartsFinish = Math.ceil(quartsFinishRaw * 4) / 4; var gallonsFinish = quartsFinish / 4;

// Sandpaper // sheetsNeeded = ceil((effectiveArea * sandPasses) / sandCov) var sheetsNeeded = Math.ceil((effectiveArea * sandPasses) / sandCov);

// Helper: format gallons/quarts nicely function formatVolume(quarts) { var gal = Math.floor(quarts / 4); var qt = quarts % 4; if (gal > 0 && qt > 0) { return gal + ' gal + ' + qt.toFixed(2) + ' qt'; } else if (gal > 0) { return gal + ' gallon' + (gal !== 1 ? 's' : ''); } else { return quarts.toFixed(2) + ' quart' + (quarts !== 1 ? 's' : ''); } }

// --- Output --- var html = '### Results '; html += ''; html += 'ItemAmount'; html += 'Base Floor Area' + baseArea.toFixed(1) + ' sq ft'; html += 'Effective Area (with ' + waste + '% waste)' + effectiveArea.toFixed(1) + ' sq ft'; html += 'Stain Needed (1 coat)' + quartsStain.toFixed(2) + ' qt  (' + formatVolume(quartsStain) + ')'; html += 'Polyurethane Finish Needed (' + finCoats + ' coat' + (finCoats > 1 ? 's' : '') + ')' + quartsFinish.toFixed(2) + ' qt  (' + formatVolume(quartsFinish) + ')'; html += 'Sandpaper Sheets Needed (' + sandPasses + ' pass' + (sandPasses > 1 ? 'es' : '') + ')' + sheetsNeeded + ' sheets'; html += '';

// Purchase recommendations (round up to whole quarts / gallons) var buyStainGal = Math.ceil(gallonsStain); var buyFinishGal = Math.ceil(gallonsFinish); html += 'Purchase Recommendation: Buy at least ' + buyStainGal + ' gallon' + (buyStainGal !== 1 ? 's' : '') + ' of stain and ' + buyFinishGal + ' gallon' + (buyFinishGal !== 1 ? 's' : '') + ' of polyurethane finish.

';

resultDiv.style.display = 'block'; resultDiv.innerHTML = html; }

#### Formulas Used

Base Area (sq ft) = Length (ft) × Width (ft)

Effective Area (sq ft) = Base Area × (1 + Waste Factor / 100)

Stain Needed (quarts) = Effective Area ÷ Stain Coverage (sq ft/qt)  — rounded up to nearest ¼ quart

Finish Needed (quarts) = (Effective Area × Number of Coats) ÷ Finish Coverage (sq ft/qt)  — rounded up to nearest ¼ quart

Sandpaper Sheets = ⌈ (Effective Area × Sanding Passes) ÷ Sheet Coverage (sq ft/sheet) ⌉

#### Assumptions & References

More Calculators

Read Next

Ni Class 2 Vs Class 4 Contributions Comparator ANA › Life Services Authority › National Calculator Authority › NI Class 2 vs Class 4 Contributions Comparator .calc-container...

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References