Skip to content
Methodology

Methodology

How every calculation on this site is derived, sourced, and verified.

Calculation philosophy

All calculations are performed client-side in JavaScript. There is no server, no database, and no API. The calculator runs entirely in your browser — your inputs never leave your device. This makes the site fast, private, and free to host.

All inputs are normalised to feet and cubic feet internally, then converted for display based on your unit toggle (Imperial or Metric). When you switch units, values are converted — not just relabeled. A 10-foot length becomes 3.05 meters, not a 10 with "m" after it.

Constants and their sources

Material constants

  • CUBIC_FEET_PER_YARD = 27 — definition; 1 yd = 3 ft, so 1 yd³ = 27 ft³.
  • CONCRETE_UNIT_WEIGHT = 150 lb/ft³ — ACI 318 standard for normal-weight concrete.
  • GRAVEL_TONS_PER_YARD = 1.35 — derived from 3/4″ minus crushed stone at ~2,700 lb/yd³.

Bag yields (manufacturer specs)

  • BAG_YIELD_40LB = 0.30 ft³ — Quikrete/Sakrete 40 lb bag technical data sheet.
  • BAG_YIELD_60LB = 0.45 ft³ — Quikrete/Sakrete 60 lb bag technical data sheet.
  • BAG_YIELD_80LB = 0.60 ft³ — Quikrete/Sakrete 80 lb bag technical data sheet.
Core formulas

Slab volume

netFt3  = length_ft × width_ft × (thickness_in / 12) × quantity
grossFt3 = netFt3 × (1 + wastePercent)
yards    = grossFt3 / 27

Bag counts (always round up)

bags80 = ceil(grossFt3 / 0.60)
bags60 = ceil(grossFt3 / 0.45)
bags40 = ceil(grossFt3 / 0.30)

Ready-mix order (quarter-yard increments)

order = max(0.25, ceil(yards × 4) / 4)

Rebar grid (#4 bar, 3-inch edge cover)

runsAcross = floor((width_ft - 0.5) / (spacing_in / 12)) + 1
runsAlong  = floor((length_ft - 0.5) / (spacing_in / 12)) + 1
linearFeet = (runsAcross × length_ft) + (runsAlong × width_ft)

Fence post concrete (cylinder minus post)

holeFt3 = π × (holeDiameter_in / 24)² × (holeDepth_in / 12)
postFt3 = (postWidth_in / 12)² × (holeDepth_in / 12)
netFt3  = (holeFt3 - postFt3) × postCount

Default hole diameter = 3 × post width. Default depth = 1/3 of post height above grade, minimum 24 inches.

Validation rules
  • • Zero, blank, or negative input is treated as 0 — no error displayed.
  • • Quantity minimum is 1; integer only.
  • • Waste range is 0–20%; default 10%.
  • • All monetary output is rounded to whole dollars.
  • • Volume output is shown to 2 decimal places.
  • • The calculator never displays NaN, Infinity, or undefined — fallbacks to 0.
Accuracy disclaimer

Every page states, near the result: materials only; excludes labour, forms, delivery, pump, and finishing. Every page also states that structural work requires local building code compliance and engineer drawings. The materials-only cost band shown on each page is typically 30–50% of an all-in installed budget; a realistic finished-project budget is 2–3× the materials cost shown here.

Review cadence

All calculations and price assumptions are reviewed quarterly. Material constants (bag yields, concrete unit weight) are stable and rarely change. Price defaults are updated as the market moves — typical review is every 3 months, with mid-cycle updates if a regional price shock occurs (e.g. cement shortage, fuel price spike). Last full review: August 2026.