See it run

The Attribution Table the CFO Signs.

A multi-touch model spreads credit by weights somebody chose, and finance cuts a number it cannot check first. The table that survives the budget meeting is built the way finance builds everything.

Attribution7 min watchWalkthrough

In this video.

Attribution for a company that sells to companies is a bookkeeping problem, not a modelling one. Build the table finance can check from three recorded facts.

What this covers.

  • Attribution in B2B is a bookkeeping problem, not a modelling problem
  • The table is three recorded facts: the source on the lead, a qualification status a person set and the spend from the invoice
  • Join them on the lead and group by source, and the CFO can sign it
Read the full video transcript.

The marketing dashboard says the paid search campaign produced forty percent of pipeline. The chief financial officer asks how that was calculated, and the answer involves a model: last touch, first touch, or a multi-touch weighting the platform chose. She asks what the other model would say, and the answer is a different number. The meeting ends with the budget flat, because the only evidence for it was something finance could not reconcile. Attribution in a company that sells to other companies is not a modelling problem. It is a bookkeeping problem.

This video is the table that survives the budget meeting, built the way finance builds everything, and how it is set up in Zoho CRM in a morning. Everything on screen is a mock demo of Zoho CRM with sample data. A multi-touch model assigns fractional credit to each contact a buyer had before buying. The weights are assumptions: forty percent to the first touch, forty to the last, twenty across the middle, or a decay curve a vendor chose. Change the assumption and the answer changes, which is why two tools on the same data disagree.

Finance has a rule for numbers like that. They are estimates, and estimates do not go in the ledger. A controller will accept an estimate for a provision, with a note. A controller will not fund a channel on one. The problem is not that the models are wrong; it is that they cannot be checked, and a number that cannot be checked is the number that gets cut first. There is a second problem for a company whose buying cycle is long and whose buyer is several people: the person who clicked the ad in March is not the person who signed in September, and the model that connects them is guessing.

The table the finance chief accepts has three inputs, and every one is a fact somebody recorded rather than a weight somebody assumed. First, the source on the lead. When a lead is created, two fields are set from where it came: the source, paid search, organic search, email, referral, event, and the campaign, carried in from the tracking parameters on the form or entered by the person who logged the call. It is set once, and we treat it as the account code on marketing's ledger entry. Second, the qualification status, set by a person.

A lead becomes a qualified conversation when a salesperson reviews it and sets the status, sales ready or whatever the company calls it. Not when a form is filled, not when a score crosses a threshold: when a person decides. It is the only count marketing should call a result, because it is the only one a human vouched for. Third, the spend, from the invoice. Per channel, per month, from what was actually paid: the ad platform's invoice, the agency fee, the tool licence. Not the budget, not the platform's own spend report.

The number finance already has. Join the three on the lead and group by source. The table has one row per source and five columns: leads created, qualified conversations, spend, cost per qualified conversation, and the month. Then one more row at the bottom, labelled unattributed, for the leads whose source fields were empty. That last row is the one that earns the finance chief's trust, because it is honest. A model distributes every lead across channels by assumption and never shows a gap. The table shows the gap, and the gap is a measurable operational problem: the forms that do not carry tracking, the salespeople who log calls without a source, the website that drops the parameters on the way to the sales system.

Fix the doors and the row shrinks. Finance understands a reconciling item. It does not understand a weight. Our own version of this table runs every day from the sales system and the ad platform, and we publish the result. The table does not credit the second touch. If a buyer found the company through a search ad in March, read three articles, and filled in a form after an email in September, the table credits the email, because that is the source on the lead that converted. The search ad's contribution is invisible, and the honest answer is to accept that rather than model around it.

The invisible contribution is seen another way. When the search ads are paused, the email channel's qualified conversations fall two months later, and that is an experiment with a result, not a model with a weight. The table also does not measure brand or content reach; those are measured on their own terms and reported beside the table, never inside it. Mixing them in is how dashboards end up with pipeline numbers nobody can reconcile. The work is small and most of it is a door-by-door audit. Every form that creates a lead carries the source and campaign fields, and the tracking parameters reach them.

Every imported list sets the source on import. Every manually created lead requires the source before it can be saved, which is one validation rule. The qualification status is a picklist a person sets, with no automation allowed to set it. Spend is loaded monthly from the invoices into a small table with channel, month and amount. Then one report, grouped by source, with the qualified count and the spend joined by channel and month. In Zoho CRM that is a custom report and one lookup; it is a morning's configuration once the fields are right.

The result is a table finance can audit: pick any row, trace the qualified conversations to named leads with a human-set status, trace the spend to an invoice. That is the standard the rest of the company's numbers meet, and the budget meeting goes differently when marketing's numbers meet it too. Three recorded facts, one join, one honest row. That is attribution the finance chief signs, and it is a morning's work in the sales system you already run. The next piece in this series takes the spend side of the same table: what it looks like when the finance system can see the marketing spend, and the join from invoice to pipeline.

We are CodeStringers, a Zoho authorised consulting partner, and we run our own marketing on this table. Discovery is no-risk: we audit the doors and build the table, and you pay only if you go ahead. The article is linked below.

Integrated business solutions

One partner. Better outcomes.

We design, build, integrate and operate AI-driven, platform-agnostic integrated business solutions for operationally complex companies. Start with a conversation; we will tell you if we are a fit.