Marketing ROI tracking for a local service business means connecting each marketing cost to the qualified leads, booked jobs and revenue it helped produce. For an owner in the Twin Cities East Metro, the St. Croix Valley or western Wisconsin, that usually means following a call or form from the first click or mailer all the way to a paid job, whether it was a fall furnace tune-up or a spring roof repair. Traffic and form counts are useful diagnostics, but they are not return.

The practical system is smaller than most reporting stacks. Tag the source, capture calls and forms, move every real opportunity through one CRM pipeline, record the value of won work and review the same few numbers every month. That is lead to revenue tracking, and it gives an owner enough evidence to cut waste and protect the channels that pay.

Marketing ROI tracking starts with one honest formula

The basic formula subtracts marketing cost from the financial return attributed to that marketing, divides by marketing cost, then multiplies by 100. The hard part is deciding what belongs in the return number.

Revenue is easy to find, but it can exaggerate performance when job margins vary. A $10,000 project with heavy material and subcontractor costs is not equal to $10,000 of high-margin service work. If your accounting is reliable, use gross profit from won jobs. If it is not, start with collected revenue and call the metric revenue return or return on ad spend. Do not call every revenue ratio profit.

Scroll to see all columns

MetricFormulaWhat it answersCommon mistake
Cost per leadMarketing cost divided by leadsHow much did each inquiry cost?Counting spam, wrong numbers and job applicants as leads
Cost per qualified leadMarketing cost divided by qualified leadsHow much did each real opportunity cost?Using different qualification rules by channel
Customer acquisition costMarketing and sales cost divided by new customersWhat did it cost to win a customer?Ignoring agency fees, software or sales labor
Revenue returnAttributed revenue divided by marketing costHow much revenue came back per dollar spent?Calling revenue profit
Marketing ROI(Attributed gross profit minus marketing cost) divided by marketing costDid the campaign create profit after its cost?Using estimates when closed-job values exist

Pick one financial definition and keep it stable. Changing the formula whenever a channel looks weak turns reporting into a defense exercise.

Build the measurement chain before choosing a dashboard

A dashboard cannot reconnect data that was never captured. The chain begins at the first identifiable source and ends when a job is won, lost or disqualified. Every link needs a shared identifier, a timestamp or a consistent campaign label so the next system recognizes the same opportunity.

  1. Source: How the prospect arrived, such as organic search, Google Ads, referral, email, direct mail or a partner.
  2. Lead: The call, form, chat or booking, with the source attached.
  3. Qualification: Whether the request matches your service, geography, timing and minimum job size.
  4. Opportunity: The estimate, consultation or inspection, tracked in one pipeline.
  5. Outcome: Won or lost, with the collected or contracted value recorded under one rule.

Google's Traffic acquisition report page says the report shows where new and returning users come from, and that it differs from the User acquisition report, which shows where new users come from. The page lists dimensions such as session source, session medium, session campaign and session default channel grouping, and says each one describes the user's most recent session. In practice, that means Analytics tells you how visits arrived, and you still need your CRM to tell you which of those visits became work.

Analytics covers behavior, and the CRM holds the sales record. Use your CRM and automation system to decide which inquiries became qualified opportunities and which opportunities produced work. We build these systems on GoHighLevel, so we have an interest in this topic; the method works on any CRM that keeps source and job value on the record.

Track calls and forms as leads, then qualify them

In our experience, local service businesses often close work by phone, which makes click-only reporting incomplete. A tap on a phone number shows intent, but not that the call connected, reached the right person or became a sale. Call tracking should capture the source, call time and duration, and create a contact record from the conversation. Check recording and disclosure rules with your attorney before you record calls.

Google's page on phone call conversion tracking lists several kinds: calls from ads, calls to a number on your website that dynamically replaces it for people who clicked an ad, clicks on a number on your mobile website, clicks on call ads and assets, and imported call conversions. For the last kind, it says calls you track in another system can be imported, which gives more control over which calls count. For example, you can count calls only when they include sales, and include the values of those sales. In our reading, importing suits a business where call length alone does not tell you whether a call was a good lead.

Forms need the same discipline. Capture the landing page, source, medium, campaign, timestamp and the service requested, and keep the original source when the lead moves into the CRM. Then add a qualification result staff can apply the same way every time.

Use a short lead-quality vocabulary

  • Qualified: Real prospect, correct service area, relevant service and a plausible path to purchase.
  • Unqualified: Real inquiry, but outside the service, geography, budget or timing you accept.
  • Invalid: Spam, solicitation, duplicate, job applicant, wrong number or test.
  • Unreached: A possibly valid person you have not yet contacted.

Do not push unreached leads into unqualified to clean up a report. That hides a response problem inside a marketing metric. Our post on speed to lead covers the response side.

Use campaign tags a person can maintain

UTM tags help analytics tell links from email, social, sponsorships and directory listings apart, and they only work if names stay consistent. If one person writes facebook, another fb and a third Facebook.com, one source becomes three rows. Keep source for the platform, medium for the channel type and campaign for the initiative. Use lowercase, one separator and a shared register of campaign names. We advise against putting personal information in a URL tag.

Scroll to see all columns

FieldPurposeGood exampleAvoid
utm_sourcePlatform or publishergoogle, facebook, chamberMixing fb and facebook
utm_mediumChannel typecpc, email, referralUsing a campaign name here
utm_campaignSpecific initiativefall-furnace-tuneupNames that change mid-campaign
CRM sourceOperational reporting categoryPaid SearchFree-text entries for every lead

For printed pieces, sponsorships and yard signs, use a dedicated landing page, a trackable phone number, a QR code or an offer code. The method matters less than keeping the identifier attached until the job outcome is known.

Close the loop from CRM revenue back to the channel

In our experience, the most damaging gap is often between the lead platform and the CRM. Ad platforms count submitted forms, while the business earns money only when qualified work closes and is paid for. Connect those records so a campaign is judged on business value.

Google's page on using different values for your conversions says that if you measure values from offline leads that have been qualified or closed, it recommends enhanced conversions for leads and sending the values from your CRM through the Ads API or integrated CRMs. In our reading, that matters for service companies, where a maintenance visit and a major replacement can come through the same campaign.

Start with the CRM even if an automated upload is not ready. Require four fields on every closed opportunity: original source, campaign when known, won or lost status and job value. Add a loss reason from a fixed list. A monthly export with clean values beats a live integration that quietly drops errors. If paid media is part of the mix, digital advertising management should aim at qualified and won outcomes where the platform has enough reliable data, since, in our experience, optimizing toward every form can steer the system toward cheap requests you cannot serve.

What a simple marketing ROI tracking dashboard shows

A useful owner dashboard fits on one page and answers the same questions every month. Break it out by channel and campaign, with identical definitions across rows.

  • Spend by channel
  • Leads and qualified leads
  • Booked jobs and won customers
  • Collected or contracted revenue, and gross profit if you have it
  • Cost per qualified lead and revenue return
  • Response time and contact rate

Response time and contact rate belong beside the marketing numbers because marketing can produce a qualified inquiry that nobody reaches, and separating the two stops you from canceling good demand because the handoff failed.

Platform options by category

You do not need one product that does everything. The options fall into a few categories, and we do not rank them.

  • A spreadsheet. Enough to start, if one person updates it every week.
  • Reports in the ad and analytics tools. Google Analytics and Google Ads show clicks, calls and conversions, but not what your accounting shows for job value.
  • A CRM with pipeline and revenue fields. This is where source meets outcome. GoHighLevel, which we build on, is one example, and your field-service software may already do part of this.
  • A dashboard tool. Google's Data Studio documentation shows how it connects a data source such as Search Console and builds a report from it. Pulling in your CRM numbers takes extra setup.
  • A call tracking service. Adds source and recordings to calls when ad platforms do not cover them.

Pick the simplest category that connects source to booked job and revenue, then add tools only when a question goes unanswered. A marketing budget is easier to set once these numbers exist.

Know what attribution cannot prove

Attribution assigns credit using rules and the observations available. A customer may see a truck, hear a referral, read reviews, click an ad and call from another device, and each platform may claim the sale. Use attribution to improve decisions, and keep a visible bucket for unknown sources. Compare platform reports with CRM outcomes. Ask new customers how they heard about you and treat the answer as one more signal. When two sources disagree, check the collection rules before choosing the number you prefer.

In our experience, a small business needs reliable capture, consistent qualification and closed-job values before it needs a multi-touch model. If your leads, pipeline and revenue sit in separate reports, you can book a free strategy call and we can help map the missing connection.