Roofing Shingle Material Calculator
ANA›Life Services Authority›National Calculator Authority›Roofing Shingle Material 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; } }
Roofing Shingle Material Calculator
Calculate the number of shingle squares, bundles, nails, and ridge cap bundles needed for your roofing project based on roof dimensions and pitch.
Roof Length (ft)
Roof Width / Rafter Run (ft) (horizontal distance from eave to ridge)
Roof Pitch (rise per 12 in run, e.g. 6 for 6:12)
Number of Roof Sides / Planes
2 (Gable roof) 4 (Hip roof) 1 (Shed / lean-to)
Waste Factor (%)
Ridge Length (ft) (total length of all ridges and hips)
Calculate
function rooCalc() { var length = parseFloat(document.getElementById('roo-length').value); var width = parseFloat(document.getElementById('roo-width').value); var pitch = parseFloat(document.getElementById('roo-pitch').value); var sides = parseInt(document.getElementById('roo-sides').value); var waste = parseFloat(document.getElementById('roo-waste').value); var ridge = parseFloat(document.getElementById('roo-ridge').value);
var resultDiv = document.getElementById('roo-result'); resultDiv.style.display = 'block';
// --- Validation --- if (isNaN(length) || length ⚠ Please enter a valid Roof Length greater than 0.'; return; } if (isNaN(width) || width ⚠ Please enter a valid Roof Width greater than 0.'; return; } if (isNaN(pitch) || pitch 24) { resultDiv.innerHTML = '⚠ Please enter a valid Pitch between 0 and 24.'; return; } if (isNaN(waste) || waste 50) { resultDiv.innerHTML = '⚠ Please enter a Waste Factor between 0% and 50%.'; return; } if (isNaN(ridge) || ridge ⚠ Please enter a valid Ridge Length (0 or more).'; return; }
// --- Pitch Multiplier --- // Slope factor = sqrt(rise² + 12²) / 12 var slopeFactor = Math.sqrt(pitch * pitch + 144) / 12;
// --- Actual Rafter Length (sloped width) --- var raftLength = width * slopeFactor;
// --- Gross Roof Area (both sides) --- // Area of one plane = length × sloped width var areaOnePlane = length * raftLength; var grossArea = areaOnePlane * sides; // sq ft
// --- Waste-adjusted Area --- var adjustedArea = grossArea * (1 + waste / 100);
// --- Squares (1 square = 100 sq ft) --- var squares = adjustedArea / 100;
// --- Bundles (standard 3-tab shingles: 3 bundles per square) --- var bundlesPerSquare = 3; var bundles = Math.ceil(squares * bundlesPerSquare);
// --- Nails --- // Standard: 4 nails per shingle, ~80 shingles per square // => 320 nails per square; sold in 1-lb boxes (~300 nails/lb for 1.75" roofing nails) var nailsPerSquare = 320; var totalNails = Math.ceil(squares * nailsPerSquare); var nailBoxes = Math.ceil(totalNails / 300); // 1-lb boxes
// --- Ridge Cap Bundles --- // Ridge cap shingles: each bundle covers ~35 linear ft of ridge/hip var ridgeBundles = (ridge > 0) ? Math.ceil(ridge / 35) : 0;
// --- Underlayment Rolls --- // 15-lb felt: 1 roll covers 4 squares (400 sq ft) var underlaymentRolls = Math.ceil(squares / 4);
// --- Display --- resultDiv.innerHTML = '### Results ' + '' + 'Slope Factor' + '' + slopeFactor.toFixed(4) + ' (for ' + pitch + ':12 pitch)' + 'Gross Roof Area' + '' + grossArea.toFixed(1) + ' sq ft' + 'Adjusted Area (incl. ' + waste + '% waste)' + '' + adjustedArea.toFixed(1) + ' sq ft' + 'Squares Needed' + '' + squares.toFixed(2) + ' squares' + 'Shingle Bundles' + '' + bundles + ' bundles (3 bundles/square)' + 'Roofing Nails' + '' + totalNails.toLocaleString() + ' nails ≈ ' + nailBoxes + ' lb box(es)' + (ridge > 0 ? 'Ridge Cap Bundles' + '' + ridgeBundles + ' bundle(s) (covers ' + ridge + ' ft of ridge/hip)' : '') + ' 0 ? '' : ' style="background:#f0f4f8;"') + '>Underlayment (15-lb felt)' + '' + underlaymentRolls + ' roll(s) (1 roll = 4 squares)' + ''; }
#### Formulas Used
1. Slope Factor Slope Factor = √(pitch² + 12²) / 12 Converts horizontal (plan) area to actual sloped surface area.
2. Gross Roof Area Area = Length × (Width × Slope Factor) × Number of Sides
3. Adjusted Area Adjusted Area = Gross Area × (1 + Waste% / 100)
4. Squares Squares = Adjusted Area / 100 (1 square = 100 sq ft)
5. Bundles Bundles = ⌈Squares × 3⌉ (standard 3-tab: 3 bundles/square)
6. Nails Nails = ⌈Squares × 320⌉ (4 nails × ~80 shingles/square) Nail Boxes = ⌈Nails / 300⌉ (~300 nails per 1-lb box of 1¾" roofing nails)
7. Ridge Cap Bundles Ridge Bundles = ⌈Ridge Length / 35⌉ (1 bundle covers ~35 linear ft)
8. Underlayment Rolls = ⌈Squares / 4⌉ (1 roll of 15-lb felt covers ~400 sq ft)
#### Assumptions & References
More Calculators
- Payback Period Calculator for Automation Investment
- Labor Cost Savings from Automation Calculator
- Process Automation Efficiency Calculator
- Automation ROI Calculator
- Vehicle Emissions Estimator
- Carpet Area Measurement Calculator
- Air Filter Replacement Interval Calculator
- Heat Pump vs AC Cost Comparison Calculator
- Austin Climate Load Calculator
- SEER to EER Conversion Calculator
- California Title 24 Compliance Calculator