Préférences de cookies

Choisissez ce que nous pouvons utiliser. Les cookies strictement nécessaires maintiennent votre session et ne peuvent pas être désactivés ; tout le reste relève de votre choix et ne change rien au fonctionnement du site. Vous pouvez changer d’avis à tout moment depuis le pied de page.

An office with tall windows: a woman reviewing a clipboard sits on a desk, a man writes notes beside a laptop, and two colleagues work in the background.

Customer lifetime value by channel: which marketing brings customers who come back

Photo by Alena Darmel (opens in a new tab) on Pexels

A channel judged on its first invoice is judged on the wrong customer. For a business that sees the same households again, the channel that sends loyal customers can look expensive and the one that sends deal hunters can look brilliant. Here is how to compute revenue per customer by acquisition channel at 12 and 24 months from a sales export, read cohorts honestly, switch to margin, and set what you can afford to pay for a customer.

Contents
  1. Why the first sale misjudges channels
  2. How to compute lifetime value by channel from a sales export
  3. A worked example: four channels, 24 months
  4. Cohorts: why recent customers always look worse
  5. Use margin, not revenue
  6. How much to pay to acquire a customer
  7. Lifetime value by kind of business
  8. The traps that make lifetime value lie
  9. Where to start

Judge a channel by what its customers spend over 12 or 24 months, not the first invoice. Group later sales by the customer's phone or email back to the channel that first brought them, compare cohorts only at the same age, use gross margin instead of revenue, and pay for a customer up to a fixed share of that margin.

An HVAC company runs two kinds of advertising. Search ads bring in people with a broken system or a tune-up to book. A seasonal social campaign offers a big discount on a new system, and it closes replacements fast. On the first invoice, the discount campaign wins easily: every dollar spent on it came back as $6.00 of sales, against $4.67 for search. The owner moves budget toward the promotion.

Two years later the picture has turned around. The search customers signed up for maintenance plans, called back for repairs and sent their neighbors. The discount customers got their system and, mostly, were never heard from again. Over 24 months search returned $10.33 per dollar and the promotion $6.75, and once the promotion's thin margins are counted it barely paid for itself. Nothing in the first-sale report was false. It was answering a question about invoices when the owner needed one about customers.

This post is for businesses that close by phone or in person and see the same customers again: HVAC and plumbing maintenance, dentists and med spas, auto repair, pest control, landscaping and real estate agents who live on repeat and referred clients. It covers how to compute lifetime value by acquisition channel from a sales export, why cohorts must be compared at the same age, why margin matters more than revenue, how to turn the result into a maximum acquisition cost, and the traps that make the numbers lie.

Why the first sale misjudges channels

The first sale measures how much a customer spent on the day a channel brought them in. For a repeat business that is a fraction of their value, and the fraction differs by channel: channels that attract loyal customers are undervalued, and channels that attract one-time deal hunters are overvalued.

The mechanism is not mysterious. A customer who searched for a local company and chose one on reviews has picked a provider, and many will keep it. A customer who responded to a steep discount has picked a price, and the next company with a better price will get the next job. A customer sent by a neighbor arrives already trusting you. These differences do not appear on day one; they appear in the second and third visits, the maintenance plan, the referral.

Neither study is about furnaces or fillings, and neither number should be carried across as a benchmark. What carries across is the direction: how a customer was acquired predicts how they behave afterward, and the gap is large enough to reverse a ranking. Our post on measuring word of mouth covers the referral side of that, including a bank study that found referred customers worth at least 16% more. This post is about measuring the gap in your own data, for every channel at once.

How to compute lifetime value by channel from a sales export

Treat lifetime value as observed revenue per customer within a fixed time after their first sale, grouped by the channel that first brought them in. It needs three things: every sale with a date, an amount and a phone or email; a way to group sales into customers; and the source of each customer's earliest lead.

That definition deliberately avoids a forecast. A modeled lifetime value multiplies an average order by a predicted retention rate and a predicted lifespan, and every one of those is an assumption. Observed revenue at a fixed horizon is a sum of invoices. It is the version our post on agreeing revenue with finance recommends, because finance can check it. The steps:

  1. Export every sale, not just new-customer sales, for a period that covers the cohort you want to judge plus the horizon after it: date, amount, customer ID if the system has one, phone, email and job or service type. Our post on the CRM export covers which fields to ask for.
  2. Group sales into customers. Use the customer ID if it is reliable. If not, treat sales that share a normalized phone number or email as one customer; phone normalization is what makes (555) 010-2030 and +1 555 010 2030 the same person.
  3. Find each customer's first sale. Its date is the acquisition date, and its month or quarter is the customer's cohort.
  4. Assign each customer one channel: the source of their earliest lead, matched on the same phone or email. A customer with no matching lead goes to Direct / Unknown, which is a channel in this table like any other.
  5. Add up revenue within the horizon: every sale dated within 12 or 24 months of that customer's first sale, the first sale included.
  6. Divide by customers acquired, every one of them, including those who bought once and never returned. That is revenue per customer at 12 or 24 months.

In a spreadsheet, with a customers sheet holding each customer's key and first-sale date and a sales sheet holding every sale, step 5 is one formula per customer: =SUMIFS(Sales!C:C, Sales!B:B, A2, Sales!A:A, ">="&B2, Sales!A:A, "<"&EDATE(B2, 24)), where column A of the sales sheet is the date, B the customer key and C the amount. Then a pivot table by channel gives the sum and the count, and the division is the answer.

The earliest lead has to be in the file

Step 4 is where most homemade versions go wrong. If the lead export starts in January 2025, a customer first acquired from a search ad in 2023 has no 2023 lead in the file. Their earliest lead is whatever they did next, often a reminder email or a branded search to book a tune-up, and that channel collects their whole history. This is how email ends up with customers you already had, which our post on email attribution describes from the platform side. Export leads from at least as far back as the oldest first sale in the cohort, or leave older customers out.

A worked example: four channels, 24 months

Take every customer an HVAC company acquired in the first half of 2024 and follow each for 24 months from their first sale. The figures are illustrative, not benchmarks. Ranking the channels by first-sale revenue and by 24-month revenue gives two different orders, and the second is the one to spend by.

Customers acquired January to June 2024, revenue per customer by acquisition channel (illustrative)
ChannelSpendNew customersFirst sale12 months24 months24 months ÷ first sale
Search ads$24,000160$700$1,100$1,5502.2×
Discount promotion (social)$12,00060$1,200$1,300$1,3501.1×
Referral rewards$3,00060$600$1,250$2,2003.7×
Lead marketplace$15,00075$600$780$9001.5×

The arithmetic, as revenue per dollar of spend. On the first sale: search 160 × $700 = $112,000 ÷ $24,000 = 4.67. Promotion 60 × $1,200 = $72,000 ÷ $12,000 = 6.00. Referral 60 × $600 = $36,000 ÷ $3,000 = 12.0. Marketplace 75 × $600 = $45,000 ÷ $15,000 = 3.00. At 24 months: search 160 × $1,550 = $248,000 ÷ $24,000 = 10.33. Promotion 60 × $1,350 = $81,000 ÷ $12,000 = 6.75. Referral 60 × $2,200 = $132,000 ÷ $3,000 = 44.0. Marketplace 75 × $900 = $67,500 ÷ $15,000 = 4.50.

On the first sale the order is referral, promotion, search, marketplace. At 24 months it is referral, search, promotion, marketplace. Search overtakes the promotion because its customers spent more than twice their first invoice; the promotion's customers spent 12% more than theirs. The promotion's big first ticket was the discounted replacement, and for most of them it was the only ticket. That is the pattern the first-sale report hides, and it is also why cost per lead misleads in a repeat business: a cheap lead that buys once is not cheap.

Notice what the 12-month column does. Per customer, search at $1,100 still trails the promotion's $1,300. Per dollar, it has already overtaken it: 160 × $1,100 = $176,000 ÷ $24,000 = 7.33, against 60 × $1,300 = $78,000 ÷ $12,000 = 6.50. And the ratio of 12-month to first-sale revenue, $1,100 ÷ $700 = 1.6× against $1,300 ÷ $1,200 = 1.1×, shows which customers are coming back a full year before the 24-month figures arrive. For a business that cannot wait two years, the shape of the first 12 months is the early warning.

Cohorts: why recent customers always look worse

A cohort is the group of customers acquired in the same period. Recent cohorts always show less revenue to date, because they have had less time to buy again. Compare cohorts only at the same age, and leave a cell empty until every customer in the cohort has reached it.

The commonest mistake with lifetime value is to sort customers by "revenue to date" and group by channel. A channel that spent heavily last year then looks worse than one that spent heavily three years ago, purely because its customers are younger. Here is the same search channel, by half-year cohort, with data to the end of September 2026:

Search ads, revenue per customer by cohort, data to 30 September 2026 (illustrative)
CohortCustomersFirst sale6 months12 months24 monthsRevenue to date
Jan–Jun 2024160$700$930$1,100$1,550$1,720
Jul–Dec 2024150$690$940$1,080not yet$1,480
Jan–Jun 2025170$720$950$1,120not yet$1,260
Jul–Dec 2025155$710$920not yetnot yet$1,000
Jan–Jun 2026165$700not yetnot yetnot yet$830

Read the last column alone and search is in decline: $1,720 per customer falling to $830. Read across at fixed ages and nothing has changed. Every cohort spent about $700 on the first sale, about $930 to $950 within six months and about $1,100 within twelve. The "decline" is the calendar. A cell says "not yet" because the cohort's last customers, acquired in December 2024, do not reach 24 months until December 2026; filling it with a partial figure would mix customers who have had 24 months with customers who have had 21.

Cohorts also answer the question the first table cannot: is a channel getting better or worse? If the 12-month figure for the January to June 2025 cohort had come in at $850 instead of $1,120, something changed in who search was bringing in, or in how they were served, and you would know it a year before the 24-month figure could tell you.

Use margin, not revenue

Lifetime value in revenue tells you which channel brings customers back. Lifetime value in gross margin, revenue minus the parts, labor and discounts of each job, tells you what a customer is worth. Channels differ in the work they bring, so they differ in margin, sometimes by half.

Our post on blended ROAS makes this case for any revenue ratio. In a repeat business it bites harder, because the repeat work is often the profitable work: maintenance visits, recall appointments, quarterly treatments and service plans tend to carry better margins than a discounted system install. A channel whose customers come back for maintenance is worth more than its revenue suggests, and a channel whose customers buy one discounted install is worth less.

You rarely need exact job costing. A margin rate per job type, agreed once with whoever does the books, is enough: installs at one rate, repairs at another, maintenance at a third. Apply it to every sale in the export and sum margin instead of revenue. In the example, the mix of work gives each channel a different blended rate:

24-month value per customer in gross margin, and what it supports (illustrative)
Channel24-month revenueGross margin24-month marginAcquisition costMargin ÷ costMost to pay at 3:1 on margin
Search ads$1,55040%$620$1504.1$207
Discount promotion$1,35022%$297$2001.5$99
Referral rewards$2,20045%$990$5019.8$330
Lead marketplace$90035%$315$2001.6$105

The arithmetic. Acquisition cost is spend divided by new customers: $24,000 ÷ 160 = $150, $12,000 ÷ 60 = $200, $3,000 ÷ 60 = $50, $15,000 ÷ 75 = $200. Margin per customer is 24-month revenue times the margin rate: $1,550 × 40% = $620, $1,350 × 22% = $297, $2,200 × 45% = $990, $900 × 35% = $315. The ratio is margin divided by cost: $620 ÷ $150 = 4.1, $297 ÷ $200 = 1.5, $990 ÷ $50 = 19.8, $315 ÷ $200 = 1.6. The last column is margin divided by 3.

In revenue, the promotion returned $6.75 per dollar and looked respectable. In margin, each customer leaves $297 against $200 to acquire, and the $97 left over has to pay for the office, the trucks and the owner before it is profit. The lead marketplace, which looked weak already, is in the same place. Our post on lead marketplaces explains why its cost per customer includes all the leads that never closed.

How much to pay to acquire a customer

The most you can pay for a customer is their margin over the horizon you trust, divided by the ratio you need to cover overhead and leave a profit. Choose the ratio on margin, not revenue. A rule of thumb borrowed from software, applied to service-business revenue, allows far too much.

That condition is the part usually left out. Three to one on revenue at 80% margin is 3 × 0.8 = 2.4 to 1 on margin. A home services company at 35% margin that applies three to one to revenue is at 3 × 0.35 = 1.05 to 1 on margin: it spends nearly a dollar to acquire every dollar of gross profit, and has nothing left for overhead. Here is the arguable part: for service businesses, set the target on margin and set it at 3, not the software figure, because your overhead is trucks and technicians rather than servers.

Then check payback, which is the cash question the ratio hides. Search customers in the example produced $1,100 in 12 months, or $440 of margin at 40%, against $150 to acquire, so the cost was earned back well inside the first year. The promotion's customers produced $1,300 × 22% = $286 of margin in a year against $200, earned back in months on paper but leaving very little behind. A ratio that only works at 24 months needs cash to wait 24 months.

Platforms have started to price this in for you. Google Ads lets advertisers bid higher for new customers than for existing ones, with modes to value high-value new customers above the rest, defined by first-party data you supply. That is useful only if the value you enter comes from a table like the one above rather than a guess.

Lifetime value by kind of business

The right horizon is long enough to see the repeat pattern at least twice. Businesses with visits every few months can judge channels at 12 months; seasonal work needs 24; real estate's repeat value arrives mostly as referrals, over years. Each business also has its own way of making the number wrong.

Horizons and traps by kind of repeat business
BusinessHow customers come backHorizonWhat to watch
HVAC and plumbingMaintenance plans, repairs, an eventual replacement24 monthsOne replacement can be worth more than years of visits; check medians
Dental practiceSix-monthly recalls, treatment plans12 to 24 monthsInsurance payments arriving separately from the visit record
Med spaTreatment series, memberships, top-ups12 monthsPackages prepaid on day one inflate the first sale
Auto serviceOil changes, tires, repairs12 monthsFleet and family accounts sharing one phone number
Pest controlQuarterly or monthly service12 monthsRecurring billing that never appears in the sales export
LandscapingSeasonal contracts, add-on jobs24 monthsCommercial accounts with many sites under one contact
Real estate agentA later move, referred friends and family36 months or moreReferred clients are new customers with their own source

Real estate needs one more word. An agent's repeat business is a client who buys or sells again years later, which no short horizon sees, and the referrals that client sends in the meantime. Count the referred client as a new customer with Referral as the source, not as revenue added to the original client. Our post on measuring word of mouth explains how to record that at first contact so it survives into the export.

The traps that make lifetime value lie

Lifetime value is an average over a group of customers, so it fails the way averages fail: small groups, the wrong denominator, the same revenue counted twice, and revenue that never reached the export. Check each before acting on a channel's number.

  • Small samples. Sixty referral customers is not many. One $15,000 system replacement among them adds $15,000 ÷ 60 = $250 to every customer's average. Look at the median as well as the mean, and at how much of a channel's revenue came from its top five customers. Below a few dozen customers, report the number and say it is thin.
  • Survivorship. Divide by every customer the channel acquired, not by the ones still active. A report built from the current customer list, or from customers with a second visit, quietly drops everyone who left and makes every channel look loyal. Customers deleted or merged in the CRM vanish the same way.
  • Double-counting referrals. A referred customer's revenue belongs to Referral. Adding it to the referrer's lifetime value as well, so the original channel gets credit for its customers' friends, counts the same sales twice. If you want to show that some channels produce referrers, show it as a separate column.
  • Memberships and plans. Count plan revenue when it is billed. A one-year plan booked as a single sale on the first day inflates the first sale and hides whether the customer renewed; a plan billed monthly through a separate system can be missing from the export entirely.
  • Shared identities. A property manager, a fleet or a household with one phone number for several people looks like one superb customer. A customer who changes phone number and email looks like two average ones. Duplicate leads cause the mirror problem on the lead side.
  • The unknown channel. Customers with no matching lead are often among the most valuable, because many are referrals and existing relationships nobody recorded. Report them as their own line. Our post on unattributed revenue explains why spreading them across paid channels makes every channel look better than it is.

CloseRev does not calculate lifetime value, cohorts, margin or acquisition cost. It reads two CSV files you export, closed sales and leads, and matches them: each sale counts toward a source when its normalized phone or email is in the lead file, credited to the earliest such lead, and only high-confidence matches count automatically. So if the sales file holds a customer's later visits as separate sales and the lead file holds the lead that first brought them, each of those sales is credited to that first lead's source. Sales with no match stay in Direct / Unknown.

Whatever does the matching, that earliest-lead rule is the one lifetime value needs, and it is a choice worth stating. A homeowner who first called from a search ad and later booked a tune-up from an email is a search customer, and the tune-up is search revenue. Our post on attribution models covers when a different rule is better. For acquisition value, first touch answers the question being asked: which channel brought this customer to you at all.

Where to start

Pick one cohort that is at least 12 months old, export every sale for those customers since, and compute revenue per customer by acquisition channel at 12 months. One table, built once, usually changes at least one budget decision. Add margin and cohorts after the first table has earned its place.

  1. Choose a cohort: customers whose first sale fell in one quarter, at least a year ago.
  2. Export every sale since that quarter, and every lead from before it, with phone, email, date and source.
  3. Group sales into customers, give each customer the source of their earliest lead, and put the unmatched ones in Direct / Unknown.
  4. Sum each customer's revenue within 12 months of their first sale, and divide each channel's total by the customers it acquired.
  5. Put first-sale revenue beside it. Where the two rankings disagree, that is the decision to look at.
  6. Apply a margin rate per job type, divide by acquisition cost, and set a maximum cost per customer for each channel.
  7. Repeat each quarter with the next cohort, always at the same ages.

Online businesses get some of this from their analytics. Google Analytics, for example, has a lifetime report that can show which source, medium and campaign brought users with the highest lifetime revenue. It sees only revenue recorded on the site or app, which for a business that closes on the phone or in the customer's kitchen is close to none of it.

A channel's first invoice tells you what it sold. Its customers' next two years tell you what it was worth. Measure the second, in margin, at the same age for every cohort, and the channels that bring people back will stop looking expensive.

Questions people actually ask

How do I calculate customer lifetime value by channel?
Group every sale by customer, using a customer ID or normalized phone and email. Take each customer's first sale as the acquisition date and the source of their earliest lead as the channel. Add up each customer's revenue within 12 or 24 months of that first sale, then divide each channel's total by the number of customers it acquired, including the ones who never came back.
Should lifetime value use revenue or profit?
Gross margin, wherever you can get it. Two channels with the same revenue per customer can differ by half in what they leave after parts, labor and discounts, because one sends discounted installs and the other sends maintenance customers. Revenue is fine for spotting which channel brings people back; margin is what tells you how much you can pay to acquire one.
What is a good LTV to CAC ratio?
The well-known 3 to 1 guideline comes from software, and its author states it assumes revenue-based lifetime value and a gross margin of 80% or more. A service business at 35% margin that applies 3 to 1 to revenue is close to 1 to 1 on margin, before overhead. Set the target on gross margin instead, and check how long it takes to earn the acquisition cost back.
Why do my newest customers look less valuable?
Because they have had less time to buy again. Revenue to date for a customer acquired last month is one invoice; for one acquired two years ago it is two years of visits. Compare cohorts only at the same age, such as revenue within 12 months of the first sale, and leave a cell blank until every customer in that cohort has reached it.
How long a window should I use for lifetime value?
Long enough to see the repeat pattern at least twice. Twelve months suits businesses with visits every few months, such as pest control, auto service and dental recalls. Twenty-four months suits seasonal work like HVAC maintenance and landscaping. Real estate repeat business takes years, so most of its value shows up as referred clients rather than repeat sales within any short window.
How do I count maintenance plans and memberships in lifetime value?
Count plan revenue when it is billed, not the contract value when it is signed, and make sure renewals billed outside the sales system are in the export. A one-year plan booked as a single first-day sale inflates the first sale and hides whether the customer renewed. A plan billed monthly by a separate system can vanish from lifetime value entirely.

See it on your own numbers.

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