Plan vs Actual: Tracking Marketing Performance

Plan vs Actual: How to Track Marketing Performance That Actually Holds Up

Most marketing plans look great in January and get quietly ignored by March. The spreadsheet says you'll generate 120 qualified leads this quarter at a $90 cost per lead. Three months later nobody has reopened that tab, spend kept flowing, and the only number anyone discusses is "are we hitting revenue." By then the variance is too big to fix cheaply.

A plan vs actual process fixes that. You write down what you expect each channel to deliver, then compare reality against it on a regular beat. The gap between the two, the variance, is where the useful information lives. A channel that runs 40% under plan on lead volume is telling you something a month before it shows up in the pipeline.

This guide covers what to put in the plan, which actuals to track, how to read variance without drowning in it, and the review cadence that keeps the whole thing alive instead of abandoned.

Why plan vs actual beats staring at a dashboard

A dashboard tells you what happened. It rarely tells you whether what happened is good. Forty leads in a month means nothing on its own. Forty leads against a plan of 35 is a win. Forty against a plan of 80 is a fire.

The plan is the reference point that turns raw numbers into decisions. Without it, every metric is just a value floating in space, and teams default to comparing this month to last month, which hides slow drift and rewards luck.

There's a second benefit that's easy to miss. Writing the plan forces you to state your assumptions out loud. You're committing to a number: this campaign should produce X leads at Y cost. When actuals come in, you learn whether your model of how marketing works is right. Over a few quarters, your planning gets sharper because you keep checking your own forecasts against reality. That feedback loop is worth more than any single report.

What goes into the plan

Plan at the level where you can actually act. Three numbers per channel, per month, are usually enough to start:

  • Spend you intend to deploy.
  • Leads or conversions you expect that spend to produce.
  • Cost per lead (the first two divided), which is your efficiency assumption.

For a B2B program where deals close slowly, add a pipeline line: expected qualified opportunities and their value. Revenue is the number leadership cares about, but it lags by your full sales cycle, so you need leading indicators to manage the months in between.

Here's a simplified planning grid for a single quarter. Numbers are illustrative.

ChannelPlanned spendPlanned leadsPlanned CPLPlanned SQLs
Google Ads (Search)$18,000200$9040
Performance Max$9,000140$6421
LinkedIn Ads$15,00075$20023
SEO / content$6,00090$6718
Total$48,000505$96102

Notice LinkedIn carries a high CPL but a strong lead-to-SQL rate in this model. That's the point of planning by channel: a blended average would hide the fact that expensive leads can still be your most qualified. If you want help deriving these targets from a revenue goal, the math runs backward from your marketing budget set from a revenue target, then splits across channels by past performance.

Where do the plan numbers come from? Last year's actuals are the honest starting point, adjusted for what you're changing. If you're raising LinkedIn spend 50%, do not assume the CPL stays flat, larger budgets usually push into less efficient audiences. Build in that decay. A plan that assumes everything scales linearly is a plan that will miss.

What to track as "actual"

Match every planned line with a real one, pulled from the same definition. This sounds obvious and breaks constantly. Your ad platform counts a "conversion" differently than your CRM counts a "lead," and if you mix the two, your variance is measuring a data mismatch instead of a performance gap.

Pick one source of truth per metric and stick with it:

  • Spend: pull from the ad platforms directly, including platform fees if your plan included them.
  • Leads: count in your CRM or GA4, using one consistent definition (form fill, demo request, qualified call).
  • Cost per lead: always recompute from actual spend over actual leads, never copy a platform's reported CPA.
  • Pipeline and revenue: from the CRM, tied back to the originating channel.

That last tie-back is where most programs fall apart. If you cannot connect a closed deal to the campaign that sourced it, your plan vs actual stops at lead volume and never reaches money. Getting spend and revenue into the same view is the whole job of closed-loop reporting, and it's worth setting up before you scale spend, not after.

Reading the variance

Variance is just actual minus plan, usually shown as a percentage. The skill is knowing which variances to chase.

Start with a simple rule: flag anything outside a band you set in advance, say plus or minus 15%. Inside the band is noise, marketing is lumpy and a single big deal or a slow week will move things. Outside the band is a signal worth a look. Setting the band before the data comes in stops you from rationalizing every miss after the fact.

Then read the variances together, not one at a time. The combinations tell the story:

Spend vs planLeads vs planWhat it usually means
On planUnder planEfficiency dropped: creative fatigue, rising competition, or worse targeting
Under planUnder planYou underspent: budget stuck, approvals slow, or campaigns paused
Over planOn planYou overpaid for the same result: CPL inflation, watch margins
Over planOver planWorking channel, possibly under-resourced: consider reallocating budget here

A lead shortfall with on-plan spend is the one to act on fastest, because you're paying full price for a shrinking return. A lead shortfall with under-plan spend is often just an execution lag and fixes itself once budget flows. Same surface number, different root cause, different action.

One caveat on B2B variance: lead volume reacts in days, but pipeline and revenue react over your sales cycle. A great lead month shows up in revenue a quarter later. Read leading and lagging metrics on different clocks, or you'll panic over a revenue gap that your leads already predicted will close.

The review cadence

A plan vs actual process is only as good as the rhythm behind it. Three loops, running at different speeds:

Weekly, light. A quick scan of spend pace and lead volume against the monthly plan, prorated. Are you on track to hit the month, or drifting? This is a 15-minute check, not a meeting. You're looking for early drift, not full analysis.

Monthly, the real review. Compare the full month's actuals against plan across every channel. Explain each variance outside the band: what caused it, what you'll do, who owns the fix. Write the explanation down. Next month you'll check whether the fix worked, which is how the process compounds instead of resetting.

Quarterly, re-plan. Roll the learnings forward. If LinkedIn beat plan three months running, raise its target. If a channel keeps missing, cut or rebuild it. The plan is a living forecast, and a forecast you never update is just an old guess.

Keep the artifact in one place everyone can see. A shared marketing dashboard with plan and actual side by side beats a deck rebuilt from scratch every month, because the comparison is always live and nobody argues about whose numbers are right.

Common mistakes that wreck the process

Planning only spend. A budget is not a plan. If your plan says "$48,000 across four channels" with no expected output, you have nothing to compare actuals against except whether you spent the money. Spending the budget is not the goal.

Too many metrics. Tracking thirty KPIs guarantees you act on none. Pick the handful that drive decisions, spend, leads, CPL, pipeline, and let the rest stay in the dashboard for diagnosis when something breaks.

Revising the plan to match reality. When the gap embarrasses someone, there's pressure to quietly edit the plan down so the variance disappears. That destroys the entire value. The whole point is to see the gap and learn from it. Lock the plan once the quarter starts; change targets only at the quarterly re-plan, with the reason recorded.

No owner per variance. A variance nobody owns is a variance nobody fixes. Every flagged gap needs a name attached and a decision by the next review.

Confusing platform numbers with business numbers. Your ad account will happily report a great CPA while your CRM shows the leads never qualified. Plan and measure against the metric that ties to revenue, not the one the platform optimizes to make itself look good.

A worked example

Say your plan called for 200 Search leads at $90 in a month. Actuals come in: $18,000 spent (on plan), 150 leads (25% under), so actual CPL is $120 (33% over).

The combined read: full spend, fewer leads, higher cost. That's an efficiency problem, not a pacing one. You dig in and find click-through rate held but conversion rate on the landing page dropped after a redesign. The fix isn't more budget, it's reverting the page. You note it, assign it, and check next month whether CPL returned to plan.

Without the plan, you'd have seen "150 leads, $120 CPL" and had no idea if that was good. With it, you found a specific, fixable cause in one review. That's the difference between a number and a decision. For the underlying math of turning these figures into a return on spend, the steps in measuring PPC ROI connect lead-level variance to revenue.

FAQ

How often should I compare plan vs actual?

Three speeds. A light weekly pace check, a full monthly review against plan, and a quarterly re-plan. Weekly catches drift early, monthly drives the real decisions, quarterly resets the targets with what you've learned.

What variance is big enough to act on?

Set a band before the data arrives, often plus or minus 15%, and treat anything inside it as noise. Outside the band warrants an explanation and an owner. The exact threshold depends on how lumpy your channels are; high-ticket B2B with few deals needs a wider band than high-volume lead gen.

Should I plan by channel or just at the total level?

By channel. A blended total hides the channel that's quietly failing while another carries it. Channel-level plans let you spot exactly where to add or cut budget, which a single top-line number never reveals.

What if my actuals are missing because of attribution gaps?

Fix the measurement before you scale. If you can't tie revenue back to the channel that sourced it, your plan vs actual stops at lead volume and never reaches money. Closed-loop tracking between your ad platforms, GA4, and CRM is the prerequisite, not an optional extra.

How do I plan numbers for a brand-new channel with no history?

Use a small test budget to find a real CPL before you commit a full quarter's plan. For the first month, plan conservatively and treat the actuals as your baseline. Planning a new channel off industry averages is guessing; planning off a two-week test is informed.

Won't locking the plan make it unrealistic as conditions change?

That tension is the feature. A locked plan shows you exactly how much conditions changed, which is data you lose if you edit targets mid-quarter. Adjust at the quarterly re-plan, document why, and your forecasting gets better each cycle.

The short version

A plan vs actual process turns marketing from a spend report into a learning system. Run it like this:

  • Plan three numbers per channel per month: spend, leads, CPL, plus pipeline for slow-cycle B2B.
  • Pull actuals from one source of truth per metric, defined the same way as the plan.
  • Set a variance band in advance and read spend and lead variances together to find the root cause.
  • Review weekly (light), monthly (real), quarterly (re-plan), with an owner on every flagged gap.
  • Never edit the plan to hide a miss. The gap is the lesson.

If your spend is growing but you can't tell which channels are actually pulling their weight against plan, that's exactly the problem this process solves. Send us your current channel split and last quarter's results, and we'll map out a plan vs actual framework you can run yourself in a 30-minute working session. Bring the messy spreadsheet, that's the useful one.