Attribution modeling for SaaS: how each model splits credit for one sale
Attribution modeling decides which channel gets credit for a sale. See five rule-based models split one $600 SaaS sale, and which type fits your funnel.
Muzahid Maruf, FounderUpdated
On this page
- 01How attribution modeling works
- 02Five rule-based models split one $600 sale
- 03Types of attribution models
- 04Where each model lives in the tools you already use
- 05How the models disagree across a month of sales
- 06Which attribution model to use
- 07What subscription revenue changes
- 08What to store so you can switch models
- 09How TrackRev handles attribution modeling
Explore with AI
Opens this article inside the chosen assistant with a ready-made prompt.
Attribution modeling is the practice of choosing a rule that divides credit for a sale among the marketing touchpoints that came before it.
Take a $600 annual plan bought after 5 touches: last touch gives paid search all $600, first touch gives YouTube all $600, and linear gives each of the 5 channels $120.
For a SaaS team with a few dozen paid conversions a month, read last touch and first touch side by side, then add linear once journeys regularly run past 3 touches.
Google Analytics 4 dropped first click, linear, position-based and time-decay attribution in November 2023, so guides written before then describe options its reports no longer have.
Key takeaways
- Attribution modeling is the rule that splits a sale's revenue across the touchpoints before it. A $600 sale adds back up to $600 under every rule, and only the channel rows change.
- On a $600 annual plan with 5 touches, last touch gives paid search $600, first touch gives YouTube $600, linear gives every channel $120, and 7-day half-life time decay gives paid search $311 and YouTube $18.
- Google removed first click, linear, time decay and position-based attribution from Google Analytics 4 in November 2023. HubSpot, Adobe Analytics, Mixpanel and TrackRev still offer rule-based models.
- Under about 30 paid conversions a month, read last touch and first touch side by side. Data-driven attribution needs more conversion paths than most SaaS teams have.
How attribution modeling works
Every model starts from two inputs: an ordered list of touchpoints for each buyer (a click on a link tagged utm_source=newsletter, a Google Ads click, a referrer, each timestamped) and a conversion with a dollar value.
For SaaS, make the conversion the first paid charge, such as a $600 payment in Stripe, because a trial signup is a lead with no revenue. The credits the model assigns add up to the conversion value.
Google Analytics Help defines a model as a rule, a set of rules or a data-driven algorithm. Single-touch models, first touch and last touch, hand one touchpoint the whole sale.
Rule-based multi-touch models (linear, position-based, time decay) split it with a formula you can work out by hand. Algorithmic models, such as Google's data-driven attribution and the Adobe Analytics algorithmic model, estimate the split from your own conversion paths.
No model changes the total. The $600 sale still sums to $600 and only the channel rows move, so the report ties back to what your payment processor collected.
Five rule-based models split one $600 sale
The buyer watches a YouTube review on day 1, reads a blog post found through organic search on day 6, opens a newsletter on day 15, clicks an affiliate's review link on day 24, and pays on day 30 after clicking a branded paid-search ad.
| Touchpoint | Day | First touch | Last touch | Linear | U-shaped | Time decay |
|---|---|---|---|---|---|---|
| YouTube review | 1 | $600 | $0 | $120 | $240 | $18 |
| Organic search blog post | 6 | $0 | $0 | $120 | $40 | $29 |
| Newsletter | 15 | $0 | $0 | $120 | $40 | $70 |
| Affiliate review link | 24 | $0 | $0 | $120 | $40 | $172 |
| Branded paid search | 30 | $0 | $600 | $120 | $240 | $311 |
| Total | $600 | $600 | $600 | $600 | $600 |
Illustrative journey. U-shaped gives 40% to each end and shares 20% across the middle 3. Time decay uses a 7-day half-life. Amounts are rounded to whole dollars.
First touch and last touch put the whole $600 on opposite ends of the journey, and linear spreads it flat. U-shaped spends $480 on the two ends and shares $120 across the middle 3.
Time decay behaves like last touch with a softer edge: the final 2 touches take $483 of the $600, and the YouTube review that started the journey gets $18.
Time-decay arithmetic for this journey
Adobe documents the weight as 2^(-t/h), where t is the days between a touch and the purchase and h is the half-life. With h = 7, the weights are 0.06 for day 1, 0.09 for day 6, 0.23 for day 15, 0.55 for day 24 and 1.00 for day 30. They sum to 1.93, so the closing click takes 1 / 1.93, or 52%, of the sale. Stretch the half-life to 30 days and the same click takes 27%, with no change in what the buyer did.
Last touch attribution
Last touch gives the final touchpoint before the conversion the whole sale. Mixpanel assigns it with a 30-day lookback unless you change that, and the rule-based models in Google Analytics 4 are two last-click variants.
The main one, paid and organic last click, credits the last non-direct click.
In Google's own examples, a path of Display, Social, Paid Search and Direct gives 100% to Paid Search, because GA4 excludes direct visits unless the whole path was direct.
A tool that counts Direct as a channel gives that sale to Direct, which is one reason two tools disagree on the same model.
Last touch is accurate when the closing click is the decision: a self-serve plan on a 7-day trial or a retargeting budget you are tuning.
It misleads when creators and closers share a journey, and in the monthly example below the podcast earns $0 under it.
Last touch attribution for B2B SaaS
A longer sales cycle and a buying committee stretch every weakness of last touch. In a 3-person committee, one finds you through a podcast, another books a demo after searching your brand name, and the third pays by card.
A model that follows a single visitor sees only that visitor's touches, so last touch credits the payer's final action, often a branded search or a pricing page visit.
On a 60 to 90 day cycle the closing click tends to land after the buyer has decided, so it tells you where they signed up. What made them want the demo sits earlier in the path.
Pair last touch with first touch and read the gap.
First touch attribution
First touch gives the whole sale to the earliest touchpoint inside the lookback window. It answers where buyers first met you, which is what podcast, video, SEO and community budgets depend on.
Its blind spot mirrors last touch: the newsletter that kept the buyer warm and the ad that closed them both score $0.
It is also the model most exposed to lost cookies, because it has to remember a visitor for weeks.
WebKit caps JavaScript-written cookies at 7 days and deletes other script-writable storage after 7 days of Safari use without interaction on the site.
A first visit a script recorded on day 6 can vanish before the same person returns on day 24, and the return then counts as a new first touch.
Setting the first-click cookie from your own server avoids the script cap, and the Safari ITP guide covers what survives.
Linear attribution
Linear divides the sale equally across every touchpoint, so 5 touches get $120 each on the $600 sale and 3 get $200 each.
It is the simplest answer to which channels took part at all, and it puts a newsletter or a podcast into a budget meeting. It overpays trivial touches: a retargeting click carries the same weight as a 40-minute product demo.
Slices also thin as journeys lengthen. At 10 touches each channel gets $60, and a ranking built on that mostly counts how often you contacted people.
Position-based attribution
Position-based, or U-shaped, attribution gives the first and last touches 40% each and shares the remaining 20% across the middle: $240, $40, $40, $40 and $240 on the example.
Adobe Analytics and Mixpanel put the 40% shares on the first and last touch. HubSpot puts them on the first interaction and the interaction that turned the visitor into a contact, which may not be the click before the sale.
Mixpanel's own example gives a 6-touch path 40%, 5%, 5%, 5%, 5% and 40%, and with 2 touches it normalizes to 50% each.
U-shaped therefore only does distinct work from the third touch onward, and its middle slices thin as the path grows.
| Touches in the journey | Linear, each touch | U-shaped, each end | U-shaped, each middle touch |
|---|---|---|---|
| 2 | 50% | 50% | none |
| 3 | 33.3% | 40% | 20% |
| 5 | 20% | 40% | 6.7% |
| 6 | 16.7% | 40% | 5% |
| 10 | 10% | 40% | 2.5% |
Share of one sale per touch. The 2-touch row uses Mixpanel's normalization.
Time-decay attribution
Time decay bets that recent touches matter more. HubSpot, Adobe Analytics and Mixpanel all document a 7-day half-life as the default, and the half-life is the dial that decides the answer.
The model suits cycles that are short next to the half-life.
On a 90-day cycle, a discovery touch carries almost no weight at 7 days and an eighth of the closer's at 30, so the half-life decides whether early touches count at all.
| Days before purchase | Weight, 7-day half-life | Weight, 30-day half-life |
|---|---|---|
| 0 | 1.000 | 1.000 |
| 7 | 0.500 | 0.851 |
| 14 | 0.250 | 0.724 |
| 30 | 0.051 | 0.500 |
| 60 | 0.003 | 0.250 |
| 90 | 0.0001 | 0.125 |
Weight of a touch relative to the closing click, from 2^(-days/half-life).
Data-driven attribution
Data-driven attribution estimates credit from the paths in your own data, comparing buyers who converted with paths that did not. Google Ads Help calls it the default for most conversion actions.
In Google Analytics 4 it weighs how adding each interaction changes the estimated probability of a conversion, using features such as the time between the interaction and the event.
Google removed first click, linear, time decay and position-based from GA4 in November 2023 and no longer supports them in Google Ads.
Data-driven attribution trades a rule you can compute by hand for an estimate you cannot reproduce for a single sale.
With 40 conversions a month, a path-based model has 40 converting paths to learn from, spread across every channel and touch order. Teams with thousands of conversions and an analyst to check the output get value from it.
Most SaaS teams are better served by a rule they can audit.
Where each model lives in the tools you already use
| Tool | Models offered | Notes |
|---|---|---|
| Google Analytics 4 | Data-driven, paid and organic last click, Google paid channels last click | First click, linear, time decay and position-based were removed in November 2023 |
| Google Ads | Last click, data-driven | Data-driven is the default for most conversion actions; the 4 other rule-based models are no longer supported |
| HubSpot revenue attribution | Linear, first interaction, last interaction, U-shaped, W-shaped, full path, time decay, J-shaped, inverse J-shaped | 9 models; full path gives 22.5% to each of 4 milestones and 10% to the rest |
| Adobe Analytics | First touch, last touch, linear, participation, same touch, U-shaped, J curve, inverse J, time decay, custom, algorithmic | 11 models; J curve gives 60% to the last touch and 20% to the first |
| Mixpanel | First touch, last touch, linear, participation, time decay, U-shaped, J-shaped, inverse J-shaped, custom | Defaults to last touch with a 30-day lookback |
| TrackRev | First touch, last touch, linear | Last touch is the default; no position-based, time-decay or data-driven model |
Marketing attribution models listed in each vendor's documentation, checked October 2026.
How the models disagree across a month of sales
Take six customers who each pay $600, $3,600 in all:
| Customer | Touchpoints in order |
|---|---|
| 1 | Podcast, branded search |
| 2 | Podcast, newsletter, branded search |
| 3 | Newsletter, affiliate |
| 4 | Affiliate |
| 5 | Branded search |
| 6 | Podcast, affiliate, branded search |
| Channel | First touch | Last touch | Linear | First minus last |
|---|---|---|---|---|
| Podcast | $1,800 | $0 | $700 | +$1,800 |
| Newsletter | $600 | $0 | $500 | +$600 |
| Affiliate | $600 | $1,200 | $1,100 | -$600 |
| Branded search | $600 | $2,400 | $1,300 | -$1,800 |
| Total | $3,600 | $3,600 | $3,600 | $0 |
Illustrative month. Every column adds up to the $3,600 collected.
Read across a row and the channel's role shows. The podcast earns $1,800 under first touch and $0 under last touch, so a team that looked only at last touch would cancel it.
Branded search runs the other way: $2,400 under last touch and $600 under first, because it closed 4 of the 6 sales and was the only touch in 1 of them.
The first-minus-last column sorts creators (positive) from closers (negative) and sums to $0 because the models only move credit.
Six sales is too few to act on. At 20 paid conversions a month, one customer is 5% of the month's revenue, and under first or last touch a single journey moves a channel's share by 5 points.
Which attribution model to use
| Decision | Model to read | Why |
|---|---|---|
| Raising or cutting paid search and retargeting spend | Last touch | The closing click is the one a bid or budget change acts on directly |
| Funding podcasts, video, SEO content or community | First touch | In the month above the podcast earns $1,800 under first touch and $0 under last touch |
| Defending several channels in one budget review | Linear | Every channel with a touch gets a share, $120 each on the 5-touch sale |
| Journeys with a clear opener, a clear closer and nurture between | Position-based | 40% to each end and 20% to the middle, where the tool offers it |
| Fewer than about 30 paid conversions a month | Last touch and first touch side by side | One customer is 3.3% of the month, so keep rules you can trace sale by sale |
| Thousands of conversions a month and an analyst to check the output | Data-driven | Enough paths to learn from, though the split cannot be reproduced by hand |
The 30-conversion line is a rule of thumb.
Sales cycle and lookback window
A model decides who gets credit inside the lookback window, and the window decides which touches are eligible at all.
GA4 defaults to 30 days for acquisition events and 90 days for other conversions, and its attribution settings page lists the options.
To size yours, take customers who paid in the last 90 days and find the median days between first tracked click and first payment.
TrackRev's attribution benchmarks put that median at 6.3 days, the 75th percentile at 21.0 days and the 90th at 48.2 days, so a 30-day window would cut off more than the slowest tenth of buyers in a typical workspace.
Check a model against customers you know
Pull 5 to 10 recent customers whose real path you know, such as one who replied to a newsletter or one who found you through a podcast, and check what each model says about them.
If last touch files them under Direct, the gap is in the data, and a different model will not close it. The comparison of self-reported and tracked attribution covers asking buyers directly.
What subscription revenue changes
Credit is assigned once, at the first payment, and renewals ride along with it. A $49 monthly plan kept for 12 months is $588, so moving the customer from the closing channel to the opening one shifts $588 of credit.
Channels also differ in the customers they bring.
In the same benchmarks the 12-month lifetime value multiplier is 2.1x for organic search and 0.8x for paid social, so two channels that bring the same $49 first invoice can be worth very different amounts a year later.
Three rules keep the model honest on subscriptions:
- Make the first paid charge the conversion. A model fed trial signups credits channels that bring free accounts that never pay.
- Net refunds and chargebacks out of the credited revenue, or channels that attract refunds look better than they are.
- Decide how renewals inherit credit before the first dispute. The subscription LTV attribution guide compares three ways to do it.
What to store so you can switch models
A model is a calculation over stored touchpoints, so keep every touch with its timestamp, visitor ID, utm_source, utm_medium and utm_campaign, and apply the model at report time.
A tool that keeps only the attributed result cannot re-run last quarter under another rule. Tag every link you control, because a session without a source is reported as Direct in Google Analytics 4. The UTM parameters guide covers naming.
Carry a click ID into the payment too. Stripe metadata accepts 50 key-value pairs, with keys up to 40 characters and values up to 500, and copies a subscription's metadata onto each invoice it creates as a one-time snapshot.
The Stripe metadata attribution setup shows the wiring.
How TrackRev handles attribution modeling
TrackRev is SaaS affiliate software for indie hackers and small teams with attribution built in. It stores every click and computes first-touch, last-touch and linear from the same log, with last touch as the default.
Revenue from Stripe, Paddle Billing, Polar, Lemon Squeezy, Creem or Dodo Payments is joined to each click, so a model switch changes the channel credit while the total still ties to the processor.
Refunds are netted out and no re-tagging is needed.
It has no position-based, time-decay or data-driven model. If a preset like that is a hard requirement, the tools in the table above offer them.
Revenue by channel needs a paid plan, which starts at $29 a month with no limit on tracked revenue.
A team that wants only a standalone attribution product, or any of the missing models, should look at the tools in that table. The free plan covers link tracking for up to 50 links and 1,000 events a month.
The revenue attribution page shows the channel report.
To build the six-sale table from your own data, the multi-touch attribution setup guide walks through the five parts of the build.
Found this useful? Share it.
Frequently asked questions
- An attribution model is the formula that turns an ordered list of touchpoints into a credit for each channel. Last touch is the simplest, with one row getting 100%. Algorithmic models are the most complex, with weights estimated from data. Everything between applies a fixed split, such as 40% to each end and 20% to the middle.
- Single-touch models, first touch and last touch, give 100% of the credit to one touchpoint and $0 to every other. Multi-touch models split credit across several touchpoints by a rule or an algorithm. A buyer with a single touchpoint gets the same answer from every model, so the choice only matters for journeys with at least 2 touches, and the gap grows with journey length.
- No. A change applies going forward, and the window applies to all attribution models. The options are 7 or 30 days for acquisition events such as first_open and first_visit, and 30, 60 or 90 days for every other conversion event. Data-driven conversions can be reattributed for up to 7 days after the conversion, so the most recent numbers can still shift.
- U-shaped has two heavy positions and W-shaped has three. In HubSpot's definitions, U-shaped gives 40% to the first interaction and 40% to the interaction that created the contact, then splits 20% across the rest. W-shaped gives 30% to the first interaction, 30% to the one that created the contact and 30% to the one that created the deal, then splits the remaining 10% across everything between. Both need contact and deal creation recorded in a CRM.
- Yes, at small volume. Export each customer's touches with timestamps and the payment amount, sort by date, then apply the rule: first touch takes the first row, last touch the last, and linear divides the payment by the row count. Time decay weights each row by 2^(-days/half-life) and divides by the weight total. Joining payments to touches is the slow part, and it gets tedious past a few hundred conversions.
- A commission rule is an attribution model with payouts attached. Last touch pays the affiliate clicked last inside the cookie window, and first touch pays the one who introduced the buyer, which favors reviewers over coupon sites. Put the rule in the partner terms and apply it to renewals too, since partners optimize for whatever you publish.
- Settings differ more than formulas do. The lookback window can be 30 days in one tool and 90 in another, one tool may count a trial signup as the conversion while the other counts the first paid charge, and each handles refunds and Safari's cookie cap in its own way. Align the conversion event and the window before comparing two reports.

Written by
Founder, TrackRev.io & Contant.io
Muzahid Maruf founded TrackRev.io, SaaS affiliate software with no limit on tracked revenue, and Contant.io. He writes about affiliate programs.
Writes about Marketing attribution · Link tracking · Revenue analytics · SaaS growth
Run your affiliate program without a revenue cap.
Affiliate software for indie hackers and small SaaS teams: $29 a month flat, 0% fees, link tracking and revenue attribution built in. Free to start, no card.