Skip to content
Methodology / How we compute every result
Construction calculation methodology

Every formula, sourced and shown.

CountMaterials documents the formulas, constants, assumptions and rounding rules behind its calculators so a result can be understood and checked by hand.

Client-side • No API • Reviewed quarterly
FIG. 01 / CALCULATION FLOW
INPUT → RESULT
01 / INPUT
10 ft10 ft4 in
↓
02 / NORMALISE
4 in ÷ 12 = 0.333 ft
↓
03 / FORMULA
10 × 10 × 0.333 = 33.33 ft³
WASTE
× 1.10
CONVERT
÷ 27
Documented result1.36 yd³
01

Client-side

Every calculation runs in your browser. Inputs do not leave your device and no account is required.

02

Sourced constants

Bag yields, unit weights and construction references are documented rather than invented.

03

Rounding stated

Bag counts round up and ready-mix orders use quarter-yard increments. The rules are visible.

Why this matters

A result should be explainable.

A construction estimate is only useful when the person using it understands what the number represents.

CountMaterials separates the raw calculation from the practical order estimate. Volume, waste, bag yields and ready-mix rounding are shown rather than hidden.

The goal is not to replace local codes, supplier instructions or professional judgment. It is to make the arithmetic transparent enough to verify before buying material.

Worked example — 10 × 10 slab, 4 in, 10% waste
10 × 10 × (4 ÷ 12)= 33.33 ft³ net
33.33 × 1.10= 36.67 ft³ gross
36.67 ÷ 27= 1.36 yd³
Order-ready estimate1.5 yd³
The process

From input to result.

01

Normalise

Every input is converted to the internal units used by the relevant construction formula.

02

Calculate

The documented formula runs against the normalised values and applies the calculator's assumptions.

03

Validate

Outputs are checked for valid ranges, sensible rounding and safe handling of incomplete input.

Constants and their sources

Material constants.

Material constants
CUBIC_FEET_PER_YARD
Definition — 1 yd = 3 ft, so 1 yd³ = 27 ft³.
27
CONCRETE_UNIT_WEIGHT
ACI 318 standard for normal-weight concrete.
150 lb/ft³
GRAVEL_TONS_PER_YARD
Derived from typical 3/4 in minus crushed stone density.
1.35
Bag yields — manufacturer specifications
BAG_YIELD_40LB
Quikrete/Sakrete technical data.
0.30 ft³
BAG_YIELD_60LB
Quikrete/Sakrete technical data.
0.45 ft³
BAG_YIELD_80LB
Quikrete/Sakrete technical data.
0.60 ft³
Core formulas

Every calculation, in full.

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
Bulk materials — volume to tons
netFt3   = length_ft × width_ft × (depth_in / 12)
grossFt3 = netFt3 × (1 + wastePercent)
yards    = grossFt3 / 27
tons     = yards × (density_lb_per_yd3 / 2000)
cost     = tons × price_per_ton
Paver quantity
projectAreaFt2 = length_ft × width_ft
paverAreaFt2   = (paverLength_in × paverWidth_in) / 144
rawCount       = projectAreaFt2 / paverAreaFt2
orderCount     = ceil(rawCount × (1 + wastePercent))
Brick wall quantity
netWallFt2     = max(0, wallLength_ft × wallHeight_ft - openings_ft2)
moduleAreaFt2  = ((brickLength_in + joint_in) × (brickHeight_in + joint_in)) / 144
bricksPerFt2   = 1 / moduleAreaFt2
orderCount     = ceil(netWallFt2 × bricksPerFt2 × (1 + wastePercent))
Mortar bags for brick or block
adjustedUnits = unitCount × (1 + wastePercent)
bags80 = ceil(adjustedUnits / coverage80)
bags60 = ceil(adjustedUnits / coverage60)

Defaults from Sakrete yield data:
brick: coverage80 = 35, coverage60 = 26
8-in block: coverage80 = 12, coverage60 = 9
Validation / transparency

Edge cases are handled explicitly.

Invalid input

Blank, zero or negative dimensions do not produce NaN or Infinity.

Quantity

Minimum quantity is one and fractional slabs are not treated as physical orders.

Waste

Waste defaults to 10% and is constrained to the calculator's supported range.

Rounding

Bag counts round up and ready-mix orders use practical quarter-yard increments.

Sources & methodology

Show the work.

Constants and assumptions are documented so users can understand where the numbers come from and verify them against the cited references.

About CountMaterials →
Quikrete technical data sheetsConcrete & mortar yields
Sakrete Mortar Mix technical dataMortar bag coverage
Brick Industry Association Technical Note 10Brick dimensions & estimating
ACI 318 - Building Code RequirementsMix & cover
ASTM A615Rebar specification
Industry material weightsReference

Found something wrong?

Report a calculation issue and we’ll review the formula, units or assumptions.

Report an issue