Usage & Budgets
How every model call is priced and filed, what a turn costs on each tier, the team's monthly AI budget with its warning line and its cap, who is told when a line is crossed, what is never metered, and where to read the statement.
Every model call Zuse Bifrost makes is metered: the tokens the provider reports are priced at the model's list price, written in the team's usage ledger, and summed against the team's AI budget for the month. Nothing is invoiced to you by Zuse Bifrost; the budget is the cap your team sets on what it is willing to spend on AI in a month, and at the cap every AI feature stops rather than running over.
The ledger
One row per call: the feature (a Heimdall turn, its routing, and later every assist), the provider and model, the input, cached, output and reasoning tokens, the cost, the person and the project. Read it per feature and model, and call by call, under Settings → AI.
The month
A cap in dollars and a warning line as a percentage of it. A new month starts from the workspace default; the owner or a budget manager can change both at any time. A cap of zero means no cap.
The notices
Crossing the warning line and reaching the cap each tell the owner and everyone whose role carries Manage AI budgets once: in the Notifications Center, by email, and on Telegram if they route the AI budget class there. Each one also raises a webhook event.
The stop
At the cap Heimdall refuses before any model is asked: the panel says "This month's AI
budget is spent", and the REST API and the MCP server answer AI_BUDGET_EXHAUSTED. Raise the
cap or wait for the month to turn.
What a turn costs
A turn is one message and its answer, however many tool steps it took (a turn stops at eight). Its cost is the sum of the tokens it used, priced per model: the prompt (the instructions, the context of the moment, the thread's recent history and the tool results, with the part the provider served from its cache priced lower), the thinking where the model thinks, and the words of the answer. The small line under every answer shows exactly this: the tier and model, the prompt tokens with the cached part, the output tokens, the time, and the cost.
| What you do | What is filed |
|---|---|
| Send a message and get an answer | One Heimdall turn row, plus one Heimdall routing row on the Auto tier |
| Tap a follow-up button | The same as a message |
| Confirm a card (the action runs and Heimdall finishes) | One Heimdall turn row |
| Cancel a card | Nothing |
| A turn whose model could not be reached, or that failed | Nothing |
| A question refused because the budget is spent or your role lacks the permission | Nothing |
The tiers
| Tier | Which model answers | Cost |
|---|---|---|
| Auto | A small router model reads the message, then the simple or the involved model answers | Standard cost |
| Lite | The lightest model, no router | Lowest cost |
| Pro | The involved model, no router | Standard cost |
| Max | The strongest model with its deepest thinking, no router | Highest cost |
The router's own call is filed as Heimdall routing beside the turn, so the ledger carries the whole cost of answering; it runs on the smallest model and costs a fraction of a cent.
The month, step by step
The month opens at the default. The first call of a calendar month creates the team's budget row from the workspace default: the cap in dollars and the warning line, eighty percent unless changed. The owner can set both before anything is spent.
Every call moves it. Each ledger row is added to the month the moment it is filed, under a lock, so two calls settling at once cannot both slip under the cap.
The warning goes out once. When a row takes the month past the warning
line, the owner and every budget manager are told, and ai.budget_warning is
raised. The assists keep working.
The cap stops everything. When a row reaches the cap, the same people are told,
ai.budget_exhausted is raised, and from the next request on every AI feature refuses until
the cap is raised or the month turns. The call that crossed the line is still filed; nothing
is cut mid-answer.
Raising the cap clears the notices
Saving a new cap under Settings → AI resets the month's warning and exhaustion marks, so the next crossing is announced again. Lowering the cap below what is already spent stops Heimdall at once.
Who pays on a team
The budget is the team's. Every member whose role carries Use AI spends from the same month, and the statement under Settings → AI shows every call with the person and, where there is one, the project it was about. A person who belongs to several teams spends from the team they are acting in.
What is never metered
- A cancelled card.
- A turn whose model could not be reached, or that failed before it finished.
- A question refused because the budget is spent or your role lacks the permission.
- Reading the statement, the thread list or a stored thread.
List prices, not a markup
The price per million tokens of each model is the provider's published list price, kept in the workspace's configuration. A model with no price on the book is filed at zero cost; the statement names the model, so an unpriced one is visible rather than hidden.
Questions
Related
- Settings → AI — the cap, the warning line, the statement and the models
- The panel — what the budget line reads
- Permissions & Safety — who may spend the team's month
- Notifications — where the AI budget class is delivered
ai.budget_warningandai.budget_exhausted— the two events
How is this guide?
Last updated on
Improvement Sweep
The five gaps Heimdall's sweep looks for in a project's record, how it proposes a card per gap on the review queue, why the same idea is never proposed twice, when it runs on its own, what accepting a card does and what it costs: nothing.
Permissions & Safety
Who may use Heimdall, how a team member's role bounds what it can do, the confirmation gate on anything that changes what exists, what the activity log records, what the model is shown and what it is never shown, and the models behind it.