A content ROI framework that survives budget season
How to move content budget conversations from hunches to numbers — and which pages to defend first.
Budget season is where most content programs get cut — not because they didn't work, but because nobody could articulate what they did in a number the person holding the budget recognizes.
The fix isn't more metrics. It's the right metric, surfaced at the right time, attached to the right page.
Start with revenue, not traffic
Traffic is easy to measure and easy to ignore. “We got 40,000 more sessions” sounds great until you ask what any of those sessions were worth. Revenue is harder to attribute cleanly, but it's the only number a budget holder respects.
The framework is simple: for every page, compute three numbers.
- Revenue life-to-date — how much revenue has this page been responsible for, attributed back to sessions that started here?
- Monthly run-rate — what's it doing right now, per month, on a rolling window?
- Decay rate — is it growing, holding, or bleeding?
Once you have those three, every page falls into one of four buckets — and each bucket has a clear budget implication.
The four buckets
- Crown jewels — high revenue, low decay. These are your defensives. Budget them for maintenance, not experimentation.
- Refresh candidates — high revenue, high decay. These are your best ROI plays. A refresh here pays back faster than a new page almost anywhere else.
- Scale candidates — low traffic, high conversion. These are your hidden converters. The issue isn't the page, it's that nobody can find it.
- Unlock candidates — high traffic, low conversion. These are your UX and intent-mismatch problems. The audience is there; the page isn't delivering.
What to say in the budget meeting
“We want $X for content” loses. “Here are the five pages that, if refreshed, recover $Y in revenue over the next quarter — and here's the confidence interval on each” wins.
The exact framing matters less than the structure. Pick a framework and use it consistently. It compounds.
RVops computes these numbers automatically from your GA4 session attribution and GSC data, but the framework is platform-agnostic. The point is to have one.
Book a 30-minute demo and we'll walk you through your own data — or a realistic sample.