Start with one attributable outcome
The useful question is not how many addresses a storm touched. It is how many serviceable opportunities moved through a traceable, permission-safe process and became booked inspections, signed work, and margin.
The metric tree
- Qualifying events: events that cross your documented hazard, geography, and confidence thresholds.
- Properties in scope: properties inside the selected impact area, with source and timestamp retained.
- Contactable records: records with usable contact data after deduplication and data-quality checks.
- Channel-eligible records: records that pass the configured consent, suppression, timing, and jurisdiction gates for a specific channel.
- Responses and appointments: replies, qualified conversations, booked inspections, show rate, and cancellations.
- Commercial outcomes: estimates, signed jobs, completed jobs, collected revenue, gross margin, and time to cash.
Keep denominators visible
A booking rate without its denominator is not useful. Separate property-to-contact, eligible-to-sent, sent-to-response, response-to-appointment, appointment-to-show, and show-to-signed-job rates. That makes a data-quality problem look different from an offer, staffing, or sales problem.
Use guardrails beside growth metrics
- Consent evidence coverage by channel
- Opt-out and complaint rate
- Duplicate and stale-record rate
- Cost per contactable and channel-eligible record
- Crew capacity and appointment lead time
- Refunds, chargebacks, and gross margin
Model scenarios, then replace them with actuals
Before launch, use your own eligible-contact, booking, close, capacity, and job-value assumptions. After each event, replace assumptions with observed values and preserve the original forecast. A credible model becomes more accurate over time; it does not pretend a generic uplift is customer proof.