Cost per acquisition tells you what a customer costs to win. Lifetime value tells you what they're worth to your business across the entire relationship. Most residential window & door replacement contractors track CAC roughly (covered here) and don't track LTV at all. The result: they're flying blind on whether they're growing profitably or just growing fast. The two metrics together tell the unit-economic truth; either alone misleads.
The window-contractor LTV problem
Lifetime value is straightforward for SaaS, recurring revenue, predictable retention curve, easy to model. Window replacement is harder because it's a once-every-15-25-years purchase. A customer who replaces their windows in 2026 is unlikely to replace them again until 2041. The naive LTV calculation says “one purchase, finite revenue, done.”
That naive calculation misses the structural value components that make LTV the right metric:
- Direct repeat revenue. Some customers do come back, door replacements after windows, storm windows added, expansion to other-trade work you offer.
- Referral revenue.Each happy customer generates some number of referrals. Referrals are revenue you wouldn't have without the original customer.
- Review-driven organic revenue. The review the customer leaves contributes to your local ranking, which produces leads from people who searched and found you.
- Social-proof revenue. The before/after photos, the testimonial usage, the case-study content all contribute to closing future buyers.
What LTV actually is for a window contractor
The simplified LTV calculation
For a residential window contractor, a workable simplified LTV:
- Average direct revenue per customer. Average job size × (1 + repeat rate). For most contractors, repeat rate within 5 years is 5-15%.
- Referral multiplier. Average referrals per happy customer × close rate of referrals × average referral job size.
- Total LTV = direct + referral contribution.
Worked example for a hypothetical $20K average job size contractor:
- Direct revenue: $20K (assume no repeat for simplicity).
- Referrals: 0.4 referred jobs per happy customer × 80% close rate × $20K = $6,400.
- Simplified LTV: $26,400 per customer.
That number is meaningfully different from the “$20K per customer” mental model most contractors operate on. It changes how much you can spend to acquire customers.
The LTV/CAC ratio benchmarks
The standard SaaS benchmark of 3:1 LTV/CAC isn't directly applicable, but the framing transfers. For residential window replacement:
- LTV/CAC > 6:1, strong unit economics. Room to invest in growth.
- LTV/CAC 4:1 to 6:1, healthy. Sustainable growth.
- LTV/CAC 2:1 to 4:1, marginal. Growth-rate limits if margin doesn't improve.
- LTV/CAC < 2:1, losing money on customer acquisition. Either CAC needs to drop or LTV needs to rise.
Note these benchmarks use simplified LTV (direct + referral only). If you fully account for review/SEO contribution and social-proof contribution, healthy ratios shift higher.
Why CAC alone misleads
Two contractors with identical $2,000 CAC:
- Contractor A: No referral program, no review system, no follow-up nurture. LTV ≈ $20K (direct only). LTV/CAC = 10:1.
- Contractor B: Strong referral program, systematic reviews, owner-driven follow-up. LTV ≈ $35K (direct + heavy referral). LTV/CAC = 17.5:1.
Same CAC. Dramatically different business health. Contractor B can afford to spend more on acquisition because the downstream multiplier compounds across years; Contractor A is at a structural disadvantage even with identical marketing efficiency.
The strategic lever LTV opens
The referral-rate inputs
Most of the LTV variance for residential window contractors sits in the referral-rate variable. Inputs that move it:
- Customer satisfaction with the install. Quality of work, communication, project completion vs promised timeline.
- Referral program structure. Dual-sided incentive, prompt visible payouts, structured ask timing. Program design here.
- Owner-touch frequency. Customers who interact with the owner (rather than only the rep and install crew) refer more, owner-relationship signals reliability.
- Time elapsed since install. Referral rate peaks in months 2-6 post-install when the customer is most likely to have organic conversations about their windows.
- Demographic clustering. Customers in tight-knit neighborhoods refer more than customers in dispersed exurban environments.
The CAC inputs
CAC variance, in turn, depends on:
- Channel mix and channel-specific cost per signed job. Channel mix breakdown.
- Lead-response speed and qualification quality. Speed-to-lead.
- In-home close rate. Sales script architecture.
- Quoted-but-not-signed recovery rate. Follow-up cadence.
- Operational cost loaded into customer acquisition (SDR time, sales rep time, software, compliance overhead).
Tracking the ratio practically
Most contractors don't need a daily LTV/CAC dashboard. Quarterly is fine. Track:
- Average customer direct revenue (last 12 months).
- Referrals-per-customer rate (count referrals received divided by signed jobs over a 12-month rolling window).
- Referral close rate.
- Simplified LTV from those inputs.
- Fully-loaded CAC from the CAC formula.
- LTV/CAC ratio and 4-quarter trend.
6:1+
Healthy LTV/CAC ratio target for residential window replacement contractors using simplified LTV (direct + referral only). Below 4:1 indicates structural unit-economic concerns; below 2:1 means you're losing money on customer acquisition.
Ready to talk numbers on your own pipeline?
45-minute strategy call. Live look at your ad accounts. Written diagnosis you keep, whether you sign or not.
Final thought
CAC alone tells you what acquisition costs. LTV alone tells you what customers are worth. Together they tell you whether the business compounds healthily or runs in place. Track both, watch the ratio quarterly, and treat LTV improvements as the higher-leverage growth lever once CAC is reasonable. The contractors with the strongest LTV/CAC ratios are the ones who treat customer relationships as durable assets, not single transactions, and that mindset compounds across years in ways spreadsheets struggle to capture.
Tagged

