A storm-season revenue model should follow demand through capacity and collection. Multiplying leads by a hoped-for close rate and average contract value produces booked-revenue math, not a reliable cash forecast.
## Core formulas
**Held appointments = valid leads × contact rate × appointment-set rate × held rate**
**Signed jobs = held appointments × close rate**
**Expected completed jobs = lesser of signed jobs and production capacity × completion rate**
**Collected revenue = completed jobs × collected revenue per job × collection rate**
**Collected gross profit = collected revenue − direct job cost**
Define every rate using comparable historical storm, territory, source, job type, and team data.
Use the [sales KPI scorecard](/tools/operations/sales-kpi-scorecard) to preserve those definitions before managers populate the downside, base, and upside cases.
## Input worksheet
| Input | Downside | Base | Upside | Evidence |
|---|---:|---:|---:|---|
| Raw leads | | | | source plan/history |
| Valid/unique rate | | | | CRM audit |
| Contact rate | | | | call/CRM log |
| Appointment-set rate | | | | CRM |
| Held rate | | | | CRM |
| Close rate | | | | matched cohort |
| Weekly production capacity | | | | operations |
| Completion rate in horizon | | | | job history |
| Collected revenue/job | | | | accounting |
| Direct job cost/job | | | | job costing |
| Collection rate | | | | accounting |
## Worked scenario
Illustrative base case:
- 400 raw leads;
- 80% valid/unique;
- 65% contact rate;
- 45% appointment-set rate;
- 75% held rate;
- 28% close rate;
- 16-job production capacity during the selected horizon;
- 90% completion within the horizon;
- $15,000 collected revenue per completed job;
- $10,500 direct job cost per job;
- 97% collection rate.
The funnel produces about 19.7 signed jobs, but capacity limits the period to 16. At 90% completion, 14.4 jobs complete. Expected collected revenue is 14.4 × $15,000 × 0.97 = **$209,520**. Expected direct cost is 14.4 × $10,500 = **$151,200**, producing **$58,320** in modeled gross profit before acquisition, sales, and overhead costs.
These are examples, not industry averages.
## Model job mix
Do not use one “average roof” when the storm produces repairs, replacements, retail upgrades, commercial work, or jobs with materially different margins and timelines.
Create a row for each job type:
| Job type | Share | Collected revenue | Direct cost | Cycle time | Capacity unit |
|---|---:|---:|---:|---:|---:|
Weight the result, and include cancellation, change-order, supplement, and collection timing under the company's verified process. Do not assume an insurer will approve, pay, or time an amount.
## Capacity constraint
Estimate capacity by the actual bottleneck:
- inspections per qualified inspector;
- estimates/scopes per estimator;
- permits and material availability;
- crews and job-days by roof type;
- production-manager bandwidth;
- quality-control and punch-list capacity;
- collections and administrative processing.
Booked revenue above capacity can increase cancellations, cycle time, customer issues, and cash strain.
## Cash timing
Build a monthly waterfall from lead to collection. Record deposit/payment terms, financing timing, customer responsibility, production schedule, invoicing, and historical collection lag. Keep coverage and carrier decisions outside the sales forecast unless documented by the authorized party.
## Acquisition and profit
Subtract fully loaded source cost and sales cost:
**Storm contribution = collected gross profit − lead/marketing cost − incremental sales cost − storm setup/operating cost**
Include temporary office, travel, lodging, data, permits, fleet, devices, recruiting, training, management, and cleanup when they are incremental.
Use the [roofing lead-cost calculator](/blog/roofing-lead-cost-calculator) for source economics and the [30-day onboarding plan](/blog/30-day-roofing-sales-onboarding-plan) for safe capacity gates.
Use the [roofing marketing ROI calculator](/blog/roofing-marketing-roi-calculator) when fully loaded acquisition cost must be compared with collected gross profit, and the [AI sales forecasting guide](/blog/ai-sales-forecasting-for-roofing-companies) when the model must reconcile signed work with production and cash timing.
## Sensitivity checks
Test:
- valid and contact rates;
- held and close rates;
- job mix and gross margin;
- cancellation and collection;
- crew/job-day capacity;
- weather interruptions;
- material/permit lag;
- lead cost and manager capacity.
Publish downside, base, and upside results. A plan that is viable only at the highest close rate and fastest production case is fragile.
## Frequently asked questions
### Is storm revenue the same as signed contract value?
No. Separate signed, completed, invoiced, collected, and gross-profit values.
### What is the most important input?
The current bottleneck. More leads do not help when inspection, estimating, production, or collection capacity is full.
### Should insurance proceeds be forecast?
Use only documented information from authorized parties and preserve uncertainty. Do not have sales staff or a calculator predict coverage or approval.
### How should close rate be chosen?
Use mature comparable cohorts by source, territory, job type, rep experience, and season. Show a range.
### How often should the forecast update?
At a cadence operations can use—often weekly during an active storm—with a data cutoff, changed assumptions, and actual-versus-forecast review.
Free lead-generation resources
Turn traffic strategy into pipeline actions
Use free marketing and field tools to turn website, referral, and follow-up ideas into lead flow your reps can actually work.
Two decades in roofing—knocking doors, running teams, training 1,000+ reps. Built GhostRep to give every rep access to the coaching top teams get.
Lead-gen next step
Turn traffic into pipeline math before you buy more leads
Start with the ROI calculator or lead-generation tools if you are still diagnosing the economics. Book a walkthrough if you want GhostRep tied to lead handling, follow-up, and close-rate lift.
✓Best fit if traffic is arriving but too little of it turns into revenue.
✓Useful for modeling conversion lift before you increase spend.
✓Demo shows how field execution and coaching change lead economics after the click.
Start Here
Model your conversion lift
Estimate what more leads, better close rates, and faster rep ramp are worth in revenue.
Angi and HomeAdvisor are related brands, but contractor offers can differ. Compare lead type, sharing, fees, credits, terms, and cost per collected job.
For roofing contractors: HomeAdvisor does not publish one national lead price. Model your quoted CPL, contact rate, close rate, and true cost per sold job.