Prepared by: Richard Butts Founder, Groundbreakers Digital
HOW TO USE THIS PLANNER
Purpose
This planner breaks demand generation implementation into three 30-day phases. It tells you what to do each week, what to expect, and when to scale vs. when to fix.
90-Day Structure
Month 1 (Days 1–30): Foundation + launch (setup, test, baseline)
Design-build and hardscaping contractors with capacity to grow, a working sales process (25%+ close rate), and willingness to follow a 90-day plan.
What This Is NOT
This is not a "quick fix." If you need immediate revenue this month, prioritize referrals + Google LSA while building this system in parallel.
Important Notes (Operational / Compliance)
Operational guidance only — not legal advice. If you use automated texts/calls or call recording, consent requirements vary by jurisdiction. Include opt-out language ("Reply STOP…") and honor opt-outs immediately.
AT-A-GLANCE (PRINT THIS PAGE)
North Star Metrics (track weekly)
CPBE = total ad spend ÷ booked estimates
Lead→Booked % = booked estimates ÷ total leads
Month 1 Goal (Baseline)
Tracking works end-to-end
Lead→Booked ≥ 30%
CPBE at or below your max
1+ estimate/week consistently by Week 4
Month 2 Goal (Conversion Lift)
After-hours capture working (Voice AI pilot)
No-show rate improves with confirmations
CPBE stable while budget scales
Month 3 Goal (System)
4–6+ estimates/week consistently
Lead→Booked > 35% sustained
No-show < 10%
Weekly optimization is delegated or repeatable
READINESS GATE (SCORECARD)
Score each category 0–2:
0 = Not in place • 1 = Partially in place • 2 = Fully in place
1
Calendar Discipline (0–2)
Fixed estimate blocks exist weekly
Buffers enforced (30–45 minutes)
Team respects the calendar
2
Service Area + Minimums (0–2)
Tier A ZIP list defined (10–15)
Tier B ZIP list defined (5–10)
Minimum project size enforced ($X+)
3
Intake Speed (0–2)
Business-hours response SLA defined
Follow-up sequence exists (SMS + call)
Leads are contacted within 15 minutes
4
Tracking + CRM (0–2)
Lead stages exist (New → Won/Lost)
Source tracking exists (Meta/Google/Referral)
You can measure Lead→Booked and close rate
5
Creative Assets Ready (0–2)
10–15 strong before/after examples
Neighborhood proof available
Landing/booking page content ready
6
Capacity (0–2)
You can handle 20–30% more demand
OR hiring plan exists when pipeline fills
Production schedule can absorb growth
TOTAL SCORE: _____ / 12
Scoring interpretation
10-12
Ready for complete implementation (Month 1 starts now)
7-9
Ready for pilot approach (start small, prove concept, then expand)
4-6
Fix foundations first (spend 2-4 weeks on gaps, then start)
0-3
Not ready yet (address fundamentals before spending on ads)
If you scored 7+, proceed to next page. If below 7, fix the gaps FIRST.
YOUR NON-NEGOTIABLES (FILL-IN WORKSHEET)
These become your operating rules. Don't violate them mid-implementation.
Tier A ZIP Allowlist (Your top 10-15 ZIPs):
__________________________________________
__________________________________________
__________________________________________
__________________________________________
__________________________________________
__________________________________________
__________________________________________
__________________________________________
__________________________________________
__________________________________________
Minimum Project Size:
$__________
Estimate Blocks (Days/Times):
Days: __________________________________________
Times: __________________________________________
Buffer between estimates: __________ minutes
Target Response Time SLA:
Business hours: Within __________ minutes
After-hours: Next morning by __________ AM
Financial Targets:
Average project value: $__________
Target close rate: __________%
Maximum acceptable CPBE: $__________
Capacity Limits:
Crew capacity (projects/month): __________
Maximum estimates/week we can handle: __________
Once you fill this out, lock it in. These are your guard rails for the next 90 days.
DAYS 1-7 CHECKLIST (SETUP WEEK)
Goal: Get infrastructure ready to receive and convert leads. Don't launch ads until ALL boxes checked.
Booking page built
Single-CTA design (no navigation, no distractions)
New Lead → Contacted → Qualified → Booked → Confirmed → Estimate Complete → Won/Lost
Each stage has clear definition and trigger rules
Estimate blocks defined in calendar
Fixed recurring blocks (same days/times weekly)
30-45 min buffer enforced between appointments
Calendar shared with team so everyone sees availability
Lead routing configured
Form submissions reach CRM in real-time (test with dummy lead)
Notification sent to owner/admin when lead arrives
Task auto-created: "Contact within 15 min"
Before/after photos gathered
10-15 recent projects from Tier A ZIPs
High-res images (can be phone photos)
Organized by neighborhood for easy access
Follow-up scripts loaded
T+2 SMS template in CRM
T+5 call script documented
T+15 SMS with time slots template ready
END OF WEEK 1 CHECKPOINT:
Can a form submission flow end-to-end (form → CRM → notification → calendar booking → basic confirmation (email/SMS))? If NO, don't launch ads yet. Fix the pipe first.
DAYS 8-14 CHECKLIST (LAUNCH + LEARNING)
Goal: Launch first campaign, generate initial data, learn what converts. Don't change anything mid-week.
Meta campaign launched
Budget: $30-100/day starting point (depends on market size and seasonality)
Campaign objective: Optimize for your primary conversion (booked estimate / lead / call), based on your destination and tracking setup
Feed-only placement (FB Feed, no IG/Stories/Reels)
3-5 ad variations live simultaneously
Follow-up discipline enforced
Every lead contacted within 15 minutes (or instant Voice AI response)
T+2 SMS sent automatically
T+5 call attempted (log outcome in CRM)
If no answer: T+15 SMS with two specific time slots
Daily monitoring (10 min/day)
Check: You should see daily delivery building (impressions will vary by CPM and spend)
Check: Is CTR directionally positive? (>0.5% is promising)
Check: Are leads reaching CRM? (Test end-to-end if not)
Log any confusion or friction points
Document confusion points
Which form fields cause hesitation?
Which ad copy generates wrong-fit leads?
Where do leads drop off in follow-up?
Save these notes for Week 3 optimization
First estimates booked
Target: Enough volume to establish baseline CPBE (with fast intake)
Tag source in CRM: "Meta-Feed-Tier-A"
Note which neighborhoods and budget bands
WHAT NOT TO DO THIS WEEK:
Don't kill ads before each has 1,000+ impressions
Don't change budgets during the learning phase
Don't add new channels yet (focus on one pipe)
Don't rewrite the booking page daily (one change per week max)
END OF WEEK 2 CHECKPOINT:
Are leads coming in? Is follow-up happening within 15 min? Are you booking at least 1-2 estimates? If YES to all three, proceed. If NO, diagnose what's broken before Week 3.
DAYS 15-30 CHECKLIST (OPTIMIZE + BASELINE)
Goal: Kill what doesn't work, scale what does, establish baseline CPBE and Lead→Booked %.
WEEK 3 (Days 15-21):
Kill underperforming ads
Any ad with CTR <0.8% after 1,000 impressions → turn off
Launch replacement ad with different hook/angle
Keep best performer running
Launch new creative kit
Kit 2 from rotation (seasonal urgency OR process transparency)
3-5 new variations
Different before/afters from Tier A ZIPs
Scale budget 20% IF hitting targets
Conditions: CPBE at/below target, Lead→Booked >30%, crew has capacity
Example: $50/day → $60/day
If NOT hitting targets, hold budget and optimize
Optional (only if traffic volume supports it): Enable remarketing
Friday review: Is after-hours hitting benchmarks? (Answer rate 90%+, booking 30%+ of qualified)
DECISION CRITERIA FOR EXPANSION:
If after-hours Voice AI hitting all targets for 2 consecutive weeks AND business hours is overflowing → consider expanding to overflow routing (ring 3-4 pickup).
Weekend goal: Capture every after-hours call, qualify cleanly, and book what you can. Measure answer rate, completion rate, booked-of-qualified.
MONTH 2 DECISION POINT
At end of Day 60, evaluate and decide path forward:
→ Action: Hold budget, optimize for 2 weeks using the "Decision Matrix – What to Fix First" section, then re-evaluate
RED LIGHT
(Pause expansion, fix fundamentals)
🛑 Booked estimates declining
🛑 After-hours capture <70%
🛑 CPBE 30%+ over target
🛑 Lead→Booked <25%
→ Action: Don't add new channels. Fix biggest leak using the "Decision Matrix – What to Fix First" section. Resume growth once stable.
If trending right direction but not hitting all targets, that's normal. Fix ONE thing at a time, measure for 7 days, then fix next thing.
MONTH 3 (DAYS 61-90) ROADMAP
Goal: Systematize what's working, add channel diversity if needed, train team on weekly optimization.
WEEK 9 (Days 61-67)
Optional: Full Voice AI expansion to business hours overflow (if after-hours proven)
Launch Kit 4 creative (testimonial video UGC)
Scale Meta to $100-130/day if CPBE allows and crew has capacity
Add Google Search test: $30-50/day, tight high-intent keywords (exact + phrase), heavy negatives, and location controls, Tier A ZIPs (ONLY if Meta is maxed out)
→ Action: Implement weekly optimization rhythm, consider maintenance support
RED LIGHT (System not sustainable without major time investment)
🛑 Spending 15+ hours/week managing ads/follow-up
🛑 Can't keep up with optimization needs
🛑 Missing leads due to slow response
🛑 Crew maxed but generating more leads than you can handle
→ Action: Hire for capacity OR throttle back lead generation OR delegate to VA/agency
Most contractors at Day 90: Either the system is humming (5-10 hrs/week maintenance) OR they realize ongoing optimization competes with running their business. Both outcomes are valuable data points for deciding whether to maintain in-house or hire support.
DECISION MATRIX - WHAT TO FIX FIRST
When performance drops, diagnose the root cause systematically:
SYMPTOM: High CTR (1.0%+) but no leads coming through
Diagnosis: Booking page broken or has friction
Fix:
Test form on mobile (80% of traffic)
Check page load speed (should be <3 sec on 4G)
Simplify form fields (remove optional fields)
Verify form submissions reaching CRM in real-time
SYMPTOM: Leads coming in but not booking (<30% Lead→Booked)
Diagnosis: Intake problem (slow response or poor follow-up)
Fix:
Measure response time (pull last 20 leads, calculate avg time to first contact)
Target: <15 min during business hours
Implement 15-min follow-up sequence OR Voice AI
Check: Are you calling 3+ times before giving up?
Reality: If responding in 2+ hours, you'll often lose a large share of leads to faster competitors
SYMPTOM: Bookings happening but not showing up (high no-show rate)
Diagnosis: Confirmation system weak or missing
Fix:
Add 24h voice reminder ("Press 1 to confirm")
Add 3h SMS reminder
Goal: Reduce your no-show rate vs your baseline. Track it weekly and add the next reminder layer only if needed.
If still high: Call personally 4 hours before unconfirmed appointments
SYMPTOM: Shows but not closing (<25% show→close rate)
Diagnosis: Sales process issue (not ads problem)
Fix:
Shadow estimator on 3-5 site visits
Common issues: Not asking for the sale, no clear next steps, proposal takes 5+ days
Diagnosis: Targeting drift, creative fatigue, OR competition
Fix:
Check ZIP-level breakdown (is one ZIP burning budget with zero conversions?)
Launch new creative kit (audience may be fatigued)
Check frequency (>2.5 means oversaturation)
Google your main keywords - did competitor launch heavy campaign?
Temporarily decrease budget 20%, optimize, then scale again
SYMPTOM: Getting lots of out-of-area or below-minimum leads
Diagnosis: Targeting is loose OR booking page doesn't qualify
Fix:
Double-check Meta targeting (should be ZIP allowlist, not radius)
Add budget qualifier to form: "Most projects $30k-$150k. Does that fit your planning?"
Add service area validator: "We serve [list Tier A ZIPs]. Is your property in one of these areas?"
Consider ZIP field validation on form (blocks submission if not in service area)
GENERAL PRINCIPLE:
Fix ONE thing at a time, wait 7 days, measure result. Don't change creative AND targeting AND budget AND booking page in same week. You won't know what worked.
Priority order:
Fix anything broken (form not submitting, CRM not receiving leads)
Fix intake speed (if >30 min average response time)
Fix targeting (if >15% out-of-area leads)
Optimize creative (if CTR dropping below 0.8%)
Scale capacity (if hitting booking ceiling)
SCALING RULES
WHEN TO SCALE (Increase 20-30%):
All conditions must be true:
✓ 10+ leads generated minimum
✓ CPBE at or below target
✓ Lead→Booked 30%+ for 2+ weeks
✓ Campaign running 7+ days
✓ Crew has capacity for 20-30% more projects
How to scale:
Increase budget 20-30% every 48 hours
Example: $50 → $65 → $85 → $110
Monitor CPBE closely for 48-72 hours after each increase
If CPBE spikes 20%+, you scaled too fast—dial back 20%
WHEN TO HOLD (Keep budget flat):
Any of these conditions:
⚠ CPBE 10-20% over target (acceptable variance, monitor closely)
⚠ Lead→Booked trending down (was 40%, now 32%)
⚠ Creative showing fatigue (CTR dropping, frequency rising)
⚠ Crew approaching capacity (2-3 weeks until maxed)
⚠ Mid-optimization (testing new creative, adjusting targeting)
Action: Maintain current spend, optimize performance, prepare for next scale-up
WHEN TO DECREASE (Cut 20-30%):
Any of these red flags:
🛑 CPBE 30%+ over target for 3+ consecutive days
🛑 Lead quality declining noticeably (many unqualified, out-of-area)
🛑 Creative completely fatigued (CTR <0.6%, frequency >3.0)
🛑 Crew capacity maxed (can't handle more estimates)
🛑 Major operational change needed (estimator leaving, crew shortage)
Action: Reduce spend 20-30%, diagnose root cause, optimize, then scale back up once stable
Beyond $150/day: You typically need to either (1) expand geography (Tier B ZIPs), (2) add second channel (Google Search), or (3) increase creative refresh rate (new kit every 5-7 days instead of 10-14). Most $3-5M contractors max out at $100-150/day Meta spend in tight ZIP targeting. That's not failure—that's saturation in a defined market.
CAPACITY + BUDGET PLANNING WORKSHEET
Match ad spend to crew capacity (don't generate leads you can't serve):
CALCULATE AVAILABLE CAPACITY:
Current crew capacity: __________ projects/month
Current backlog: __________ projects scheduled
Available capacity: __________ projects (Capacity - Backlog)
Close rate (estimates→signed): __________%
Estimates needed: Available capacity ÷ Close rate = __________ estimates/month
LEAD-TO-BOOKED ASSUMPTIONS:
Fast intake (<15 min response OR Voice AI): 35-50% Lead→Booked
Translation: 2-3 leads per booked estimate
Slow intake (manual, 30+ min response): 20-30% Lead→Booked
Translation: 3-5 leads per booked estimate
Your Lead→Booked %: __________%
Leads per booked estimate: __________
BUDGET DIAL:
Desired booked estimates/month: __________
× Your CPBE: $__________
= Required monthly spend: $__________
÷ 30 days
= Daily budget: $__________
CAPACITY CONSTRAINT CHECK:
If crew maxed: Dial budget DOWN to match capacity
Example:
Crew can handle 8 projects/month
Close rate 30%
Need 27 estimates/month (8 ÷ 0.30)
CPBE $300
Budget: 27 × $300 = $8,100/month = $270/day
But: If crew already booked with 6 projects, only 2 slots available
Need only 7 estimates this month (2 ÷ 0.30)
Budget: 7 × $300 = $2,100/month = $70/day
Key insight:
Generating leads you can't service creates:
Long wait times (lowers conversion)
Higher no-shows (people find competitors)
Lower close rates (lost urgency)
Poor customer experience
When crew maxed, dial budget down. Don't keep spending just because ads are working.