Revenue attribution

Revenue attribution for SaaS: see which channels bring paying customers

Chartsy follows every customer from first visit to signup to paid subscription, and matches it to the payments in Stripe, Paddle, Polar.sh, Freemius, Creem.io or Lemon Squeezy. So you can compare channels on MRR, not clicks.

From $9/month. No card required for the trial.

What is revenue attribution?

Revenue attribution is crediting each paying customer, and the revenue they bring, to the marketing channel or campaign that brought them. For a SaaS business, it means connecting a website visit and signup to the subscription payment that came later - so you can see which channels grow MRR, not just which ones send traffic.

How it works

From first visit to paying customer

Most analytics tools stop at the signup. Revenue attribution needs the last step: the payment.

  1. Step 1

    Record where each visit came from

    One script on your website records the source and campaign of every visit - search, newsletters, launches, social, AI assistants or UTM-tagged links.

    One tag, under Growth → Set up tracking.

  2. Step 2

    Follow visitors to signup

    When a visitor signs up, the signup keeps the channel that brought them - both the first one and the last one before signing up.

    Works across subdomains, so marketing site and app stay connected.

  3. Step 3

    Match payments to signups

    When they pay, Chartsy matches the payment in your billing account to the signup by visitor id, a success page or email.

    No double counting: one purchase is credited once.

  4. Step 4

    Compare channels on revenue

    Signups, paying customers, MRR and churn by source and campaign - so you can see which channels grow MRR, not just traffic.

    First touch and last touch, side by side.

Works with your payment provider

How payments are matched, provider by provider

Email matching works everywhere with no setup, as long as the customer pays with the email they signed up with. These methods keep the match when they don’t.

Revenue attribution methods by payment provider
ProviderNo-code optionFrom your checkout codeLearn more
StripePayment Link success page with ?session_id=Visitor id in Checkout Session metadataStripe analyticsSetup guide
Paddle BillingEmail matchingVisitor id as customData in Paddle.js checkoutPaddle analyticsSetup guide
Polar.shCheckout link success URL with ?checkout_id=Visitor id in checkout metadataPolar.sh analyticsSetup guide
Creem.ioProduct success URL (Creem adds the checkout id)Visitor id in checkout metadataCreem.io analyticsSetup guide
Lemon SqueezyButton link with ?order_id= and order_identifierVisitor id in checkout custom dataLemon Squeezy analyticsSetup guide
FreemiusEmail matchingLock checkout to the signup email; record buyers on purchaseFreemius analyticsSetup guide

Billing somewhere else? Send your data through the Custom API.

Attribution models

First touch or last touch? See both.

Customers often find you one way and come back another. Each model answers a different question.

First touch

Credits the channel that first brought the customer to your site. Use it to see which channels introduce people who later pay - newsletters, launches and content usually show up here.

Last touch

Credits the channel of the visit before they signed up. Use it to see which channels close - search and direct visits often show up here.

Is it a fit?

Limits to know

  • A payment needs something to match on. A visitor id, a success page in the same browser, or the same email as the signup. A buyer with none of these still counts in your MRR, just not against a channel.
  • Unknown stays unknown. Signups with no identifiable source are kept as unknown rather than guessed, so no channel gets credit it didn’t earn.
  • Cookieless mode shortens the window. With cookies, a visit is remembered for 90 days. In cookieless mode, nothing is stored on the visitor’s device and visits are only matched within a single day.
  • GDPR mode turns off email matching. No emails are kept, so matching relies on the visitor id or a success page. Freemius, which can only match by email, needs GDPR mode off for revenue by channel.
  • Paddle Classic shows customers, not MRR, by channel. Revenue by channel needs Paddle Billing. For Paddle Classic, channels show paying customers but not their MRR.

Revenue attribution is included in every plan. Starter is $9/month with 2 data sources and 2 websites; Growth starts at $29/month with 20 of each. 14-day trial, no card required. See pricing.

Go deeper

Guides and examples

FAQ

Questions about revenue attribution

What is revenue attribution?

Revenue attribution is crediting each paying customer, and the revenue they bring, to the marketing channel or campaign that brought them. For a SaaS business that means connecting a website visit and signup to the subscription payment that came later, so you can compare channels on revenue instead of clicks.

How is revenue attribution different from marketing attribution?

Marketing attribution often stops at leads, signups or conversions. Revenue attribution goes one step further and matches those people to what they actually paid, so a channel that brings many signups but few paying customers stops looking like a win.

Which payment providers does Chartsy attribute revenue for?

Stripe, Paddle, Freemius, Polar.sh, Creem.io or Lemon Squeezy. Stripe, Paddle Billing, Polar.sh, Creem.io and Lemon Squeezy payments can be matched by visitor id or a success page; Freemius payments are matched by email.

What if a customer pays with a different email than they signed up with?

Pass the Chartsy visitor id at checkout, or send buyers back to a success page on your site. Both match the payment to the visit even when the billing email is different, and both keep working with GDPR mode on.

Does Chartsy use first-touch or last-touch attribution?

Both. First touch shows the channel that introduced a customer; last touch shows the one that brought them back to sign up. Switch between them to see which channels start journeys and which close them.

Do I need a developer to set it up?

Not for most setups. The website script is one tag, email matching needs no code, and success-page matching for Stripe Payment Links, Polar, Creem and Lemon Squeezy is a URL you paste into your provider. Passing the visitor id from your own checkout code is a one-line change.

See which channels grow your MRR.

Connect your payment provider, add one script to your website, and see paying customers by channel.

Start free - 14 days
Ministry of Economy and Innovation
Startup Albania

The Chartsy program is realized with the financial support of the Albanian Government through the Ministry of Economy and Innovation, under the Grant 2026 scheme, and is implemented by the Innovation4Albania Agency.