Lumber Weight Calculator
The lumber weight calculator estimates how much a quantity of dimensional wood weighs from two practical inputs: total board feet and species density in pounds per cubic foot.
Run — free
It converts board feet to cubic feet, applies the supplied density, and reports the estimated load in pounds and kilograms. Use it to compare species, plan pickup capacity, check trailer or rack loads, and prepare handling estimates before material is moved. The calculation is deterministic and keeps the density assumption visible in every result.
Gather board feet and a suitable density
Start with the total board footage of the lumber in the load. A board foot is a volume equal to a board 12 inches long, 12 inches wide, and 1 inch thick, so it represents one twelfth of a cubic foot. If you have a list of pieces, calculate or obtain the board feet for every piece and add them before entering the total. Next, choose a density in pounds per cubic foot that matches the wood species and its expected moisture condition. Density is not a universal value for a species: published figures may describe green wood, air-dried wood, kiln-dried wood, or a particular moisture percentage. Use the value that best represents the material when it will be transported. If the shipment combines species or moisture conditions, calculate each group separately and add the resulting weights. This preserves the different density assumptions and is more reliable than averaging unrelated values without considering their quantities. Keep your density source with the estimate so another person can reproduce or revise the plan later.
Understand the calculation and its limits
The calculator divides board feet by 12 to obtain cubic feet, then multiplies that volume by the entered density. For example, 120 board feet occupies 10 cubic feet; at 35 pounds per cubic foot, the estimated wood weight is 350 pounds. The kilogram result uses the exact conversion of 0.45359237 kilograms per pound. Values are rounded only for the returned display, while the calculation uses the unrounded intermediate values. The result estimates the wood itself, not a certified shipping weight. Actual boards vary because growth rate, heartwood and sapwood proportions, knots, resin, treatment chemicals, and moisture can all change density. Surfaced lumber may also contain slightly less wood than a nominal-dimension calculation suggests, depending on how the board-foot figure was produced. Add the weight of pallets, stickers, bands, wrapping, racks, and other packaging separately. For regulated transport, structural design, lifting certification, or any situation near a rated limit, confirm the load with a suitable scale and apply the safety margin required by the equipment or authority.
Plan vehicles, storage, and handling
Use the estimated pounds or kilograms as one input to a complete load plan. Compare the combined lumber, packaging, passengers, tools, and fuel against the vehicle payload rating rather than comparing wood alone with a towing headline. For a trailer, consider the trailer capacity, axle ratings, tire ratings, hitch limits, and required tongue weight, because a load can exceed one component before reaching the overall maximum. Weight distribution matters as much as the total: dense species concentrated at one end can create unsafe axle or rack loading. In storage, compare the estimate with shelf, cantilever rack, floor, and support capacities, and distribute bundles as the equipment instructions require. The same calculation is useful before manual handling because it helps divide a large order into bundles that people or machinery can move safely. Recalculate whenever the board-foot total changes or a more appropriate density becomes available. The API price is $0.002 per calculation, while the browser version can be used directly on this page for quick planning.
What you can do with it
Plan a pickup or trailer load
Estimate the wood portion of a shipment before comparing the complete load with vehicle, axle, tire, and hitch ratings.
Check shop storage capacity
Estimate bundle weight before assigning lumber to racks, shelves, carts, or supported floor areas.
Compare wood species
Run the same board footage with different published densities to see how species choice changes transport and handling weight.
FAQ
What formula does the calculator use?
It calculates cubic feet as board feet divided by 12, then multiplies cubic feet by density in pounds per cubic foot.
Does the result include pallets and packaging?
No. The result covers the estimated wood weight only. Add pallets, stickers, bands, wrapping, racks, and other materials separately.
Which density should I enter?
Use a reputable density value for the species and moisture condition expected during transport. Green and dried lumber can differ substantially.
Can I calculate a mixed-species load?
Yes. Calculate each species or moisture group separately with its own density, then add the returned weights.
Is this estimate suitable for a legal payload decision?
Treat it as a planning estimate. Confirm critical or regulated loads on an appropriate scale and follow the applicable vehicle and equipment ratings.
What does an API calculation cost?
Each API calculation costs $0.002. The calculator can also run in the browser on this page.
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/lumber-weight \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"board_feet":500,"density_lb_ft3":35}'const res = await fetch("https://api.kit.forhosting.com/home/lumber-weight", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"board_feet": 500,
"density_lb_ft3": 35
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/home/lumber-weight",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"board_feet": 500,
"density_lb_ft3": 35
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/home/lumber-weight", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"board_feet":500,"density_lb_ft3":35}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"board_feet":500,"density_lb_ft3":35}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/home/lumber-weight", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"board_feet": 500,
"density_lb_ft3": 35
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "home.lumber_weight",
"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.
Limits
max_board_feet | 1000000 |
max_density_lb_ft3 | 100 |
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. |