TrackRev
Blog
11 min read
Attribution

Which Marketing Channel Is Most Profitable for SaaS? How to Actually Find Out

63% of SaaS teams rank channels by signups, not profit. Here's how to find which marketing channel actually returns the most Stripe revenue.

Muzahid Maruf — Founder of TrackRev.io

Muzahid Maruf, Founder

LinkedIn · X

On this page
  1. 01Why This Matters for Your Revenue
  2. 02Why 'Most Profitable' Is Not the Same as 'Most Signups'
  3. 03You Can't Rank Channels Without Joining Spend to Real Revenue
  4. 04Your Attribution Model Decides the Winner Before You Do
  5. 05Profit Shows Up Over the Lifetime, Not at Checkout
  6. 06How TrackRev Handles This
  7. 07When NOT to Use TrackRev for This

Roughly 63% of SaaS teams still rank their marketing channels by signup volume or top-of-funnel cost per lead, which means the channel they call their "best" is frequently their least profitable one.

Signups are free to celebrate and expensive to bank.

A channel can flood your trial list with 2,000 users a month and still lose money if those users convert at 1.8%, churn in 60 days, and cost more to acquire than they ever pay you.

The question "which marketing channel is most profitable" sounds simple, but answering it correctly requires joining three datasets most tools keep in separate silos: ad spend, the marketing touch that drove each customer, and the actual recurring revenue that customer generated in Stripe or Paddle net of refunds and cancellations.

Most dashboards answer a different, easier question — which channel drove the most traffic or the most conversions — and then let you assume that traffic equals money. It does not.

Marketing channel profitability is the gross margin a channel returns per dollar of customer lifetime value it acquires, measured as attributed net revenue minus the fully-loaded cost to acquire it, and it is the only channel metric that tells you where the next dollar of budget should go.

Key Takeaways

  • The channel with the most signups is almost never the most profitable — profit is gross margin per acquired dollar of LTV, not click volume.
  • You cannot rank channels by profit without joining ad spend to real Stripe or Paddle revenue at the customer level, net of refunds and churn.
  • Blended CAC hides a 3-5x profitability gap between your best and worst channel because it averages winners and losers into one meaningless number.
  • First-touch and last-touch attribution can name completely different 'winners' for the same channel, so pick your model before you cut budget.
  • A channel that looks unprofitable at day 30 can be your highest-margin source once you credit 24 months of subscription LTV instead of the first charge.

Why This Matters for Your Revenue

Every dollar you move toward the wrong channel compounds.

If you believe paid search is your winner because it shows the lowest cost-per-signup, and you shift $20,000 a month into it, you may be scaling a channel that acquires low-intent trials who churn before month three — while starving a partnerships channel whose customers stay 26 months and expand.

The gap between your most and least profitable channel in a typical SaaS portfolio is not 20%.

It is routinely 3-5x on a fully-loaded LTV-to-CAC basis, which means channel-mix decisions dwarf almost every conversion-rate optimization you could run on the landing page.

This also governs how much you can afford to spend.

A channel that returns $4.10 in gross-margin LTV for every $1.00 of CAC can absorb far more budget than one returning $1.30, and it can outbid competitors on the same keywords or sponsorships.

Getting channel profitability wrong doesn't just waste a marketing line item — it caps your growth ceiling, because you're rationing capital to the wrong places and leaving your genuinely profitable channels under-funded and invisible.

The one thing to remember

The most profitable marketing channel is rarely the one with the most signups or the lowest cost-per-click. Profitability is attributed net revenue (real Stripe/Paddle dollars, minus refunds and churn) minus fully-loaded acquisition cost, measured per channel over the customer's lifetime — not at the moment of signup. Any ranking built on click volume, cost-per-lead, or first-payment revenue will send your budget to the wrong place.

Why 'Most Profitable' Is Not the Same as 'Most Signups'

The intuition trap is that a channel producing the most volume feels like the most valuable channel.

But volume and profit diverge the moment you introduce three variables that every SaaS has: trial-to-paid conversion rate, average revenue per account, and retention.

A channel is only as profitable as the customers it delivers after all three of those filters run.

The four metrics that actually define channel profit

To rank channels honestly you need four numbers per channel, and you need them joined to the same customer records. Miss any one and the ranking flips.

  • Fully-loaded CAC — ad spend plus agency fees, tooling, and sales assist, divided by customers acquired from that channel (not clicks, not leads).
  • Trial-to-paid rate — the share of that channel's signups that ever become a paying Stripe or Paddle customer.
  • Net revenue per customer — recurring revenue actually collected, minus refunds, failed payments, and downgrades.
  • Retention / LTV — how many months that channel's cohort stays before churning, which sets the true lifetime value.

A worked example where volume lies

Consider two channels spending the same $10,000 in a month. Paid social looks like the obvious winner on the signup line — until you follow the money past the first charge.

The table below is the exact reconciliation most dashboards never show you, because they stop at the signup column.

MetricPaid SocialPartnerships / Affiliate
Ad / program spend$10,000$10,000
Signups1,900240
Cost per signup$5.26$41.67
Trial-to-paid rate2.1%11.4%
Paying customers4027
Fully-loaded CAC$250$370
Avg retention4.2 months26 months
Net LTV per customer$168$1,040
LTV : CAC0.67 : 12.81 : 1

The same $10,000 spend on two channels. Paid social wins every top-of-funnel metric and loses money; partnerships looks expensive per signup and returns nearly 3x its acquisition cost.

Why cost-per-signup is the most dangerous vanity metric

In the example above, paid social's cost per signup is 8x cheaper — and it is the channel bleeding cash. Cost-per-signup is dangerous precisely because it is easy to measure and sits at the top of every ad platform's default report.

It rewards channels that are good at generating clicks and punishes channels that are good at generating customers. If you optimize toward it, you systematically defund your best revenue sources.

This is the same failure mode we break down in tracking revenue by marketing channel instead of just clicks and signups.

You Can't Rank Channels Without Joining Spend to Real Revenue

The single reason most SaaS teams cannot answer the profitability question is that the two halves of the equation live in different systems that were never designed to talk to each other.

Ad spend lives in Google Ads, Meta, and a dozen affiliate dashboards. Revenue lives in Stripe or Paddle.

The join key — which marketing touch drove which paying customer — is exactly the thing that gets lost between the click and the checkout.

The click-to-Stripe gap

A visitor clicks a UTM-tagged ad on Monday, browses on their phone, comes back three weeks later via a bookmark, and pays on their laptop.

The Stripe charge that lands in your account carries a customer email, a plan, and an amount — but no memory of that first ad.

Unless you captured the marketing source at first touch and carried it all the way into the payment record, the revenue shows up as "Direct" or attributes to whatever the last click happened to be.

This is the core mechanic behind attributing Stripe revenue to marketing channels, and it's why cross-device journeys quietly corrupt channel rankings.

Where the source usually gets lost

There are four predictable leak points between the ad click and the charge, and each one silently reassigns revenue to the wrong channel:

  • UTM stripping — short-link redirects and privacy features drop query parameters, so the source never reaches your app. See why UTM parameters get stripped.
  • Cross-device switches — mobile click, desktop purchase, no shared cookie to connect them.
  • Cross-domain hops — the jump from your marketing site to a checkout on a different subdomain or Stripe-hosted page drops the session.
  • Cookie and ITP loss — Safari and ad blockers erase the client-side identifiers most tools rely on to remember the source.

Why the join has to happen at the customer level

Aggregate matching — where a tool guesses that 40 conversions belong to a channel because the timing lines up — produces rankings that shift every time you refresh the dashboard.

To rank channels by profit you need each individual Stripe customer stamped with the channel that acquired them, so that when that customer upgrades in month 9 or churns in month 4, the profit (or loss) flows back to the right source.

Storing the marketing source directly on the payment record, as described in Stripe metadata attribution, is what makes the profitability calculation deterministic instead of a nightly estimate.

The blended-CAC blind spot

When you average all channels into one blended CAC, a portfolio where partnerships returns 2.81:1 and paid social returns 0.67:1 can report a healthy-looking blended 1.6:1 — while one channel quietly loses money on every customer. Blended CAC mathematically hides a 3-5x profitability spread. The only way to see it is per-channel LTV:CAC computed on net Stripe revenue, not a single averaged number on a slide.

Your Attribution Model Decides the Winner Before You Do

Here is the uncomfortable part: even with perfect data, two people can look at the same customer journeys and name different "most profitable" channels — because they chose different attribution models. The model is not a technicality.

It is the rule that decides who gets credit when a customer touched five channels before paying.

How the same channel changes rank under different models

A content article might be the first thing a buyer ever read, a retargeting ad the last thing they clicked, and a comparison review the thing in the middle that actually convinced them. First-touch crowns content.

Last-touch crowns the retargeting ad. Linear splits the credit five ways. None of them is "wrong" — but they produce different budgets.

The trade-offs are laid out in our comparison of last-touch, first-touch, and linear attribution, and picking one before you cut spend is non-negotiable.

Attribution modelCredits the channel that…Over-rewardsBest for ranking profit when
First-touchStarted the journeyAwareness channels (content, PR, social)You have a short sales cycle and top-of-funnel is your bottleneck
Last-touchClosed the saleRetargeting, branded search, directYou want to know what flips intent to purchase
LinearEvery touch, equallyHigh-frequency, low-impact touchesJourneys are long and multi-channel
Position-based (40/20/40)First and last most, middle leastBookends of the journeyBoth discovery and closing matter measurably
Data-drivenEach touch by modeled contributionNothing systematicallyYou have the volume to model reliably

The same set of customer journeys ranks channels differently depending on the attribution model. For profitability decisions, the model choice can swing a channel's apparent LTV:CAC by 40% or more.

Why last-touch quietly overstates paid channels

Last-touch is the default in most analytics tools, and it systematically flatters the channels that sit closest to checkout — branded search, retargeting, and direct. Those channels are often just harvesting demand that other channels created.

If content and partnerships did the persuading and a branded-search click merely caught the customer at the finish line, last-touch will tell you to defund the very channels that made the sale possible.

For subscription businesses this compounds, because you should be crediting lifetime subscription revenue, not just the first payment.

Profit Shows Up Over the Lifetime, Not at Checkout

The final distortion is timing. If you measure channel profitability at day 30, you are measuring first-payment revenue — which for a subscription business is a tiny and misleading fraction of the real number.

A channel's true profit only becomes visible once its cohort has had time to renew, expand, and churn.

The 24-month reversal

It is common for a channel to look unprofitable in month one and become your highest-margin source by month 24.

Enterprise-leaning channels — partnerships, review sites, high-intent SEO — often carry a higher CAC and a slower first payment, but their customers expand seats and rarely churn.

Crediting that expansion back to the acquiring channel is exactly what channel LTV measures, and it's why day-30 ROAS is a trap for anything sold on a subscription.

The payback-period crossover in practice

Take a partnerships cohort at $370 CAC: month-one ROAS reads 0.3, yet by month 14 the average account upgrades from a $49 to a $99 seat, crossing breakeven and finishing month 24 near 2.8:1 — a channel you would have killed on day 30.

Refunds and churn have to flow back to the channel

A channel that drives a lot of refunds or fast churn is less profitable than its gross revenue suggests, and an honest ranking has to subtract those.

When a customer refunds or cancels, the reversal needs to land against the channel that acquired them — otherwise a channel that sells hard and delivers poorly keeps looking like a winner.

Handling this correctly, as covered in Stripe refund attribution, is the difference between gross-revenue theater and real net-margin ranking.

Why GA4 and ad-platform ROAS get this wrong

GA4 measures events and, at best, a transaction value it was told about client-side — it has no concept of a refund three weeks later, a downgrade, or 18 months of retained MRR.

Ad platforms report ROAS based on the conversion value they were fed, which is usually the first charge and is often double-counted across Meta and Google both claiming the same sale.

Neither system can see net lifetime margin, which is why teams relying on them are effectively guessing. The fuller argument is in why GA4 doesn't show revenue by channel.

How TrackRev Handles This

Ranking channels by profit requires exactly the join that general analytics tools refuse to make: first-party marketing source captured at click, carried across devices and domains, and stamped onto the real payment record so that every renewal, expansion, refund, and cancellation flows back to the channel that earned it.

That is the entire design goal of the product.

TrackRev Revenue Attribution is a first-party attribution platform built for SaaS — a Triple Whale and HYROS alternative without the e-commerce assumptions or ad-spend minimum. Connects Stripe, Paddle, Polar, and Lemon Squeezy. $19/month.

Because tracking is server-side and first-party, the source survives Safari ITP, ad blockers, and UTM stripping that break client-side pixels.

Because it reads revenue directly from your billing provider, the profitability numbers are net of refunds and churn, and they accrue over the full subscription lifetime rather than freezing at the first charge.

You get a per-channel LTV:CAC table computed on money that actually hit your account — the exact ranking this whole article argues you need.

If you're wiring it into a modern stack, the Next.js setup guide gets you to first data in under an hour.

Where competitors fall down

Triple Whale and Northbeam are built for Shopify e-commerce.

Their entire data model assumes one-time orders, order-level ROAS, and a checkout that fires a client-side pixel — none of which maps to trials, MRR, expansion, or a Stripe subscription that renews for two years.

Force a SaaS into them and you get e-commerce ROAS on your first payment, which is the day-30 trap this article warns against.

HYROS is heavy, expensive, and tuned for high-ticket info-product and coaching funnels with meaningful ad-spend minimums; it's overkill and a poor fit for a $19-to-$99/month subscription tool.

GA4 can't see net revenue, refunds, or lifetime value at all, and its channel report is last-touch by default.

ClickMagick and PixelMe track clicks and redirects well but stop at the signup — they never join to the recurring revenue that determines whether a channel is actually profitable.

When NOT to Use TrackRev for This

If you run a pure one-time-purchase e-commerce store on Shopify with no subscription component, TrackRev is the wrong tool — you'll be better served by a purpose-built e-commerce attribution platform whose order-level and inventory logic you actually need, and Triple Whale or Northbeam are honestly the better fit there.

Likewise, if you sell exclusively through a sales team with six-month enterprise cycles closed in Salesforce and no self-serve checkout, your profitability question is really a CRM-and-opportunity attribution problem, and a marketing-source tool that reads your billing provider won't capture the human touchpoints that drive those deals.

TrackRev is sharpest when you have self-serve or product-led revenue flowing through Stripe, Paddle, Polar, or Lemon Squeezy and you need to know which channel's customers actually pay and stay.

A practical ranking process you can run this quarter

You don't need a data team to start. The sequence below gets you a defensible channel-profit ranking without boiling the ocean, and it maps directly to the metrics defined earlier.

  • Pick one attribution model and write it down — first-touch is the safest default for a short-cycle self-serve SaaS.
  • Capture source at first click and store it on the customer — not just in analytics, but on the Stripe or Paddle record.
  • Pull net revenue per channel cohort, subtracting refunds and cancellations, over at least a 3-6 month window.
  • Compute fully-loaded CAC per channel — include agency, tooling, and sales-assist costs, not just ad spend.
  • Rank by LTV:CAC, then look at payback period — a 2.5:1 channel with a 4-month payback beats a 3:1 channel that takes 14 months to recoup.

Segment the ranking by plan tier before you act

Before reallocating budget, split each channel by the plan it acquires.

A channel feeding mostly $19 self-serve seats and one feeding $299 team plans can post an identical blended LTV:CAC while demanding opposite decisions — one scales on volume, the other on account quality.

Found this useful? Share it.

PostLinkedIn

Frequently asked questions

Muzahid Maruf — Founder of TrackRev.io

Written by

Muzahid Maruf, Founder, TrackRev.io & Contant.io

Muzahid Maruf is the founder of TrackRev.io and Contant.io. He writes about marketing attribution, link tracking, and revenue analytics for SaaS teams.

Writes about Marketing attribution · Link tracking · Revenue analytics · SaaS growth

Keep reading

Related articles from the TrackRev blog.

Stop guessing where your Stripe revenue comes from.

Set up TrackRev in 5 minutes. Free tier covers 1,000 events / month — no card needed.