At a glance
Pacing check. Period-to-date Meta spend as a percentage of the configured period budget. Fires the alert when spend hits 90% before 80% of the period has elapsed (i.e. you’re burning budget faster than the calendar).
| What it counts | (spend_to_date ÷ period_budget) × 100, expressed as a percentage. Spend is summed from the Meta Marketing API Insights endpoint at account level for the period start through “now”. The budget is the merchant-configured period budget (set in Vortex IQ, NOT pulled from Meta, since Meta’s budget is per-campaign / per-adset, not per-account). |
| Insights API level | Account-level for the spend numerator. Per-campaign budgets in Meta (CBO, ABO) sum to a notional account-level budget but Meta does not expose a single “account budget” field; this card uses the merchant-configured target. |
| Currency | Account currency for spend; merchant-configured budget must be in the same currency. Mismatch breaks the percentage (no FX conversion is applied). |
| Attribution model | Not relevant. Pacing is on spend (denominator of ROAS), not on revenue or conversions. |
| iOS 14.5+ ATT impact | None. Spend is unaffected by ATT; this card is iOS-stable even on accounts with bad attribution. |
| CAPI vs Pixel-only | None. Pacing is measurement-method-independent. |
| Frequency cap relevance | Indirect. A frequency cap throttles delivery, which slows spend; pacing reads under-budget. Hitting 70% spend at 90% of period elapsed often indicates a cap that’s biting. |
| Time window | T/30D (period-to-date through today, with 30D as the reference window). |
| Alert trigger | >90% used before 80% of period. Catches early-month overspend. The reverse direction (under-pacing, e.g. <60% used at 80% of period) typically fires a separate alert via Underspending. |
| Roles | owner, marketing, finance |
Calculation
Calculated automatically from your Meta Ads (Facebook) data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A UK fashion brand. Configured Meta budget for Apr 26: £24,000. Today is 21 Apr 26 (day 21 of 30, so 70% of the period elapsed).| Date | Period-to-date spend (£) | Spend % of budget | Period % elapsed | Pacing read |
|---|---|---|---|---|
| 07 Apr 26 (day 7) | 6,200 | 25.8% | 23.3% | On pace |
| 14 Apr 26 (day 14) | 12,800 | 53.3% | 46.7% | Mildly hot (+6.6pp) |
| 18 Apr 26 (day 18) | 18,400 | 76.7% | 60.0% | Hot (+16.7pp) |
| 21 Apr 26 (today, day 21) | 22,100 | 92.1% | 70.0% | Alert fired (>90% used at <80% elapsed) |
- A creative refresh on day 14 (Manuela’s “Spring Looks” batch) lifted CTR from 0.9% to 1.8%. Meta’s optimiser responded by increasing delivery, the Advantage+ Shopping campaign cleared its daily cap on day 15-19. ROAS held at 3.6×, so the lift was real, not just inflation. The spend shape is healthy in isolation; the issue is calendar.
- At today’s pace, the £24k budget will be exhausted by day 23 (24 Apr 26). That leaves 7 days of the month with no Meta spend, unless someone tops up the budget. Two options: top up by ~£8k (run to 30 Apr at current pace) OR throttle daily caps from £1,200 to £400 to spread the remaining £1,900 over 9 days.
- Underlying reason this fired: the merchant didn’t update the budget after lifting daily caps on the cold Advantage+ campaign on day 13. The configured period budget in Vortex IQ is a soft target; Meta’s actual delivery follows daily/lifetime budgets configured in Ads Manager. The two need to stay in sync.
- The cleanest action: top up Vortex IQ budget to £32k, accept the higher spend pace, monitor ROAS for the rest of the month. If ROAS holds, you’ve found your scaling ceiling. If ROAS drops more than 10%, you’ve over-shot the efficient frontier and should pull back via campaign-level caps next month.
- Day 30 reading expectation: spend lands around £31, 33k against £24k configured budget = 130% pacing. The budget alert will keep firing daily until the budget config is updated. Update the budget config in Vortex IQ to match the new spend plan, otherwise daily noise drowns the actual issue.
Sibling cards merchants should reference together
| Card | Why pair it with Spend vs Budget | What the combination tells you |
|---|---|---|
| Total Spend | The numerator of this card. Pacing is meaningless without knowing the absolute spend level. | Whether the burn rate is normal or spiked. |
| Spend Trend | Daily series. Pacing alerts often track back to a single high-spend day mid-period. | The day-by-day shape that produced the pacing breach. |
| Budget Utilisation | Period-end view: did spend land within budget by month close? | This card shows the in-period read; that card shows the post-period read. |
| Overspending | The directional card for “spend > budget”. | Specific over-burn detection per campaign. |
| Underspending | The reverse direction. | If spend is pacing low, the issue is delivery / learning-phase / cap, not budget. |
| ROAS | The efficiency check during the burn. | Pacing-hot AND ROAS-up = good problem (top up budget). Pacing-hot AND ROAS-down = bad (throttle, don’t top up). |
| Frequency | High frequency on a small audience drives premature pacing. | If freq >5 in 7d AND pacing hot, audience is too narrow. Expand or refresh creative. |
| Google Ads Spend vs Budget | Cross-platform pacing peer. | Multi-platform marketers should align pacing checks across Meta + Google. |
Reconciling against the vendor’s own dashboard
Where to look in Meta Ads Manager: Meta does NOT have a single “account budget vs spend” view. The closest views are:- Meta Ads Manager → Campaigns → “Budget” + “Amount Spent” columns: shows per-campaign budget and per-campaign spend. Sum these manually for an account-level pacing check.
- Meta Ads Manager → Account Overview → Recent Activity: shows daily spend for the account; useful for spotting the spike day.
- Billing → Limits: account-level spend limit (a hard cap, not a budget). If you’ve set a Spend Limit, Meta will pause delivery when it hits.
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days off | Meta’s account-level spend totals use the ad-account time zone (immutable). This card uses UTC for period boundaries. For a “today is day 21 of 30” pacing read, a 5-hour TZ offset can shift the percent-elapsed calc by ~1pp. |
| Attribution window changes | None on spend | Pacing is on spend, not on conversions. Attribution-window changes don’t affect this card. |
| Modeled conversions inclusion | None on spend | Spend is real money billed; modeling doesn’t apply. |
| Ingest lag | Lower for “today” | 1, 4 hour ingest lag. The spend percentage today reads slightly low compared to Meta’s UI which may be 1-2 hours fresher. |
| Advantage+ opacity | None on this card | Pacing aggregates across all campaigns regardless of objective. Advantage+ campaigns sum into the headline cleanly. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
google_ads.gads_spend_vs_budget | Independent ad-platform pacing. | Different platforms, run separate pacing checks. |
shopify.total_revenue | No direct relationship. | Pacing is about cost discipline, not revenue. |
Known limitations / merchant FAQs
Why doesn’t this card use Meta’s own budget setting? Meta budgets are per-campaign or per-adset (CBO / ABO), not per-account. There is no single “account budget” field in the Meta Marketing API. Vortex IQ asks you to configure a planning-level period budget separately. Keep them in sync: when you raise daily caps in Ads Manager, also bump the Vortex IQ budget; otherwise pacing alerts misfire. Does iOS 14.5 affect this card? No. This card is on spend, not on conversions or revenue. ATT, modeled conversions, CAPI, none of them touch spend pacing. Pacing is the most reliable card on Meta: it tells you exactly what’s being billed, regardless of attribution noise. Why did this card fire on a day my campaigns “felt normal”? Three common causes:- A daily cap was raised earlier in the period and forgotten. Meta’s optimiser respects the cap; if you raised one campaign from £200/day to £600/day on day 7, the pacing breach is invisible until you check the cumulative number.
- Advantage+ Shopping cleared its daily cap because of a CTR lift. When CTR rises, Meta raises delivery to capture the demand. If your daily cap was the binding constraint, spend jumps.
- A new campaign was launched mid-period and adds to the burn. You configured the period budget for 5 campaigns; a 6th was launched on day 12; the budget config didn’t get updated.
- Frequency cap biting. If you’ve set a per-user frequency cap, Meta pauses delivery to high-frequency users. Spend pacing reads under-budget while CPM and impressions look normal on the rest of the audience. Solution: raise or remove the cap, or expand audience.
- Learning phase exit failure. Adsets that fail to exit the learning phase (under 50 conversions in 7 days) get throttled by Meta. Pacing reads under-budget. Solution: consolidate adsets or raise daily cap.
>90% used before 80% of period catches early breaches but ignores 80, 90% pacing which may also matter. Some merchants raise it to >85% used before 75% for tighter discipline; others lower to >95% used before 85% for looser flow.
Why does pacing alert on day 28 of 30 when I’m already winding down?
The 80%-elapsed threshold is hit on day 24. Day 28 is 93% elapsed, well past the alert window. If the alert is firing on day 28, today’s spend is breaching 100% of budget with 2 days still to go. Action: pause campaigns or top up budget.