This is the full playbook. Not a 1,500-word blog post. Not a 10-step listicle. The complete system we'd hand a roofing company owner who wants to build a marketing engine that books jobs while they're on a ladder.
If you read it end to end and execute even half of it, you will outwork 90% of the roofing companies in your market. That's not a brag. That's because most of the competition is still treating marketing like a series of disconnected campaigns instead of an integrated system. The playbook below is the system.
It works for residential and storm restoration. It works for retail roof replacement. It works for the $1.5M shop trying to break $3M and the $5M shop trying to break $10M. The principles don't change. The dial settings do.
Want to see the gap version first? Read our DFW roofing marketing audit — a real $3M roofer torn apart end to end. Or, if you'd rather grade your own setup in 3 minutes, use the Marketing Health Score.
Here's how it fits together.
1. The Foundation
Before you spend a dollar on marketing, you need to make three decisions. Get these wrong and every channel below gets harder and more expensive.
Define your market
There are at least four distinct roofing businesses inside the word "roofer," and they don't share marketing playbooks.
- Residential storm restoration. Insurance-claim-driven. Seasonal. Door-knock heritage. Lead source mix: storm chasers, door-to-door, GBP, paid search.
- Residential retail replacement. Out-of-pocket or financed. Steady year-round. Trust-driven, longer sales cycle. Lead source mix: GBP, SEO, referrals, LSA.
- Repair and service work. Small ticket, high frequency. Pulls in upsells to replacement. Lead source mix: GBP, LSA, emergency search.
- Commercial / industrial. Long sales cycle, RFP-driven, relationship-heavy. Lead source mix: outbound, networking, content marketing.
Pick one as your primary. Pick a second as supporting. Ignore the rest until you cross $5M. A $2M shop trying to win all four ends up winning none.
Set your budget
The rule of thumb across home services in 2026:
- 5% of gross revenue — maintenance mode. You won't grow. You'll defend.
- 8–10% of gross revenue — growth mode. Most $1–$5M roofers should be here.
- 12–15% of gross revenue — aggressive growth. Storm-driven shops often spend at this rate during storm season and pull back in winter.
A $3M roofer in growth mode should expect a $240,000–$300,000 annual marketing budget. That number scares owners who've been spending $40K, but the math on cost per booked job changes the conversation fast (more on that in section 10).
Choose your channels
Most roofers spread budget too thin across too many channels. The integrated stack that actually books jobs has five layers — and the order matters.
- Foundation: website + GBP + tracking (no spend, but unskippable)
- Reputation engine (low spend, compound returns)
- Local SEO + city pages (mid-spend, 90–180 day payoff)
- Paid search + LSA (high spend, fast payoff, dial up and down by season)
- Content, social, retargeting, GEO (lower spend, long-term moat)
Build them in this order. Don't skip 1 to do 4. We watch roofers burn $10K/month on Google Ads pointing at a 4-second-LCP homepage every single month.
2. The Website System
Your website is not a brochure. It's the engine that converts every paid click, every GBP visit, every referral phone-Google into a booked job. Treat it like infrastructure.
Performance baselines
Three numbers, non-negotiable:
- Largest Contentful Paint (LCP) under 2.5 seconds on mobile 4G
- Cumulative Layout Shift (CLS) under 0.1
- Interaction to Next Paint (INP) under 200ms
Anything slower bleeds money. Roofing inbound traffic is 60–70% mobile. Every second above 2.5s LCP costs roughly 10% of those mobile sessions. Fix the hero image first (WebP, responsive srcset, lazy loading on below-fold images). That single change usually moves LCP under 2.5s.
What every roofing site needs above the fold
- Phone number, tappable, in the header — visible on mobile without a menu tap
- Sticky "Call Now" or "Free Inspection" CTA on mobile scroll
- Hero headline that names a city, a service, and a differentiator ("Plano Roof Replacement — Lennox-level warranty, GAF Master Elite")
- 24/7 storm response language if you offer it (during storm season this lifts mobile conversion 15–25%)
- Financing offer ($0 down, 0% for 12 months — call it out by name)
- Trust badges visible (BBB, GAF Master Elite, Owens Corning Platinum, manufacturer dealer tier)
- Aggregate review count and star rating ("4.8★ from 412 Google reviews")
Below the fold, in order
- Service blocks — Roof Replacement, Storm Damage, Roof Repair, Gutters, Commercial. Each clickable.
- Real photos — your trucks, your crews, real DFW (or wherever you operate) homes. Not stock.
- Service area map or city list with each city linking to its own page.
- Before/after gallery — drone shots win here. Six to twelve examples minimum.
- Insurance claim walkthrough if you do storm — a 3-step "What to expect" graphic.
- Reviews carousel — pulled live from Google via widget or feed, not hard-coded.
- Founder or owner photo + short story — 200 words in the owner's voice. People hire people.
- FAQ section — 6–10 questions, accordion format, marked up with FAQPage schema.
- Final CTA + form — name, phone, address, service. Four fields max.
Integrations that matter
The website is one node in a system. Connect it.
- CRM: ServiceTitan, AccuLynx, JobNimbus, or Housecall Pro for smaller shops. Pick the one your office actually uses. Every form submission and every call should land in CRM, tagged by lead source.
- Online booking: ServiceTitan and Housecall Pro both offer embeddable booking widgets. Use one. Letting a homeowner pick a free-inspection slot at 11pm Sunday from your homepage closes more leads than any salesperson.
- Call tracking: CallRail is the industry standard. Track every phone number on the site separately by source (organic, GBP, PPC, LSA, direct). Without this you cannot measure what's actually working.
- Live chat or chatbot: Optional but high-ROI. Live chat from a real human during business hours converts 2–3x better than a chatbot — but a chatbot is better than nothing after hours.
Conversion rate benchmarks
For a roofing site doing things right:
- Total visitor-to-lead conversion: 4–8% (industry-typical sites do 1–2%)
- Paid landing page conversion: 10–18%
- City page conversion: 5–10%
- Mobile vs. desktop: mobile should be within 80% of desktop conversion. If mobile is much lower, your mobile experience is broken.
3. Local SEO Domination
Local SEO is the highest-leverage marketing investment a roofer can make. It compounds. A well-built local SEO foundation generates leads in year three for free that paid search would cost $200 each.
Google Business Profile — the checklist
The GBP is your single most important free asset. Most roofers have it set up at 30% completeness. Push it to 95%+.
- Primary category: "Roofing contractor"
- Secondary categories (add 3–5): "Gutter cleaning service," "Insulation contractor," "Siding contractor," "Contractor," "Construction company"
- Service area defined by ZIP or city list — match your actual coverage
- Services list: 20+ entries, each with description and price-from where you can
- Products tab: populated with shingle brands you install (GAF, Owens Corning, CertainTeed, Malarkey, Atlas) with photos
- Booking link: connected to your ServiceTitan/Housecall Pro scheduler
- Messaging: ON, with a real response SLA under 30 minutes during business hours
- Photos: 50+ minimum. One new photo per completed job, posted weekly. Geotag photos to the project ZIP if you can.
- Posts: weekly minimum. They expire in 7 days — consistency beats perfection. Post about completed jobs, seasonal tips, financing offers, customer reviews.
- Q&A: seed the top 8 questions you get on every call with owner-provided answers. Monitor weekly for new ones.
- Reviews: see section 5
Review velocity targets
Google's local pack ranking algorithm weighs review velocity heavily. Volume matters. Recency matters more.
- Minimum target: 8 new Google reviews per month
- Growth target: 15–25 new Google reviews per month
- Storm-season target: 30+ new reviews per month
A roofer running two crews completes 8–15 jobs per week. Two to four of those should become reviews. If yours aren't, the gap is automation (section 5).
Citation building
Local citation parity is table stakes. The minimum list:
- BBB (claimed, A+ if possible, completed profile with photos)
- Angi (formerly Angie's List) — paid tier or free
- HomeAdvisor
- Yelp — claimed even if you hate it, because it powers Apple Maps
- Nextdoor — verified business profile, monthly Local Deal
- Houzz
- Thumbtack
- Manufacturer locators: GAF Master Elite contractor finder, Owens Corning Platinum dealer locator, CertainTeed credentialed contractor list
- Local chamber of commerce
- Texas Roofing Contractors Association (or your state equivalent)
Each citation needs identical NAP (name, address, phone). Inconsistent NAP across citations is one of the most common local SEO bugs we find on audits.
City pages — the highest-leverage SEO play
For a DFW roofer, this means 15–25 unique city pages — Plano, Frisco, McKinney, Allen, Prosper, Flower Mound, Southlake, Colleyville, Keller, Highland Village, Lewisville, Carrollton, Coppell, The Colony, Garland, Richardson, Rockwall, Mesquite, Grapevine, Las Colinas, plus your home base.
Each city page needs:
- 1,000–1,500 unique words (not spun, not templated)
- A unique customer testimonial from a real address in that city
- At least one job-site photo from that ZIP
- Local context (storm history, common roof types, HOA details if relevant)
- Internal links to relevant service pages (roof replacement, storm damage, repair)
- Embedded GBP map centered on that area
- City-specific FAQ schema
City pages generate the long-tail organic traffic that compounds. A roofer with 20 well-built city pages typically pulls in 30–60 organic-first form fills per month within 6–9 months — at zero marginal cost.
Schema markup — the essentials
Add these to every page where they apply:
- LocalBusiness on the homepage with NAP, openingHours, areaServed, priceRange, aggregateRating
- Service on each service page with offer, areaServed
- FAQPage on the homepage, service pages, and city pages
- Review for individual customer reviews when displayed
- BreadcrumbList on every page deeper than the homepage
- Product on shingle/brand pages
Schema is one of the cheapest interventions with the highest carryover value into AI search (section 8).
4. Paid Lead Engines
Paid is where you buy the leads SEO doesn't generate yet. Get the structure right and paid becomes the most predictable channel you have.
Google Ads structure
Most roofers run one big "Roofing" campaign with everything jammed into it. That's why their Quality Scores are awful and their costs per click are higher than they should be. Split it.
Campaign structure for a residential roofer:
- Brand campaign — your company name and variants. $300–$800/month. Defensive, very high ROAS, prevents competitors from showing up on your name.
- Roof Replacement campaign — by city. One ad group per city (Plano, Frisco, McKinney, Allen, etc.). Each ad group points to a dedicated landing page for that city.
- Storm Damage campaign — only on during/after storm events. High intent, expensive clicks, fast ROI when timed right.
- Roof Repair campaign — small ticket but high frequency. Often a loss leader that pulls into replacement work.
- Commercial campaign — if you do commercial. Different keywords, different landing pages, different KPIs.
Budget allocation by market
- Small market (population under 200K, low competition): $1,500–$3,000/mo across all campaigns
- Mid-market (DFW suburb, Austin, San Antonio): $5,000–$10,000/mo
- Highly competitive (downtown Dallas, Houston, large metros): $10,000–$25,000/mo
Mandatory ad extensions
Without these you're paying full freight for half the visibility:
- Call extensions — phone number tappable from the SERP
- Location extensions — office address shown
- Sitelink extensions — 4–6 links to specific pages (Roof Replacement, Storm Damage, Financing, About)
- Promotion extensions — current offer ($500 off, free inspection)
- Structured snippet extensions — services, brands, certifications
- Image extensions — your best 3–5 job photos
- Lead form extension — for mobile, optional but worth testing
Landing pages — the rule
Never send paid traffic to your homepage. Every paid campaign needs a dedicated landing page built for that specific search intent. Dedicated landing pages typically convert at 2–4x the rate of a homepage for paid traffic. Combined with proper extensions, this often halves your cost per booked job.
A roofing PPC landing page should have:
- One headline matching the ad
- One CTA
- One form (4 fields max)
- Social proof above the fold (aggregate rating + count + 1–2 testimonials)
- Trust badges
- Financing call-out
- No navigation menu (don't let them leave)
- Mobile click-to-call sticky bar
Local Services Ads (LSA)
If you are not enrolled in Google Local Services Ads with the Google Guaranteed badge, fix that this week. For roofers, the economics are typically the best of any paid channel:
- Cost per lead (DFW roofing, 2026): $20–$45
- vs. Google Ads: $80–$150 per click, 8–15% click-to-call conversion = $80–$300 cost per actual lead
LSAs also occupy the top three Maps slots above traditional organic results, so they dominate visibility on mobile emergency searches. Verification takes 2–4 weeks (background checks, license checks, insurance verification). Start the process now.
Meta and YouTube layers
- Meta retargeting: $500–$1,500/mo. Audience: anyone who visited the site or watched a YouTube video in the last 90 days. Creative: educational + financing offer. Recovers 8–15% of warm-but-not-yet-ready traffic.
- Meta prospecting: $1,000–$3,000/mo. Audience: lookalikes of past customers, plus interest targeting (homeowners, recent movers, insurance claim adjacent). Creative: storm damage education, financing, review-led.
- YouTube: $500–$2,000/mo. Six-second bumper ads + 30-second pre-roll on local YouTube inventory. Drone before/after content performs best. Brand awareness play with a measurable lift in branded search.
Budget allocation
For a $250K annual marketing budget on a residential roofer:
- 35% — Google Search Ads (~$87K/yr)
- 20% — Local Services Ads (~$50K/yr)
- 12% — Meta (retargeting + prospecting) (~$30K/yr)
- 8% — YouTube + display retargeting (~$20K/yr)
- 25% — SEO, content, GBP, automation, tools, photo/video production (~$62K/yr)
5. The Reputation Engine
Reviews are not a marketing tactic. Reviews are infrastructure. They affect every other channel — local pack rankings, ad Quality Scores, conversion rates on every landing page, AI citation likelihood.
Tools
Pick one. Don't try to build it yourself.
- Podium — strong choice, ~$300+/mo. Best-in-class review request flow and webchat-to-text.
- Birdeye — similar pricing tier, broader feature set, deeper reporting.
- NiceJob — best for shops under $3M, ~$75–$100/mo. Lighter feature set, much friendlier price.
- CRM-native — ServiceTitan Marketing Pro, AccuLynx review automation, JobNimbus review tool. Often the cleanest choice if you already run one of these CRMs.
The flow
The flow is the same regardless of tool:
- Job marked complete in CRM
- 60–90 minutes later (not days), automated text fires to the customer's mobile with a one-click Google review link
- If they click 4–5 stars, they go directly to your Google profile to leave the review
- If they click 1–3 stars, they're routed to a private feedback form first (recovery opportunity before public)
- Owner gets notified of every review, drops in a personalized response within 24 hours
Response templates
Five-star responses should not be templated. Reference something specific from the review ("Glad we could get the tear-off done before the next storm rolled in for you, Mike — appreciate the trust.")
For complaints, the formula:
- Thank them for the feedback
- Acknowledge what went wrong specifically
- Take responsibility, don't deflect
- Describe the fix (or that you've reached out privately)
- Sign with the owner's name
Never argue. Never get defensive. Future customers read these responses more carefully than the reviews themselves.
Velocity targets
- Minimum: 8 new Google reviews/month
- Healthy: 15–25/month
- Storm season: 30+/month
Once you cross 200 reviews at 4.7+ average, your local pack rankings start consolidating. Once you cross 500 reviews you become the dominant local trust signal in your city.
6. Content & Social
Most roofers post wrong. They post fancy graphics nobody cares about and skip the content that actually moves business — real work, real people, real outcomes.
What to post
The 90/10 rule: 90% job content, 10% brand/team. The job content is what builds trust.
- Drone before/after — single highest-engagement content roofers produce
- Tear-off walkthroughs — short vertical video of a crew working
- Customer testimonial videos — 30–60 seconds, shot on site at job completion
- Storm content during storm season — radar, damage examples, "what to check"
- Educational — insurance claim walkthroughs, "what's actually wrong with your roof," financing explainers
- Team spotlights — meet a tech, a crew member, your office staff
- Behind the scenes — truck-loading mornings, supply yard pulls, daily life
Cadence
- Instagram + Facebook: 3 posts per week minimum. Mix of stills and Reels.
- TikTok + YouTube Shorts: 2 short vertical videos per week. Same content, different platforms.
- YouTube long-form: 1–2 per month. Drone walkthroughs and educational explainers (5–10 minute videos perform best for roofing).
- Google Business Profile Posts: weekly minimum, same content repurposed.
Video strategy
A single phone-recorded job site visit can produce a week of content if you shoot it right:
- 1 vertical short-form video (TikTok, Shorts, Reels)
- 3–5 stills (IG, FB, GBP)
- 1 quote-card with a customer testimonial
- 1 long-form YouTube cut at the end of the month combining several jobs
You do not need a videographer to start. You need a phone, a stabilizer, and a tech who will spend three minutes shooting before tearing off the first shingle. Hire it out once you've proven the workflow.
Hashtag and discoverability strategy
For roofing:
- Location + service (#PlanoRoofer #DallasRoofing #FriscoRoofReplacement)
- Brand + service (#GAFShingles #OwensCorningRoof)
- Industry community (#RoofingLife #RoofersOfInstagram)
- General reach (#Roofing #Construction #HomeImprovement)
Six to ten hashtags per post. More than that signals spam to the algorithm.
7. Marketing Automation
Automation is what separates a marketing system from a marketing collection of tactics. Build it once, it runs forever.
The non-negotiable automations
-
Missed-call text-back. When the phone rings and nobody answers, an automated text fires within 30 seconds: "Sorry we missed you — this is [Company]. We're on another call. What can we help with?" Recovers 25–40% of missed calls that would otherwise be lost. Available in CallRail, Podium, JobNimbus, ServiceTitan, and standalone tools like CallSource and Numa.
-
New lead 5-minute response. Every form fill and every new call triggers an SMS within 5 minutes and a callback attempt within 15. Lead conversion rates drop sharply after the 5-minute mark — homeowners are texting three contractors at once and booking the first one that responds.
-
Estimate-not-booked nurture. When a free inspection is completed but no contract signed, a 14-day sequence kicks in. Touchpoints: day 1 (estimate summary email), day 3 (financing reminder text), day 7 (case study email — similar job for a neighbor), day 10 (call from the owner), day 14 (final reminder with offer).
-
Post-job review request. 60–90 minutes after job completion — automated text with one-click review link (section 5).
-
Annual maintenance reminder. One year after install — text and email reminding the customer of their annual inspection (if you offer one). Pulls in repair work and refers neighbors.
CRM tagging
Every lead in your CRM should be tagged with:
- Lead source (GBP, organic, paid search, LSA, Meta, referral, direct)
- Service type (replacement, repair, storm, commercial)
- Estimate amount
- Stage (lead → estimate → contract → completed)
- Insurance involvement (yes/no, carrier)
Without consistent tagging, attribution becomes guesswork in section 10.
Tool stack
- CRM: ServiceTitan (enterprise), AccuLynx (roofing-native, mid-market), JobNimbus (mid-market), or Housecall Pro (smaller shops). Pick one. Use it.
- Call tracking: CallRail, sometimes bundled with the CRM.
- Marketing automation layer: Most modern CRMs include this. If yours doesn't, layer in Zapier + HighLevel or similar.
- Review automation: Podium, Birdeye, NiceJob, or CRM-native.
8. GEO & AI Search
GEO — Generative Engine Optimization — is the new layer most roofing competitors haven't started building yet. This is your first-mover window.
What's happening
Homeowners increasingly ask ChatGPT, Perplexity, and Google's AI Overview for contractor recommendations the same way they used to ask Google. "Best roofing company in Plano TX." "Who should I use for a roof replacement in Frisco?" The companies that get cited by AI models in 2026 will compound that visibility for years. The ones who wait will be playing catch-up against entrenched citations.
How AI search picks who to cite
AI models build entity descriptions from a combination of:
- First-party content on your own site (About page, service pages, capability descriptions)
- Schema markup that defines what kind of entity you are
- Citations across the broader web (BBB, Angi, manufacturer directories, news coverage, Reddit mentions, industry publications)
- Structured FAQ content matching common questions
The GEO foundation
- Comprehensive schema — LocalBusiness, Service, FAQPage, Review, Product (covered in section 3)
- Expanded About page — 800+ words, written as a clear entity description: founding year, leadership names, certifications, service areas, capabilities, differentiators, awards. This is what AI models pull from to summarize you.
- Capability statements — pages dedicated to specific capabilities (e.g., "Tesla Solar Roof installation," "low-slope EPDM commercial work") with clear language AI can extract.
- FAQ hub — 20–30 questions answered comprehensively, each marked up with FAQPage schema. Format: clear question, definitive answer in the first paragraph, supporting detail after.
Citation graph
You will not get a Wikipedia article (the bar is too high). You can realistically build:
- A complete, photo-rich BBB profile
- A complete, populated Angi profile
- Manufacturer locator presence (GAF Master Elite, Owens Corning Platinum)
- Quotes in local TV news during storm coverage (call assignment desks in March, August, and November — they need experts on standby)
- Mentions in trade publications (Roofing Contractor magazine, Western Roofing) — pitch story ideas, not your company
- Authentic, helpful presence on Reddit r/Roofing (don't spam — answer real questions with depth)
- Industry association membership and directory listings
Testing your AI presence
Once a month, run a defined set of test queries across ChatGPT, Perplexity, and Google AI Overview. Document who appears and who doesn't. Track changes over time. Within 90 days of consistent GEO work, you should start appearing on at least 2–3 of your test queries.
9. The 90-Day Launch Plan
If you're starting from zero — or restarting after firing a previous agency — execute this in order. Don't skip steps to chase a single tactic.
Month 1 — Foundation
Week 1:
- Audit and complete GBP to 95%+
- Claim and complete all citation profiles
- Install GA4, Google Search Console, CallRail (or equivalent), Meta Pixel
- CRM cleanup: tag every recent lead by source and service
Week 2:
- Rewrite homepage and top 10 page title tags and meta descriptions
- Fix h1 hierarchy across the site
- Add LocalBusiness, Service, and FAQPage schema markup
- Compress hero image, convert to WebP
- Add sticky mobile call-CTA bar
- Add visible aggregate review rating above the fold
Week 3:
- Build first 5 city pages (highest-revenue cities first)
- Add financing offer to homepage hero
- Add insurance claim walkthrough (if storm)
Week 4:
- Launch automated review request system
- Install missed-call text-back
- Pick and implement CRM-tagging convention
Month 2 — Engine On
Week 5:
- Build 3 dedicated PPC landing pages (Roof Replacement, Storm Damage, Roof Repair)
- Restructure Google Ads campaigns; repoint to landing pages
- Add every ad extension
Week 6:
- Apply for and verify Google Local Services Ads
- Begin LSA spend at $75–$100/day for 14 days of data
Week 7:
- Build remaining 15 city pages
- Internal-link aggressively from city pages to service pages and vice versa
Week 8:
- On-site photo and video shoot at 3 active job sites
- Begin posting cadence on GBP, Instagram, Facebook, TikTok
Month 3 — Scale and GEO
Week 9:
- Launch FAQ content hub (8 pieces, each FAQPage schema'd)
- Expand About page to 800+ words
Week 10:
- Pitch local news for storm-season expert availability
- Submit to manufacturer locators, BBB, Angi, HomeAdvisor with completed profiles
Week 11:
- Launch Meta retargeting + prospecting layers
- Add YouTube bumper retargeting
Week 12:
- First monthly AI citation test across ChatGPT, Perplexity, Google AI Overview
- Set quarterly review velocity goal (30+/month)
- Build first marketing dashboard (section 10)
By day 90 you should have a complete integrated marketing system running. You should also have data — three months of clean attribution showing what's working.
10. Measuring What Matters
The reason most roofers can't tell if their marketing is working is they're measuring the wrong things. Impressions, clicks, even cost per lead — none of these tell you the only number that matters.
The only KPI that matters
Cost per booked job. Not cost per click. Not cost per lead. Cost per signed contract.
Calculate it monthly per channel: channel spend divided by jobs signed attributed to that channel.
A roofing replacement averaging $14,000 with a 35% gross margin generates $4,900 in gross profit. Math out from there what you can afford to spend per booked job by channel:
- LSA: $200–$500 per booked job (typically excellent)
- PPC: $400–$1,200 per booked job (decent, varies by market)
- Organic / GBP: $50–$200 per booked job (best, but takes months to build)
- Meta: $500–$1,500 per booked job (variable; depends on creative)
Supporting metrics
- Booked-to-completed conversion — what % of signed contracts make it through to a completed install (insurance hold-ups, financing fall-throughs)
- Average ticket size by source — referral leads typically ticket 15–25% higher than paid; pricing your funnel matters
- Marketing % of revenue — track monthly; should stay in your target band (5–15%)
- Lead-to-estimate conversion — % of leads that book a free inspection
- Estimate-to-contract conversion — % of estimates that sign (your sales close rate; mostly a sales process metric, not marketing, but worth watching)
Dashboard
Build one dashboard. One place to look on Monday morning. Tools:
- Google Looker Studio (free) — connects to GA4, Google Ads, GBP Insights, Search Console
- CallRail dashboard — call volume and source attribution
- CRM dashboards — pipeline value, conversion rates, ticket size by source
The dashboard should answer five questions in 30 seconds:
- How many booked jobs did we close last week and last month?
- What's our cost per booked job by channel?
- Where are we underspending (channels with low CPBJ that could absorb more)?
- Where are we overspending (channels with bloated CPBJ)?
- What's our marketing % of revenue trend?
If your dashboard can't answer those, it's the wrong dashboard.
Attribution
Multi-touch attribution is the right answer technically; first-touch attribution is the practical answer for most roofers. A homeowner sees your truck, googles your name, sees your GBP, visits your site, leaves, googles "best roofer in Plano," sees an ad, clicks, fills out a form. Was that GBP, organic, paid? All three.
The honest answer most $1–$5M roofers should use: track the lead source the customer reports when asked ("How did you hear about us?"), supplemented by call tracking and CRM data. Don't get paralyzed trying to attribute perfectly. Get directional. Make decisions on the directional data.
You've Got the Playbook. Now What?
This is the system. Build it and you will outwork 90% of the roofing companies in your market.
Building it is the hard part. Most owners read a playbook like this, nod along, save it to their desktop, and then never execute because there's always a roof to repair and a crew to dispatch.
That's what we do. We build the marketing system so you don't have to. You stay on the ladder, we book the jobs.
If you want help executing any part of this playbook — or all of it — book a 30-minute Growth Audit. We'll look at where you are today, walk through where this playbook would take you in 90 days, and tell you honestly whether you should run it yourself or hand it to us. No pitch deck, no contract, no pressure.
→ See the trade-specific service mix: our roofing marketing services → Calculate your real cost per booked job: Cost Per Lead Calculator