Methodology
How every calculation on this site is derived, sourced, and verified.
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.
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.
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.
- • 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.
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.
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.