Skip to content
All terms

Expected spend to date: formula and example

Expected spend to date is monthly budget / 30.4 x days. On €3,000 that is €98.68 a day and €986.84 by day 10. Counting today makes it read low.

Expected spend to date is the amount a monthly budget should have spent by now at an even daily pace: the monthly budget divided by 30.4, times the days counted.

On a €3,000 monthly budget that is €98.68 a day, or €986.84 after 10 days. Compare actual spend with it and the gap is your pacing variance. The trap is the day count. Count today in full and any figure that ends today reads low.

The expected spend to date formula

expected spend to date
  = monthly budget / 30.4 x days

30.4 is the average month, 365 days divided by 12 and rounded. Google uses the same constant for its monthly spending limit:

Your monthly spending limit (30.4 times your average daily budget for most campaigns) in any particular month.

Google Ads Help, answer 6385083, checked 3 September 2026.

Set a Google campaign's average daily budget to monthly / 30.4 and, for most campaigns, its monthly limit equals your monthly budget. Pacing against the same 30.4 puts your expected line and Google's ceiling on one scale.

Worked example: a €3,000 monthly budget

The daily rate is 3,000 / 30.4 = €98.68.

Days   Expected     Share of €3,000
1      €98.68        3.3%
10     €986.84      32.9%
20     €1,973.68    65.8%
30     €2,960.53    98.7%

Day 30 reaches only 98.7% of the budget. That gap is the 30.4-day month showing through. Spread over a 31-day month, €3,000 is €96.77 a day. The 30.4 rate runs about 2% above that, so a client spending evenly shows about -1.9%. In a 28-day February the 30.4 rate runs about 7.9% below an even split. A client spending evenly there shows about +8.6%. The 30.4-day month entry has the full arithmetic.

Does today count as a full day?

Many pacing sheets count it, and that is the day-counting problem. Today counts as a whole day of expected spend while today's actual spend is still coming in. Any count that ends today leans toward underspend until the day is over.

Take the same €3,000 client, spending exactly on pace and evenly through the day. At noon a 14-day count ending today looks like this:

expected   €1,381.58   14 days
actual     €1,332.24   13.5 days
variance   -3.6%

At the very start of the day the same 14-day count reads -7.1%. Over 2 days the client reads -25% at noon. Over 30 days it reads -1.7%. The shorter the window, the bigger the lean. Real spend does not arrive evenly by the hour, so the size varies. The direction does not.

How Adswave computes it

Adswave applies the formula to rolling windows, not to month to date. The Budget Pacing view shows expected against actual spend per client for windows of 2, 14, 30, 90, 180 and 365 days ending today, plus one custom range. Expected is the client's monthly budget / 30.4 x the window's days, split into Google and Meta columns.

The monthly budget is the sum of the per-ad-account budgets you enter in the Client dialog under Admin, Clients. Every window, including 365 days, is measured against the current month's budget. Early in a month, a window reaches back into last month but still uses this month's budget.

Today counts as a full day, and today's partial spend is included. Every window in the view therefore leans toward underspend until the day completes. The 2-day window leans most. Today means the server's calendar date. Your organisation's time zone setting does not move it.

The variance is green at 2% or less, amber up to 5% and red above 5%, over and under alike. A client exactly on pace can read -7.1%, red, in the 14-day window as a new day starts. The view shows no month-to-date figure and no projected month-end spend. Budget Pacing is on every plan.

Pacing alerts use the same formula over 1, 7, 14 or 30 complete days ending yesterday. They never include today, so they carry none of this lean. The free budget pacing calculator uses whatever day count you enter. You decide whether today counts. It also projects month-end spend, which the app does not.