Skip to content
RoofParrot

How the maths works

You can check every number this site gives you. Each coverage rate, waste factor and conversion factor is printed below with the formula it goes into and the source it came from, so when a bundle count has to stand up to your supplier — or to a customer at a kitchen table — you can see exactly where it came from and decide whether you agree with it.

Why there are amber boxes, and what gets refused

Where sources disagree, the disagreement is written down here rather than averaged away. The amber boxes below are those places, and there are more of them than a marketing page would admit to, which is rather the point: a figure you find a conflict in today is better than one you find on a roof. Nothing goes into the code without a source on this page — a material spec with an empty source field is refused outright.

Sources checked 24 October 2026. Retailer listings are labelled as such: they are what you can actually buy, but they are not manufacturer specifications, and several of them disagree on piece counts.

Geometry and the slope factor

The slope factor (pitch multiplier)

slopeFactor = sqrt(rise² + run²) / run = sqrt(1 + (rise/run)²)

Plain Pythagoras. The sloped surface is the hypotenuse of the rise-and-run triangle, so the surface area above a horizontal plan area is that area multiplied by the hypotenuse-to-run ratio. A 6/12 roof carries 1.1180 sq ft of surface for every square foot of footprint; a 12/12 carries 1.4142, which is simply the square root of two.

Source: Roof Online, Roof Pitch Factor Table, Calculator & Explanation — roofonline.com/roof-pitch-factor. The test suite asserts that the formula reproduces all twelve rows of that published table to four decimal places. 9/12 is exact at 1.25, out of the 9-12-15 triangle, which is a pleasant arithmetic check that the implementation has not drifted.

Published roof pitch factors, 1/12 to 12/12
PitchFactorPitchFactor
1/121.00357/121.1577
2/121.01388/121.2019
3/121.03089/121.2500
4/121.054110/121.3017
5/121.083311/121.3566
6/121.118012/121.4142
The trap this guards against. The plan area must be the roof’s horizontal projection, eave overhangs included — not the heated floor area of the house. A 1,200 sq ft single-storey house with 18 in overhangs covers appreciably more than 1,200 sq ft of ground; a two-storey house with 2,400 sq ft of floor area may have a 1,200 sq ft roof footprint. The parameter is named planAreaSqFt and documented at every call site for that reason.
A table of numbers that look like these, and are not. The Texas Department of Insurance publishes a table of similar-looking factors (1.05, 1.12 and so on) that are load-design deflection factors, not area multipliers. They must never be used for a takeoff. If you have seen a pitch table where 6/12 is 1.12 rather than 1.1180, that is probably the one you were looking at.

The roofing square

One square is 100 sq ft. Universal in US roofing practice, and the only unit conversion on the site that needs no citation.

Material coverage figures

Each material is its own small calculation: the measured quantity, times one plus the waste allowance, divided by what one purchasable unit covers, rounded up to a whole unit.

orderQuantity = ceil( (measuredQuantity × (1 + waste)) / coveragePerUnit )

Architectural shingles — GAF Timberline HDZ

33.33 sq ft per bundle, 3 bundles per square, 21 pieces per bundle. Source (retailer listing): The Home Depot, GAF Timberline HDZ … 33.33 sq. ft. per Bundle — homedepot.com/p/309755323, which also states 3 bundles per 100 sq ft.

Sources disagree on the piece count. A Home Depot Q&A answer on the same product says 64 pieces per square, which does not match 3 × 21 = 63. The piece count is the less reliable of the two figures; the coverage figure of 33.33 sq ft is consistent everywhere and is what drives the bundle count. Nothing in the takeoff depends on the piece count except the nail estimate, which rounds up to whole boxes and is insensitive to it. We have not reconciled 63 against 64, and we are not going to pretend to.

Three-tab shingles

33.33 sq ft per bundle, 3 bundles per square, about 80 shingles per square. The 80-per-square figure follows from a 12 in × 36 in shingle at 5⅝ in exposure, and is attributed to Owens Corning estimating guidance — but quoted secondhand (see the nails entry below).

Lower confidence than the figures above. The three-tab numbers come from a weaker chain of sourcing than the HDZ ones. Only the nail count depends on them, and the nail count rounds to whole boxes, so the exposure is small. It is still the weakest material figure on the site.

Underlayment

Underlayment coverage per roll, by product
ProductCoverage per rollSource
Synthetic917 sq ft net per roll (1,000 sq ft gross)Grip-Rite synthetic, 10-square roll: 48 in × 250 ft is 1,000 sq ft gross. At the required 4 in side lap each course exposes 44 of 48 in, so 1,000 × 44/48 = 917 sq ft net. The net figure is used, as it is for felt.
#15 felt (ASTM D226 Type I)400 sq ft net per roll (432 sq ft gross)G.A.P. #15 listing: “4 squares per roll”. The net figure is after the standard 4 in head lap.
#30 felt200 sq ft net per roll (216 sq ft gross)Calculator sources give 200 sq ft net; MSA's 36 in × 72 ft roll is 216 sq ft gross.

The net figures are the ones used, because the head lap is already consumed by the time the roll is on the roof. Coverage varies by brand, so the figure lives in the spec table and can be changed per product line without touching any code.

Starter strip — GAF Pro-Start

120.33 lineal feet per bundle, counted after each sheet is split in half: 19 full sheets give 38 half pieces at 6.5 in × 38 in. Driven by eave linear feet. Source: GAF’s product and spec page — gaf.com — Pro-Start starter strip.

Hip & ridge cap — GAF Seal-A-Ridge

25 lineal feet per bundle, which is about 4 bundles per 100 lineal feet, with 45 ridge caps per bundle in the standard version. Driven by ridge plus hip linear feet. Source: the GAF data sheet — GAF Seal-A-Ridge data sheet (PDF), which states that 4 bundles cover approximately 100 lineal feet; corroborated by Lowe’s and Home Depot Canada listings at 25 lineal feet per bundle.

Sources disagree on the piece count here too. GAF’s own sheet gives 60 caps per bundle for the AS (Class 4) version against 45 for the standard one. The coverage figure of 25 lineal feet is consistent across every source and is what drives the count; the piece count is not used anywhere in the takeoff. If you are counting pieces off a pallet, check which version you have.

Nails

4 nails per shingle on standard slopes, 6 per shingle in high-wind zones and on mansards. For three-tab at 80 shingles per square that works out at 320 and 480 nails per square.

The 4-versus-6 rule is confirmed directly by IKO’s installation instructions — IKO, proper nailing of three-tab shingles (PDF) — and by the IRC minimum of four fasteners per strip shingle.

The per-square figures are secondhand, and marked as such. The 320 and 480 nails-per-square figures come from an Owens Corning estimating guide quoted on a public forum, not from Owens Corning directly. That is a weak source and it is not treated as a strong one. The codebase therefore does not depend on it: the nail count is computed as shingles installed × nails per shingle, where shingles installed comes from the roof area and the bundle coverage, both of which are well sourced. The published per-square figures are used only as a cross-check in the tests, never as an input.

No pounds-per-square figure is used anywhere on the site. Nail weight depends on length and gauge, and none of the sources gives one reliably, so none is offered.

Drip edge

Sold in 10 ft lengths, driven by eave plus rake linear feet. The length is a property of the stock rather than a derived figure, so it is carried in the spec table and can be changed if your supplier sells 10 ft 6 in pieces.

Waste factors

Default waste allowances by roof complexity
Roof complexityAllowanceWhy
Simple gable10%Two planes, straight runs, little cutting.
Cut-up gable15%Dormers, valleys and penetrations on a gable roof.
Simple hip15%Every course is cut at both ends, even on a plain hip.
Cut-up hip18%The hip cuts, plus the valleys and dormers on top of them.
This is practice, not specification. No manufacturer publishes these. One of the sources consulted suggests about 5% for a simple gable and 15% or more for a complex roof; 10% is the figure most calculators and most contractors default to for a gable. It is the one number in the takeoff a working roofer is most likely to want to override, which is exactly why it is an explicit, editable input on the takeoff page rather than a constant buried in the code — and why the allowance is printed on the result instead of folded silently into it. You know your own cut waste better than any calculator does.

Markup against margin

No external source applies here: markup and margin are definitions, not measurements. They are also the single most expensive confusion in contracting, so they are separate inputs on the bid calculator and the result shows both.

markup: price = cost × (1 + markup) markup is a proportion of COST margin: price = cost ÷ (1 − margin) margin is a proportion of PRICE markup = margin / (1 − margin) margin = markup / (1 + markup)

A 50% markup on $1,000 of cost is a $1,500 price and a 33.3% margin. A 50% margin on the same cost is a $2,000 price and a 100% markup. A roofer who asks for 40% margin and is handed 40% markup prices every job a sixth under what they intended and earns 28.6%, not 40%. The test suite asserts exactly that case.

Money is held as whole cents throughout, never as floating point, so a subtotal always equals the sum of the lines printed above it.

What is still open

Honesty about sources is worth nothing if it stops at the figures that happen to be settled. These are the ones that are not.

Found a figure that is wrong, or a source better than ours? That is the most useful thing you can send support@roofparrot.com, and it is the kind of message that changes the code. Write in via the support page.

How the maths works · RoofParrot