ForHosting KIT · Home, food & hobbies

Shingle bundle calculator

22 squares at 3 bundles per square is 66 bundles; add 10% waste for starters, ridge, hips and cuts and you order 73 whole bundles. Enter the squares from your estimate and the rate on the pack. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Squares
22
Bundles per square
3
Waste percent
10
You get
Waste factor
1.1
Base bundles
66
Squares with waste
24.2
Bundles exact
72.6

Contractors and homeowners often already know the job in roofing squares from an insurance estimate, a takeoff, or a prior quote—and still need a clean shingle bundle count before calling the supplier. This shingle bundle calculator multiplies squares by the product’s bundles-per-square rate, then inflates the result by a waste percent for starter strips, ridge, hips, valleys, cuts, and breakage so the order is complete rather than short. You enter three practical numbers: how many squares the roof needs, how many bundles cover one square on the pack you buy, and how much overage you want as a percentage.

How squares become a bundle count

A roofing square is 100 square feet of roof surface, the unit most insurance estimates and takeoffs already use. The shingle pack tells you how many bundles cover one square: classic three-tab asphalt is usually three, while some architectural laminates use three or occasionally four. Multiplying squares by that rate gives the net bundles a perfect rectangular roof would take. The waste percentage is then added on top of that net figure, and the total is rounded up, because a supplier will not sell part of a bundle. The result also shows how many of those bundles are the waste allowance.

How much waste to allow, and why

Real roofs consume more than the net count. Starter courses along the eaves, ridge and hip caps, valley cuts, dormer intersections and a few damaged tabs all use extra product. A common field allowance is about ten percent for a simple gable roof and about fifteen percent for a cut-up hip roof with valleys, and more when you are matching a complex architectural pattern. Ordering the net count is the classic way to run short on the last day; taking the bundle rate from habit instead of from the label is the other.

Order from an estimate in squares

Paste the square total from an insurance or contractor estimate, set the pack rate from the shingle label, add your waste policy, and buy whole bundles without shortfall.

Contractor purchase orders

Convert each roof’s takeoff squares and SKU bundles-per-square into ceiled pack counts so purchasing matches the estimate and every waste step is auditable.

What is a roofing square?

One roofing square is one hundred square feet of roof surface. Enter the job already measured in squares; this tool does not convert plan area and pitch into squares.

How many bundles per square should I use?

Read the manufacturer label for the product you buy. Common three-tab asphalt is often three bundles per square; some laminates differ—always use the pack rate printed for that SKU.

Can I start from square feet instead of squares?

Yes: divide the square footage of the roof surface by 100, since one square is 100 sq ft. Square totals from an insurance estimate, a takeoff or an earlier quote can be entered as they are.

What if the pack says four bundles per square?

Enter 4. Classic three-tab shingles are usually three bundles per square, but some architectural laminate series need four, and using three out of habit would leave you one bundle short for every square.

Can I set the waste to zero?

Yes. Zero gives the net count for a perfect roof with no scrap, which is handy for comparing products. For an actual order, a real roof almost always needs extra for starter courses, caps and cuts.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/home/shingle-bundles

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/home/shingle-bundles \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"squares":22,"bundles_per_square":3,"waste_percent":10}'
{
  "squares": 22,
  "bundles_per_square": 3,
  "waste_percent": 10
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "home.shingle_bundles",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

The response returns base bundles without waste, the exact inflated count, and a whole-bundle purchase quantity after ceiling, so you never order a fractional pack. The same pure function powers the free browser tool and the paid API, so a counter quote matches a scripted purchase order later. Non-positive squares or pack rates and negative waste fail with invalid_input instead of silent nonsense. Pricing for successful API calls is the published base of $0.002 per item.

How squares become shingle bundles with waste

US roofing practice measures coverage in squares, where one roofing square equals one hundred square feet of roof surface. Manufacturers print how many bundles cover one square on the package—classic three-tab asphalt is usually three bundles per square, while some architectural laminates still use three or occasionally four depending on the series. Real roofs are not perfect: starter courses along eaves, ridge and hip caps, valley cuts, dormer intersections, and a few damaged tabs all consume extra product. Common field allowances are about ten percent for a simple gable, fifteen percent for a cut-up hip roof with valleys, and higher when matching complex architectural patterns. Start from the coverage identity base_bundles equals squares times bundles_per_square. That product is the net pack count if the roof were a perfect rectangle with zero scrap. Apply waste as a percentage of the net: waste_factor equals one plus waste_percent divided by one hundred, then bundles_exact equals base_bundles times waste_factor. Equivalently you can inflate squares first to squares_with_waste and multiply by the pack rate; both paths are algebraically identical. Purchase quantity bundles_needed is the ceiling of bundles_exact, because suppliers sell whole bundles only. The response also reports waste_bundles_exact (the fractional overage before ceiling) and waste_bundles (how many whole bundles the ceiling added relative to the net base), so a purchasing clerk can audit the allowance against company policy. The pipeline is deterministic floating-point arithmetic with no random seeds, no wall-clock timestamps, and no network calls, so identical inputs always produce identical JSON. Squares and bundles_per_square must be strictly positive; waste_percent must be non-negative so the inflated count stays defined and non-absurd.

What you send and what you get back

All three fields are required. Send three finite numbers: squares for the roof area already expressed in roofing squares, bundles_per_square for the manufacturer pack rate of the SKU you will buy, and waste_percent for the overage allowance as a percentage of base bundles. Missing fields, non-numeric strings, NaN, and Infinity fail with invalid_input and are not charged. When squares is zero or negative the request fails with a message that squares must be positive, so clients can correct a takeoff before retrying. The same positivity rule applies to bundles_per_square. Negative waste_percent is rejected because a negative allowance would undercut the net count rather than plan for scrap. On success the response echoes cleaned inputs, waste_factor, base_bundles, squares_with_waste, bundles_exact, integer bundles_needed, waste_bundles_exact, waste_bundles, a unit_note that one square equals one hundred square feet and that bundles_needed is a whole purchase count, and a short formula string for documentation. Classic check: twenty-two squares, three bundles per square, and ten percent waste yields base_bundles of sixty-six, waste_factor of one point one, bundles_exact of seventy-two point six, and bundles_needed of seventy-three. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance. Keep squares as true roofing squares after pitch and plan-area math are already finished elsewhere—this endpoint does not re-derive surface area from plan dimensions.

Where a shingle bundle calculator earns its keep

Homeowners who already hold an insurance or contractor estimate written in squares need a trustworthy bundle count before ordering online or booking a dumpster, especially when architectural laminates have a high unit price and long lead times. If you later need plan-area times pitch to invent the square count, hip and valley linear waste tables, starter-strip feet, ridge-cap bundles as a separate line, underlayment rolls, or drip-edge lineal feet, treat those as separate search intents and landings rather than overloading this squares-to-bundles order calculator. Roofing contractors convert takeoff squares into purchase orders by product SKU: swap only bundles_per_square when comparing three-tab versus laminate lines while holding squares and waste policy fixed, then rank total packs side by side. Building-supply counters quote walk-in jobs from a square figure the customer already has, apply the house waste rule, and print bundles_needed without re-measuring pitch on the spot. Property managers planning multi-building re-roofs feed a batch of square totals and pack rates through the API and attach bundles_needed to purchase orders so overstock stays intentional rather than accidental. Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.

SKU comparison at the counter

Hold squares and waste fixed, swap bundles_per_square across candidate products, and compare bundles_needed for three-tab versus architectural lines.

How does this shingle bundle calculator work?

It multiplies roofing squares by bundles_per_square for a base pack count, multiplies by (1 + waste_percent/100) for waste, then ceilings to whole bundles so you order complete packages only.

What happens if squares is zero or negative?

The request fails with invalid_input. Squares and bundles_per_square must be strictly positive; waste_percent must be non-negative. Validation failures are not billed.

What does the shingle bundle calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →