Self-reported attribution vs tracked data: which source to trust for which decision
Self-reported attribution vs tracked data: what a how-did-you-hear survey sees that clicks miss, where each errs, and how to cross-check both on real buyers.
Muzahid Maruf, FounderUpdated
On this page
- 01Self-reported attribution vs tracked data at a glance
- 02What each source records for one buyer
- 03One month of 40 customers, both sources side by side
- 04Where each source goes wrong
- 05Which source answers which decision
- 06How to add a how-did-you-hear question
- 07Reconciling the two without double counting
- 08What TrackRev does for this problem
Explore with AI
Opens this article inside the chosen assistant with a ready-made prompt.
Self-reported attribution vs tracked data splits by question. Tracked data wins any question about dollars on a channel that leaves a click.
A customer's own answer wins the question of whether a channel with no click, such as a podcast or a friend's recommendation, exists at all.
In the 40-customer month worked through below, 13 sales sit under Direct, and 10 of the 11 buyers there who answered a "How did you hear about us?" question named a friend or a podcast.
Key takeaways
- In a hypothetical 40-customer month with $1,960 of new MRR, 13 sales sit under Direct, and 10 of the 11 buyers there who answered credit a friend or a podcast.
- Never add the two sources together. In that month 6 of the 16 friend and podcast answers belong to customers with a tracked click, so a sum counts 6 sales twice.
- Ask once, right after signup, with 6 to 8 plain options plus Other. "How did you first hear about us?" measures the opening touch, and "What made you sign up today?" measures the closer.
- Keep ad budgets and affiliate commissions on recorded clicks. Use the answers to decide whether channels without links deserve money, such as the audio behind 8 of the 40 sales.
Self-reported attribution vs tracked data at a glance
| Attribute | Tracked data | Self-reported answers |
|---|---|---|
| Podcast mention, no link | Nothing; a later typed visit shows as Direct in Google Analytics 4 | Captured if the buyer names it |
| Typical error | Missed touches; the closing click takes all | Faded memory; one answer per buyer |
| Coverage | Every visitor whose click and cookie survive | Only people who answer |
| Revenue link | Join click to charge | Join answer to customer, then to charge |
| Setup | Links, a pixel, a Stripe connection | 1 form field, 1 place to store it |
What each source records for one buyer
A buyer hears your founder on a podcast on day 1 and sees a colleague mention the tool in Slack on day 3, with no link in either.
On day 9 she searches your brand name, clicks the organic result and starts a trial. On day 23 she pays $49 through Stripe Checkout.
Your tracker holds 1 touch, the day-9 click, so first-touch, last-touch and linear attribution all give organic search the $49.
Ask her 1 question at signup and the wording picks the answer.
"How did you first hear about us?" points to the podcast, and "What made you sign up today?" points to the colleague, while the tracker says organic search either way.
One month of 40 customers, both sources side by side
The numbers are hypothetical, chosen so the arithmetic is easy to follow. A SaaS company sells a $49 monthly plan and signs 40 new paying customers, which is $1,960 of new MRR.
Each has a tracked source from last-touch attribution and a survey answer, and 6 left the question blank. That response rate is picked for readability, and real optional questions may draw fewer answers.
| Tracked source (last touch) | Friend or colleague | Podcast | Google search | Newsletter | No answer | Customers |
|---|---|---|---|---|---|---|
| Direct, no recorded click | 5 | 5 | 1 | 0 | 2 | 13 |
| Organic search click | 2 | 2 | 5 | 0 | 2 | 11 |
| Paid search click | 0 | 1 | 6 | 0 | 1 | 8 |
| Newsletter link click | 1 | 0 | 1 | 5 | 1 | 8 |
| Total | 8 | 8 | 13 | 5 | 6 | 40 |
Hypothetical month. Each customer pays $49, so 40 customers is $1,960 of new MRR.
Start with the Direct row, where the two records disagree most: 13 customers with no recorded click, which is $637 of the $1,960.
Eleven answered, and 10 of the 11 credit a recommendation or an episode, neither of which usually leaves a click.
TrackRev's Q2 2026 benchmarks list a Direct / dark social channel with the highest median click-to-paid rate, 7.1%, and the highest 12-month LTV multiplier, 2.3x, so look inside the bucket before cutting anything that feeds it.
To size the pieces, apply the responders' shares to the whole row. Five of 11 answers named a friend, so about 13 × 5/11, or 6, Direct customers came through a friend, about 6 through a podcast and 1 through Google.
That is $294, $294 and $49 of the $637. It is an estimate from responders and should be labeled one.
Now the double count. The table holds 8 friend answers and 8 podcast answers, and 10 of those 16 sit in the Direct row.
The other 6 belong to customers with a tracked click, such as the 2 organic-search buyers who named a podcast. They are already inside the tracker's 40, so adding the survey's 16 to its totals counts 6 sales twice.
Where each source goes wrong
| Source | Failure | Where it shows in that month |
|---|---|---|
| Tracker | No signal from dark social or link-less audio | 10 of 13 Direct sales trace to a recommendation or an episode |
| Tracker | The closing click takes all the credit | The podcast earns $0 although 8 customers, $392 of MRR, name it |
| Survey | Faded memory: buyers may name the touch they remember best | 3 of 8 newsletter buyers never mention the newsletter they clicked |
| Survey | One box for a path with several touches | The day 1 to day 23 buyer has 3 touches and 1 answer |
| Survey | Vague answers | 6 of 8 paid-search buyers wrote Google search |
| Survey | Only responders count | 6 of 40 buyers, 15%, left the question blank |
Touches that send no signal
A tracker logs only requests that reach a server you run.
Alexis Madrigal named the gap "dark social" in The Atlantic on October 12, 2012, listing email programs, instant messages and some mobile apps as sources that arrive with no referrer, so analytics tools file them under "direct" or "typed/bookmarked".
At The Atlantic those visits were 56.5% of its social traffic to individual stories, though that was 1 news publisher in 2012 and no SaaS benchmark.
Google defines Direct in the GA4 default channel group as a source of "(direct)" with a medium of "(not set)" or "(none)", a test that a link sent in an instant message passes.
Signals deleted in transit
WebKit's tracking prevention post says Intelligent Tracking Prevention deletes all of a website's script-writable storage after 7 days of Safari use without interaction on the site, and the Safari 17.0 notes add blocking for known tracking query parameters in links in Private Browsing.
A visitor a script recorded on day 6 who then stays away for 7 days of Safari use can pay on day 23 as a stranger. The Safari ITP guide and the post on stripped UTM parameters cover what survives.
Which source answers which decision
| Decision | Use | Reason from that month |
|---|---|---|
| Raise or cut paid-search spend | Tracker | 75% of paid-search buyers (6 of 8) answered Google, so answers cannot isolate the ad |
| Sponsor a second podcast episode | Survey | A link-less mention earns $0 in the tracker, and 8 of 34 answers named a podcast |
| Pay an affiliate a commission | Tracker | A payout needs an auditable click and charge |
| Decide whether word of mouth deserves a budget | Survey | 10 of the 13 Direct sales trace to it |
| Report revenue by channel to finance | Tracker, plus an unattributed line | $637 of $1,960 has no recorded click |
| Choose first touch, last touch or linear | Tracker | All 3 models rework recorded touches only |
Where to ask
Ask once, right after signup or when the account first does something useful. If signup is the payment, use the confirmation screen.
Stripe Checkout can hold the question too: its custom fields allow up to 3 fields and a dropdown of up to 200 options, and the answer arrives in the checkout.session.completed event.
How to word it
Use the customer's words. "How did you first hear about us?" works, and "What was your acquisition channel?" does not, because no customer thinks in channels.
Offer 6 to 8 options such as a friend or colleague, a podcast, YouTube, Google search, a newsletter, a review site and an ad, then Other with a text box.
Review the write-ins monthly and promote repeats to their own option. Keep it to 1 question, and ask role and goals on another screen.
Where to store the answer
Write it to the user record at signup and copy it to the Stripe customer's metadata, which per Stripe's docs takes 50 key-value pairs with keys up to 40 characters and values up to 500.
The answer then sits on the Stripe customer who paid, and a revenue-weighted comparison becomes a join. The Stripe metadata setup guide shows the same pattern for tracked sources.
Reconciling the two without double counting
Put both sources on one customer list and one date range. The survey's share of responders and the tracker's share of all customers describe different populations and rarely line up.
Take new paying customers in 1 month for both, then sort each one into 1 of 5 groups. The GA4 revenue-by-channel post explains why the tracked side leaves so much in Direct to begin with.
| Group | Customers | What to do |
|---|---|---|
| Tracker and survey agree | 16: 5 organic and 6 paid-search buyers who answered Google, plus 5 newsletter buyers | Act on it, since two independent records point the same way |
| Direct, with a friend or podcast named | 10 | Estimate the split from the responders' shares and label it an estimate |
| Tracked click, with an earlier friend or podcast named | 6 | Keep the tracker's credit and note the earlier influence without adding it |
| Any other mismatch | 2: a Direct buyer and a newsletter buyer, each of whom answered Google | Look for a stripped referrer or a click the buyer forgot |
| No answer | 6 | Hold them in an unknown line and assign nothing |
The 40 customers from the table above, sorted into 5 groups: 16 + 10 + 6 + 2 + 6 = 40.
What TrackRev does for this problem
TrackRev is SaaS affiliate software, and its built-in link tracking covers the tracked side.
It logs each click server-side at the tracking link, tags the visitor with a first-party cookie, follows the session with a one-line pixel, and joins each Stripe, Paddle Billing, Polar, Lemon Squeezy, Creem or Dodo Payments charge to that visitor by visitor ID or email.
Last touch is the default, with first-touch and linear computed from the same click log.
A charge with no matching visitor shows as Unmatched on the Orders page, and the dashboard flags the dollar total of sales not tied to a click. In the month above that is the $637 your survey has to explain.
TrackRev has no survey field, so keep the answers in your signup form, CRM or Stripe metadata.
The sale.created webhook carries the buyer's email, the credited channel and the visitor ID, with the channel and visitor ID null when no click was credited, so an endpoint of your own can write the tracked channel beside each answer.
Revenue by channel needs a paid plan, Indie at $29 a month or Growth at $299 a year. The free plan tracks 50 links and 1,000 events a month and hides revenue.
If nearly all your customers come by word of mouth, a survey and a spreadsheet will tell you more than any tracker. A team with no partner program may prefer a dedicated attribution tool.
Otherwise see the revenue attribution page and pricing.
Found this useful? Share it.
Frequently asked questions
- Tracked attribution is built from events your systems recorded: clicks, page visits and Stripe charges joined by a visitor ID. Self-reported attribution is built from what customers write in a how-did-you-hear field. The first misses channels that leave no click, such as the 8 podcast mentions that earned $0 above, and the second loses detail.
- It is reliable on whether a channel exists and weak on exact shares. For a share near 25%, the 95% margin of error is about 15 points with 34 responders, 8 points with 100 and 4 points with 400. Those figures assume a random sample, and responders self-select, so the real error is larger. Under 100 responders, read the ranking of answers and ignore the decimals.
- They measure different moments. Google Analytics 4 logs the source of the last recorded visit, and the survey logs what the buyer recalls. Someone who heard a podcast on day 1 and searched your name on day 9 is Organic Search in the report and the podcast in the survey.
- No. Stripe Checkout custom fields are required by default, so pass optional=true if you ask there. Leave it optional, because a blank is more honest than a forced pick. Watch the skip rate, 15% (6 of 40) in the month above.
- Only for a business that grows almost entirely through recommendations and spends $0 on ads. Once you buy ads or pay partners you need recorded clicks, because answers cannot separate 2 paid channels or support an audit of a commission payout.
- Every quarter, plus 1 extra comparison after a launch, a podcast appearance or a newsletter feature. Use the same dates and customer list each time.

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
Stop guessing where your revenue comes from.
Set up TrackRev in about five minutes. The free plan covers 1,000 events a month, no card needed.
Start free