Module 06 · what it should cost
Estimate
From detected features to a priced, reproducible line-item estimate.
The garage wants ₹43,000. Vision found a moderately dented bumper and a scratched fender. What should the repair actually cost? Estimate maps features to parts and labour against licensed, versioned price data — so when the insurer disputes an inflated invoice, the counter-estimate is reproducible down to the catalog version it was priced with.
What we're going to build
Feature → line-item mapping
Pack config maps Vision’s features (part × damage × severity) to repair operations and parts. The mapping is data, reviewable by a domain expert, not buried in code.
The Reference-Data plane
Parts catalogs, labour rates, procedure prices — licensed, versioned, regional. Distinct from identity sources: Verify asks "is this real?", Estimate asks "what is this worth?"
Repair-vs-replace logic
Threshold rules (pack-supplied) decide repair vs replace per part — a severity-and-economics call, surfaced with its reasoning like every other signal.
Reproducibility
Every estimate pins the reference-data version it priced against. Re-run the case next quarter and you can explain every rupee of difference.
Inflation checks feed Detect
The gap between our estimate and the garage’s invoice is itself a signal — Detect turns it into the "invoice inflation" flag with the figures attached.
For engineers & architectsimplementation notes
- Reference data is immutable-versioned (catalog@version, rates@version); an estimate signal pins both, so re-pricing is a pure, reproducible function.
- Mapping tables (feature → operations/parts) live in the Pack Registry as reviewable data — a domain expert can diff two mapping versions like code review.
- Unmapped features produce an
unpriced_item line with a nearest-match suggestion, never a silent drop — the total always discloses its coverage.
- Failure modes: licensed-data outage falls back to the last cached version (flagged stale); currency/regional mismatches fail loudly at pack-validation time, not at runtime.
Open questions — for the room
- Which parts/labour data do we license first, and what does it cost per lookup?
- Regional variance: city-level labour rates in v1, or state-level and refine later?
- How do we handle parts not in the catalog — nearest match, manual, or skip with a note?
- Is Estimate in Phase 1 for the motor product, or Phase 2 as currently planned?