The Referral Attribution report (page heading: "Where customers find you") shows you revenue and customer counts grouped by the source field on each customer record — Google, Yelp, Instagram, Referral / word of mouth, an AI assistant like ChatGPT or Claude, and so on. It's meant for one job: telling you where your paying customers actually came from so you can allocate marketing spend with real numbers instead of a gut feeling.
How to get to it
This is a standalone report page at /app/reports/referrals. Get to it from the main Reports hub (/app/reports): under the Customers category there's a card labeled "Referral Attribution" that routes straight here — it sits right next to "Source Attribution." (Before 2026-07-29 this report had no catalog card at all and was reachable only through the command palette or a direct URL; that discoverability gap has since been closed.) The command palette still works too if you prefer it — search "referral" or "how did you hear" and pick "Reports · Referrals" from the Pages section. Just don't confuse the "Referral Attribution" card with "Source Attribution" next to it on the hub — that one's a separate, different inline report that renders on the catalog page itself rather than routing anywhere.
Permission gate
The report requires the "View financial reports" permission on your account (the same shop-level financial toggle that gates most of the dollar-figure reports in SalesThumb). If you land on the page without it, you'll see a blocked-access message telling you to ask a shop owner or admin to grant it in Settings → Team → Permissions — you won't see a blank report or a raw API error, just that message. This check happens on the page itself rather than relying on the nav to hide it, so even someone who finds the direct URL or the command palette entry without the permission still gets stopped cleanly instead of seeing a broken or half-loaded report.
Reading the tiles and table
At the top you get four lookback windows (30d / 90d / 180d / 365d) and four headline tiles: total revenue, total customers, your top non-Unknown source by revenue share, and the window length. Below that is a second row of four coverage tiles: "Customers attributed" and "Revenue attributed" each show a percentage with the raw counts underneath it (e.g. "42 of 100" customers, or a dollar-to-dollar comparison), while "With a source" and "Attributed revenue" are two more tiles that repeat those same underlying numbers on their own, as plain counts with no percentage. Together they tell you how complete your attribution actually is: if a big chunk of your revenue is unattributed, the source breakdown below is only showing part of the picture, and it's worth pushing your team to fill in the "How did you hear about us?" field more consistently before you trust the numbers enough to shift ad spend on them.
The main table sorts sources by revenue and includes an Unknown row (highlighted in amber) for customers with no source on file — that's the empty/null bucket, not something a customer actually picked. Each row shows revenue with a proportional bar, customer count, a New/Returning split, average revenue per customer, and percent share of total revenue. If a customer picked "Other" when giving their source, their verbatim write-in appears in a separate "Other write-ins" card below the main table — that card only shows up when there's at least one write-in to display. Check it periodically: a write-in showing up repeatedly is a signal to add it as a proper source option instead of leaving it as free text customers have to retype.
Exporting
The Download CSV button (disabled when there's no data yet) exports the current source breakdown — source, customers, new, returning, revenue, average per customer, and percent share — for the selected lookback window. Source labels and "Other" write-in text are sanitized against formula injection before export, so a customer's free-text write-in can't execute as a formula if you open the file in Excel or Google Sheets.