Concrete calculator

Enter dimensions and quantities to total concrete volume, bags and mix materials.

Piece 1
Shape
Enter the slab's length, width and thickness. Enter the radius from the center to the edge and the column height. Use equal rises and tread depths for solid stairs filled to a level base. Count the equal steps; each tread adds one rise in height. Enter how many identical pieces to include. Choose ft or in; in an ft field, you can enter 12' 6" or 12 ft 6 in in one box.
Total concrete (cu yd)
1.23 cu yd
Total concrete (cu ft)33.33 cu ft
Total concrete (m³)0.94 m³
40 lb bags112
60 lb bags75
80 lb bags56
Bag estimates use typical yield per bag.[1]
Leave blank or enter 0 for no extra concrete.

Cement, sand and gravel

Mix ratio by volume (cement : sand : gravel)
Parts by volume; 1 : 2 : 3 is a typical ratio for concrete.[2]
Weight of one cement bag; 94 lb is a common size.[2]
Weight of one cubic foot of loose cement; a 94 lb sack is defined as 1.0 cu ft.[3]
Enter a dry-volume factor, or leave blank for no adjustment.
Cement bags (94 lb)
6
Cement5.56 cu ft · 522.22 lb
Sand11.11 cu ft · 0.41 cu yd
Gravel16.67 cu ft · 0.62 cu yd

For gravel, sand, soil and mulch volumes, use the Cubic yard calculator.

Calculation rules

Slab volume is length × width × thickness. Round column volume is π × radius² × height. Solid stairs with equal steps use width × tread depth × rise × steps × (steps + 1) / 2. Multiply each piece by its quantity, then add the volumes; 1 cu yd = 27 cu ft and 1 cu ft = 0.028316846592 m³.

Each bag count is the total volume divided by the typical yield for that bag size, rounded up to a whole bag.[1] Each size is a separate estimate; check the yield on the bags you buy.

Cement, sand and gravel use the total concrete volume above, including any extra percentage, multiplied by the dry-volume factor when you enter one. Each material gets its share of the parts; cement weight is cement volume × bulk density, and cement bags are cement weight ÷ bag weight, rounded up to a whole bag. Volumes and weights are rounded once to two decimal places.[2][3]

Extra concrete is added only at the percentage you enter. No allowance for compaction or site losses is added automatically. Volume displays are rounded once to two decimal places; positive volumes below 0.01 display as <0.01. Bag counts use the unrounded volume, with π approximated to 40 decimal places for round columns.

Frequently asked questions

How much concrete does a 10 ft by 10 ft slab need at 4 in thick?
With one slab and no extra concrete, the volume is 1.23 cu yd, 33.33 cu ft or 0.94 m³. The estimated bag counts are 112 of the 40 lb size, 75 of the 60 lb size or 56 of the 80 lb size.[1] Use Cement, sand and gravel to estimate mix quantities and cement bags.
Can I combine different shapes?
Yes. Add each slab, round column or set of stairs as a piece, enter its quantity and use the combined total.
What kind of stairs does this calculate?
Solid stairs with equal rises and tread depths, filled down to a level base. Landings and hollow spaces are not part of this stair formula.
Is extra concrete included in the bag counts?
Yes, when you enter an extra percentage. Leaving it blank or at zero adds none; bag counts are rounded up after the extra volume is included.

Bag yield source

[1] Typical yield per bag: 40 lb ≈ 0.30 cu ft; 60 lb ≈ 0.45 cu ft; 80 lb ≈ 0.60 cu ft.

Manufacturer yield data (PDF)

Yield data checked:

Cement mix sources

[2] Typical concrete proportions by volume: 1 part portland cement, 2 parts sand, 3 parts gravel; cement sold in 94 lb bags.

Manufacturer portland cement data (PDF)

[3] A US sack of portland cement is the amount occupying a bulk volume of 1.0 cu ft, weighing 94 lb.

Sack definition (industry glossary)

Privacy on this page

Calculations run in your browser. The measurements you enter are not sent to the server or saved in browser storage. Reloading the page returns the inputs to their initial state.

To understand how the page is used and to improve the service, this page sends semku’s own usage statistics and automatic error reports. They go only to the dedicated endpoint under semku.com/api/telemetry/v1/. They are not used for advertising or third-party tracking.

The usage statistics include stages of use (such as starting an operation or requesting a copy), the times they occur and fixed identifiers that distinguish the page and feature. They do not include the measurements you enter, the results shown or the text you copy. Inputs are not sent as hashes or as size categories either. The full URL and search terms are not sent.

Operations and sessions are distinguished by randomly generated identifiers. In the browser, these identifiers exist only in temporary memory and are not written to cookies or browser storage. No identification based on cookies or combined device characteristics is used.

Error reports contain the error type, code and time, and, where available, a registered program-source identifier with line and column numbers. The error message text and stack traces are not sent. Usage statistics and error reports also carry the site identifier, the deployment version and a random record identifier. For access records such as IP addresses, browser signals (User-Agent Client Hints), region and language, see the paragraph below.

The feedback form sends the rating you chose and the text you typed in the free-text field when you press the send button. The form also sends a random ID that distinguishes the submission, along with the page, site, deployment version and type of request. There are no fields for your name, email address or phone number, and the values you enter are not attached automatically. Before sending your text, the widget removes leading and trailing whitespace and, if you selected a rating, adds [+1] or [-1] at the start; it makes no other changes to your text. After receipt, the collector standardizes line endings and removes leading and trailing whitespace. Please do not enter personal data, passwords, authentication keys or payment details.

To improve the service, we record the country and state/province-level region at the time of your visit (an estimate based on the connecting network), which site you came from including the page path, and one display-language setting announced by your browser (for example, en-US). Location is kept to country and region only; no city or precise position is recorded. When you use the service, connection records, including your IP address, are automatically generated and retained to maintain service security and identify abnormal access. Cloudflare is the data processor for this site. Collection of this item is enabled only after this notice is published; we do not collect it retrospectively for use before collection is enabled. Query strings such as search terms are not recorded, and neither is the full list of preferred languages or the raw request headers. Collection of this information is currently disabled and will only be enabled after this notice is published. If we enable collection, we will collect and use signals your browser reports about its type and version, along with an indication of whether automation tools are being used, to identify bots. These browser signals are estimates and do not conclusively identify your browser's type or version or whether automation tools are being used. We do not collect it retrospectively for use before collection is enabled. The raw User-Agent request header is not recorded. These records are per visit only and use no identifier that links one visit to another. Recording starts only with visits after this notice is published and is not applied retroactively to earlier visits. The region and the referring site have been recorded since 2026-09-20; the display language since 2026-09-24. Browser signals are not recorded yet.

Separately, when you visit the site, the hosting provider records your IP address, the time of the request and user-agent information about your browser and device in Cloudflare Pages’ standard access logs.

For details, see the privacy policy.

Calculations run in your browser without sending your calculation inputs or results to the server. See “Privacy on this page” for information about access data.