Short answer
Self reported attribution means asking buyers what brought them, usually with "How did you hear about us?" Ask once, when they commit. For SaaS, that's sign-up. For stores, it's the thank-you page. Use open text at low volume. Tag answers, join them to revenue and compare them with click data.
In April 2023, the B2B agency Refine Labs published a year of its own closed-won revenue data. It had added a required free-text "How did you hear about us?" field to its strategy-call form. Podcast listeners drove 53% of its closed-won revenue by their own account. Software attribution gave podcasts 0% (Refine Labs). That's one agency's own data. But a channel worth half your revenue, invisible to your reports, is worth one form field. Our SaaS attribution guide mentions the field in a line. This one covers the details.
What is self-reported attribution?#
Self-reported attribution is the practice of asking customers which channel brought them to you, then counting their answers as a source.
It exists because trackers miss a lot. Some sharing happens in private messages, chats, podcasts and conversations. People call this dark social. When someone clicks a link there, your analytics often logs the visit as "direct."
SparkToro and Really Good Data tested this in 2023. They shared links across 16 networks and messaging apps. Visits from TikTok, Slack, Discord, Mastodon and WhatsApp showed up 100% as direct, with no referrer. Facebook Messenger was 75% (SparkToro). Podcasts and word of mouth never produce a click at all. So dark social attribution starts with a question, not a pixel.
Where should you ask "How did you hear about us?"#
| Where | Best for | Upside | Downside |
|---|---|---|---|
| Sign-up form | SaaS with a free trial or freemium | Ties to the user before payment | Adds friction to sign-up |
| Demo or contact form | Sales-led B2B | High intent; sales can follow up | Small sample |
| Checkout field | One-time purchases, Stripe Checkout | Ties to a payment | Friction at the worst moment |
| Post-purchase survey | Online stores | No friction before the sale | Optional, so some skip it |
My default for SaaS: the sign-up form, one field, required. For stores: the thank-you page, right after the order. Fairing, a post-purchase survey vendor, recommends asking "immediately after purchase" (Fairing, Mar 2023).
Fairing also advises splitting the question by customer type. New buyers get "How did you hear about us?" Returning buyers get "What led you to our store today?" (Fairing support). I agree. A repeat buyer can't recall how they first found you.
If you sell through Stripe Checkout, you can add the question there. Stripe allows up to three custom fields. Text fields take up to 255 characters, and dropdowns up to 200 options (Stripe Docs). Stripe also warns that extra content "might affect your conversion rate." So I'd only ask at checkout if you have no sign-up step.

Open text or dropdown?#
Open text lets people say what happened: "Saw Priya's post on LinkedIn, then googled you." Refine Labs recommends a required open-text field with no drop-downs or suggestions (Refine Labs). The cost is cleanup: typos, jokes and "idk."
A dropdown is clean and easy to chart. But it shapes the answer. Survey researchers call this a response order effect. Options "are more likely to be chosen when presented at the beginning of a list" (SAGE Encyclopedia of Survey Research Methods). It also can't surface a channel you didn't list.
By volume:
- Under about 300 answers a month: open text, required. AI can tag them in minutes.
- Above that, mostly ecommerce: a dropdown with randomized order, an "Other (please say)" text box, and a follow-up question for vague picks.
- Either way: keep the raw answer, so you can re-tag it later.
A starting answer list#
For a dropdown, start with 8 to 12 options:
- Google or another search engine
- ChatGPT, Perplexity or another AI assistant
- YouTube
- Podcast (with a "which one?" follow-up)
- Reddit or an online community
- TikTok or Instagram
- Friend, colleague or word of mouth
- Newsletter or blog
- Review site (G2, Capterra, Trustpilot)
- Event or conference
- Other (please say)
Don't split "Google" into search and ads. Most people can't tell them apart.
What response rate should you expect?#
A required field at sign-up gets an answer from nearly everyone, though some people type "x" to move on. An optional post-purchase survey gets fewer answers. KnoCommerce, a survey vendor, claims a "45%+" average response rate across survey types on its homepage (KnoCommerce). That's a vendor claim with no sample stated, so treat it as a ceiling, not a benchmark.
I found no neutral SaaS benchmark. Track your own:
- Answer rate: non-empty answers ÷ people who saw the question.
- Usable rate: answers you could tag to a channel ÷ all answers.
If the usable rate drops below about 60% (my rule of thumb), change the wording or placement.
How do you clean and tag the answers?#
Raw answers are messy. "Lenny's pod" and "lennys newsletter" may be one channel. Here's the process I'd use.
- Fix the category list first. Use 10 to 15 channels that match your spend lines.
- Tag with AI, using rules. Give a language model your list, ten tagged examples and a rule: "If unsure, tag Unknown." Ask it to tag the channel and any named show, person or community.
- Allow more than one tag. "Heard on a podcast, then googled you" is two sources. Refine Labs counted each mention for this reason (Refine Labs).
- Review a sample by hand. Check 30 tags a month. If several are wrong, fix the examples and re-run.
- Keep junk as its own tag: "No answer."
AI tagging is fast but sometimes confidently wrong, so keep the hand check. Follow-up questions help too: if someone picks "Podcast," ask which one (Fairing).

When self-reported and click data disagree#
Here's how I'd read the common clashes.
| Click data says | Customer says | What probably happened | How to count it |
|---|---|---|---|
| Direct | Podcast or friend | Heard it, typed your URL | Credit the podcast or referral as source |
| Branded search | LinkedIn post | Saw a post, searched your name | Source: LinkedIn. Search was the path |
| Google Ads (brand campaign) | Reddit thread | Read a thread, clicked your brand ad | Source: Reddit. Brand ad may be paying for demand it didn't create |
| Meta ad | Meta ad | Agreement | Higher confidence in both |
The rule I'd follow: click data tells you the last path. Self-reported tells you the first memory. Store both and don't overwrite either. Our guide to last non-direct click vs first touch covers how click models split credit. Self-reported is a separate column, not a replacement.
The second row matters most. If "branded search" buyers often name LinkedIn or a podcast, brand search is collecting demand other channels made. For channels that rarely get clicks, see tracking Reddit, TikTok and podcast ads that people don't click. If Reddit shows up a lot, our guide to Reddit marketing for SaaS covers how to earn those mentions without getting banned.
Using the answers for budget decisions#
- Join each answer to the customer's payments in Stripe or Shopify. Count revenue, not sign-ups.
- Report revenue by self-reported source next to revenue by click source, monthly.
- Watch trends, not levels. Podcast mentions doubling after a sponsorship is a signal. The exact share is less reliable.
- Use it to pick tests, not to end them. Self-reported data says where to look. A holdout says whether the spend caused sales. Our SaaS marketing attribution guide explains how the views fit together.
The biases to correct for#
- Recall bias. On long journeys, a buyer who first saw you a year ago may name last week's webinar.
- Last-seen bias. People name the most recent or most vivid touch. That over-credits retargeting and brand search, the same bias click data has.
- Order bias. Top options in a dropdown get picked more. Randomize the order.
- Channel confusion. "Google" might mean search, an ad, YouTube or Gmail. "Instagram" might mean an influencer you paid. Ask a follow-up.
- Buyers only. You only hear from people who converted.
How to do this in Kratly#
A note on bias: Kratly sells software that ties marketing to revenue. A form field, a spreadsheet and an AI model can do all of the above. For what AI tools should and shouldn't do with your data, see AI marketing agent: what it can do, what it can't, how to choose.
- Connect your website tracking and Stripe or Shopify. Kratly ties each paying customer to the campaign, page or email that brought them.
- Send the answer as an event. Call
kratly.trackwith the answer when the form is submitted, so it sits in that customer's timeline next to the tracked source. There's no built-in survey report yet; tag and compare the answers in a spreadsheet. - Compare revenue by source. Put revenue by tracked source next to your tagged answers and see where they differ.
- Approve suggested changes. Kratly suggests budget moves. You approve each one, and every change is logged and reversible.
LinkedIn, TikTok and Reddit Ads connections are coming soon. Until then, use UTM-tagged links and upload each platform's spend as a CSV.
Questions, answered
Should "How did you hear about us?" be required?
Yes, on a sign-up or demo form, if it's a single short field. Almost everyone answers, and you can tag junk as "No answer." On a store's thank-you page, keep it optional, since the sale is done. Never make it one of several required questions before payment.
Is open text or multiple choice better for self-reported attribution?
Open text is better when you get a few hundred answers a month or fewer. It captures channels you didn't list and avoids order bias. Multiple choice suits high-volume stores, since it's easier to chart. If you use it, randomize the order, add an "Other" box and ask a follow-up for vague picks.
How accurate is self-reported attribution?
It's accurate about what people remember, which isn't always the first touch. Recall fades on long journeys, and people name vivid or recent touches. Treat it as one view next to click data. Where the two agree, trust both more. Where they differ sharply, run a holdout test before moving much budget.
What is dark social attribution?
Dark social attribution means crediting sales that came from private or unclickable sharing: messaging apps, Slack groups, podcasts and word of mouth. Analytics usually logs these visits as direct. The main way to measure it is to ask buyers where they heard about you, then join their answers to revenue.
Written by
Priyansh Kumar
Priyansh Kumar has spent more than a decade in growth, scaling brands from 1 to 10 and from 10 to 100. He now builds Kratly, an autonomous growth team that ties every campaign, page and email to the revenue it brings.
Sources
- Refine Labs: Hybrid attribution framework study (Apr 2023, agency data) · The attribution mirage (Megan Bowen, Oct 2024, agency data)
- SparkToro (Rand Fishkin): Dark social falsely attributes significant percentages of web traffic as direct (Apr 2023)
- Fairing (vendor): HDYHAU question variations (Bryan Romeike, Mar 2023) · New or returning customers · Response clarification analytics
- KnoCommerce (vendor): Homepage response-rate claim and testimonials (checked Oct 2026)
- Stripe Docs: Checkout custom fields
- SAGE: Response order effects, Encyclopedia of Survey Research Methods (Lavrakas, ed., 2008)
Was this article useful?
