Every LLM call an agent makes writes a usage/cost row, tagged by surface — catalog copy, ad creative, CS drafts, research. That's the raw material for the cap: because every call is a row, spend is countable in real time, per store.
Setting the cap
The budget cap is monthly and per store, set in Settings (stores.config.llm_monthly_cap_usd). The default is $50/month, and it's enforced against month-to-date usage. Most stores never touch it. If you run a large catalog through a copy sweep or turn on aggressive research, you'll want to know where the ceiling is before you hit it.
What happens at 100%
Further LLM work is skipped, not queued. Each guarded call checks month-to-date spend before running; once the cap is hit, the current unit of work is skipped and logged rather than the whole job aborting — so nothing is left half-done, and nothing spends past the cap. It does not degrade to a cheaper model.
- The cap resets with the calendar month.
- Skipped work is visible in the run log, so you can see exactly what didn't run and why.
- Raising the cap in Settings takes effect on the next guarded call.
What the cap never touches
Critical safety paths do not depend on LLM spend. The kill switch, alerting, and monitoring are deterministic code — they run whether the budget is at 0% or 100%. A store at its cap can still be frozen, still fires alerts, and still shows up in the audit log. The cap limits what agents create, never what protects you.
