Concrete tube calculator
A 12 inch tube form poured 4 feet deep holds just over 3 cubic feet of concrete: 6 bags of 80 lb. Enter the inside diameter and the pour height before the hardware-store run or the ready-mix order. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Diameter
- 12
- Height
- 4
- Radius feet
- 0.5
- Volume cubic feet
- 3.1415926536
- Volume cubic yards
- 0.1163552835
- Bag volume
- 0.6
Cardboard tube forms, often sold as sonotube or concrete tube forms, are the usual way to pour round piers, deck posts, and lamp-post bases without building a timber cylinder. This concrete tube calculator takes the inside diameter of the form in inches and the pour height in feet and returns the fill volume in cubic yards plus an approximate whole-bag count so a hardware-store run or a ready-mix ticket starts from geometry, not a guess.
How tube-form volume and bag count are computed
A cardboard or fibre concrete tube form is a right circular cylinder that you fill from the bottom of the excavation or footing to the cut-off of the pier. The geometric fill volume is the classic cylinder identity: volume equals pi times radius squared times height. This landing takes the inside diameter of the tube in inches, because that is how sonotube and similar forms are sold (eight, ten, twelve, sixteen, eighteen, twenty-four inches), and the pour height in feet, because that is how pier schedules list depth.
Radius in feet is diameter divided by twenty-four: first convert inches to feet by dividing by twelve, then take half of that. Volume in cubic feet is pi times that radius squared times height. Cubic yards, the unit ready-mix plants quote in the United States, divide cubic feet by twenty-seven.
Spare volume is how much extra yield the rounded bag count covers beyond the bare cylinder, which is useful when you want a small overage buffer without inventing a separate waste percent field.
Where a concrete tube calculator earns its keep
Homeowners setting deck piers, porch posts, or mailbox bases buy cardboard tube forms by the inch and need a bag count before a hardware-store run, especially when eighty-pound sacks are heavy and hard to return once opened. Landscape contractors and municipal crews setting light-pole bases or sign posts convert a tube diameter and an embedment height into cubic yards so a small truck or a trailer mixer is sized once.
If you later need rectangular slabs, strip footings, square columns, or hollow pipe volume, treat those as separate search intents rather than overloading this concrete tube form landing. The tool is a solid-cylinder fill take-off, not a mix-design calculator, not a rebar schedule, and not a conversion between millimetres and inches. Round-trip checks are easy: convert diameter to feet, take half, square it, multiply by pi and height, divide by twenty-seven, and confirm the published cubic yards match within the same twelve-significant-digit rounding used for all numeric fields.
What you can do with it
Deck pier and porch-post shopping list
Enter the tube inside diameter in inches and the pour height in feet, optionally override bag yield, and buy whole bags for each sonotube without shortfall or bulk overstock.
Fence and mailbox round-pier take-off
Crews feed each matching tube diameter and embedment depth through the same formula so purchase orders list cubic yards and bags that match the estimate.
Ready-mix versus bagged comparison
Compute cubic yards from the tube geometry first, then compare that volume with a supplier ticket or convert bags back to yards for a small-truck quote.
FAQ
How does this concrete tube calculator work?
It treats the form as a solid right circular cylinder. Diameter is inches, height is feet.
What happens if diameter or height is zero or negative?
Diameter and height must both be strictly positive; a non-positive tube cannot hold a physical volume of concrete.
Which units should I use?
Diameter is the inside diameter in inches (the size printed on the tube). Height is pour height in feet. Bag yield is cubic feet.
What does it cost?
The browser tool is free and runs locally.
How many bags of concrete fill a 12 inch tube form 4 feet tall?
Six 80 lb bags. The form holds just over 3 cubic feet, each 80 lb bag yields 0.6 cubic feet, and the count is rounded up to whole bags, which leaves a small spare for the pour.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/build/concrete-tube \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"diameter":12,"height":4}'const res = await fetch("https://api.kit.forhosting.com/build/concrete-tube", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"diameter": 12,
"height": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/build/concrete-tube",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"diameter": 12,
"height": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/build/concrete-tube", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"diameter":12,"height":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"diameter":12,"height":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/build/concrete-tube", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"diameter": 12,
"height": 4
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "build.concrete_tube",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
The engine models a right circular cylinder: radius is half the diameter after converting inches to feet, volume in cubic feet is pi times radius squared times height, cubic yards divide that volume by twenty-seven, and bags ceiling-divide cubic feet by the yield of one eighty-pound bag unless you override bag_volume. Zero or negative diameter or height is rejected with invalid_input. Successful API calls are billed at $0.002; failed validation is not charged.
How tube-form volume and bag count are computed
Approximate bag count divides cubic feet by bag_volume, the cubic-foot yield of one sack, then ceilings to a whole number because stores sell whole bags. When bag_volume is omitted the calculator uses zero point six cubic feet, the published yield of a typical eighty-pound bag, and sets bag_volume_defaulted to true so API clients can see that the bag size was assumed. The pipeline is deterministic floating-point arithmetic with no random seeds, no wall-clock timestamps, and no network calls, so identical inputs always produce identical JSON. Diameter and height must both be strictly positive: zero or negative dimensions are rejected with invalid_input because a non-positive tube cannot hold concrete. bag_volume, when provided, must also be strictly positive so the ratio is defined.
What you send and what you get back
Send two required finite numbers: diameter for the inside diameter of the tube form in inches, and height for the pour height in feet. Optionally send bag_volume as the cubic-foot yield of one bag; if you omit it the default zero point six applies. Aliases d, dia, and tube_diameter map to diameter; aliases h, length, depth, and tube_height map to height. Missing required fields, non-numeric strings, NaN, and Infinity fail with invalid_input and are not charged. When diameter or height is zero or negative the request fails with a message that the dimension must be positive, so a form can highlight the field instead of returning a zero or negative volume. On success the response echoes cleaned inputs, radius_feet, volume_cubic_feet, volume_cubic_yards, the bag_volume used and whether it was defaulted, bags_exact, integer bags, spare_volume, a unit_note that diameter is inches and height is feet, and a short formula string for documentation. A twelve-inch by four-foot tube with the default bag yield is a classic check: cubic feet is pi, cubic yards is pi over twenty-seven, bags_exact is pi over zero point six, and bags ceilings to six. Another useful check is an eight-inch by three-foot form with bag_volume zero point four five for sixty-pound sacks: the same cylinder identity, a different purchase count. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance. Upper and lower limits keep intermediate products finite: each field must be at least a tiny positive number and at most a published ceiling so a Worker isolate never emits Infinity.
Where a concrete tube calculator earns its keep
Fence and deck crews pour many matching round piers from a schedule of diameters and depths; a deterministic endpoint that returns cubic yards next to bags lets the estimator compare a ready-mix ticket against a bagged DIY option without a spreadsheet drifting between the office and the field. Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Technical questions
How is bag count estimated?
bags_exact is volume_cubic_feet divided by bag_volume; bags is the ceiling of that quotient because shops sell whole sacks. Override bag_volume for 40 lb (about 0.3 ft³) or 60 lb (about 0.45 ft³) bags. spare_volume is the extra yield from rounding up.