Self-Reported Attribution Coder

Free tool by AAJ - code the answers to "How did you hear about us?" and see what your analytics missed

Analytics records the last click it could see. A lot of buying happens before that click: a colleague's recommendation, a podcast, a post scrolled past, an answer from an AI assistant. None of those leave a referrer, so they arrive as "direct" or as a branded search. Asking people how they found you recovers that part, but the answers come back as messy free text. This tool codes them. It runs in the browser; nothing pasted is sent anywhere, and a draft is kept only in that browser.

Use the tool at aajconsult.com/tools/self-reported-attribution-coder.

What you paste

One answer per line, or a table with a header row from a spreadsheet or CSV export. An optional column with the source your analytics or CRM recorded for the same person adds a side-by-side comparison, and an optional value column, such as first-year revenue, adds a value-weighted view.

How the coding works

Each answer is matched against a codebook of sixteen channels, from word of mouth, podcasts and communities to search, paid ads, review sites and outbound. When two phrases overlap, the longer one wins, so "Google Ads" counts as paid and not search, and "Facebook group" counts as a community and not social. You can add your own keywords and channels.

An answer that names two sources, such as "a friend, then I googled you", is split evenly between them, so the shares still add up to the number of people. Answers like "don't remember" or "N/A" are counted separately from the shares; "not sure, maybe LinkedIn" names LinkedIn and counts. Answers the codebook cannot read are listed for you to code by hand rather than guessed.

What it shows

The share of answers credited to each channel, how many answers mention it at all, and a 90% range around that mention rate, so a share built on a handful of answers reads as the rough signal it is. Below 30 answers naming a source, the result is marked as directional; that threshold is a rule of this tool, not an industry benchmark. It also flags a result that looks like it came from a dropdown, and too many people who could not say.

It reports how much of the total sits in channels that usually leave no click to track. That grouping is the tool's own: word of mouth, podcasts, communities, events, AI assistants, LinkedIn, other social and video. With an analytics column, it shows what people said next to what analytics recorded, including how many of the people recorded as direct, organic or unknown named one of those channels.

The coded answers download as a CSV, and a plain-text summary copies to the clipboard.

Frequently asked questions

Should the question be a dropdown or open text?

Open text. A dropdown is easier to count and hides the detail that makes the answer useful - which podcast, whose post, which community.

Does this replace my analytics?

No. Analytics is good at the clicks it can see; self-reported answers are good at the influence it can't. Read them side by side.

Where should I ask the question?

As close to the decision as you can: the signup or demo form, and again on the first call.

Is my data stored or shared?

No. The coding runs in the browser and nothing is sent anywhere.

Related resources

Dark Social: Where B2B Demand Actually Happens Now - Founder-Led LinkedIn Playbook - Marketing KPI Report - Analytics, Experiments & Budget hub - All free tools

The channels you can't see still need a plan.

If most buyers arrive by word of mouth, podcasts or communities, the budget belongs in the programs that create those conversations. See the Growth Audit.

More in Analytics, Experiments & Budget

Part of the Analytics, Experiments & Budget hub - see all 26 resources on this topic.

Also useful in Social, Community & Creators, Audience & Customer Research.