Skip to main content
Card class: HeroCategory: Ad Platform

At a glance

Pacing check on StackAdapt budgets vs period elapsed. BidCore (StackAdapt’s AI bidder) is aggressive at exiting learning phase; once it does, daily spend can double overnight. CTV campaigns also pace unevenly because TV inventory peaks in evening prime hours and during major events (sports finals, awards). This card is the early warning that auto-bid or peak-hour CTV is outrunning plan.
What it countsspent_to_date ÷ budget_for_period, expressed as percentage. Budget is taken from campaign-level monthly caps in StackAdapt; spend is real-time spend from reports/campaigns. The card also tracks % of period elapsed for pacing comparison.
Cost basisMostly CPM (display, video, CTV, audio); CPC for native and some display. Pacing math is unit-agnostic.
CurrencyAccount currency.
Conversion attributionNot applicable (budget pacing).
Attribution windowNot applicable.
Bot / invalid trafficIVT-credited spend reduces spent figure on 7, 14 day correction cadence; pacing reads slightly high until credits post.
Time windowT/30D. Today’s snapshot plus 30-day rolling pacing shape.
Alert trigger>90% used before 80% of period. On StackAdapt, sudden overpacing most often signals (a) BidCore exited learning phase and ramped, (b) CTV hitting peak inventory hours, (c) a manual budget change, or (d) audio campaign exhausting fixed-CPM inventory deal.
Rolesowner, marketing, finance

Calculation

Calculated automatically from your StackAdapt data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

The same US homeware brand. Period 01 Apr 26 to 30 Apr 26 (30-day month). Today is 18 Apr 26 (60% of period elapsed).
CampaignChannelMonthly budget ($)Spent ($)% budgetPacing status
Display ProspectingDisplay18,00012,40069%On pace (mild over)
CTV Awareness “Spring Living”CTV22,00018,20083%OVERPACED
Native Article DistributionNative8,0005,40068%On pace
Audio Spotify SponsorshipAudio5,0003,20064%On pace
RetargetingDisplay + Video7,0004,80069%On pace (mild over)
Account total (this card)$60,000$44,00073%OVERPACED 13pp
What’s interesting:
  1. CTV is the overpacing source. 18,200of18,200 of 22,000 budget used at 60% elapsed = 83% pacing, 23pp ahead. The likely cause: NBA playoffs started 11 Apr 26 and CTV inventory pricing spiked 30, 50% across the network. BidCore is paying more per CTV impression to maintain delivery; it’s not winning more impressions, it’s paying more for each one.
  2. Action options for CTV: (a) Lower the CTV CPM ceiling to force BidCore to wait for non-peak inventory, sacrificing some impressions; (b) Pause the CTV campaign through the playoffs (8, 12 days remaining) and reactivate post-event when CPM normalises; (c) Raise the budget cap if the campaign ROAS justifies the seasonal premium (it usually doesn’t on cold-audience CTV).
  3. At current run-rate the account hits the $60k cap on 23 Apr 26, 7 days early. That means 7 days of dark spend in late April unless action taken now.
  4. Display, Native, Audio are all healthy. Account-level alert is driven entirely by CTV; per-channel budget caps would have isolated the issue without flagging the whole account.
  5. The 30D prior had pacing 62% at 60% elapsed, near-perfect. This window’s 73% pacing is the alert. The prior month had no CTV campaigns running (they launched 28 Mar 26), so the comparison is structural, not a pacing-discipline regression.
Quick sanity tests:
  • Pacing ≈ time-elapsed ± 5pp = healthy.
  • Pacing > time-elapsed by 10, 20pp = mild overpacing; usually BidCore ramping post-learning.
  • Pacing > time-elapsed by 30+pp = something accelerated sharply (CTV peak hours, audio inventory deal kicking in, manual change).
  • Pacing < time-elapsed by 10, 20pp = underspending; BidCore failing to find inventory at your bid; raise CPM or expand audience.
  • Pacing flat for 3, 5 days = campaign hit cap or auto-paused.

Sibling cards merchants should reference together

CardWhy pair it with Spend vs Budget
StackAdapt Total SpendThe numerator. The spend trend tells you whether overpacing is structural (BidCore ramping) or seasonal (CTV peak hours).
StackAdapt Spend by CampaignWhere the overpacing came from. Almost always one channel (commonly CTV).
StackAdapt Overspending CampaignsCampaign-level pacing breakdown.
StackAdapt Underspending CampaignsThe reallocation candidates if account is over-paced but some campaigns are under.
StackAdapt CPC TrendPacing rises with rising CPC even at constant volume; this card distinguishes price vs volume drivers.
StackAdapt ROASIf overpacing comes with high ROAS, raise cap; if with falling ROAS, throttle.
The Trade Desk Spend vs BudgetPeer DSP pacing. If both overpacing simultaneously, suspect cross-DSP CTV inventory pressure (sports finals etc.).

Reconciling against the vendor’s own dashboard

Where to look in StackAdapt: StackAdapt → Campaigns and check the per-campaign budget and pacing indicator. The account-level total in this card sums per-campaign budgets and per-campaign spend. StackAdapt does not surface a single “account-level pacing %” in the UI; this card derives it. Why our number may legitimately differ from StackAdapt UI’s pacing indicator:
ReasonDirectionWhy
Time zonePacing % off by ±5pp on day-1/day-30Account TZ vs UTC. Marginal mid-period.
Real-time spent lagCard pacing slightly low for “today”30, 60 minute ingest lag on billable spend.
Budget hierarchyCard uses configured budgets onlySome accounts set a portfolio-level budget on top of campaign budgets; this card aggregates campaign-level budgets only.
IVT creditsCard pacing slightly high before credits postIVT refunds post on 7, 14 day delay.
Mid-period budget changesDirection dependsCard uses current budget value; pacing % retroactively reflows.
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
the_trade_desk.the_spend_vs_budgetIndependent. If both DSPs overpace simultaneously, suspect cross-DSP inventory pressure (CTV during sports finals, display during Q4 holiday).Different inventory pools and budget cycles.
google_ads.gads_spend_vs_budgetIndependent; benchmark only. Search and DSP have different pacing patterns.Search rarely sees the same kind of peak-hour CPM spikes; pacing should be smoother.
shopify.total_revenueNo mathematical relationship; context only.Pacing is input-side; revenue is outcome-side.

Known limitations / merchant FAQs

Why is my StackAdapt pacing 90% with 60% of the month elapsed? The most common cause is BidCore exiting learning phase on a campaign; it ramps from cautious delivery to aggressive volume-maximisation in 24, 48 hours. Other common causes: (1) CTV hitting peak inventory hours (evening prime, sports finals, awards season); (2) audio inventory deal kicking in; (3) seasonal CPM spike across the network; (4) a manual budget change that nobody flagged. My CTV pacing is 30pp ahead of plan, what should I do? Three options: (a) Lower the CTV CPM ceiling to force BidCore to wait for non-peak inventory; cheap but shrinks reach. (b) Pause CTV through the peak event (sports finals, awards) and reactivate post-event when CPM normalises; cleanest if the event is short (7, 10 days). (c) Raise the budget cap if the campaign is mission-critical and ROAS justifies the seasonal premium; rarely the right call on cold-audience CTV. Should I rely on StackAdapt’s per-campaign daily caps? Yes, set both daily and monthly caps. Daily caps prevent BidCore from front-loading the month and leaving you dark. The standard formula: daily cap = monthly cap ÷ days remaining × 1.3 (a 30% safety factor for legitimate efficiency days). Without daily caps, a single CTV spike can exhaust 3, 5 days of budget in one evening. Why does StackAdapt not auto-enforce monthly pacing? StackAdapt’s budget enforcement is hard at the cap level (it stops spending when cap is reached) but soft on pacing (no automatic throttling). The platform prefers to let BidCore run efficiency-maximising; pacing discipline is the advertiser’s job. The fix: set tighter daily caps to enforce pacing in shorter intervals. My pacing dropped sharply, what happened? Common causes: (1) a campaign auto-paused (StackAdapt pauses campaigns that hit a daily cap, fall below CPM floor, or trip a brand-safety rule); (2) creative was disapproved and lost serving capacity; (3) competitor outbid you across the inventory you were winning; (4) seasonal CPM shift pushed your bids below the auction floor. How does this card handle Q4 / Black Friday seasonal spikes? It doesn’t auto-adjust. Q4 CPM rises 30, 80% across programmatic; if your budgets are flat, pacing will look catastrophic in late November. The fix: increase budgets seasonally, or flag the seasonal context manually so this card’s “OVERPACED” alert is interpreted in context. Why does pacing differ from impressions delivered? Pacing is spend-based; impressions delivered is volume-based. Rising CPM means you spend the budget faster than you deliver impressions. Pacing at 90% with impressions at 70% = you’re overpaying for inventory; throttle or lower CPM ceiling. Should I set per-channel budgets or one account-level budget? Per-channel. CTV, display, native, audio have very different pacing patterns; a single account-level budget gets dominated by whichever channel ramps fastest (usually CTV). Per-channel caps protect the long-tail channels (display retargeting often delivers the best ROAS) from being starved by CTV’s seasonal spikes. Can I trust pacing on day 1 of the month? Less than later. Day-1 pacing is built from incomplete data; the % can swing dramatically. By day 5, pacing is the actionable read. Days 1, 3 are mostly noise.

Tracked live in Vortex IQ Nerve Centre

Spend vs Budget is one of hundreds of KPI pulses Vortex IQ tracks across StackAdapt and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.