On this page
The bill shows up after the work
A campaign used to be a list, a sequence and a person. Now it is a list pull, enrichment, validation, model calls for copy, a spam check and a few subagents, and every one of those bills on its own. Nobody sees the total until the invoices land.
I build the budget in before I give an agent room to run. I do not want to hand off a goal and wake up to a bill I never approved. The fix is boring on purpose: one number per campaign, checked by the workflow, before money moves.
One campaign ID carries one running total through every stage. Before each paid call the workflow adds the estimated cost to what has already been spent. If the new total would pass the ceiling, the call does not happen and the agent stops and reports what is left. If it fits, the call runs and the actual cost is written to the same ledger.
- Campaign IDone name for the whole job
- Ledgerone running total
- Estimatebefore each paid call
- Allow or stopagainst the ceiling
- Recordthe actual cost
Six steps on one page
- Pick a ceiling. Write the campaign ID and the number on one line. My own default is $60 for a campaign before anyone approves more, with smaller numbers for smaller jobs. That is my operating example, not a rule. Pick a number that fits your work.
- List the paid stages. For each one write the tool, the unit price you actually pay, and how many units you expect. Use your real credits, plan tiers and deals. Never guess a price.
- Hold money back for validation. Contacts you cannot afford to verify are worth very little. Reserve that money before discovery starts spending.
- Project the total before launch. If the projection is over the ceiling, look for a cheaper source first (free directories, a smaller first batch), then decide whether the full version is worth asking for.
- Enforce the stop in the workflow. The check runs before each paid call and refuses a call that would cross the line. When the money runs out the agent says what is left and what it would do next.
- Record actual spend. Every cost goes on the same ledger with the stage and the tool. If the campaign needs more, the request comes with the reason and what the extra money buys.
A worked example
A made-up campaign for a made-up client. Every price below is invented to show the arithmetic. Use your own.
| Stage | Tool | Unit cost | Count | Estimate |
|---|---|---|---|---|
| Company list | List source | $0.005 | 2,000 | $10.00 |
| Contact lookup | Enrichment tool | $0.03 | 600 | $18.00 |
| Email validation (held back) | Validator | $0.008 | 900 | $7.20 |
| Copy drafts | Model calls | $0.01 | 600 | $6.00 |
| Spam and reading checks | Checker | $0.10 | 20 | $2.00 |
| Projected total | $43.20 | |||
| Ceiling | $60.00 | |||
| Headroom | $16.80 |
The projection fits, so the run is approved at $60. If the contact lookup came back at three times the expected count, the check would stop the agent at the ceiling instead of letting it spend the validation money on more lookups.
One campaign, one running total
The most common leak is a fresh allowance. A subagent starts, sees no spending of its own, and behaves as if it has the whole budget. Carry the campaign ID into every stage, and have every stage read and write the same total.
Check spending while the work runs, not after. A report at the end tells you what went wrong. A check before each paid step stops it.
Alerts are not caps
A billing alert tells you after the money is gone. A cap written in the prompt is a request the model can forget. If you need spending to stop, you need code that refuses the call.
Keep this separate from who can use which key. Access control decides who may call a tool at all. The ceiling decides how much a campaign may spend with it. You need both, and the access guide covers the first half.
Get the blank worksheet
Source notes
This guide describes how I run budgets across my own agency work. The $60 figure is my own default, not a recommendation for your business. The worked example and every price in it are invented. The Legion course covers the setup we run in more depth for members; nothing here depends on it.
Run your agency on agents you can check
Get one useful GTM email a week. Then join the community on Skool.
Get the newsletter
