The short answer
- First-touch attribution credits the earliest recognized acquisition touchpoint. In the example: Reddit.
- Last-touch attribution credits the final recognized touchpoint before conversion. In the example: Direct, if the tool counts direct visits (not every tool does).
- Both can be valid reporting perspectives: one about discovery, one about the moment of purchase.
- Neither proves causation. Attribution is a reporting model, not evidence that a channel caused the sale.
What is marketing attribution?
Marketing attribution is a set of rules for assigning credit for a conversion, or the revenue from it, to the marketing touchpoints that came before it. The rules are the attribution model. Change the rules and the same customer journey produces a different report.
- Touchpoint
- An interaction your analytics tool recorded, usually a visit with a source attached: a referrer, a campaign tag, or neither.
- Acquisition source
- Where a visit came from: a search engine, a social site, a newsletter, an ad, another website, or Direct.
- Conversion
- The outcome being credited: a signup, a trial, a payment.
- Attribution model
- The rule that decides which touchpoints get credit for a conversion, and how much each gets.
- Attribution window
- How far before the conversion a touchpoint can still count. Some tools let you set it; in others it's limited by how long the tool recognizes a visitor.
- Direct traffic
- Visits with no referrer and no campaign tag: typed addresses and bookmarks, but also links from apps, documents and email clients that don't pass a referrer.
A model can only choose among the touchpoints the tool recorded and connected to the same person. An ad someone saw but never clicked, a podcast mention, a recommendation from a friend, or a visit on another device usually isn't in the data at all. Attribution reconstructs the recorded part of a journey, not the whole journey.
What is first-touch attribution?
First-touch attribution, also called first-click or first-interaction attribution, gives 100% of the credit to the earliest touchpoint recognized for the customer. Everything after it gets nothing.
Where it helps
First-touch answers "which channels introduce us to the people who later pay?" That suits discovery: search content, communities, launches and partnerships often start journeys without being there at the end. It's also stable: the first touch doesn't move while the customer keeps visiting.
Where it falls short
- It ignores everything after the first visit: the comparison page, the reminder email, the demo that convinced them.
- It depends on identity. "First recognized" isn't "first ever": if the visitor first came on their phone or cleared cookies, the first recorded visit is a later one.
- Long sales cycles make it harder. The longer between discovery and purchase, the more likely the identifier expired or the device changed in between.
What is last-touch attribution?
Last-touch attribution, also called last-click or last-interaction attribution, gives 100% of the credit to the final touchpoint recognized before the conversion. In the same example, the newsletter receives the $99, if it was the last recorded visit before the payment.
Where it helps
Last-touch answers "what brings people back at the moment they buy?" It's close in time to the purchase, so it depends less on connecting visits weeks apart, and it's useful for comparing conversion-stage channels such as email to existing leads, branded search or retargeting.
Where it falls short
- It ignores how the customer found you. A channel that only introduces people looks worthless.
- It favors channels that reach people who have already decided, which can flatter branded search, email and Direct.
- Its result depends on the product's rules, above all on how it treats direct visits.
Tools don't agree on Direct. Some count a direct visit as a valid last touch. Others skip it and credit the most recent visit with a known source. Check which rule your tool uses before you compare last-touch numbers between tools.
First-touch vs last-touch attribution compared
Neither column is more accurate than the other. They answer different questions about the same recorded journey.
| First-touch | Last-touch | |
|---|---|---|
| Which touchpoint gets credit | The earliest touchpoint recognized for the customer | The final touchpoint recognized before the conversion |
| Best question answered | Which channels introduce people who later pay? | Which channels are present when people pay? |
| Typical strengths | Shows discovery channels that rarely get the final click | Close to the purchase; often only the buying visit has to be recognized |
| Typical limitations | Ignores what happened later; the first recognized visit may not be the first exposure | Ignores how the customer found you; favors channels that reach people who've already decided |
| Direct traffic | Gets credit only when the first recognized visit was direct | Depends on the tool: Direct gets the credit, or the last visit with a known source does (last non-direct) |
| Returning-visitor dependence | High: the first visit must be connected to a purchase that may come weeks later | Lower: the purchase visit matters most, so fewer visits need connecting |
| Long sales cycles | Most exposed: cookies expire and devices change between discovery and purchase | Less exposed, but credits whatever came last, however small its role |
| Revenue reporting impact | Revenue moves toward discovery channels | Revenue moves toward conversion-stage channels and Direct |
Try it: one journey, two answers
A fictional customer visits three times in a week, then pays $99. Switch between the two models to see which visit gets the credit. Nothing else changes: same visits, same payment, same total.
- Visit 1 · MondayRedditClicks a link in a Reddit threadCredited: $99
- Visit 2 · WednesdayGoogle SearchSearches the product's name, clicks the resultNot credited: $0
- Visit 3 · FridayDirectTypes the address, no referrer or campaign tagNot credited: $0
- Friday$99 paymentPays during the direct visit
Credited sourceReddit
Attributed revenue$99
First-touch: Reddit was the first recognized touchpoint. The total stays $99; only the source that gets it changes.
- First-touch: Reddit receives $99. Reddit started the journey.
- Last-touch: Direct receives $99. The direct visit was the last one before paying.
This simplified outcome assumes all three visits belong to the same recognized visitor and that Direct counts as a valid last touch. Under a last non-direct rule, Google Search would receive the $99 instead.
Why Direct traffic changes the answer
Direct means the analytics tool saw no referrer and no campaign tag. It's a label for missing information, not a channel anyone chose. Google Analytics 4, for example, defines its Direct channel as source "(direct)" with medium "(none)" or "(not set)".
Returning visitors often arrive this way. They type the address, use a bookmark or browser autocomplete, or click a link in a chat app, a PDF or an email client that strips the referrer. Someone who found you on Reddit on Monday may well come back as Direct on Friday.
If a tool treats Direct as a touchpoint like any other, and that return visit is the last one, last-touch gives Direct the credit. That's why some tools use last non-direct touch: direct visits are skipped and the most recent visit with a known source gets the credit, unless every visit was direct. GA4 states that its attribution models exclude direct visits from credit unless the whole path is direct. The aim is to stop a visit with no source from overwriting a known one; the cost is that a genuine direct return, from a customer who already knew you, never shows as such.


First-touch vs last-touch for SaaS revenue
Take a fictional SaaS month: 100 visitors from Reddit, 50 from Google and 20 from a newsletter, some of whom come back several times. Six customers pay $49 each through a supported payment provider, and each payment is matched to the customer's visits. A seventh $49 payment can't be matched to any visitor.
| Recognized journey | First-touch credit | Last-touch credit | |
|---|---|---|---|
| Customer A | Reddit → Direct | Direct | |
| Customer B | Reddit → Google | ||
| Customer C | |||
| Customer D | Google → Newsletter | Newsletter | |
| Customer E | Newsletter → Direct | Newsletter | Direct |
| Customer F | |||
| Customer G | No matched visits | Unattributed | Unattributed |
| Source | Visitors | First-touch revenue | Last-touch revenue |
|---|---|---|---|
| 100 | $147 | $49 | |
| 50 | $98 | $98 | |
| Newsletter | 20 | $49 | $49 |
| Direct | Return visits only | $0 | $98 |
| Unattributed | — | $49 | $49 |
| Total | $343 | $343 |
Under first-touch, Reddit looks like the strongest channel: $147 from 100 visitors. Under last-touch it brings $49, and Direct shows $98 even though nobody in this example discovered the product directly. Google is $98 either way, because it started two journeys and ended two others. The unmatched payment is unattributed under both.
Changing the attribution model redistributes credit. It does not create additional revenue.
How SuprAnalytics handles attribution
SuprAnalytics connects payments to the visits before them, so every source, campaign, page and country report can show revenue. This is how it decides which visit gets the credit:
- Two models: first touch and last touch. Last touch is the default for every new website.
- A setting per website, in Settings → Revenue → Attribution model. It applies to the website's revenue reports: the chart, the payments list, and revenue by channel, referrer, campaign, page or country.
- First touch credits the visitor's earliest recorded visit.
- Last touch credits the visit the payment belongs to when the checkout passes its session id, otherwise the latest visit that started before the payment. Direct visits count.
- Visits are sessions. A session ends after 30 minutes without activity, and its source is decided when it starts. A
utm_sourceorreftag on the landing page takes priority over the referrer. - History follows the setting. Each matched payment stores both its first and its last visit, and the model is applied when a report is read, so switching re-credits past payments at once, in either direction. Nothing is reprocessed, and nothing missing is recovered: a payment that was never matched to a visitor stays without a source under both models.
- Lifetime value is always first touch. The Lifetime value page groups customers by the visit that first brought them, whatever the setting.
- Recognition has limits. The visitor id lives in a first-party cookie for a year after the last visit. In cookieless mode a visitor is recognized for a day. A phone and a laptop are two visitors; devices aren't merged.
To compare both views without changing the setting, the MCP tools accept a model argument, first or last. The revenue attribution docs cover the setup, and subscription revenue explains how renewals are credited.


How attribution affects Stripe payments
Stripe knows the customer and the amount. It doesn't know which marketing source sent them. That part comes from your analytics:
- A visitor arrives through a tracked source. The script records the visit, its source, and gives the visitor an id.
- They browse, perhaps leave and return, perhaps several times.
- They pay through Stripe Checkout or a Payment Link.
- Stripe sends the payment to SuprAnalytics through a webhook. Polar, Paddle, Lemon Squeezy and Dodo Payments work the same way; other providers can use the Payment API.
- SuprAnalytics matches the payment to a visitor: the visitor id passed to checkout, else the same Stripe customer id on an earlier matched payment, else the same email.
- The website's attribution model decides which of that visitor's visits receives the revenue.
An unmatched payment can't be assigned to a source under any model. It still counts in total revenue, without a source, so the sum of the source rows can be lower than the total. Setup is in the Stripe guide; what you get is on the Stripe revenue attribution page.
Which attribution model should you use?
First-touch may be useful when you are
- Evaluating discovery channels
- Understanding top-of-funnel acquisition
- Measuring which channels reach new people at all
Last-touch may be useful when you are
- Evaluating the final recognized interaction before purchase
- Understanding conversion-stage channels
- Comparing traffic sources close to the purchase
Many founders look at both. Where the two agree, the signal is easier to trust. Where they disagree, the gap is informative: a channel that is strong under first-touch and weak under last-touch is probably starting journeys that other channels finish. Tag your own links with UTM parameters so the visits you can label aren't lost to Direct, and read individual visitor journeys to see the steps no single-touch model shows. None of this guarantees better decisions; it gives you two consistent views to reason with.
Limitations of single-touch attribution
- One touchpoint receives all the credit; every other one receives none.
- Earlier or later interactions are ignored, depending on the model.
- Identity matching can fail: a visitor who isn't recognized starts a new journey.
- Cross-device journeys are incomplete when devices aren't linked.
- Cookieless tracking can shorten how long a visitor is recognized.
- Direct traffic can hide the earlier source that actually introduced the customer.
- Attribution doesn't measure incrementality: whether the sale would have happened without the channel.
Incrementality needs an experiment, such as holding back part of an audience and comparing the two groups. Ad platforms offer lift studies for this because attribution rules can't answer it.
Multi-touch models, briefly
The wider industry uses models that split credit across several touchpoints. These are general concepts; SuprAnalytics doesn't offer them.
- Linear
- Every recorded touchpoint gets an equal share.
- Time-decay
- Touchpoints closer to the conversion get a larger share.
- Position-based
- The first and last touchpoints get the largest shares (often 40% each) and the middle ones share the rest. Also called U-shaped.
- Data-driven
- Shares are estimated statistically from converting and non-converting paths. It needs a lot of data and is a model, not a measurement.
Tools change here too: Google retired first click, linear, time-decay and position-based models from Google Ads and GA4 in 2023, leaving data-driven and last-click variants.
Common attribution mistakes
- Treating attributed revenue as incremental
- "$5,000 attributed to Reddit" doesn't mean you'd lose $5,000 without Reddit.
- Ignoring Direct
- A large Direct share under last-touch often means returning customers whose earlier source is hidden. Look at first-touch before cutting a channel.
- Comparing models with different definitions
- Different tools, windows and Direct rules produce different numbers for the same data. Compare like with like.
- Assuming cross-device recognition
- A visitor on a phone and on a laptop is usually two visitors.
- Treating first-touch as first exposure
- It's the first recorded visit, not the first time someone heard of you.
- Treating last-touch as the final influence
- A review, a friend's message or a sales call may have come after the last tracked visit.
- Forgetting unattributed payments
- Revenue by source adds up to matched revenue, which can be less than total revenue.
- Confusing goals with revenue
- A signup or trial goal shows intent; only payment data shows revenue. Keep the two reports apart.
Related: revenue attributionSuprAnalytics vs Google Analyticspricing