Cookie-Einstellungen

Wählen Sie, was wir verwenden dürfen. Unbedingt erforderliche Cookies halten Sie angemeldet und lassen sich nicht abschalten; alles andere entscheiden Sie, und es ändert nichts daran, wie die Website funktioniert. Sie können Ihre Entscheidung jederzeit über den Seitenfuß ändern.

A man in a suit marks up printed reports with a pen at a wooden desk, an open laptop showing a chart and a cup of pens and scissors beside him.

Marketing attribution for small business: how to see which marketing brings in sales

Photo by RDNE Stock project (opens in a new tab) on Pexels

A small business that closes by phone or in person cannot get its answer from ad dashboards or Google Analytics, because none of them sees the sale. What it needs is smaller than it sounds: one lead list with a phone or email and a source, one sales export, and a match once a month. Here is the setup, a worked example across five channels, what to do with the sales nobody can trace, a report an owner can read in five minutes, and when not to buy anything more.

Contents
  1. Why ad dashboards and Google Analytics cannot answer it
  2. The minimum setup: two files and a monthly match
  3. A worked example: a plumbing company, five channels, one quarter
  4. What to do with Direct / Unknown
  5. A monthly report a business owner can read
  6. When a small business does not need more
  7. Common mistakes
  8. Where to start this month

A small business can see which marketing brings in sales without an analyst: keep one lead list with a phone or email and a source, export closed sales monthly, match the two, and credit each sale to its earliest lead. Report the unmatched sales as their own line, and judge channels by revenue per dollar, never by leads.

A plumbing company with twelve people spends $25,000 a quarter on marketing: search ads, Google's Local Services Ads, Facebook ads and a postcard mailing, plus a free Google Business Profile that rings all day. Every vendor sends a report. Added together, those reports describe 1,030 conversions in a quarter in which the company closed 300 jobs. Everyone is winning, and the owner still cannot say which $5,000 to cut.

That is the normal state of marketing measurement for a business with 1 to 50 staff: home services, dental and medical clinics, car dealerships, law firms and the local clients of marketing agencies. Most sales close by phone or in person, nobody on staff is an analyst, and there is no data warehouse. This post is the practical answer to one question, which marketing actually brings in money, and it links to deeper posts wherever a step deserves more than a paragraph.

Why ad dashboards and Google Analytics cannot answer it

Ad platforms and Google Analytics measure what happens on screens they control: clicks, calls from ads, form submissions. A sale closed by phone, in a showroom or in a customer's home happens somewhere none of them can see, so each reports the lead it touched and, at best, an estimate of what that lead was worth.

Each tool is honest about its own scope. The trouble is that its scope ends at the lead. Google Ads counts a call or a form as a conversion. Facebook counts a lead form opened and submitted. Google Analytics counts a visit that ended in a form. None of them knows whether the caller booked, whether the job was $180 or $18,000, or whether the same person had already called from a postcard two weeks earlier. Our post on analytics that cannot see offline sales covers the scale of that blind spot.

Each tool also judges itself by its own clock. A platform credits a conversion to its ad if it happened within that platform's window after an interaction, and every platform has its own window and its own counting rules. Two platforms that both touched the same customer within their windows will both claim the sale. Nothing in either report is false. They are simply not designed to be added together.

Platforms do offer a way to send offline sales back, and for some businesses it is worth doing later. Google Ads, for example, can import sales that closed at your office or over the phone, matched by its click ID or by the email the customer gave. That improves the platform's bidding. It does not give you a view across platforms, because each import only tells one vendor about its own ads. Our post on sending closed revenue back to the ad platforms explains when it helps.

The minimum setup: two files and a monthly match

Small business attribution needs three things: one lead list where every call, form, chat and walk-in has a date, a phone number or email, and a source; one export of closed sales with a date, an amount and the customer's phone or email; and a match of the two once a month, crediting each sale to that customer's earliest lead.

1. One lead list, with a source on every row

This is the part that takes discipline, and it is mostly a front-desk habit rather than software. Every inquiry gets a row: date, name, phone, email if you have it, and a source written from a short fixed list. The rows come from wherever leads arrive:

  • Phone calls: a call tracking number per channel if you have one, which our post on call tracking and revenue covers; otherwise the receptionist asks how the caller heard about you and logs it.
  • Website forms: hidden fields that carry the UTM tags into the form, as our post on UTM parameters describes, so the source arrives with the lead instead of staying in analytics.
  • Platform lead forms: exports from Facebook lead forms and Local Services Ads, which already carry a phone or email. See Meta lead ads and Local Services Ads.
  • Free channels: calls from the Google Business Profile, referrals, walk-ins. These are the ones most often left out, and they are often the largest. Our post on the Business Profile explains why it takes so many calls and reports none of the sales.

Fix the spelling of sources once and keep it. "Google Ads", "google ads", "PPC" and "Adwords" are four channels to any report that counts what is written. A list of eight values on a laminated card at the front desk beats any naming convention in a document nobody opens.

2. One sales export

Export closed sales from wherever they are recorded: the field-service app, the practice management system, the dealer management system, the accounting software. You need the sale date, the amount, and the customer's phone and email. Most systems can do this from a standard report; our post on the CRM export lists the fields to ask for and the ones that quietly go missing, such as the second phone number or the email on a joint account.

3. A monthly match

Normalize phone numbers in both files to one format first, because (555) 010-2030, 555.010.2030 and +1 555 010 2030 are the same customer and most homemade matches miss that. Our post on phone normalization explains why this one step decides most of the result. Then, for each sale, find the leads with the same phone or email, take the earliest one, and give the sale its source. Sales with no matching lead go to Direct / Unknown. In a spreadsheet that is a cleaned phone column in each sheet, a lookup from sales to leads sorted oldest first, and a pivot table by source. Expect it to take an afternoon the first time and an hour after that.

Treat any match you are unsure of, such as the same last name and street but a different phone, as a question rather than an answer. Keep it out of the totals until someone has looked at it. A report that counts guesses as sales is how attribution loses the owner's trust in its first month.

A worked example: a plumbing company, five channels, one quarter

Take the twelve-person plumbing company above, July to September 2026: 300 closed jobs, $390,000 of revenue, $25,000 of marketing and 1,030 leads. The figures are illustrative, not benchmarks. Ranked by cost per lead and ranked by revenue per dollar, the channels come out in nearly opposite orders.

July to September 2026, matched on phone and email, credited to the earliest lead (illustrative)
ChannelSpendLeadsCost per leadMatched salesRevenueCost per saleRevenue per $1
Search ads$9,000260$34.6262$86,800$145$9.64
Local Services Ads$6,000180$33.3340$44,000$150$7.33
Facebook ads$4,500300$15.0014$12,600$321$2.80
Postcard mailing$5,50070$78.5721$31,500$262$5.73
Google Business Profile$0220free58$69,600freen/a
Direct / Unknown105$145,500
Total$25,0001,030$24.27300$390,000

The arithmetic. Cost per lead is spend divided by leads: $9,000 ÷ 260 = $34.62, $6,000 ÷ 180 = $33.33, $4,500 ÷ 300 = $15.00, $5,500 ÷ 70 = $78.57. Cost per sale is spend divided by matched sales: $9,000 ÷ 62 = $145, $6,000 ÷ 40 = $150, $4,500 ÷ 14 = $321, $5,500 ÷ 21 = $262. Revenue per dollar is matched revenue divided by spend: $86,800 ÷ $9,000 = 9.64, $44,000 ÷ $6,000 = 7.33, $12,600 ÷ $4,500 = 2.80, $31,500 ÷ $5,500 = 5.73. Matched sales add up to 62 + 40 + 14 + 21 + 58 = 195, and 195 + 105 unmatched = 300.

By cost per lead, Facebook is the bargain at $15 and the postcard is the extravagance at $78.57. By revenue per dollar, Facebook is last at $2.80 and the postcard is third at $5.73, returning twice as much per dollar as the cheapest leads in the account. Facebook's leads were cheap because many were people tapping a pre-filled form; 14 of 300 became jobs, under 5%. The postcard's 70 leads were households already holding a printed offer, and 21 of them, 30%, booked. Our post on why cost per lead misleads works through the same reversal in more detail.

Two more lines matter as much as the paid ones. The free Business Profile brought 58 jobs and $69,600, more than any paid channel except search, which is why cutting it from the lead list would make every paid channel look worse. And Direct / Unknown is 105 jobs and $145,500, 37% of revenue. That is not a failure of the method; it is the method telling you the truth about what your records cover.

What the platforms said about the same quarter

Now add up what each vendor reported: 260 conversions from search ads, 180 Local Services leads, 300 Facebook leads, 220 Business Profile calls and 70 postcard calls, 1,030 in all, for 300 jobs. If the agency puts a fixed value of $1,300 on each conversion, roughly the average ticket, the reports describe 1,030 × $1,300 = $1,339,000 of value in a quarter with $390,000 of revenue, more than three times the real total. Some of the gap is leads that never bought. Some is the same household counted by two platforms: when the lead list was deduplicated by phone and email, 1,030 leads were 790 people. Our post on deduplicating leads explains how to credit those people once.

What to do with Direct / Unknown

Direct / Unknown holds the sales whose buyer matches no lead. Some are genuine referrals, repeat customers and walk-ins; some are leads recorded badly or not at all. Report it as its own line, work out which kind dominates, and never divide it among the paid channels to make the table look complete.

Spreading the unknown share in proportion to matched revenue is the most tempting mistake in small business reporting, because it makes the table add up and every channel look 60% better. It also invents attribution: it claims the postcard brought in customers who may have been sent by a neighbor. Our post on unattributed revenue makes the full case for leaving it visible. What to do instead is shrink it honestly:

  1. Check the formats. Pick ten unmatched sales and search for their phone numbers in the lead list by hand. If you find them under a different format, fix normalization before anything else.
  2. Check the dates. A customer whose first lead came before the lead export's start date cannot match. Export leads from at least a year before the sales period.
  3. Check for missing channels. If the receptionist logs calls but nobody logs walk-ins, the walk-ins are in Direct / Unknown. Add the missing source to the lead list rather than guessing.
  4. Ask at the point of sale. A "how did you hear about us" field, filled in when the job is booked, turns many unknowns into referrals. Our post on measuring word of mouth shows how to record it so it survives into the export.

After those checks, what remains is mostly real: repeat customers, referrals and people who simply knew your name. Our post on match rates puts the normal range at 55% to 80% of revenue matched for a business with complete exports, lower where walk-ins and referrals are common; the example's 62.7% sits inside it. A falling unknown share over three months is a sign your records are improving; a sudden jump usually means a tracking number or a form field broke.

A monthly report a business owner can read

The monthly report is one table and three sentences. The table shows, per channel, spend, matched sales, matched revenue and revenue per dollar, with Direct / Unknown as its own row and the share of revenue matched at the top. The sentences say what changed, what is too small to judge, and what you will do.

Leave cost per lead off the main table, or put it at the far right where it cannot set the order. Put coverage first: "63% of revenue matched to a lead this quarter." In the example, $244,500 of $390,000 was matched, 62.7%. Every channel figure is a share of that matched part, and a reader who sees coverage first reads everything after it correctly. Then the three sentences, which for the example quarter might be:

  • What changed: search ads returned $9.64 per dollar, up from $8.10 last quarter; Facebook fell to $2.80.
  • What is too small to judge: the postcard had 21 jobs from one mailing; one more mailing before we decide.
  • What we will do: move $1,500 a quarter from Facebook to search for one quarter and compare.

Read the counts before the ratios. A channel with 14 sales in a quarter has about five a month, and one large job can double its revenue per dollar. Below a few dozen sales, report the figure and say it is thin. For a seasonal trade, compare the same months year over year rather than this month with last; our post on seasonal attribution covers that. And if a branded search campaign is in the mix, read our post on branded search before giving it credit for customers who were already looking for you by name.

When a small business does not need more

Multi-touch attribution, marketing mix modeling and incrementality testing all answer real questions, at a cost in data, time and expertise a small business rarely has. If most customers have one recorded lead, a first-touch match with the unmatched share visible gives the same answer as any model, for an afternoon a month.

Methods a small business is often sold, and when each is worth it
MethodWhat it answersWhat it needsWorth it for a small business when
Monthly first-touch matchWhich marketing brought in the customers who paidA lead list and a sales exportAlways: start here
Multi-touch attributionHow to split credit among several recorded touchesMost customers with several recorded touchesCustomers routinely have three or more recorded touches
Marketing mix modelingHow total sales respond to spend by channel, including unclickable mediaLong, varied spending history and a statisticianSpend is large, steady and split across TV, radio and digital
Incrementality testWhether a channel caused sales that would not have happenedA clean holdout and the nerve to pause spendOne channel is large enough that the doubt is expensive

The quickest check takes ten minutes: count how many leads each matched customer has. If the median is one, every attribution model gives the same answer, and the model debate described in our post on attribution models does not apply to you yet. Our post on multi-touch attribution versus mix modeling explains why the two answer different questions and why neither replaces a sales match. When one channel is large enough that you need to know whether it caused sales rather than just preceded them, a simple holdout is the next step; our post on incrementality tests shows how to run one without a data team.

Here is the arguable part. For a business under 50 people, the next dollar of measurement budget is almost always better spent on the lead list than on a model: a second phone field in the sales system, a source dropdown on the booking screen, a tracking number on the trucks. A cleaner lead list moves Direct / Unknown and every channel figure with it. A better model only re-divides what you already matched.

Common mistakes

The mistakes that cost small businesses the most are not technical. They are trusting each platform's own claims, judging channels by cost per lead, counting leads as sales, and leaving free channels and unknown sales off the report. Each one makes the table look tidier and the decision worse.

  • Adding up the platforms' claims. Each platform counts on its own rules and windows, so the sum exceeds total sales, often by a multiple. Use platform reports to manage the platform; use the sales match to compare platforms. Our post on channel conflict covers what to do when two vendors claim the same customer.
  • Judging on cost per lead. Cheap leads that rarely buy are expensive. Rank by revenue per dollar or cost per sale, as the worked example shows.
  • Counting leads as sales. A lead is a phone call, not a customer. A report that stops at leads cannot tell a channel that books 30% from one that books 5%.
  • Leaving free channels out. If the Business Profile, referrals and walk-ins have no rows in the lead list, their customers land in Direct / Unknown or, worse, on a paid channel they touched later.
  • Spreading Direct / Unknown. It makes the table add up and every channel look better than it is.
  • Changing the rules mid-year. Switch from earliest lead to latest lead, or change the source list, and the trend breaks. Write the rules down and keep them for at least a year.
  • Exporting only part of the sales. Jobs invoiced in a second system, cash sales and warranty work that later became paid work all belong in the export, or the channels that produce them look weak.

CloseRev does this monthly match from two CSV files you export: closed sales and leads. It matches each sale to leads on normalized phone and email and credits it to the source of the earliest matched lead. Only high-confidence matches count toward revenue automatically; medium- and low-confidence matches stay reviewable rather than counting on their own. Sources report exactly as written in the lead file's source column, and sales with no match stay in Direct / Unknown.

Whatever does the matching, the earliest-lead rule is a choice worth stating in the report. A homeowner who first called from a postcard and later clicked a search ad to rebook is a postcard customer under that rule. It is the right rule for the question a small business asks most, which marketing brought this customer to us at all, and it is the rule most likely to be stable from one quarter to the next.

Where to start this month

Export last quarter's closed sales and every lead from the year before, normalize the phone numbers, match, and build the one table. It takes an afternoon. The first version usually changes one budget decision on its own, and it shows which gaps in the lead list are worth fixing first.

  1. Write the source list: eight or fewer values, one spelling each, including Business Profile, Referral and Walk-in.
  2. Export last quarter's closed sales with date, amount, phone and email.
  3. Export every lead from at least a year before the quarter ended, from every place leads arrive, into one list with a source column.
  4. Normalize phone numbers and lowercase emails in both files.
  5. Match each sale to its earliest lead by phone or email; put the rest in Direct / Unknown.
  6. Build the table: spend, matched sales, revenue and revenue per dollar by channel, with coverage at the top.
  7. Write the three sentences, change one thing, and match again next month.

Every ad platform can tell you what it touched. Only your own sales file can tell you what paid. Match the two once a month, keep the unknown sales visible, and rank channels by revenue per dollar, and a twelve-person business will know more about its marketing than most companies with a data team.

Questions people actually ask

What is marketing attribution for a small business?
It is the habit of connecting each closed sale to the marketing that first brought that customer in, so you can see revenue by channel instead of clicks or leads. For a business that sells by phone or in person, that means matching a list of sales to a list of leads on phone number or email, once a month, and keeping the sales you cannot match in their own line.
Can Google Analytics tell me which marketing brings in sales?
Only for sales that happen on your website. Google Analytics records visits and events such as a form submission or a click on your phone number. A job sold at a kitchen table, a car sold on the lot or a client signed in an office never reaches it unless you send it back yourself. For most local businesses, that is nearly all of the revenue.
How much revenue should end up in Direct / Unknown?
There is no universal figure, and a business that records walk-ins, referrals and repeat customers poorly will see a large one. What matters is the trend and the reasons. If it is above a third of sales, check phone formats, the date range of the lead export and channels with no lead record before concluding your marketing does not work. Never spread it across channels to make it disappear.
Do I need call tracking for small business attribution?
Not to start. You need the caller's phone number and a source for each lead. A receptionist who asks how the caller heard about you and logs it, or a separate number printed on each mailer or truck, can do that. Call tracking makes the source automatic and more complete, and it is worth adding once phone leads are a large share of revenue and you know what you would do with the answer.
How often should a small business review marketing attribution?
Match monthly and decide quarterly. A monthly match keeps the files manageable and catches broken tracking early, but a channel with five sales in a month cannot be judged on that month. Look at three months together before moving budget, compare the same months year over year in a seasonal trade, and change one thing at a time so the next quarter can tell you whether it worked.
Does a small business need multi-touch attribution or marketing mix modeling?
Rarely. Multi-touch models divide credit among recorded touches, and most small-business customers have one recorded lead or none, so every model gives the same answer. Mix modeling needs long, varied spending history and a statistician. A first-touch match of sales to leads, with the unmatched share reported, answers the question a small business is actually asking: which marketing brought in the customers who paid.

See it on your own numbers.

Two exports and a few minutes. 14 days free, no card, nothing to install.