The problem, applied
The Attribution Debt Framework makes the case that reported CPA in long-cycle B2B is a function of campaign age, not just campaign quality. I pulled six months of Google Ads and CRM data from a live B2B account to build the curve with real metrics and see how the framework holds up in the real world.
The setup
The account is a B2B manufacturer that sells equipment to government municipalities, dealers, and fleet operators. Google Ads is the main lead generation channel this account runs outside of its dealer network and repeat customer base. Here's the PPC-driven cohort for the first half of 2026:
The curve
Grouping those 47 deals by weeks between first touch and close date, and plotting cumulative percent of eventual value recognized at each point, produces the curve below.
Debt curve for the Google Ads cohort, H1 2026 (n=47). Danger zone shaded over the first four weeks.
The shape is a real S-curve: a fast initial trickle, a steady climb through the middle weeks, and a long tail that doesn't fully resolve until week 20. This is exactly what you'd expect from a business with a multi-week sales cycle and a mix of deal sizes.
The CPA payoff
If you'd evaluated this exact cohort at week 2, only 44.7% of the eventual deals had closed. Here's what the numbers looked like at that moment, compared to reality:
| Metric | Value | Gap from true CPA |
|---|---|---|
| True eventual CPA (all 47 deals closed) | $693.65 | — |
| Reported CPA at week 2 | $1,551.80 | +124% |
| Linear debt-adjusted CPA | $620.72 | −10.5% |
Reported CPA at week 2 makes the campaign look like deals are costing more than double what they actually cost. The linear formula from the guide gets meaningfully closer, but still overcorrects by about 10%.
The curve-based correction, using this account's actual empirical distribution instead of a straight-line assumption, is what closes that remaining gap — by definition, it tracks the real recognized value at each point rather than approximating it with a straight ratio.
What it means for campaign decisions
Picture a team looking at this account in week 2. Reported CPA is $1,551.80 against whatever target they set. That's the kind of number that gets a campaign paused, or budget quietly reallocated to a channel that looks healthier that week. This is Trap 1 from the framework guide, killing a campaign mid-cycle, and it would have been the wrong call. The campaign wasn't failing, it just didn't have time for deals in a long sales cycle to mature.
The same distortion impacts ROAS. Using the same cohort's real revenue and spend, here's reported ROAS calculated at each point in the campaign's life:
Reported ROAS for the same 47-deal cohort, calculated at each campaign age.
Reported ROAS triples from 3.33x at week 1 to 10.1x by week 20, purely as a function of time passing, not because anything about the campaign's performance changed. A team checking in early and seeing a 3.33x ROAS might read that as a mediocre account and start asking hard questions. The account was never mediocre, deals just needed time to close.
Limitations
- This is just one account application of the framework, it is not a universal rule for addressing performance in a vacuum.
- This account's average sales cycle runs in weeks, not months. The distortion here resolves faster than it would for a longer enterprise sales cycle, where the same effect would likely be larger and last longer.
- 47 deals clears the stated minimum, but it's not a large sample. Read the exact curve shape as directional for this account rather than a universal template.