Bark mulch calculator
The bark mulch calculator turns a measured garden-bed area and a chosen mulch depth into the volume needed in cubic feet, cubic yards, and whole retail bags.
Run — free
It helps gardeners, landscape crews, and estimators compare a bulk delivery with bagged bark without mixing square feet, inches, and cubic units. Enter the combined bed area, the intended finished depth, and, when needed, the volume printed on one bag. The calculation is deterministic and rounds the bag count upward so the purchase covers the requested volume.
Measure the bed area before choosing a depth
Start with the horizontal surface area that will actually receive bark mulch. For a rectangular bed, multiply its length by its width in feet. Break an irregular border into smaller rectangles, triangles, or other shapes that you can measure, calculate each part, and add the results. Exclude patios, stepping stones, exposed edging, and plant containers unless they will be covered. When several beds use the same mulch depth, combine their areas and make one calculation; when depths differ, calculate those groups separately. The bed area input is square feet, while mulch depth is inches, so the calculator first converts depth from inches to feet. A depth of three inches is one quarter of a foot. Multiplying that converted depth by square feet gives cubic feet, the common unit printed on retail bark bags. Careful area measurement matters more than adding excessive precision to the final answer. A small sketch with dimensions usually prevents missed corners and accidental double counting. For curved beds, dividing the shape into manageable sections produces a practical purchasing estimate even when the boundary is not mathematically perfect.
Understand cubic yards and the whole-bag result
Bulk bark mulch is commonly ordered by the cubic yard, while packaged material is labeled in cubic feet. One cubic yard contains twenty-seven cubic feet. After calculating cubic feet from area and depth, the calculator divides by twenty-seven to report cubic yards. It also divides the required cubic feet by the selected bag volume. Because a store does not sell a fraction of a sealed bag, the bag result always rounds upward to the next whole bag. That upward rounding applies only to the purchase count; the underlying cubic-foot and cubic-yard estimates remain useful for comparing products. Check the bag label rather than assuming every package is the same size. Two products displayed beside each other may contain different cubic-foot volumes even if their bags look similar. The default is a two-cubic-foot bag, but you should replace it with the stated volume of the bark product you intend to buy. If comparing bulk and bagged options, use the cubic-yard figure for the supplier quote and the whole-bag figure for the retail total. Neither result includes price, delivery charges, minimum bulk orders, or product availability.
Allow for real garden conditions and application loss
The mathematical result describes a uniform finished layer across the entered area. Real beds are rarely perfectly level, and bark pieces settle into gaps, collect around roots, or spill during transport and spreading. Existing mulch also changes the purchase decision: measure its remaining depth and calculate only the additional layer needed instead of automatically applying the full target depth again. If the bed has deep hollows or newly disturbed soil, level it before measuring or allow a modest project margin based on conditions you can see. Do not use the bag count as a claim about coverage printed by a manufacturer, because particle size, moisture, settling, and application technique can affect field performance. The calculator deliberately does not invent a universal waste or compaction percentage. That choice keeps its arithmetic transparent: area multiplied by depth determines volume, and bag volume determines the rounded purchase count. You can add your own contingency by increasing the measured area or depth in a separate run and comparing results. For ordering, confirm whether a landscape supplier sells fractional cubic yards and whether its stated yard is loose-filled. For installation, maintain appropriate clearance around trunks, stems, siding, and drainage features rather than treating the calculated depth as a requirement everywhere.
What you can do with it
Plan a bulk bark delivery
Convert the combined bed area and desired layer depth into cubic yards for a landscape-supplier order.
Choose a whole number of bags
Use the cubic-foot volume printed on a retail bag and receive a purchase count rounded up to full bags.
Compare depth options
Run the same measured bed area at different application depths to see how the required volume changes.
FAQ
What does the API calculation cost?
A successful API calculation costs $0.002.
How are cubic yards calculated?
The calculator multiplies square-foot area by depth converted from inches to feet, then divides the resulting cubic feet by 27.
Why is the bag count rounded up?
Retail bags are purchased as whole units, so any fractional requirement needs the next complete bag to cover the calculated volume.
What bag size is used by default?
The default is 2 cubic feet per bag. Enter the exact cubic-foot volume shown on your selected product for an accurate count.
Does the result include a waste or settling allowance?
No. It reports the geometric volume for a uniform layer. Add a project-specific margin if the bed shape, settling, or handling conditions justify one.
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/home/bark-mulch \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bed_area_sq_ft":240,"mulch_depth_in":3}'const res = await fetch("https://api.kit.forhosting.com/home/bark-mulch", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bed_area_sq_ft": 240,
"mulch_depth_in": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/home/bark-mulch",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bed_area_sq_ft": 240,
"mulch_depth_in": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/home/bark-mulch", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bed_area_sq_ft":240,"mulch_depth_in":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bed_area_sq_ft":240,"mulch_depth_in":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/home/bark-mulch", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"bed_area_sq_ft": 240,
"mulch_depth_in": 3
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "home.bark_mulch",
"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. |