Window Glass Replacement Cost Estimator

ANALife Services AuthorityNational Calculator Authority›Window Glass Replacement Cost Estimator

.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; } }

Window Glass Replacement Cost Estimator

Estimate the total cost to replace window glass based on dimensions, glass type, thickness, and labor rates.

Window Width (inches)

Window Height (inches)

Number of Panes

Glass Type

Single Pane (standard annealed) Double Pane (insulated IGU) Triple Pane (high-efficiency IGU) Tempered / Safety Glass Laminated / Impact Glass Low-E Coated Glass

Glass Thickness

3/32" (2.4 mm) – thin single pane 1/8" (3 mm) – standard single pane 3/16" (5 mm) – standard double pane 1/4" (6 mm) – heavy / tempered 3/8" (10 mm) – thick laminated

Labor Rate ($/hour)

Estimated Labor Hours per Pane

Include Disposal / Haul-Away Fee?

No Yes (+$25 per pane)

Contractor Markup (%)

Calculate

function winCalc() { // --- Read inputs --- var width = parseFloat(document.getElementById('win-width').value); var height = parseFloat(document.getElementById('win-height').value); var quantity = parseInt(document.getElementById('win-quantity').value); var glassType = document.getElementById('win-glass-type').value; var thickness = parseInt(document.getElementById('win-thickness').value); var laborRate = parseFloat(document.getElementById('win-labor-rate').value); var laborHours = parseFloat(document.getElementById('win-labor-hours').value); var disposal = parseInt(document.getElementById('win-disposal').value); var markup = parseFloat(document.getElementById('win-markup').value);

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

// --- Validation --- var errors = []; if (isNaN(width) || width 240) errors.push("Window width must be between 1 and 240 inches."); if (isNaN(height) || height 240) errors.push("Window height must be between 1 and 240 inches."); if (isNaN(quantity) || quantity 50) errors.push("Number of panes must be between 1 and 50."); if (isNaN(laborRate) || laborRate 300) errors.push("Labor rate must be between $20 and $300/hr."); if (isNaN(laborHours) || laborHours 8) errors.push("Labor hours must be between 0.5 and 8 per pane."); if (isNaN(markup) || markup 100) errors.push("Markup must be between 0% and 100%.");

if (errors.length > 0) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Please fix the following:' + errors.map(function(e){ return ''; }).join('') + ''; return; }

// --- Glass material cost per sq ft (USD) --- // Base rates sourced from industry averages (HomeAdvisor, Fixr, 2023-2024) var glassCostPerSqFt = { single: { 3: 3.50, 4: 4.00, 6: 5.00, 8: 6.50, 10: 8.00 }, double: { 3: 7.00, 4: 8.00, 6: 10.00, 8: 12.00, 10: 15.00 }, triple: { 3: 12.00, 4: 14.00, 6: 16.00, 8: 18.00, 10: 22.00 }, tempered: { 3: 10.00, 4: 12.00, 6: 15.00, 8: 18.00, 10: 22.00 }, laminated: { 3: 14.00, 4: 16.00, 6: 20.00, 8: 24.00, 10: 30.00 }, lowE: { 3: 9.00, 4: 11.00, 6: 14.00, 8: 17.00, 10: 21.00 } };

var pricePerSqFt = glassCostPerSqFt[glassType][thickness];

// --- Area calculation --- // Convert inches to square feet: (W × H) / 144 var areaSqFt = (width * height) / 144;

// --- Minimum charge: most glaziers charge for at least 2 sq ft --- var billableSqFt = Math.max(areaSqFt, 2.0);

// --- Per-pane costs --- var materialCostPerPane = billableSqFt * pricePerSqFt; var laborCostPerPane = laborRate * laborHours; var disposalCostPerPane = disposal === 1 ? 25.00 : 0.00;

var subtotalPerPane = materialCostPerPane + laborCostPerPane + disposalCostPerPane;

// --- Total before markup --- var subtotalAll = subtotalPerPane * quantity;

// --- Contractor markup --- var markupAmount = subtotalAll * (markup / 100);

// --- Grand total --- var grandTotal = subtotalAll + markupAmount;

// --- Cost range (±15% for regional variation) --- var rangeLow = grandTotal * 0.85; var rangeHigh = grandTotal * 1.15;

// --- Glass type label --- var glassLabels = { single: "Single Pane (annealed)", double: "Double Pane (IGU)", triple: "Triple Pane (IGU)", tempered: "Tempered / Safety", laminated: "Laminated / Impact", lowE: "Low-E Coated" };

// --- Format currency --- function fmt(n) { return '$' + n.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ','); }

// --- Output --- resultDiv.style.display = 'block'; resultDiv.innerHTML = '### Estimated Window Glass Replacement Cost ' + '' + 'Glass Dimensions' + width + '" × ' + height + '" (' + areaSqFt.toFixed(2) + ' sq ft)' + 'Billable Area (min 2 sq ft)' + billableSqFt.toFixed(2) + ' sq ft' + 'Glass Type' + glassLabels[glassType] + '' + 'Material Cost / Pane' + fmt(materialCostPerPane) + ' (' + fmt(pricePerSqFt) + '/sq ft × ' + billableSqFt.toFixed(2) + ' sq ft)' + 'Labor Cost / Pane' + fmt(laborCostPerPane) + ' (' + laborHours + ' hrs × ' + fmt(laborRate) + '/hr)' + 'Disposal Fee / Pane' + fmt(disposalCostPerPane) + '' + 'Subtotal / Pane' + fmt(subtotalPerPane) + '' + 'Number of Panes' + quantity + '' + 'Subtotal (all panes)' + fmt(subtotalAll) + '' + 'Contractor Markup (' + markup + '%)' + fmt(markupAmount) + '' + 'Estimated Total' + fmt(grandTotal) + '' + 'Typical Cost Range (±15%)' + fmt(rangeLow) + ' – ' + fmt(rangeHigh) + '' + ''; }

#### Formula

Area (sq ft) = (Width × Height) ÷ 144 Billable Area = max(Area, 2.0 sq ft)  [minimum charge] Material Cost / Pane = Billable Area × Glass Price ($/sq ft) Labor Cost / Pane = Labor Rate ($/hr) × Labor Hours Disposal Cost / Pane = $25 (if selected) Subtotal / Pane = Material + Labor + Disposal Subtotal (all panes) = Subtotal / Pane × Number of Panes Markup Amount = Subtotal × (Markup % ÷ 100) Grand Total = Subtotal + Markup Amount Cost Range = Grand Total × 0.85 to Grand Total × 1.15

#### Assumptions & References

More Calculators

Read Next

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

References