METHOD / REPRODUCIBLE WORKING

Every stage, in order.

Tallyspan calculates locally in your browser. It separates deterministic arithmetic from values that must come from a supplier, a product document or your explicit planning assumption. No material name silently supplies a physical factor.

1. Geometry and grouping

Rectangle A = length × width
Circle A = π × (diameter / 2)²
Known area A = entered net area
Section volume V = A × depth

Lengths convert to metres, areas to m², volumes to m³ and masses to kilograms. Calculate sections individually, then group only by their assigned material identifier. Sum finished/placed volume as Vp and already-loose volume as Vs. Different materials never share density or purchase rounding.

2. Loose conversion and allowance

V₀ = Vs + K × Vp
Vr = V₀ × (1 + allowance / 100)
Extra allowance volume = Vr − V₀

If finished volume is positive, K must be explicitly supplied and at least 1. An unknown K preserves geometry but blocks a complete loose quantity. If all sections are loose, K is unnecessary. Allowance starts unanswered; enter 0 to confirm none.

For extra loose fraction u relative to finished volume, K = 1 + u. For reduction c relative to loose volume, K = 1 / (1 − c). Thus 20% extra gives 1.20, while 20% reduction gives 1.25. These are definitions, not recommended factors.

3. Density and sales equivalents

ρ in kg/m³ = entered density × kg per mass unit / m³ per volume unit
Required mass Mr = Vr × ρ
Bulk volume quantity q = Vr / volume per sales unit
Bulk mass quantity q = Mr / mass per sales unit
Volume-package q = Vr / volume per package
Mass-package q = Mr / mass per package

Density must be positive loose bulk density. It is required for mass-based purchases, not volume-based purchases. Each quote can override the shared K or density without changing the other quote. Source and condition notes remain with the effective value.

4. Purchasing rules

b = max(q, minimum supplied quantity)
Q = increment × ceil(b / increment)
Continuous bulk ordering: Q = b
Zero requirement: Q = 0

Use minimum = 0 only when none is explicitly selected. The grid starts at zero. Packages always use whole counts, with a positive whole-number increment if specified. Minimum addition = b − q; increment addition = Q − b. Apply once to each grouped material line, not once to every section.

Manual supplier-confirmed quantity replaces automatic ordering. Manual material total replaces automatic price extension and monetary floor. Both require reason/source and confirmation; totals also require an inclusion description. Modeled under-supply blocks a lower-cost label.

5. Supplied volume and money

Volume order: supplied volume = Q × unit/package volume
Mass order: supplied volume = Q × unit/package mass / ρ
Purchasing excess = supplied volume − Vr
Raw material extension = Q × unit price
Material charge = max(raw extension, minimum material charge)
Minimum-charge top-up = material charge − raw extension

A monetary minimum supplies no additional material. A zero order does not trigger a quantity or monetary floor. Excess is quantity above the allowance-adjusted requirement, not predicted waste.

6. Delivery, fees and tax

Pickup / included delivery D = 0 additional
Flat delivery D = entered amount
Per-load delivery D = entered fee × confirmed whole load count
Other charges E = sum of named fixed charges
Single-rate tax T = rate × selected rounded material/delivery/fee components
Total = materials + D + E + T

Tax can instead be explicitly included, no additional tax, or a fixed quoted amount. Unanswered charges remain unknown. An empty project has no order or offer total. USD, CAD, AUD, NZD, GBP and EUR are supported without exchange-rate conversion.

Precision and rounding

Geometry retains JavaScript double precision through subsequent stages. π uses the runtime’s full precision. When a computed ratio is within eight machine-epsilon-scaled units of an integer, the order engine treats it as that boundary to avoid an accidental extra increment caused by binary arithmetic. Values genuinely above that tolerance round up.

Each material line, delivery, individual fee and tax rounds half-up to cents using decimal operands. Tax applies to the selected cent-rounded components, and the total sums cents. Unit prices may have more than two decimal places. Supplier invoicing may round differently.

Volume displays use up to nine fractional digits; tiny positive values use scientific notation. Expand calculation details for unrounded values. Display rounding never feeds the engine.

Exact unit definitions

UnitSI equivalent
in / ft / yd0.0254 / 0.3048 / 0.9144 m
cm / mm0.01 / 0.001 m
ft² / yd²0.09290304 / 0.83612736 m²
ft³ / yd³0.028316846592 / 0.764554857984 m³
L0.001 m³
lb0.45359237 kg
US short ton / metric tonne907.18474 / 1,000 kg

Length and mass definitions follow NIST’s conversion reference; area and volume factors are derived from those exact lengths.

Unknown, invalid, stale and expired

Blank is not zero. Negative or nonfinite values are rejected. Active sections require positive area and depth; remove a zero section. K ≥ 1, density and package content > 0, package counts and load counts are whole numbers. No increment is an explicit mode, not a zero divisor.

To catch scale/unit mistakes, individual dimensions are limited to 10,000 m, depth to 100 m, section area to 100 million m² and section volume to 10 million m³. Allowance is limited to 1,000%, K to 100, tax to 100%, and generic numeric inputs to 10¹². Totals beyond safe cent precision are rejected rather than clamped. Projects support up to 100 sections.

Quantity/product/order changes mark affected fixed charges and manual terms stale. Their known values remain visible but cannot support a complete comparison until reconfirmed. Expired validity dates block ranking. Currency and fulfillment scope must match, and every product mapping must be confirmed.

Reproduce the four checks

  1. 24 × 3 ft × 2 in loose, 5% allowance: 12.6 ft³; 0.5 yd³ order under the example minimum/increment.
  2. 12 m² × 50 mm plus 8 m² × 75 mm, 5% allowance: 1.26 m³ gravel, ordered as 1.5 m³. A separate 2 m diameter × 40 mm circle with 5% allowance orders 0.15 m³ in 0.05 m³ increments.
  3. 8 × 5 ft × 3 in loose, 10% allowance, 0.5 ft³ bags: 22 bags. At USD 6.50 each and 8% materials tax: USD 154.44.
  4. 9 × 4 m × 0.10 m finished, K 1.20 and 5% allowance: 4.536 m³. The full two-quote example yields USD 496.80 and USD 475.20.

All example physical and commercial inputs are illustrative. No universal density, material suitability, truck capacity or tax rule is inferred. Review and print your own working →