Lead Lifecycle
This is the locked V1 lead lifecycle for IED.
Use this as the source of truth for:
- lead status semantics
- lifecycle transitions
- what belongs on the lead record vs installer delivery records
- how the lead generation business stops short of pretending it owns the sale
V1 Lifecycle Model
IED is not tracking the downstream sale.
The lead record exists to track:
- intake
- review
- readiness for installer delivery
- whether the lead has been captured into installer distribution
The lifecycle statuses are:
newFresh submission not yet reviewedreviewingInternal team is validating the intake and recommendationready_to_routeLead is approved for installer distributionassignedAt least one installer assignment exists for this lead
That is the end of the V1 lead lifecycle.
Installer delivery success, delivery failure, installer progress, and billing all live on assignment and delivery records, not on fake CRM statuses.
Transition Direction
The intended V1 progression is:
new->reviewingreviewing->ready_to_routeready_to_route->assigned
No extra lead-level statuses such as:
contactedwonlostquoted
should exist in V1.
Those are either:
- installer-side progress
- sales outcomes the lead business does not directly own
- CRM concepts that add noise to a delivery operations product
Fields That Stay Separate From Status
These should stay as separate fields or related records, not lead lifecycle statuses:
selectedPathExample values:compare_quotesrecommended_installer
- installer assignments Which installer(s) captured the lead
- installer email delivery audits Whether delivery was actually sent or failed
- delivery events The billable commercial event
Field Semantics
selectedPath
This is not part of the lifecycle status.
It captures the customer choice:
- compare quotes
- recommended installer
Both path types still use the same lead lifecycle.
assigned
assigned means the lead has been captured into installer distribution.
It does not mean:
- every installer email was delivered successfully
- the installer wants to quote the lead
- the installer contacted the customer
- the customer converted
Those truths belong elsewhere in the model.
Delivery Truth
The lead lifecycle must stay separate from installer delivery truth.
V1 product split:
- lead
assignedinternal capture happened - assignment
sentinstaller delivery succeeded - delivery event created finance can bill it and cycle-cap usage can count it separately
This distinction is mandatory for the admin UI.
Validation Scenarios
The model should support these scenarios:
- a fresh assessment submission becomes
new - internal review moves a lead to
reviewing - a reviewed lead becomes
ready_to_route - assigning one or more installers sets status to
assigned - a lead can stay
assignedwhile one installer delivery succeeds and another fails - both
compare_quotesandrecommended_installerleads use the same lifecycle - billing is based on delivery records, not lead statuses