1. The goal
Revenue goal for [period]: $[ ] Current revenue: $[ ] per month Gap to close: $[ ] per month Average signed job: $[ ] Extra signed jobs needed per month: [gap ÷ average job] Job types we want more of: [ ] Job types we want less of: [ ]
Most contractor marketing plans are a list of channels. This one starts with the jobs you need, works back to the estimates and leads that takes, then decides where the money goes.
By the BlueSmith team · Updated
Work top to bottom. The goal and economics blocks set the numbers every later block depends on.
Use your last 6–12 months of real jobs for close rate and average job value. Leave a blank rather than guess.
Copy the monthly review block into a new note each month and compare it against the plan.
Written by BlueSmith as examples. Not client messages or results.
Revenue goal for [period]: $[ ] Current revenue: $[ ] per month Gap to close: $[ ] per month Average signed job: $[ ] Extra signed jobs needed per month: [gap ÷ average job] Job types we want more of: [ ] Job types we want less of: [ ]
Example numbers, not a benchmark. Replace them with your own.
Average job value: $[ ] Gross margin: [ ]% Close rate (signed ÷ estimates run): [ ]% Booking rate (booked estimates ÷ leads): [ ]% Estimates needed per signed job = 1 ÷ close rate = [ ] Leads needed per signed job = estimates per job ÷ booking rate = [ ] Most we can spend to win one job and keep our margin: $[ ] Example: $20,000 average job, 25% close rate = 4 estimates per signed job. If 50% of leads book, that’s 8 leads per signed job. 5 extra jobs a month = 20 estimates = 40 leads.
More leads than your crew can build just makes for longer wait times and unhappy homeowners.
Estimators: [ ] Estimates one person can run per week: [ ] Crews: [ ] Jobs we can start per month: [ ] Current backlog: [ ] weeks Slow months we most want to fill: [ ] Can we take on the extra jobs from block 1? Yes / Need to hire first / Phase it in over [ ] months
Who: [owns the home, project type, typical budget range] Service area: [towns / ZIPs] Priority areas: [ ] What usually starts the project: [failure, move-in, growing family, aging system, season] Questions they ask before calling anyone: [ ] Objections we hear at the estimate: [ ] Why they pick us over the next bid: [ ]
Main job type to advertise: [ ] What they get by booking: [on-site estimate, written scope, price range, design visit] Price signal before booking: [range on the page / estimator / none yet] Proof we can show: [project photos, video from real jobs, finished work in the area] Warranty or guarantee we actually offer: [ ] Honest limits to state up front: [lead time, what’s not included]
Run one or two channels well before adding a third. Ad spend is paid to the platform.
- Referrals and past customers: [how we ask, who owns it] - Google Business Profile: [who updates it, how often] - Google search ads: [job types] · $[ ]/month - Facebook and Instagram ads: [job types] · $[ ]/month - Lead marketplaces (Angi, Thumbtack, others): [keep / cut / test] - Yard signs, truck, direct mail: [ ] Total monthly ad spend: $[ ] What we’ll judge each channel on: cost per signed job
Texting a homeowner needs their consent and a clear way to opt out, such as “Reply STOP to opt out.”
First response to a new lead: within [ ] minutes, by [person / automatic text] Attempts before marking unreachable: [ ] over [ ] days How homeowners book: [online calendar / callback / both] Estimate reminders: [day before / morning of] Proposal follow-up schedule: [day ] · [day ] · [day ] Past estimates to revisit this quarter: [count] from the last [ ] months Who owns follow-up: [name]
Per channel, every month: Spend · Leads · Booked estimates · Estimates run · Signed jobs · Revenue signed Cost per booked estimate = spend ÷ booked estimates Cost per signed job = spend ÷ signed jobs Return = revenue signed ÷ spend Where the numbers live: [CRM / report / spreadsheet] Who updates them: [ ]
Month 1: [tracking set up, landing page built, first campaign live] Month 2: [ ] Month 3: [ ] Decision date: [date we decide to keep, change, or cut each channel] What would make us stop early: [ ]
Copy this block into a new note each month.
Month: [ ] Signed jobs vs goal: [ ] of [ ] Revenue signed vs goal: $[ ] of $[ ] Best channel by cost per signed job: [ ] Weakest channel: [ ] → keep, fix, or cut? Biggest leak this month: response time / booking / no-shows / proposals / close One change for next month: [ ] Who owns it: [ ]
A yearly number is hard to act on. Break it into the jobs, estimates, and leads you need to hit every month.
Leads needed per month: 48
$1,500,000 a year at $25,000 per job, 30% of estimates closed, 35% of leads booked.
See what we’d build for these numbersStarts with example numbers. Change them to yours. Arithmetic only, not a promise of results.
Short enough that you’ll open it every month. The ten blocks here fit on a few pages. A long plan nobody reads is worse than a short one the office checks weekly.
Count the last 20 or 30 estimates you ran and how many signed. That’s a starting close rate. Leave the field blank until you have it rather than borrowing someone else’s number.
Work it back from block 2: the most you can spend per signed job, times the jobs you need. There’s no universal percentage. The revenue goal calculator helps run the numbers.
Yes. Start with the acquisition assessment, then on a call we walk through your job economics and where your leads leak. You keep the plan either way.
Seven questions. Two minutes. See the one part of your engine holding your projects back.
Show me where I’m losing jobsFree 2-minute assessment · No pitch, no obligationAvg response time 2.5 minutes