Estimating architecture

The same line item, priced differently by where and when.

Pick a region and a month. The line items don't change, only the cost each one resolves to, because cost is stored dated and region-scoped, not as one flat number.

Estimate total
$0

Why this is the load-bearing decision

Cost items are rows, not constants. Each material or labor line is (item, region, effective_date, unit_cost), never a single price baked into the estimate template.

Estimates resolve at read time. An estimate references the item, not a frozen number, so historical estimates stay explainable and new ones always pull current, local pricing.

This is what makes the app trustworthy in the field. Skip this and every estimate quietly drifts from real costs until an estimator stops trusting the tool.