# Roofing and shingle calculator

> Roof area, squares and shingle bundles from building size and pitch, with underlayment rolls, ridge cap and the IRC minimum slope check.

Interactive version: https://www.calcopenly.com/construction/roofing-calculator
Subject: Construction and home calculators

Roof area is the footprint including overhangs multiplied by the slope factor √(1 + (rise ÷ 12)²), which turns plan area into sloped surface. A hip roof with the same pitch on all four sides has the same factor as a gable. Area plus waste is divided into squares of 100 ft² and multiplied by bundles per square; the ridge and hip length divided by the coverage of one ridge-cap bundle gives the ridge bundles.

The default 40 × 30 ft gable with 1 ft overhangs at a 6/12 pitch has a slope factor of 1.118 and 1,502.64 ft² of roof. With 10% waste that is 16.53 squares, or 50 bundles at three per square, plus 4 rolls of #15 felt and 2 bundles of ridge cap.

The pitch is checked against the asphalt-shingle slope rules in 2021 IRC R905.2.2. Valleys, dormers, starter strip and drip edge are not counted.

## Inputs

- **Roof type** (options: Gable, Hip)
- **Building length**
- **Building width**
- **Overhang on each side**
- **Pitch given as** (options: Rise per 12, Degrees)
- **Pitch**
- **Pitch angle**
- **Waste allowance**
- **Bundles per square**: Three bundles cover one square (100 ft²) for most 3-tab and architectural shingles.
- **Underlayment** (options: #15 felt (4 squares per roll), #30 felt (2 squares per roll), Synthetic (10 squares per roll))
- **Ridge cap per bundle**: Read it on the wrapper: GAF Seal-A-Ridge covers about 25 ft, Owens Corning ProEdge about 33 ft.

## Results

- Shingle bundles to buy (bundles) — main result
- Roof area (ft²)
- Roof area (m²)
- Squares with waste (squares)
- Underlayment rolls (rolls)
- Ridge and hip length (ft)
- Ridge and hip length (m)
- Ridge cap bundles (bundles)
- Pitch angle (°)
- Pitch (in 12)
- Slope factor

## Formula

$$
A = (L + 2o)(W + 2o)\sqrt{1 + (p/12)^2},\qquad \text{bundles} = \left\lceil 3 \cdot \frac{A (1 + \text{waste})}{100} \right\rceil
$$

## Worked examples

### 40 × 30 ft gable, 1 ft overhang, 6/12, 10% waste

- Roof type: Gable
- Building length: 40 ft
- Building width: 30 ft
- Overhang on each side: 1 ft
- Pitch given as: Rise per 12
- Pitch: 6 in 12
- Waste allowance: 10%
- Underlayment: #15 felt (4 squares per roll)
- **Roof area: 1,502.6 ft²**
- **Squares with waste: 16.53 squares**
- **Shingle bundles to buy: 50 bundles**
- **Underlayment rolls: 4 rolls**
- **Ridge and hip length: 42.0 ft**
- **Ridge cap bundles: 2 bundles**
- **Pitch angle: 26.6 °**
- Checked against: Python decimal: 42 × 32 × √1.25 = 1502.64 ft²; × 1.1 ÷ 100 × 3 = 49.59 → 50 bundles; 15.03 squares ÷ 4 → 4 rolls

### Hip roof 40 × 30 ft, 6/12, no overhang or waste

- Roof type: Hip
- Building length: 40 ft
- Building width: 30 ft
- Overhang on each side: 0 ft
- Pitch given as: Rise per 12
- Pitch: 6 in 12
- Waste allowance: 0%
- Underlayment: #15 felt (4 squares per roll)
- **Roof area: 1,341.6 ft²**
- **Ridge and hip length: 100.0 ft**
- **Shingle bundles to buy: 41 bundles**
- Checked against: Hand calculation: ridge 40 − 30 = 10 ft; each hip √(2 × 15² + 7.5²) = 22.5 ft, × 4 = 90 ft; 1200 × 1.118034 = 1341.64 ft²

### Edge: 12/12 pitch is 45°

- Roof type: Gable
- Building length: 30 ft
- Building width: 20 ft
- Overhang on each side: 0 ft
- Pitch given as: Rise per 12
- Pitch: 12 in 12
- Waste allowance: 0%
- Underlayment: #15 felt (4 squares per roll)
- **Roof area: 848.5 ft²**
- **Pitch angle: 45.0 °**
- **Slope factor: 1.4142**
- **Shingle bundles to buy: 26 bundles**
- Checked against: Hand calculation: slope factor √2 = 1.41421; 600 × √2 = 848.53 ft² → 25.46 → 26 bundles

### 30° roof on a 10 × 8 m house, 0.5 m overhang

- Roof type: Gable
- Building length: 10 m
- Building width: 8 m
- Overhang on each side: 0.5 m
- Pitch given as: Degrees
- Pitch angle: 30 °
- Waste allowance: 10%
- Underlayment: #15 felt (4 squares per roll)
- **Roof area: 114.32 m²**
- **Shingle bundles to buy: 41 bundles**
- Checked against: Python math: 11 × 9 m ÷ cos 30° = 114.3154 m² = 1230.48 ft² × 1.1 ÷ 100 × 3 = 40.6 → 41

## Questions

### How many bundles of shingles do I need?

Divide the roof area by 100 to get squares, add waste, and multiply by the bundles per square printed on the wrapper (three is the default here). A 40 × 30 ft gable with 1 ft overhangs at 6/12 has 1,502.64 ft² of roof, or 16.53 squares with 10% waste: 49.6 bundles, bought as 50. The waste presets are 10% for gables and 15% for hips, where every course is cut along the hips.

### How do you convert roof pitch to degrees and a slope factor?

Pitch is the rise in inches per 12 in of run. A 6/12 roof rises at arctan(6 ÷ 12) = 26.57°, and its slope factor √(1 + 0.5²) = 1.118 means each square foot of plan carries 1.118 ft² of roof. A 4/12 roof is 18.43° with a factor of 1.054; a 12/12 roof is 45° with a factor of 1.414.

### What is the minimum roof pitch for asphalt shingles?

2:12, about 9.5°. Under 2021 IRC R905.2.2, asphalt shingles may be used only on slopes of 2 in 12 or steeper, and slopes from 2:12 up to 4:12 need double underlayment. Flatter roofs need a low-slope covering such as a membrane. In the 2:12 to 4:12 range this calculator doubles the underlayment rolls.

### What is a roofing square?

100 ft² of roof surface, about 9.29 m². Shingles and underlayment are ordered by the square, so a roof of 1,502.64 ft² is 15.03 squares before waste and 16.53 after 10% waste. With the #15 felt option at 4 squares per roll, that roof takes 4 rolls of underlayment.

### How do you calculate the area of a hip roof?

Use the same slope factor as a gable: when all four sides share one pitch, sloped area = plan area × √(1 + (rise ÷ 12)²). A 40 × 30 ft hip roof at 6/12 with no overhang is 1,200 × 1.118 = 1,341.64 ft². Its ridge is 40 − 30 = 10 ft and each of the four hips is 22.5 ft, so ridge cap covers 100 ft.

### How accurate is the roofing and shingle calculator?

Accuracy depends on your inputs and the method's assumptions. Decimal arithmetic uses 50 significant digits, but estimates, numerical methods and source data can be less precise; the displayed rounding does not remove those limits. It is checked against 4 worked examples whose answers come from independent sources; for example, “40 × 30 ft gable, 1 ft overhang, 6/12, 10% waste” is checked against Python decimal: 42 × 32 × √1.25 = 1502.64 ft²; × 1.1 ÷ 100 × 3 = 49.59 → 50 bundles; 15.03 squares ÷ 4 → 4 rolls.

### Where does the method come from?

International Code Council — 2021 IRC R905.2.2: asphalt shingles on slopes of 2:12 or steeper, double underlayment from 2:12 up to 4:12; GAF Seal-A-Ridge — 25 linear ft per bundle; Owens Corning ProEdge — 33 linear ft per bundle.

## Sources

- International Code Council — 2021 IRC R905.2.2: asphalt shingles on slopes of 2:12 or steeper, double underlayment from 2:12 up to 4:12
- [GAF Seal-A-Ridge — 25 linear ft per bundle; Owens Corning ProEdge — 33 linear ft per bundle](https://www.owenscorning.com/en-us/roofing/components/products/proedge-hip-ridge)
