Skip to main content

Earthwork Cut/Fill Calculator

Estimate cut and fill earthwork volumes from a plan area and average depths, adjusted for soil swell and shrinkage, with a net surplus/deficit balance so you know at a glance whether to haul material off-site or bring in borrow.

Input

The project's footprint area, in whatever area unit your survey uses (e.g. m² or ft²) — the result comes out in that same unit's cubic equivalent.

Average depth of excavation across the plan area, in the same length unit as your area (e.g. meters or feet). Leave at 0 for a fill-only site.

Average depth of fill material to be placed across the plan area, in the same length unit. Leave at 0 for a cut-only site.

How much the excavated soil's volume expands once loosened, relative to its original bank volume. Typical values run roughly 10-30% depending on soil type.

How much the placed fill's volume shrinks once compacted, relative to its loose/borrow volume. Typical values run roughly 10-20% depending on soil type and compaction effort.

Output

Volume Summary
MetricValue
No data yet
Was this helpful?

More ways to use this tool

REST API

curl -X POST https://api.iotools.cloud/v1/tool/earthwork-cut-fill-calculator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "planArea": "5000",
    "cutDepth": "1.5",
    "fillDepth": "1",
    "swellPercent": "15",
    "shrinkagePercent": "10"
  }'

Swap in your own key from your account. The tool's fields are the body — no wrapper.

Ask an AI agent

Use the IOTools `earthwork-cut-fill-calculator` tool (Earthwork Cut/Fill Calculator) on this input:

YOUR_INPUT_HERE

Paste this at any agent connected to the IOTools MCP server, then add your input.

Embed widget

<iframe
  src="https://iotools.cloud/embed/earthwork-cut-fill-calculator/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="Earthwork Cut/Fill Calculator — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

Drop this into your own page — free, no key required, just a link back.

Cost per API/MCP callFrom 5 credits

Also available with

Guides

The Earthwork Cut/Fill Calculator gives a quick, planning-level estimate of how much material a grading or excavation job will cut and fill, adjusted for how soil volume changes as it's dug up (swell) and compacted back down (shrinkage) — the same rough-order-of-magnitude estimate a site superintendent reaches for before committing to a full survey-based takeoff.

How to use it

  1. Enter the plan area — the site's footprint, in whatever area unit your drawings use (m² or ft²).
  2. Enter the average cut depth and average fill depth across that area, in the matching length unit. Leave either at 0 for a site that's purely cut or purely fill.
  3. Set the swell and shrinkage percentages for your soil type — the defaults (15% swell, 10% shrinkage) are reasonable starting points for common soils, but check a geotechnical report or your local DOT's typical factors for a real project.
  4. Read the volume summary: bank cut volume, compacted fill volume, the loosened cut volume after swell, the borrow allowance after shrinkage, and a net material balance telling you whether you'll have surplus material to haul away or need to import borrow.

The math

cutVolume       = planArea × cutDepth                    (bank/in-situ volume removed)
fillVolume      = planArea × fillDepth                   (compacted volume required)
looseCutVolume  = cutVolume × (1 + swell / 100)           (volume the excavated soil occupies once loosened)
borrowAllowance = fillVolume / (1 - shrinkage / 100)      (loose/bank volume of borrow needed to reach fillVolume once compacted)
netBalance      = looseCutVolume − borrowAllowance

Swell accounts for the fact that undisturbed ("bank") soil compacts naturally over time — once excavated and loosened, it occupies more volume than it did in place. Shrinkage is the opposite effect on the fill side: loose material placed and compacted ends up occupying less volume than it did loose, so you need more borrow material than the finished fill volume alone would suggest.

Rather than stopping at four separate numbers, this calculator nets the swell-adjusted loose cut volume against the shrinkage-adjusted borrow need into one net material balance line — a non-negative result means you'll have surplus loosened material left over to haul off-site, and a negative result means you'll need to import that much borrow to make up the fill.

Is my data private?

Yes. The entire calculation runs locally in your browser — nothing you enter is sent anywhere.

How accurate is this?

This is a "quick estimate" method: it multiplies one average depth by the whole plan area, the same approach io-tools.com's version of this calculator uses. It's a fast sanity check for early planning, not a substitute for a survey-based takeoff (grid method, cross-sections, or a full 3D surface model) once depths vary meaningfully across the site. For a contour-map-based volume estimate instead, see the Contour Interval Volume Estimator.

What swell/shrinkage factors should I use?

They depend on soil type — loose sand swells and shrinks far less than a dense clay. If you have a geotechnical report or your local transportation department's standard factors for the site's soil classification, use those instead of the defaults here.

Common uses

Early-stage grading and site-work estimates, checking whether a proposed cut can balance a proposed fill on the same site (minimizing hauling), and sanity-checking a contractor's earthwork bid before committing to a detailed survey.

earthworkcut and fillexcavation volumegradingswell factorshrinkage factorborrow pitsite workcivil engineeringconstruction estimate

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.