Skip to content

Cost center

The Cost center (AI → Cost center, /ai?view=usage) shows what your model calls cost: every chat turn, sub-agent, schedule, eval, workflow AI node, embedding, and Knowledge Graph step records one cost row. You review spend for a time range, break it down by the dimension you care about, and set the monthly caps that keep spend inside your budget.

  • Summary cards: spend, number of model calls, input and output tokens, the share of spend that is estimated, and (for workspace viewers) the OpenRouter organisation credits left.
  • Spend per hour or day: stacked by the dimension you break down by, with the cumulative spend over the range beside it.
  • Breakdown: a chart and a table of the largest values of one dimension (user, model, gateway, workload, agent, or namespace) with calls, tokens, spend, and share.
  • Calls: for workspace viewers, every call of one day (UTC), with who triggered it, the owner, model, gateway, agent, tokens, and cost.

The left sidebar holds every control. At the top you pick the range (24 h, 7 days, 30 days, Month to date, or a Custom range of UTC days) and whose spend to count. Below are the sections Per user (only for people who can see everyone’s spend), Per agent, Per model, Per gateway, Per workload, and Per namespace: select a section heading to break the charts and table down by it, and select an entry to filter the page to it. Clear filters removes every filter; the search field narrows the entries. With no spend in the range the charts stay on screen at zero. The 24 h range uses hourly buckets; longer ranges use UTC days. The page refreshes every minute and when you return to the tab. Daily detail covers the current month and the 13 months before it.

A range that holds too many cost rows to read at once asks you for a shorter range or a user or gateway filter; on a very busy day the 24 h view asks you to use 7 days instead. While recent calls are still being written to the cost files, a section can show Spend temporarily unavailable — the cost record is catching up; the rest of the page keeps working, and the section returns on its own or when you select Retry.

Every cost row records two people:

  • Triggering user: the person whose message, schedule, or workflow run caused the call. Work that no person triggered counts as Platform.
  • Owner: the owner of the conversation or workflow the call belongs to.

Knowledge Graph processing counts as Platform for both, with the namespace it processed in the Namespace dimension.

The By triggering user / By owner toggle chooses which of the two the page groups and filters by. Monthly user caps count the triggering user’s spend.

When the gateway reports the cost of a call (for example OpenRouter), the Cost center stores that amount. For other gateways, it prices the call from the tokens and the model’s catalog price and marks the amount as estimated. Amounts that include an estimate show ≈ in front of them, and the Estimated share card shows how much of the range is estimated. Caps count reported and estimated cost alike.

People with ai:view_usage, ai:manage_global_spending_caps, or ai:manage_user_spending_caps always see amounts in USD on the Cost center. Everyone else follows the Show token cost setting in their profile preferences (off by default): when it is off, the page charts tokens instead of spend and hides every amount, including caps. Chat and other pages follow Show token cost for everyone.

Permission What you see
ai:view_usage Spend of the whole workspace, every dimension, the per-call drill-down, notices about unreadable lines in cost files, and the organisation caps’ headroom
ai:page Only your own spend: the calls you triggered (By triggering user) or the calls in conversations and workflows you own (By owner), and the headroom of the caps that apply to you

People who manage organisation caps also see the organisation caps’ headroom.

Monthly caps count spend per calendar month in UTC and reset on the 1st at 00:00 UTC. The Caps section of the Cost center edits them:

Cap Counts Permission to edit
Organisation total All spend of the workspace ai:manage_global_spending_caps
Organisation per gateway All spend through one gateway ai:manage_global_spending_caps
User default Each person’s spend, for every limit their own entry does not set ai:manage_user_spending_caps
Per user, and per user and gateway One person’s spend, in total or through one gateway; overrides the default limit by limit ai:manage_user_spending_caps
Your own cap Your own spend; the lower of your limit and the one a cap manager set applies, so it can only tighten your spending ai:manage_self_spending_caps

Every model call checks the caps that apply to it first. Work counted as Platform counts only toward the organisation caps. The per-conversation spending cap stays as it is: a limit on each conversation, with its default set in preferences.

When a cap is reached:

  • Chat pauses with the spending-cap message and continues once the cap is raised or the month rolls over.
  • Schedules skip the run and record an Activity entry.
  • Workflow AI nodes fail with a cap error.
  • Knowledge Graph namespaces park their processing and resume when headroom returns.
  • Context compaction keeps running, so a paused conversation stays able to continue.

When a cap stops a call, the people who can act on it get one notice per cap and month:

  • Per-conversation cap: the owner of the paused conversation.
  • Monthly caps: the owner of the stopped work, the person whose own cap was reached (for a user cap), and everyone who manages caps (ai:manage_global_spending_caps or ai:manage_user_spending_caps). Knowledge Graph work has no owner of its own, so its cap hits reach the people who manage caps.

Notices appear at the top of the Cost center until you dismiss them. A notice shows the limit and the amount spent when it is about your own cap or conversation, or when you can see other people’s spend (ai:view_usage or a cap manager); otherwise it says only which cap was reached.

The cost record lives in Fontana Files, in the costs namespace. It holds no grant: only Fontana Files administrators (files:admin) can open it:

  • YYYY/MM/YYYY-MM-DD.csv holds one UTC day of calls, one row per call. A busy day continues in YYYY-MM-DD.2.csv once a file reaches about 2 MB.
  • YYYY/MM/summary.csv holds the totals of a closed month by user, model, gateway, workload, agent, and namespace. Summaries are kept; day files are removed after 13 months.
  • caps.yaml holds the monthly cap limits the Caps section edits: org, users (the default and per-person limits) and self (the limits people set for themselves).

The files are the record. The Cost center totals and the cap checks are computed from them, so a change you make to a cost file changes the totals. A line that cannot be read is skipped and listed on the Cost center for workspace viewers. Calls from the last few minutes appear in the totals right away and are written to the day’s file shortly after.