A modular estimating platform that turns a satellite outline into a signed proposal in under 10 minutes. Below is the flow, the rules engine, and how each module interlocks.
Contacts, project addresses, photos, notes, filterable search.
Mapbox satellite polygon capture, exclusions (pool, concrete).
Reactive rule set — sqft, waste, seams, labor, tax, markup.
Turf/infill/base/adhesive SKUs, per-unit pricing, activation.
Branded PDFs, upgrades, terms, e-signature capture.
Subscription plans, seat counts, deposits, invoice history.
Role scopes: Contractor, Estimator, Sales, Admin.
Normalized customers → projects → estimates → proposals.
Global catalog, account management, plan orchestration.
linearFt = ceil(sqft / rollWidth) // 15' rolls default rolls = ceil(linearFt / 100) // 100' roll length seams = max(0, rolls - 1) seamLen = seams * sqrt(sqft) turfCost = sqft * (1 + waste/100) * $/sqft
materials = turf + infill + base + accessories subtotal = materials + labor + equipment + delivery tax = subtotal * (taxPct / 100) price = (subtotal + tax) * (1 + markupPct/100) profit = price - (subtotal + tax) margin = profit / price
| Module | Contractor | Estimator | Sales | Admin |
|---|---|---|---|---|
| Customers | ✓ | — | ✓ | — |
| Projects | ✓ | ✓ | — | — |
| Estimates | ✓ | ✓ | — | — |
| Measurement | ✓ | ✓ | — | — |
| Proposals | ✓ | — | ✓ | — |
| Product catalog | ✓ own | ✓ view | — | ✓ global |
| Accounts | — | — | — | ✓ |
| Subscriptions | ✓ own | — | — | ✓ plans |
Ready to try it?
Open workspace