Concrete material & cost calculator

Post Hole Concrete Calculator

Fence posts, deck posts, and mailboxes — bags per hole.

Enter your dimensions

holes
%

Order extra for spillage and uneven subgrade. 5–10% is standard.

$/bag

Set your store's price to estimate material cost.

Get quotes from local concrete pros

You've got the volume and a ballpark cost. The next step is real numbers: compare free, no-obligation quotes from licensed concrete contractors in your area for your post setting.

Embed this calculator on your website

Free for any site — no signup, no ads. Copy the code below; please keep the attribution link.

About this calculator

Concrete per post hole is the hole's volume minus the space the post itself takes up — skipping that subtraction is how people buy a third more concrete than they need. Enter the hole diameter and depth, pick your post size (actual lumber dimensions are built in), set how many holes, and you'll get whole bags for the job.

How the math works

Each hole is a cylinder: π × radius² × depth. The post displaces a square column of concrete — a "4x4" is really 3.5 inches square — so the calculator subtracts it, multiplies by your hole count, adds the waste allowance, and divides by the selected bag yield. Rule of thumb: the hole should be about 3× the post width and a third of the post's height deep.

Common questions

How many bags of concrete per fence post?

A 12-inch hole 30 inches deep around a 4x4 takes 3–4 eighty-pound bags. Bigger gate posts in 16-inch holes can take 8 or more — which is why the per-hole math matters before you load the truck.

How deep should a fence post hole be?

A third of the post's above-ground height, below frost line, and at least 24 inches for a 6-foot fence. Depth beats concrete: a shallow hole with extra concrete still heaves and leans.

Fast-setting or regular bags?

Fast-setting mix poured dry around the post and watered is fine for fence lines and saves mixing. Structural posts (decks, pergolas) deserve properly mixed concrete and a footing sized by your local code.