Most contractors we talk to buy leads from three or four places and cannot say what a sold job costs them from any of them. The ads are not the problem. The problem is that nothing between the click and the signed contract is measured, so every platform looks the same and whoever pitched last wins the budget. What follows is the framework we install for clients, in the order we install it. We work with deck builders, but nothing here is specific to decks. It holds for any trade where the customer calls, texts or fills out a form and somebody has to close the job.
Each item gets its own guide and video in this series. This page is the map. There is also a one-page checklist (PDF) you can print and work through.
1. You own every account
Domain, hosting, website, Google Business Profile, Google Ads, Meta, Bing, Google Analytics, Google Tag Manager, call tracking and the CRM. You are the owner or admin on every one of them. An agency, a web designer or an employee gets user access under your account, never the other way round. When they leave, you remove them and nothing breaks.
We inherited one tag manager container that five different companies had published to over three years, each building on top of the last. Nobody owned the measurement from end to end, and nobody could say what was firing. That is what it looks like when the assets belong to whoever set them up.
The test: could you remove your current agency tomorrow and keep your site, your numbers, your reviews and your ad accounts? If the answer is no, start here before anything else.
2. A website you control, with a form that captures consent
It does not have to be pretty. It has to have four things. A login you hold. One phone number, shown the same way everywhere. A form that asks for name, phone, email and what the customer needs. And a checkbox on that form where the customer agrees to receive texts from you, because item 8 depends on it.
The form also has to be able to carry hidden fields, which item 5 explains. If your site builder cannot do hidden fields, that is a reason to move.
3. Google Business Profile, claimed, with a review habit
The map pack is the one channel that is free and in front of buyers with intent. Claim the profile, make yourself the primary owner, set the categories and service area correctly, and keep the hours and photos current.
Then build the habit: ask for a review after every completed job, every time. Reviews are the first thing a homeowner reads after clicking an ad, and on the reference account the review wall is the most visible difference between before and after.
4. Call, text and form tracking
Every way a customer can reach you gets a source attached. The business has one main line, the default number. Everything fixed gets its own tracking number that forwards to it: one for the trucks, one for yard signs, another for billboards, and a distinct number for the Google Business Profile. On the website, the number swaps by traffic source, so a visitor from a Google ad sees a different number than one who typed the address in. Texts to any of those numbers land in the same place. Form submissions land there too, tagged with the same source as the calls. CallRail does all three and runs roughly $50 to $100 a month. There are other tools, but this is what we install.
Use the auto-tagging built into Google, Meta and Bing. No custom URL parameters unless there is a specific reason for them, and we have yet to run into one.
The first guide in this series, on call tracking, walks through the whole install.
5. The source travels with the lead
This is the piece almost every setup misses, and it is the one that makes the rest of the list pay off.
Call tracking tells the ad platform that a call happened. Your CRM has to know it too, and it has to know which click the lead came from. That means the click ID from Google, Meta or Bing, plus the source, gets captured into hidden fields on your form and stored on the contact. Calls carry their source through the tracking tool. Forms only carry it if you build the bridge.
On the account we took over, the tag manager held eighteen tags, all firing into ad platforms and analytics, and not one writing anything to the CRM. The tools had been bought. The connection had never been built. Measurement ended where the money started. One tag that pushes the click ID into a hidden form field fixed it, and every claim we can make today about revenue per dollar rests on that one tag.
6. A system of record with three fields from day one
It can be CallRail on its own to start, a Google Sheet, an Airtable base, or a proper CRM. What matters is that it exists, that every lead lands in it, and that it has three fields filled in from the first day:
| Field | What goes in it |
|---|---|
| Source | The channel the lead came from, carried in from item 5 |
| Status | New, contacted, appointment, quoted, sold or lost |
| Job value | The contract amount, entered the day it is signed |
And one hygiene rule: every lead gets a status, and every sold job gets a value. No exceptions, or the reporting in item 10 will lie to you.
The account we inherited had one tracked lead source and every deal recorded as direct or untracked. That is what a CRM looks like without these three fields.
7. Somebody answers during business hours, and there is a rule for when they do not
Calls, texts and form leads all get a live human response during working hours. That can be you, an office manager or an answering service. The staffing is your call. The rule is not optional: a missed call gets a text back within a minute, and a form lead gets a call back inside a few minutes, not at the end of the day. Your tracking tool will show you the answer rate. Look at it weekly.
8. Speed to lead for nights, weekends and overflow
Anything that arrives outside hours, or that nobody could get to, gets an automatic text within a minute. It acknowledges the request, asks one question to keep the conversation going, and gives a time when someone will call. This uses the consent from item 2 and the system from item 6. It is not a replacement for item 7. It is what stops a Saturday night lead from being a Monday morning voicemail to a customer who already booked someone else.
9. Follow-up for the unbooked and the unsold
Speed to lead covers the first hour. Most leads do not book on first contact, and most quotes do not sign on the day. Three scheduled sequences cover the rest: leads that never booked an appointment, quotes that have not signed, and past customers who could send a referral or need the next project done. Each one stops the moment the customer replies or books.
10. Reporting, to you and back to the platforms
Reporting runs in two directions.
To you: a monthly channel table with spend, appointments, sales, revenue and return for every channel, including the lead aggregators. It is only possible because items 5 and 6 exist. This is the table that tells you which platform to fund next month and which to cut.
Back to the platforms: sold jobs and their values sent to Google, Meta and Bing, so their bidding learns what a sold job looks like instead of what a form fill looks like. One rule here: one conversion action per event, one tag firing it. The container we inherited had three overlapping sets of conversion tags for the same events, which is how the numbers in the ad platform drift away from the numbers in your bank account.
Then, and only then, test channels
With the ten items in place, testing a platform becomes a measurement rather than a gamble. Paid search, Meta, Local Services Ads, Angi, Thumbtack and the rest are all channels, and they all go through the same machine.
Test one at a time, with a fixed budget and a window long enough for jobs to close. Judge the test on cost per sold job, not cost per lead. Thirty leads can mean thirty phone numbers nobody answered. Give each aggregator its own tracking number so its calls are counted like everybody else’s.
And have something to say. The framework measures. It does not persuade. A tracked ad for a company with no offer, no guarantee and no reviews will measure very precisely that nobody called.
What we saw
On the reference account, a deck builder we work with, every one of the ten items was in place before the 2026 season started. Over February to May 2026, marketing cost of sale across our channels was 4.3 percent, against an 8 to 15 percent norm for home services. That number is only knowable because items 5, 6 and 10 exist. Before the framework went in, nobody on that account could have calculated it.
How you know it is in place
Take last month’s sold jobs. For each one, name the channel it came from, what that channel cost you for the month, and how long the customer waited for a first response. If you can do that for every job from memory or from one report, the framework is in. If you cannot, the checklist below shows which item is missing.
Download the one-page checklist (PDF). Print it, tick what is in place, and start with the first empty box.
Everything above is free to build yourself, and the guides in this series show how, one item at a time. If you would rather have us install it and run it, apply and we will look at your market and your numbers.
Read next
How to set up call tracking with CallRail
Item 4 in practice. The main line, the website pool and the snippet, installed step by step on a real site, with the full video walkthrough.
Build it yourself, or have us install it
Everything in this guide is free to build on your own. If you would rather have the whole engine installed and run for you, tracking, attribution, speed to lead, follow-up and the monthly channel table, apply and we will take a look at your market and your numbers. One company per market.