Skip to content New SourceLoop MCP: chat with your attribution data in Claude, ChatGPT & Cursor
SourceLoop

What Is Revenue Attribution? How to Tie Revenue to Channels

Revenue attribution links deals, subscriptions and payments to the marketing that started them. Here's what it is and how to set it up.

Revenue credited to Google Ads, LinkedIn and Meta adding up to the total collected in Stripe
Table of contents
  1. What revenue attribution is
  2. 3 reasons lead counts give you the wrong answer
  3. 1. Cheap leads aren't cheap customers
  4. 2. Sales cycles outlast most attribution windows
  5. 3. Customers from different channels are worth different amounts
  6. The 4 kinds of revenue you can attribute
  7. 1. Won deals
  8. 2. One-time payments and orders
  9. 3. Subscriptions
  10. 4. Lifetime value
  11. How to set up revenue attribution with SourceLoop
  12. Step 1: Capture the source on every visit
  13. Step 2: Connect where the money lands
  14. Step 3: Switch the report's outcome to revenue
  15. Step 4: Choose a model and a journey scope
  16. Step 5: Put spend next to the revenue
  17. Step 6: Check lifetime value by channel
  18. Mistakes to avoid

Your ad dashboards count leads. Your CRM, Jobber or Stripe counts money. Most teams never join the two.

So budgets get set by cost per lead, and nobody finds out which channel's leads actually paid. For an insurance broker, a home services company or the agency running their ads, that's the number that matters.

Revenue attribution fixes that. In this guide, I'll cover what it is, why it changes the answer, the four kinds of revenue you can attribute, and how to set it up.

What revenue attribution is

Revenue attribution credits revenue to the marketing touchpoints that led to it. Every won deal, payment or subscription is traced back to the visits, ads and campaigns in that customer's journey.

It answers a different question from lead attribution:

Lead attributionRevenue attribution
Question it answersWhich channels bring in leads?Which channels bring in money?
Outcome countedForm fills, calls, sign-upsWon deals, payments, subscriptions, lifetime value
Data you needWebsite trackingWebsite tracking joined to the CRM and payment system
Lookback windowWeeksMonths, often a full year
Main metricCost per leadCost per customer, revenue per dollar spent

You still use the usual attribution models: first touch, last touch, U-shaped and the rest. The difference is the outcome you hand them.

3 reasons lead counts give you the wrong answer

Cost per lead feels like a stand-in for revenue. Here's where it stops being one.

1. Cheap leads aren't cheap customers

Here's one quarter from a commercial insurance brokerage spending on three platforms. A customer here is a signed policy. Ranked by cost per lead, Meta wins easily. Ranked by what each channel cost per paying customer, it comes last.

Slope chart comparing Google Ads, Meta and LinkedIn by cost per lead, cost per customer and revenue per dollar spent, with Meta best on cost per lead and worst on the other two
Meta had the cheapest leads and the most expensive customers.
ChannelSpendLeadsCost per leadCustomersCost per customer12-month revenueRevenue per $1
Google Ads$30,000400$7540$750$96,000$3.20
Meta$20,000500$4016$1,250$30,400$1.52
LinkedIn$25,000125$20025$1,000$82,500$3.30

A team optimizing for cost per lead would move money from LinkedIn to Meta. Revenue says do the opposite.

Patterns like this are why Meta lead quality comes up so often, and why cost per conversion only means something when the conversion is worth something.

2. Sales cycles outlast most attribution windows

A policy quote, a roofing estimate or a software demo rarely closes the week the lead comes in. At the far end, Dreamdata's 2026 benchmark found the average B2B software journey now runs 272 days and 88 touchpoints from first marketing touch to closed revenue, with about 10 people involved on the buyer's side.

Most lead generation cycles are much shorter than that, but the problem is the same. A lookback shorter than your sales cycle can't see where the deal started. The channel that introduced the buyer drops out, and whatever came last takes the credit.

Timeline of a 272-day B2B journey from a LinkedIn ad to a won deal, showing that a 30-day window credits only Direct, a 90-day window drops the first three touches, and a 365-day window keeps the whole journey
The window decides which channels exist as far as your report is concerned.

The same data shows how much the outcome matters. Measured against closed-won revenue, LinkedIn returned 121% on ad spend, Google Search 67% and Meta 51%.

3. Customers from different channels are worth different amounts

Two channels can produce the same number of first purchases and very different lifetime value.

A study of a German bank found referred customers were about 16% more valuable than similar customers acquired other ways, and the gap held over six years. Research on a web hosting firm found customers who arrived through word of mouth added roughly twice the long-term value of those brought in by paid marketing.

If you only count the first payment, you'll undervalue the channels that bring in customers who stay.

The 4 kinds of revenue you can attribute

Which ones apply depends on how you sell.

Four-step journey from a Google Ads click to a lead, a won deal in HubSpot and payments in Stripe, all credited back to the original Google Ads campaign
The source captured on day 0 has to survive every step after it.

1. Won deals

For lead generation and service businesses, where a lead becomes revenue after a quote or a sales call: insurance policies, legal cases, home service jobs. Revenue is the deal amount when it's marked won in HubSpot, Salesforce or Pipedrive. You can also attribute earlier stages, such as quotes sent, to see pipeline before it closes.

2. One-time payments and orders

For services paid online, such as bookings, deposits and invoices, and anything sold at checkout. Revenue is each payment from Stripe or a similar system, minus refunds.

3. Subscriptions

For SaaS and memberships. Track new MRR, trials that convert and churn by acquisition channel. A channel that brings in annual plans looks very different from one that brings in monthly plans that cancel after two months.

4. Lifetime value

The cumulative revenue from every customer a channel acquired, measured over months. It's the slowest number to mature and the most honest one for setting how much you can pay to acquire a customer.

How to set up revenue attribution with SourceLoop

The steps below use SourceLoop, a marketing attribution and revenue measurement tool. It records the source of every visit, keeps it attached to the person when they convert, and follows them into your CRM and payment system. Revenue reports then credit each dollar back to the channels in that person's journey.

Step 1: Capture the source on every visit

Install the tracking script under Setup > Tracking code. From then on, each visit's UTMs, click IDs, referrer and landing page are stored, and they stay attached when the visitor fills in a form, starts a chat, calls or books a meeting.

Visits on different devices or sessions are stitched to the same person once they identify themselves. Open any contact and you can see the whole journey, with first touch and last touch side by side.

SourceLoop contact drawer showing stage, status, last-touch and first-touch attribution and a timeline of every visit before the lead converted
Every contact keeps the source of each visit, so later revenue has somewhere to go.

Step 2: Connect where the money lands

This is the step most setups skip.

  • Lead generation and sales-led businesses: connect HubSpot, Salesforce or Pipedrive. Contacts, companies and deals sync both ways, and won deals become revenue.
  • Home services: connect Jobber. Each client's quotes, jobs and invoices become one deal, with revenue booked per invoice against the channel that brought the client in.
  • Payments: connect Stripe, Paddle, Polar, Lemon Squeezy or Dodo Payments under Setup > Payment, using a webhook and signing secret. Shopify connects through its app.
  • Anything else: send orders through the tracking script or the API.
SourceLoop payment setup page with cards for Stripe, Lemon Squeezy, Paddle, Polar and Dodo Payments
Payment providers connect by webhook, so every charge, renewal and refund arrives as it happens.

Money from customers who arrived before tracking started is labeled Unattributed. It never gets quietly folded into Direct, so revenue by channel always adds up to your real total. The Stripe lead source guide covers the payment side in detail.

Step 3: Switch the report's outcome to revenue

Open Reports > Traffic and Revenue and use the outcome picker. The same journey data can attribute all conversions, contacts by CRM stage, companies by stage, deals by status, subscriptions, payments or revenue.

Agencies get the same view per client. Each client has its own workspace, and the report can go to the client as a live link, so you're reporting the revenue your ads produced, not just leads.

SourceLoop Traffic and Revenue report with the outcome picker open, listing all conversions, contacts by stage, companies by stage, deals by status, subscriptions and revenue
Pick Revenue, or Deals by status for won deals, and every channel row shows credited money.

Revenue and stage reports always look back 365 days, whatever your lead lookback is set to. That keeps the first touch on long deals.

Step 4: Choose a model and a journey scope

Revenue attribution works with any model. As a starting point:

  • First touch shows which channels start revenue.
  • Last non-direct shows which channels close it.
  • U-shaped splits credit between the two, and suits most businesses where a lead is followed by a quote or a sales call.

Put two side by side and look at where they disagree. Our guide to marketing attribution models goes through each one.

If you sell to companies, as a commercial insurer or a SaaS business does, set Credit visits from to Everyone at their company under Settings, Preferences. A deal then also credits the colleague who first found you on search, along with the person who signed, which matters when B2B buying groups involve several people.

Step 5: Put spend next to the revenue

Connect Google Ads, Meta and ChatGPT Ads so spend syncs daily, and add other costs (agencies, sponsorships, tools) under Setup > Costs. Now every channel has a cost per customer and a revenue per dollar to go with its cost per lead.

The Creatives report goes down to the ad: each creative shows credited ROAS beside the ROAS the platform reports for itself.

Run your numbers through the customer acquisition cost calculator if you want a quick sanity check.

Step 6: Check lifetime value by channel

Open Reports > Lifetime value. It groups paying customers by acquisition channel and by month of first payment, so you can see which channels bring in customers who keep paying.

SourceLoop Lifetime value report with paying customers, lifetime value, repeat rate and a grid of cumulative revenue by month of first payment
Each row is a group of customers acquired in one month. Read across to see revenue build over time.

For subscription businesses, the Subscriptions report shows MRR, new MRR and churn by channel, with first touch and last touch next to each other.

SourceLoop Subscriptions report showing MRR, new MRR, churned MRR and new MRR by channel with last-touch and first-touch columns
New MRR by channel, credited on first touch and last touch.
A useful rule: set a target cost per customer for each channel separately, based on that channel's 12-month revenue per customer.

Mistakes to avoid

  • Stopping at the form fill. If the CRM or payment system isn't connected, you're doing lead attribution with a different name.
  • Using a short lookback for revenue. Thirty days works for impulse buys. It hides the start of any deal that needs a quote or a sales call to close.
  • Counting refunds and trials as customers. A $0 trial or a refunded order shouldn't make a channel look good.
  • Folding untracked revenue into Direct. Keep it Unattributed so you can see how much of your revenue tracking actually covers.
  • Judging new channels too early. LTV takes months to mature. Compare cohorts of the same age.

For the bigger picture, read how closed-loop attribution connects marketing and sales data, how to build multi-touch attribution reports people actually use, and which revenue attribution tools are worth a look.

Frequently asked questions

  1. What is revenue attribution in marketing?

    Revenue attribution is the practice of crediting revenue, such as won deals, payments and subscriptions, to the marketing channels, campaigns and ads that led each customer to buy. It uses the same attribution models as lead attribution but measures money.

  2. How is revenue attribution different from lead attribution?

    Lead attribution counts form fills, calls and sign-ups. Revenue attribution follows those leads into the CRM and payment system and credits the money they eventually produce. The two often rank channels very differently, because lead quality varies by channel.

  3. Which attribution model is best for revenue?

    There's no single best one. First touch shows what starts revenue, last non-direct shows what closes it, and U-shaped is a sensible default when leads close through sales. Compare two models and pay attention to channels where they disagree.

  4. What lookback window should I use for revenue attribution?

    Long enough to cover your full sales cycle. For many lead generation and service businesses that's one to three months, and for SaaS or commercial deals it can be a year. SourceLoop uses 365 days for all revenue and CRM stage reports so the first touch on long deals isn't lost.

  5. Do I need a CRM to do revenue attribution?

    You need wherever your revenue is recorded. Lead generation and sales-led businesses need their CRM (or Jobber, for home services) connected so won deals count. Self-serve SaaS and businesses that take payment online can attribute revenue straight from Stripe, Paddle or similar.

  6. How do I attribute revenue from customers acquired before tracking?

    You can't credit a channel that was never observed. Keep that revenue labeled Unattributed. Over time, the share of revenue that's attributed grows as new customers come in through tracked journeys.

Share this post

Post on X Share on LinkedIn

Keep reading

All posts

Track every conversion to its true source

Capture and send full attribution data from every signup, lead, booking, and sale to your CRM and ad platforms, so you know exactly what's driving revenue.

Without SourceLoop

Untagged

Kayden Floyd

kayden@abc.com

  • SourceUnknown
  • MediumUnknown
  • CampaignUnknown
  • Landing pageUnknown
Journey
No touchpoints captured

With SourceLoop

Auto-tagged

Kayden Floyd

kayden@abc.com · Acme Co.

  • Channel Paid Social
  • CampaignFree_demo
  • Landing page/pricing
Journey
Synced to HubSpot Google Ads Meta