BagsAndYards

How we calculate

Every number on this site can be re-derived by hand from what’s printed on the page. This is where the constants, the formulas, the rounding rules and the verification process are written down — so you can check our work instead of trusting it.

The two-tier data rule

We split the inputs into two categories that behave nothing alike, and we store them in separate files so they can never be confused:

TierExamplesChangesConfidence
Physical constants Bag yields, coverage per gallon, ft³ per cubic yard, stone density Almost never High — sourced and cited
Prices $/bag, $/cubic yard delivered, $/ton, $/sq ft installed Constantly, and by region Low by nature — estimates only

Mixing the two is how calculators go stale in a way nobody notices: a price drifts, and because it lives next to a physical constant, updating it feels as risky as changing physics, so nobody touches it. Keeping them apart means prices can be refreshed on their own schedule without anyone re-opening the question of what an 80 lb bag yields.

Current price basis: US national average, set June 2026, re-verified quarterly. Prices are never live and are never a quote.

How a constant gets onto the site

  1. Read the primary source. A manufacturer data sheet or an extension-service publication — not another calculator. Aggregator sites copy each other, and a single transcription error propagates across dozens of them.
  2. Re-derive it blind. The figure is worked out independently from the source and only then compared with what we had. Agreement is evidence; a mismatch is a bug to be traced before anything ships.
  3. Corroborate. Where a second manufacturer publishes the same figure, we check it. Standard concrete mix is a good example — Sakrete and QUIKRETE agree on 0.60 ft³ for an 80 lb bag.
  4. Record the confidence level. Each dataset is tagged official (read from a spec sheet), corroborated (multiple independent sources agree), or low (genuinely variable, like stone density or any price). We publish the tag rather than implying every number is equally solid.
  5. Lock it in a test. Worked examples become automated assertions that run on every build. A change that would alter a published answer fails the build instead of quietly shipping.

Rounding: we round the way suppliers sell

Rounding is where most calculators lose people, because the honest mathematical answer isn’t purchasable. You cannot buy 61.4 bags. Our rules:

  • Bags, gallons and boxes round up to whole units, always. Running 0.4 of a bag short means a second trip and a cold joint in your pour.
  • Waste is applied before the round-up, not after. Ceiling first and then adding 10% double-counts the cushion and oversells you.
  • Ready-mix rounds up to the 0.25 yd³ increment because that is how dispatch takes an order.
  • Aggregate rounds up to the 0.5 ton, matching how quarries and haulers sell it.

One subtlety worth documenting because it bit us: floating-point arithmetic can turn an exact 88 into 88.000000000001, and a naive round-up then sells you an 89th bag you don’t need. Our round-up helper tolerates that noise to twelve significant figures, and the case is locked in a regression test. It is a small thing, but a calculator that is wrong by one bag on a round number is a calculator nobody trusts twice.

Waste factors

A waste factor covers spillage, uneven subgrade, over-excavation and the forms bulging slightly. It is a cushion, not a guarantee, and we always show it so you can change it.

MaterialDefaultWhy
Concrete 10% Industry range is 5–15%; subgrade that isn’t dead flat eats the difference
Gravel 10% Compaction and spillage during spreading
Mulch / topsoil 0% Loose fill with no cut waste — the quantity is exact for the area
Paint 0% explicit The cushion is built in instead: we don’t deduct doors and windows by default, and we use the conservative end of the coverage range

That last row is a deliberate judgement call. Deducting a 20 sq ft door and a 15 sq ft window is technically more accurate, but cutting in around openings is slow, wasteful work, and the paint you “save” on the door is the paint you spend on the frame. Leaving openings in the wall area produces a more useful answer. You can switch deductions on in the calculator if you prefer the strict number.

The formulas, in full

Concrete

volume ft³  = length ft × width ft × (thickness in ÷ 12)
volume yd³  = volume ft³ ÷ 27
bags        = ceil( volume ft³ × (1 + waste) ÷ yield per bag )
ready-mix   = roundUpTo(0.25 yd³, volume yd³ × (1 + waste) )
Bag sizeYield (ft³)Bags per cubic yard
40 lb 0.3 90
50 lb 0.375 72
60 lb 0.45 60
80 lb 0.6 45
90 lb 0.675 40

Yields apply to standard concrete mix (roughly 3,500–4,000 PSI, general purpose). Fast-setting and other specialty mixes have different yields — check the bag. Above about 1 cubic yard we suggest ready-mix, because that is roughly where mixing bags by hand stops being sane; see bags vs ready-mix for the cost side of that decision.

Paint

wall area ft² = 2 × (length + width) × ceiling height
gallons       = ceil( paintable area × coats ÷ coverage per gallon )

Default coverage is 350 sq ft per gallon per coat — the conservative end of the 350–400 range manufacturers publish for smooth drywall. Bare, porous or textured walls drop to about 250, which is a setting in the calculator rather than a footnote, because it changes the answer by a whole gallon on most rooms. Default is 2 coats. At 4 gallons or more we flag that a 5-gallon pail is usually cheaper than singles.

Mulch and topsoil

cubic yards = area ft² × depth in ÷ 324
bags        = ceil( cubic yards × 27 ÷ bag size ft³ )

The 324 is not a lookup value, it is an identity: 27 ft³ per cubic yard × 12 inches per foot. One cubic yard covers 324 ft² one inch deep. We divide by it directly rather than multiplying by a rounded 0.0031 shortcut, which drifts about 0.4% — enough to change a bag count.

Gravel and aggregate

cubic yards = area ft² × depth in ÷ 324
tons        = roundUpTo(0.5 ton, cubic yards × density × (1 + waste) )

Gravel is the one material where we insist you choose. Density varies enough between stone types that a single default would be misleading, so the density selector is mandatory in the calculator rather than hidden behind an “advanced” toggle:

StoneTons per cubic yardConfidence
Crushed stone (generic) 1.4 corroborated
Crushed gravel (¼–2 in) 1.5 corroborated
Crusher run / road base 1.6 corroborated
Large rock (2–6 in) 1.25 corroborated
Crushed limestone (dense) 1.69 low

Even these are typical figures. Real density shifts with gradation, quarry and moisture — wet stone weighs more, so a rained-on load delivers less volume per ton than the table implies.

Beyond quantities: joints, reinforcement and time

The size pages carry more than a bag count — control-joint layouts, rebar and mesh takeoffs, pour logistics, paint supplies and job schedules. These come from the same tested libraries as the quantities, but they sit at a different confidence level and we label them accordingly: published residential rules of thumb and practical trade figures, not code minimums or manufacturer specifications. Anything structural still needs an engineer.

FigureValueBasis
Control-joint spacing Max spacing in feet = 2–3 × thickness in inches ACI 302 / PCA residential guidance
Panel shape limit 1.5 : 1 length-to-width Long thin panels crack across the middle
Joint cut depth ¼ of slab thickness, cut within 6–12 hours Standard practice
Welded wire mesh sheet 5 × 10 ft, lapped one 6″ square → 42.75 ft² effective 6×6 W1.4/W1.4 stock size
Slab rebar grid #3 or #4 at 16″ on centre each way, 20 ft stock Residential slab-on-grade convention
Wheelbarrow load of concrete ≈ 3 ft³ (~420 lb) Weight-limited, well under heaped capacity
Paint rolling / cutting-in rate 250 ft² per hour / 60 linear ft per hour Unhurried DIY pace; a pro is roughly twice as fast

Two of those deserve a note, because both are places calculators commonly go wrong. Mesh sheets must be counted on lapped coverage — 42.75 ft², not the nominal 50 — or you under-order by about 15% and discover it with the concrete already on the truck. And a wheelbarrow is limited by weight, not volume: concrete runs about 140 lb per cubic foot, so filling a 6 ft³ barrow would load it to 840 lb. Sizing loads by the barrow’s rated capacity produces a number nobody can actually push.

Never-NaN: what happens with bad input

Every calculation library on this site holds a contract: non-finite or non-positive inputs return zero, never NaN and never Infinity. Type a negative length or clear a field and you get a blank-looking result, not the word “NaN” where a bag count should be. It sounds trivial; it is the single most common failure in browser-based calculators, and it is covered by tests.

Sources

DatasetEffectiveVerificationPrimary source
Concrete (bag yields) 2026-06-28 official View source
Paint (coverage) 2026-06-28 corroborated View source
Mulch / topsoil (coverage) 2026-06-28 corroborated View source
Gravel / aggregate (density) 2026-06-28 corroborated View source

When we’re wrong

We publish estimates for a living, so being wrong occasionally is a certainty rather than a risk. When a reader shows us an error we re-derive the figure from the source, fix the page, add a test that would have caught it, and bump the page’s “last updated” date. If you think a number here is off, tell us — include the page, your inputs, and the figure you expected.

All of this is planning guidance, not engineering. See terms and disclaimer for the boundary, the editorial policy for how advertising is kept out of the numbers, and about for who writes it.