web analytics
Back to blog

The deal tracker I keep so nobody has to take my word for it

Extractable summary

Self-reported attribution means crediting deals to a channel based on what buyers say about how they found you, and it’s the best option a small company has when no CRM does attribution for it. I keep it in a spreadsheet with four rules: only named content channels count, only after a start date, the source stays blank when nobody knows, and the evidence column holds the buyer’s own words. The rules keep content’s share low enough that a sceptical founder believes it. Here’s every column, how each rule works, worked examples and the free template.

Without a CRM set up for attribution, content’s share of deals is whatever the most confident person in the meeting says it is. So I keep a deal tracker built on self-reported attribution, the buyer’s own account of how they found you, and I stick to four rules that stop me inflating it. It’s a spreadsheet I built for a small B2B SaaS team with no attribution setup, and the rules are what make it hold up when someone asks “says who?”

Four rules for a self-reported attribution deal tracker: count named content channels only, only after a start date, leave the source blank when unknown, and use the buyer's own words as evidence.

Why does content need a deal tracker at all?

Because most small companies have no system that answers “did content bring in this deal?”, and people fill the gap with opinion. HubSpot’s revenue attribution reports, for example, are Marketing Hub Enterprise only, and they ignore any deal that isn’t closed won with a contact attached. A five-person company on a starter plan isn’t getting that report.

Even good software misses most of what happens: Gartner found B2B buyers spend only 17% of their buying time meeting potential suppliers, and the rest goes on research you can’t see, like an AI answer or a colleague forwarding your comparison page. 6sense’s 2025 study found 94% of B2B buyers use LLMs while they buy, and an AI answer leaves almost no trail in analytics. I’ve covered measuring AI visibility when analytics can’t see it; the deal tracker is the sales-side half of that.

What columns does a self-reported attribution tracker need?

Fourteen, and every one exists to answer a question somebody will ask when you report content’s share:

ColumnWhat goes in itWhy it’s there
Date closedThe close date, typed as 2026-10-12Rule 2 runs off it, and day-month swaps wreck it
MonthFormulaMonthly totals on the dashboard
Company, ContactWho boughtSo sales can check your row against theirs
StatusClosed won, In progress, LostOnly closed won counts; the rest is pipeline you watch
Deal typeNew, Expansion, RenewalRenewals with no new content touch don’t count
Value, Value (reporting)Deal currency, then convertedOne rate on the Settings tab, stated as an assumption
How they found usA fixed list of channelsRule 1 needs a closed list, never free text
Source detailThe specifics“Asked ChatGPT for tools in the category” beats “AI”
Attribute to contentYes, No or blankYour judgement call, made row by row
CountsFormulaYes only if closed won, marked Yes and after the start date
EvidenceThe buyer’s words, or where the source came fromRule 4
NotesEverything elseOther touches, doubts, what to confirm

The split between “Attribute to content” and “Counts” does the most work: you make the judgement in one column and a formula enforces the rules in the next, so a deal you like the look of can’t count if it closed before the start date or hasn’t closed at all.

How do the four rules stop an inflated claim?

Each rule removes one way people usually pad self-reported attribution.

Named channels only. The list has eight sources, and only four can ever count: Search, AI assistant, Website / content and LinkedIn. Referral, Outbound, Existing customer and Unknown are on the list so you can log them properly, and the formula leaves them out of the total. Decide the four before the first deal goes in, because deciding after is how “the founder mentioned our blog once” becomes content-sourced.

After the start date. Pick the day the content programme you’re judged on began, such as a site relaunch or your first week in the role. Anything closed before it doesn’t count, even if content helped, and a buyer who knew the company before that date is a No, however they came back.

Decision flow for crediting a deal to content: if the source is unknown it stays blank, if it isn't a named content channel or first contact predates the start date it's a No, otherwise it's a Yes with evidence.

Blank when unknown. If nobody knows how a buyer found you, the field stays empty until sales confirms it, and blank never counts. Guessing “probably search” feels harmless, but five guesses a quarter add up to a share nobody can check. The dashboard counts blanks among closed deals too, so a high share sitting on top of lots of blanks reads as unfinished, which it is.

The buyer’s own words. A dropdown records where someone thinks the buyer came from, and the evidence column is there to back that up or knock it down.

Where does self-reported attribution get the buyer’s own words?

Mostly from sales calls, then email threads, then forms, in that order of trust. Call recordings and transcripts are best, because people describe how they found you in passing and in detail. Signup forms are weakest, and the data backs that up: Ruler Analytics tested about 350 demo-form leads and found 72% of “how did you hear about us” answers were vague or empty, and 56% were one-word answers like “Google”.

Rand Fishkin made the deeper point about asking at all:

“Human memory is fallible. It’s incomplete and inaccurate.”

He wrote that in SparkToro’s piece on the problems with “how did you hear about us?”, and it’s why the evidence column ranks sources instead of trusting whichever one arrived first. A buyer’s own sentence on a call beats a source field typed by a rep, which beats a one-word form answer, which beats your own inference. When a row rests on a weak source, the note says so.

Evidence ladder for self-reported attribution, strongest first: the buyer's words on a call, a source field set by sales, a form answer, then your own inference, with the bottom two needing confirmation.

How do the rules play out on example deals?

Here are four made-up deals, the kind every small B2B team sees in a month, and what the tracker does with each:

The dealRule that decides itAttribute to content
On the discovery call, the buyer says they asked an AI assistant for tools in your category and you were in the answer. First contact was after the start dateAll four passYes, with the quote in Evidence
The buyer found your comparison page on Google last month, but they’d sat through a sales demo with you two years agoRule 2: the relationship predates the start dateNo
A happy customer referred them, and they mention they’d also read your blogRule 1: the channel is the referralNo, blog noted in Notes
Closed won, nothing in the CRM, and the call never covered how they found youRule 3: nobody knowsBlank until sales confirms

One Yes out of four is normal, and that’s on purpose: every No and blank is a deal someone would’ve happily counted for content in a slide, and the tracker stops anyone making that slide.

Four illustrative deals run through the tracker: one found you in an AI answer and counts as Yes, one knew you from years ago and one came by referral, both No, and one has no recorded source so stays blank.

How do you handle deals with several touches?

Credit the channel the buyer names, and leave individual articles out of it. You can’t prove a single article closed a deal, so the tracker credits the content and search channel as a whole. That includes pieces written before you joined: if an old founder-written post brings a buyer in after the start date, it counts, because the channel is what you’re responsible for.

When a buyer mentions several touches, the row records the one they name as how they found you, and the others go in Notes. The exception is a relationship that predates the start date, which makes the row a No whatever happened after. Multi-touch models split credit across the touches software can see, while this tracker makes a smaller claim: the touch the buyer told you about.

How do you report from it without overstating?

Report credited closed deals and content’s share of closed revenue in the same breath as the blank count. Then report content-sourced pipeline separately and label it as pipeline. The dashboard in the template puts all of them on one screen, so nobody can quote the share without seeing the blanks.

Expect the first few reports to look small, possibly empty. B2B deals take months; Dreamdata’s benchmark puts the average B2B buying process at 211 days, so a new tracker mostly records buyers who started researching before your start date, and rule 2 throws them out. Tell leadership that before the first report goes out. I wrote about setting that timeline with leadership on day one, and this tracker is how you keep score against it. For the wider question of what to report past the MQL, there’s my piece on content marketing metrics.

At a previous company, the content operation contributed to 48% marketing-sourced pipeline in peak months, and I wrote up the method behind that 48%. That figure held up because sales agreed the definitions first, and the tracker’s rules come straight from them.

When should you move to a proper CRM setup?

Move once sales records the source on every deal without being asked, or earlier if you’re logging more deals than you can check each week or need to split budget across several paid and owned channels. At that point, set up the CRM’s source fields to match the tracker’s list, so your history carries over.

Checklist for moving content attribution from a spreadsheet to a CRM: move when sales logs every source, rows outgrow weekly review or budget spans several channels, and carry over the channel list and evidence column.

Keep the evidence column, though, even after the move, because self-reported attribution catches what tracking misses. Software can log which pages a contact visited, but it won’t hear a buyer say an AI assistant recommended you. I track that side through a fixed AI citation prompt set, and the deal tracker shows which of those citations turned into closed deals.

What would I do differently next time?

I’d get sales to sign off the channel list and the start date in writing before the first row goes in. Every argument about attribution I’ve seen was about a definition nobody wrote down, and the tracker can only enforce rules people already agreed to. I’d also ask whoever runs sales calls to add one question to every discovery call, “how did you first come across us?”, and to note the answer word for word. That moves most rows up from a form answer or my own guess to the buyer’s words on a call, and it adds about ten seconds to each call.

Download the template

The template has four tabs: How to use, Dashboard, Deals and Settings. Pink cells are yours to fill and off-white cells are formulas. Set your start date and currency rate on Settings, delete the example row, and log every deal sales closes, including the ones that won’t count.

Frequently asked questions

Self-reported attribution is crediting a deal to a marketing channel based on what the buyer says about how they found you, usually captured on a sales call, in an email or on a form. It catches sources software can’t see, like AI assistants, word of mouth and podcasts, but it’s biased by memory, so log the buyer’s exact words as evidence instead of a one-word label.

You can track content attribution without a CRM by logging every deal in a spreadsheet with its source, a Yes, No or blank judgement, and the buyer’s own words as evidence. Fix the list of content channels that can count and a start date before the first deal goes in. A formula should enforce the rules, so only closed-won deals after the start date marked Yes count.

No. A deal with an unknown source should stay blank in a content attribution tracker until sales confirms where the buyer came from, and blank should never count toward content’s total. Report how many blanks there are next to content’s share of revenue, so everyone can see when a high share rests on a few known sources.

A small company should move to CRM attribution once sales records the source on every deal without prompting, deal volume is too high to read each row’s evidence weekly, or budget needs splitting across several channels. Set the CRM’s source fields to match the spreadsheet’s list so history carries over, and keep capturing the buyer’s own words, since software can’t record what a buyer said on a call.

How did this land?No reactions yet
Solange Rainha
Solange Rainha
Content Marketing Manager | 10+ Years B2B SaaS & AEO/LLMO