Monthly Spend Forecast
Projects month-end account spend from month-to-date plus a recency-weighted run rate, compares it to your monthly target, and alerts when the projection drifts beyond tolerance.
by Dmytro Tonkikh·chiliad.io
Overview
Monthly Spend Forecast answers the question every client asks mid-month: where will spend land? It takes month-to-date spend, blends the last-7-days run rate (weighted 2:1) with the month's average so budget changes show up quickly, and projects month-end spend for the account and per campaign. With a MONTHLY_TARGET set, it alerts when the projection misses the target by more than your tolerance — including the exact daily spend needed for the rest of the month to land on target.
Setup
- 1Open your Google Ads account and go to Tools → Bulk Actions → Scripts.
- 2Click the + button to create a new script and paste the code below.
- 3Set MONTHLY_TARGET to your agreed monthly budget (0 keeps it a report without variance alerts).
- 4Set EMAIL_ADDRESS to receive the forecast/alerts.
- 5Preview once to verify, then schedule daily (mornings work best).
Configuration Variables
| Variable | Default |
|---|---|
MONTHLY_TARGET | 0 |
VARIANCE_ALERT_PCT | 10 |
TOP_CAMPAIGNS | 15 |
EMAIL_ADDRESS | (empty) |
Expected Output
=== Monthly Spend Forecast === Month progress: day 15 of 31 Month-to-date spend: 6240.10 (avg 445.72/day) Last 7 days run rate: 512.40/day PROJECTED MONTH-END SPEND: 14180.55 Target: 12000.00 -> projection is +18.2% vs target. [ALERT] Overpacing beyond 10%. --- Top campaigns by projected month-end spend --- Generic — Broad MTD: 2411.02 projected: 5480.20 Brand — Exact MTD: 1820.44 projected: 4100.80 Email sent to you@example.com
Notes
Complete days only — today's partial data is excluded, so the projection is stable regardless of run time. Pairs with a Monthly Budget Cap script: the forecast tells you the drift early; the cap is the hard stop. Paused campaigns' month-to-date spend is included (money already spent counts).