Clear assumptions. Useful answers.

The method behind
your soil plan.

A measurement is only useful if you know what happens to it. Here is how the planner turns your dimensions and quotes into a purchase estimate.

1. Start with the inside space

For each rectangular bed, multiply inside length × inside width × actual fill depth × number of matching beds. Add those bed volumes together. Fill depth describes only the material being purchased; subtract existing fill when measuring.

Net volume = sum(length × width × fill depth × quantity)
Target volume = net volume × (1 + reserve percent / 100)

The optional reserve defaults to 0%. It is a user decision, not a universal allowance for settling or a recommended soil depth. The model assumes rectangular footprints, vertical walls, and uniform depth. Curved, tapered, or irregular beds need a different model.

2. Convert before calculating

Dimensions normalize to meters and volume to cubic meters using decimal.js with 40 significant digits. We preserve input units and decimal strings rather than repeatedly rounding physical dimensions when the display switches between US and metric.

UnitDefinition used
1 foot0.3048 meter
1 inch0.0254 meter
1 cubic foot0.028316846592 cubic meter
1 cubic yard27 cubic feet = 0.764554857984 cubic meter
1 liter0.001 cubic meter

Displayed volumes are rounded for readability, usually to two decimals or three for cubic yards and cubic meters. Purchase counts are calculated from the unshortened values. A displayed value of 0.00 can represent a small positive volume.

3. Buy whole bags or valid bulk quantities

For bag capacity B, bags = ceiling(target volume ÷ B). We combine all beds before rounding. Purchased volume = bags × B. Each quote is a complete alternative purchase; the tool does not mix bag sizes or combine suppliers.

For continuous bulk, buy the greater of target volume and supplier minimum. For bulk increments S, buy S × ceiling(maximum(target, minimum) ÷ S). Increments are whole multiples from zero, not steps added to a minimum. All three values use one common volume unit before calculation.

A zero-volume engine project produces zero purchase and no order fees, although the form requires positive dimensions. Bag pallet minimums, bundle pricing, weight-based sales, mixed materials, and minimum-plus-increment rules are outside the current model.

4. Separate reserve and purchase rounding

Purchase rounding = purchased volume − target volume
Extra above measured net = purchased volume − net volume

The second figure includes your reserve. Neither figure predicts physical leftovers after delivery, compaction, or settlement.

5. Compare costs with a shared scope

Material cost is bags × price per bag, or purchased bulk units × price per unit. That material line rounds to the nearest cent using decimal half-up before order fees are added. For example, 1.2345 m³ × $10.01/m³ becomes $12.36. Fixed delivery, other fees, and tax are applied once per quote.

Blank costs remain unknown; a typed 0 means a confirmed zero charge. The known subtotal includes only known costs within the chosen scope. We highlight the lowest estimate only when every entered quote is complete in the same scope. Excluded fees are labeled separately. A lower cost does not establish better soil suitability.

Checked example

An 8 ft × 4 ft × 12 in inside space is 32 ft³, or 906.139090944 L. With 0% reserve, a 2-ft³ bag requires 16 bags. At an illustrative $6 per bag and confirmed zero delivery and other fees, the delivered pretax estimate is $96. A 0.5-yd³ bulk increment requires 1.5 yd³. At an illustrative $40/yd³ plus $50 delivery, with no other fee, it is $110 before tax.

Boundaries & verification

The form accepts ordinary decimal notation without thousands separators or exponents. Limits are 20 bed-size records, 1–100 beds per record, length and width up to 100 m, fill depth up to 10 m, reserve 0–100%, three quotes, and amounts up to $1,000,000 per fee or unit price. These are software limits.

Automated domain tests cover the example, unit conversions, combined rounding, reserves, minimums, continuous bulk, missing fees, tax scope, input rejection, and versioned local saves. They verify the arithmetic and data rules, not real-world supplier quantities or plant performance.

Sources & revision record

Unit context: NIST Guide to the SI, Appendix B. Decimal arithmetic: decimal.js documentation.

October 27, 2026 — Version 1.0.0: initial rectangular-bed, volume, and purchase comparison method. No live price feed or planting recommendation is included.

Plan my soil ↗