Know on the 8th, not the 30th.
Set a total and per-channel budget, plan spend day by day, and read pace three different ways against the variance band you choose. Completed days only.
Your first 100 days are free.

Most budgets are a number in a spreadsheet, compared to actuals once, at month end.
By then the overspend is spent and the underspend is lost demand.

Set the budget, flag the drift
Enter a total and an allocation per channel. They don’t have to match; a mismatch over $0.50 gets a non-blocking amber flag. Prefill from last month carries amounts only. Mark the total confirmed when leadership signs off, so a working plan and a committed number stay distinguishable.

Three ways to read pace
Linear asks whether you are where a flat month would be. Run-rate asks where the last seven days would land you. A three-day needle shows the trend. All three sit on one rail with your acceptable-variance band drawn on it, plus runway in days and the daily spend that lands exactly on budget.

Cumulative spend against plan
Actual, expected, projected, current plan and original plan on one chart with a budget line and a today marker, by total or by channel. The legend explains every line in plain words. Before the month starts it becomes a plan-only view. You see the gap forming while there is still time to close it.

Shape the month day by day
Open a channel’s spend plan and drag bars to set each day: heavier on launch days, lighter on the weekend your data says is soft. Auto-balance keeps the total on budget as you drag. Approve it, and the original is frozen so you can always see how far the current plan has drifted. A budget is a number; a plan is a shape.

The year, in one view
Switch to Year: spend to date, full-year total as actuals plus committed budgets, and change against last year. Unconfirmed months are hatched, unallocated budget shows as a residual, and over-allocation gets a tag. It reaches one year ahead so next year’s budgets can be laid in.

Alerts where your team is
Connect a Slack channel and the pacing thresholds you set here drive the alerts there. The band on screen and the message in Slack can’t disagree.
The fine print we’re proud of
Small decisions about how numbers are computed and shown. Most tools skip them. We think they’re the product.
Completed days only, through yesterday.
Intraday spend never touches a pacing number.
Alerts start on day 4.
Early-month pacing is volatile and the tool says so instead of alarming you.
A disabled channel with a budget is never dropped.
It surfaces with a re-enable link. Data is preserved, never silently lost.
An unbudgeted future month shows $0 on purpose.
A missing budget is a signal, not a hole. Zero unallocated shows as — because a residual of nothing isn’t a measurement.
Year over year uses comparable months only.
A full year is never compared to a partial one, the percent is recomputed from sums, and the page tells you when months were excluded.
Rounding happens once.
At month × channel. Everything above adds integers, so every column sums and nothing absorbs a residual.
Year view stores no target and colours no delta.
It shows spend; you judge it.
“Projected” means run-rate.
There is no forecast model in this view, and the word doesn’t appear.
Related metrics
What this page computes, in plain words
- Utilization
- MTD spend ÷ budget
- Pacing · Linear
- Spend ÷ (budget ÷ days in month × days elapsed)
- Pacing · Run-rate
- (Spend + 7-day average × days remaining) ÷ budget
- Runway
- (Budget − spend) ÷ 7-day average, in days
- Target Daily
- (Budget − spend) ÷ days remaining
Configured and validated before you rely on it
Every account is set up and checked by operators who manage $100M+ in ad spend, so the first number you see is one you can act on. When you want a team acting on those numbers with you, that’s Human.
Land the month on purpose.
Two years of history on day one. Configured and checked before you rely on it. Your first 100 days are free.
Your first 100 days are free.