Concrete Calculator: Slabs, Footings and Columns

Estimate concrete for slabs, footings and round columns or post holes. Add a waste allowance and compare premix bags with a ready-mix volume in metric or imperial units.

Your details

Measurement system

Bag yields are typical, check the bag. Dimensions are planning inputs, not structural recommendations.

Concrete to allow forVolume including waste
1.32 m³
Volume before waste (m³)
1.2 m³
Volume before waste (yd³)
1.5695 yd³
Volume before waste (ft³)
42.378 ft³
Volume before waste (litres)
1,200 L
Including waste (m³)
1.32 m³
Including waste (yd³)
1.7265 yd³
Premix bags, rounded up
132 bags
Approximate weight including waste
3,168 kg
Bag yield
20 kg: 0.01 m³ per bag, typical, check the bag.
Working
4 m × 3 m × 0.1 m × 1 = 1.2 m³; × (1 + 10 ÷ 100) = 1.32 m³ including waste. Bags = round up(1.32 ÷ 0.01) = 132.

For large pours, order ready-mix by the cubic metre or cubic yard; suppliers often have a minimum order.

How concrete volume is calculated

Slab: length × width × thickness × quantity. Column: π × (diameter ÷ 2)² × depth × quantity. Order volume = volume × (1 + waste ÷ 100). Bags = order volume ÷ yield per bag, rounded up.

  • Choose a slab or footing, or a round column or post hole.
  • Enter measured dimensions and select their units. Thickness or depth has its own unit.
  • Multiply the volume of one shape by the quantity, then add the waste percentage.
  • Divide the volume including waste by the bag yield and round up to a whole bag.

Worked example: A 4 m × 3 m slab at 100 mm thick needs 4 × 3 × 0.1 = 1.2 m³. With 10% waste, allow 1.32 m³, or 1.7265 yd³. At a typical yield of 0.010 m³ per 20 kg bag, allow 132 bags. Approximate concrete weight including waste is 3,168 kg.

Things to consider

  • Measure the actual pour dimensions, including any thickened edges separately.
  • Waste covers uneven excavation, spillage and small measurement differences. It is not a structural allowance.
  • Check the stated yield on the bag. Brand, mix and water instructions can change yield.
  • Approximate weight uses 2,400 kg/m³ for normal concrete and includes the waste allowance.
  • Footing depths, reinforcement and slab thickness depend on loads, ground conditions, local building codes and an engineer’s design.

Frequently asked questions

How do I calculate concrete volume?

For a rectangular slab or footing, multiply length by width by thickness. For a round column, multiply π by the radius squared by depth. Use consistent units, multiply by quantity, then add waste.

How thick should a concrete slab be?

As general examples, some pedestrian slabs are around 75 to 100 mm (3 to 4 in), while some residential vehicle slabs are around 100 to 150 mm (4 to 6 in). These are typical ranges, not design recommendations. Loads, soil, reinforcement, local building codes and engineers decide the required thickness.

How many premix bags do I need?

Divide the volume including waste by the yield per bag and round up. Typical yields are 20 kg: 0.010 m³, 25 kg: 0.0125 m³, 30 kg: 0.015 m³, 40 lb: 0.30 ft³, 60 lb: 0.45 ft³ and 80 lb: 0.60 ft³. Check the bag or enter a custom yield.

Should I use bags or ready-mix concrete?

Bags can suit small pours and locations with limited access. Ready-mix is often more practical for larger pours. Compare delivery access, mixing capacity, placement time and the supplier’s minimum order.

Why add a waste allowance?

Excavations may be uneven and some concrete can be lost during mixing or placement. A 10% allowance is a planning default, not a guarantee. Choose an allowance that fits your measurements and project.

How do cubic metres compare with cubic yards?

One cubic yard is exactly 0.764554857984 cubic metres. One cubic metre is about 1.307951 cubic yards. These are volume units, not square units.

Embed this calculator

Paste this code into your website to show this calculator.

<iframe src="https://calculately.io/embed/construction/concrete-calculator/" title="Concrete Calculator: Slabs, Footings and Columns — Calculately.io" width="100%" height="1700" style="border:0;border-radius:12px;" loading="lazy"></iframe>