Sometimes linear attribution is not “fair”.
It’s just politely wrong.
That’s why I like position-based attribution, also called U-shaped attribution, in cases where the customer journey has a clear beginning and a clear end.
Linear attribution is popular for a reason.
It gives equal credit to every touchpoint, so nobody in the room gets too offended. SEO gets something. Paid gets something. Email gets something. Everyone survives the meeting.
And honestly, I’ve recommended it to clients who were tired of fighting over last-click.
It works.
Mostly.
The problem is that linear attribution treats every touchpoint as equally important.
A blog post that introduced someone to your brand gets the same credit as a retargeting ad they clicked five minutes before buying.
That may be simple.
But it’s not always honest.
In many journeys, the first and last touches carry more weight:
- the first touch starts the relationship
- the last touch helps close the decision
- the middle touches support the journey, but usually don’t deserve equal credit
That’s where U-shaped attribution can be useful.
The standard logic is simple:
- 40% credit to the first touch
- 40% credit to the last touch
- 20% split across all middle touches
In SQL, the flow usually looks like this:
- number all touchpoints with ROW_NUMBER
- count total touches per conversion path
- use CASE WHEN to assign weights by position
- normalize weights so they sum to 1
- multiply weights by conversion value
- aggregate revenue or conversions by channel
It takes a bit more code than linear attribution, but the logic is still readable.
And more importantly, it often reflects the actual marketing story better.
The point is not that U-shaped attribution is “the truth”.
No attribution model is.
The point is that sometimes it is a more useful lie than linear attribution.

Want all my best GA4-BQ queries in one place? I turned them into a Chrome extension — top SQL queries you can search and copy in seconds.
Go here to install it for FREE.
Prefer the web version? It’s here.

