GTM Operations
Stop Fighting Over Which Touch Gets Credit. Report the Band Instead.
Marketing said it sourced $4.2M. Sales said $1.1M. Same deals, same quarter. The attribution war is unwinnable because every model is wrong in a knowable direction. Here is the confidence-band report that ends the fight and survives a CFO review, with the queries.
· 12 min read
Marketing walked into the QBR with a slide showing it sourced $4.2M of pipeline. Sales walked in with a slide showing marketing sourced $1.1M. Same quarter, same CRM, same deals. The gap was not fraud. Marketing ran first-touch, sales ran last-touch, and both models were pointed at the same opportunities telling opposite stories. Finance sat in the back and quietly discounted both numbers to zero, because a metric that swings 4x depending on who presents it is not a metric a CFO can put in a plan.
For years the fix everyone reached for was to pick a winner. Run a bake-off, declare first-touch or last-touch or some multi-touch model the official one, and force the other teams to live with it. That never resolves the fight; it just moves it into a longer meeting. First-touch and last-touch are both wrong, in opposite and knowable directions, and the buying groups underneath these deals now run 6 to 11 people in the mid-market and 17 or more in the enterprise (Gartner and Forrester, 2025), across a 6.5-month cycle (Ebsta, 2024). No single touch could carry the credit for a deal that eleven people touched over half a year. The move is not to crown a model. It is to stop crowning one, report the band both models bracket, and let finance see the honest uncertainty. Watch the argument collapse into the one number that survives.
Every single-touch model is wrong in a knowable direction
First-touch attribution credits the first interaction with the whole deal. It systematically over-credits top-of-funnel: the webinar that generated a lead who would have found you anyway gets full credit for a deal that closed eighteen months later on the strength of a sales relationship. Last-touch credits the final interaction, which over-credits bottom-of-funnel: the demo request form gets full credit for a deal that only requested a demo because two years of content built the trust. Neither model is lying by accident. Each is structurally biased toward its end of the funnel, and the direction of each bias is completely predictable.
That predictability is the whole opportunity, and it is what the survivor field above turns on. If first-touch over-credits the top and last-touch over-credits the bottom, then the truth for any channel sits somewhere between the two numbers. You do not need a perfect model. You need to stop pretending either endpoint is the answer and start reporting both as the edges of a band. The argument about which is correct assumes one of them is. Neither is, and everyone in the room half-knows it.
The multi-touch model does not save you
The usual escape hatch is “we will build multi-touch attribution and get the real number.” Multi-touch spreads credit across touches by some weighting (linear, time-decay, U-shaped), and it feels more sophisticated without being any more true. It is a third opinion with its own baked-in assumptions about how much a touch is worth, and those weights are guesses dressed as math. You have replaced two honest wrong numbers with one confident wrong number, which is worse, because now the wrongness is hidden inside a model nobody in the room can audit.
The framework: build the truce bottom to top
Here is what I stand up in place of the model war. Five rungs, each one converting a piece of the fight into a piece of a standing report. The bottom two you can finish in an afternoon of SQL; the top two are where the number stops being contested. Scroll it, then I will show the math and the queries under each rung. These are the stages of the survivor field above, made into a build order.
- L5Tighten low-confidence channels with holdoutsholdout
For wide-band channels, run a geographic or segment holdout that measures incremental lift directly. That is the only thing that narrows a band for real, and it beats any model you could buy.
- L4Lead with the total, tight band±30%
The aggregate band is narrow because per-channel errors cancel. Lead the report with the total and its tight range, then show the per-channel split as the humble part. This is the number finance plans against.
- L3Rate confidence by band width1.5x / 2.5x
A band under 1.5x is high confidence; over 2.5x is low. This one column tells finance which channel numbers to lean on and which to treat as provisional pending a test.
- L2Report per-channel bands, not pointslow / high
Low, high, midpoint, band width per channel. Never present a single per-channel attribution number again. The band is the number now, and its width is a feature, not a defect.
- L1Compute both bounds from campaign influence2 queries
Run first-touch and last-touch against won pipeline from campaign influence records. These raw two numbers per channel are the low and high bounds. Do not editorialize; the endpoints are the input to everything above.
Locate yourself on that ladder. Most teams never get past a bake-off between L1 endpoints, arguing about which raw number wins. Every rung above L1 converts a piece of the argument into a piece of a report finance can act on. By the top rung there is nothing left to fight about, because the number carries its own uncertainty on its face.
Report the band, not the point
Rung L2 is where the fight ends on paper. Report first-touch and last-touch side by side as the low and high bound of a band, per channel, and let the width of each band tell the story. A channel where first-touch and last-touch nearly agree is a channel you understand well and can plan against. A channel where they diverge 4x is a channel whose real contribution is genuinely uncertain, and that uncertainty is information finance needs, not a flaw to hide.
View as table
| Item | Value |
|---|---|
| Content/SEO | 1,800K |
| Paid | 900K |
| Events | 1,100K |
| Outbound | 400K |
Look at what the toggle reveals. Content swings from $1.8M first-touch to $500K last-touch, a channel that opens relationships but rarely closes them. Outbound is the mirror: $400K first-touch, $1.6M last-touch, a channel that closes deals other channels opened. Paid barely moves, which means you can trust its number and plan against it. The band is a map of which channels you understand and which you are guessing about, not noise to be smoothed away.
The confidence-band report, in a table
Rung L3 puts it in the format finance reads. Low bound, high bound, midpoint, band width, and a confidence rating driven by that width. The confidence column is the part that ends the fight, because it is honest about which numbers to lean on.
| Channel | First-touch | Last-touch | Midpoint | Band width | Confidence |
|---|---|---|---|---|---|
| Content/SEO | $1.8M | $0.5M | $1.15M | 2.6x | Low |
| Paid | $0.9M | $0.7M | $0.80M | 1.3x | High |
| Events | $1.1M | $0.4M | $0.75M | 2.8x | Low |
| Outbound | $0.4M | $1.6M | $1.00M | 4.0x | Low |
| Total sourced | $4.2M | $3.2M | $3.70M | 1.3x | Moderate |
Two things happen when you present this. First, the total band is far tighter than any single channel, because the per-channel errors partly cancel: content over-credits first-touch by roughly the amount outbound under-credits it. That is the middle stage of the survivor field made literal. Second, the confidence column tells finance exactly which channel numbers to fund aggressively (Paid, high confidence) and which to fund cautiously pending better data (Content, Events, low confidence). That is a planning input. A single point estimate never was.
Why the total band is tighter than the parts
This is the counterintuitive result worth internalizing, because it is what makes the band credible rather than a cop-out. The models disagree most about which channel gets credit, not about how much total pipeline marketing influenced. When first-touch hands content the credit that last-touch hands outbound, the total barely moves. The uncertainty is in allocation, not in aggregate. So you report the aggregate with confidence and the allocation with humility, which is exactly the right shape of honesty. Rung L4 is just the instruction to lead with that tight total.
Build it: the two queries and the join
Rung L1 in code. You already have the data. Attribution lives in the campaign influence records on your opportunities. First-touch is the earliest influencing campaign, last-touch is the latest before close. Two queries, one join, and you have both bounds without buying a tool.
First-touch, the earliest campaign touch per opportunity:
SELECT OpportunityId, Campaign.Type channel, MIN(FirstRespondedDate) first_touch
FROM CampaignInfluence
WHERE Opportunity.IsWon = true
AND Opportunity.CloseDate = LAST_N_DAYS:90
GROUP BY OpportunityId, Campaign.Type
Last-touch, the latest campaign touch before the close date:
SELECT OpportunityId, Campaign.Type channel, MAX(FirstRespondedDate) last_touch
FROM CampaignInfluence
WHERE Opportunity.IsWon = true
AND Opportunity.CloseDate = LAST_N_DAYS:90
GROUP BY OpportunityId, Campaign.Type
Roll each opportunity’s amount to its first-touch channel for the low table and its last-touch channel for the high table, then set the two side by side per channel. The midpoint is the average, the band width is the ratio, and the confidence rating falls out of the width. No multi-touch model, no vendor, no weighting assumptions to defend. Two aggregate queries and an honest presentation.
The war versus the truce
| The attribution war | The confidence-band truce | |
|---|---|---|
| What each team presents | Marketing: $4.2M. Sales: $1.1M. | One report: $3.2M-$4.2M, per-channel bands |
| What finance does with it | Discounts both to zero | Funds against $3.7M with confidence ratings |
| How the number is defended | "Our model is the right one" | "Here is the honest range and why it is wide" |
| What tightens it | A louder argument | A holdout test on the low-confidence channels |
| Who has to be wrong | One team, every quarter | Nobody; both credits are real |
Stop picking a winner
The attribution war is unwinnable because it assumes one model is right, and none is. First-touch over-credits the top, last-touch over-credits the bottom, multi-touch hides its guesses in weights, and finance discounts all three the moment the number moves. The way out is the survivor field at the top of this piece: let the four arguing models dissolve into the one band they all bracket, carry a confidence rating that is honest about which channels you understand, and tighten the wide ones with holdouts instead of louder slides.
Run the two queries this week against last quarter’s won pipeline. Put first-touch and last-touch side by side per channel, compute the midpoint and the band width, and bring the total band to your next QBR. You will trade a fight nobody wins for a number finance can fund, which is the only version of attribution that was ever worth building. This is the same discipline behind the forecast a CFO will trust: report the honest range, name what would tighten it, and stop defending a point estimate the data was never able to support. For the reporting cadence this standing report belongs in, see the operating cadence build.
Keep reading
One email. Every week.
One email a week: an operating problem I solved or botched, with the model, the numbers, and what I would change. No roundups, no theory, unsubscribe whenever it stops being useful.
The newsletter opens soon.
Connect a provider in src/config.ts