Calculating an AI Budget for a Developer Team

Pay-per-token is not always cheaper: volume decides. Here is how to measure usage in a pilot, calculate a month for the team, and find the line versus a subscription.

6 min · · payments · бизнес · экономия

An AI budget for a developer team is hard to plan blind: a subscription is predictable but billed per person, while pay-per-token depends on how people actually work. Below is how to measure real usage in a pilot, calculate a month for the team with a formula, and see where paying per token beats a subscription and where it does not.

The formula: tokens and price

Models count text in tokens. Every request has two parts:

  • input tokens: everything you send, including the prompt, project files and conversation history;
  • output tokens: the model's answer.

Request price = (input × input price + output × output price) / 1,000,000.

For claude-sonnet-5 on Zukko both prices are $0.3 per million tokens. A request with 1,000 input and 500 output tokens costs (1,000 × 0.3 + 500 × 0.3) / 1,000,000 = $0.00045. One request is pennies, but an IDE agent makes hundreds of them per workday and resends the context each time. So you budget by daily volume, not by single requests.

A pilot week: measuring real usage

"Typical" usage figures per developer say little: everything depends on the tool, the project size and personal habits. It is more honest to measure your own.

How to run the pilot

  1. Pick two or three developers with different working styles.
  2. Give each their own key, so usage is visible per person.
  3. Connect their tools to Zukko:
    • Claude Code: ANTHROPIC_BASE_URL=https://api.zukko.pro and ANTHROPIC_AUTH_TOKEN=fetch_...; see the Claude Code guide;
    • Cursor, Cline and other clients with an OpenAI-compatible API: base URL https://api.zukko.pro/v1 and a fetch_... key; see the VS Code extensions guide.
  4. Ask them to work as usual, with no "saving" and no artificial load.
  5. Collect data for 5 working days.

Where to see usage

  • In the dashboard, "Usage" section: spending history by request and model.
  • Via the API: GET https://api.zukko.pro/v1/usage returns a feed of your requests and GET https://api.zukko.pro/v1/balance returns the balance. Response formats are in the usage reference and the balance reference.

From the pilot you need two numbers per person: average input and output tokens per day, and the model they worked with.

Example: a team of five developers

The numbers below are an illustrative example of the calculation. Use your own from the pilot.

Assumptions:

  • 5 developers;
  • on average 3 million input and 1 million output tokens per person per day;
  • 22 working days per month.

On claude-sonnet-5 ($0.3 / $0.3):

  • per person per day: (3,000,000 × 0.3 + 1,000,000 × 0.3) / 1,000,000 = $1.20;
  • per team per month: 1.20 × 22 × 5 = $132;
  • per year: 132 × 12 = $1,584;
  • per person per month: 132 / 5 = $26.40.

The same volume on other models:

ModelInput/output price, $ per 1MPer person per dayPer team per month
claude-sonnet-50.3 / 0.34,000,000 × 0.3 / 1,000,000 = $1.20$132
gpt-5.6-luna0.1 / 0.14,000,000 × 0.1 / 1,000,000 = $0.40$44
glm-5.3-flash0.04 / 0.044,000,000 × 0.04 / 1,000,000 = $0.16$17.60

The table cannot tell you whether a cheaper model fits your tasks. Test it in the pilot: give one group tasks on claude-sonnet-5 and another the same kinds of tasks on gpt-5.6-luna or glm-5.3-flash, then compare how many answers had to be redone. The current list of models and prices is at GET https://api.zukko.pro/v1/models or on the "Models" page in the dashboard.

Tokens or a subscription: where the line is

A subscription is a fixed amount per person; pay-per-token grows with volume. So there is a break-even point.

Take a hypothetical $40 per person per month subscription. Per working day that is 40 / 22 ≈ $1.82. On claude-sonnet-5 that money buys 1.82 / 0.3 ≈ 6 million tokens (input plus output) per day.

  • If a developer uses fewer than 6 million tokens a day, tokens are cheaper.
  • If more, the subscription is cheaper, provided it has no limits your team would hit. Check the terms of the specific plan.

In our example (4 million a day) it comes to $26.40 versus $40 per person. For light users the gap is bigger; for someone who runs an agent over a large project all day, it can flip the other way.

A caveat about caching

IDE agents send the same large context (files, instructions, history) many times in a row. Vendors charge roughly 10% of the input price for reading such repeated context from the prompt cache, while Zukko bills cached tokens at the regular input price. So for agent work with a huge repeated context, the real difference from vendor pricing is smaller than a straight price-list comparison suggests. Compare using actual usage from the pilot.

Key limits and cost control

Give every developer their own key. On the keys page in the dashboard you can set for each key:

  • a name (for example, dev-alice);
  • a daily dollar limit;
  • a monthly dollar limit;
  • a list of allowed models.

What happens when they trigger:

  • daily limit reached: requests with this key get HTTP 429 with code key_daily_limit_reached; the limit resets at 00:00 UTC;
  • monthly limit reached: HTTP 429 with code key_monthly_limit_reached;
  • model not in the allowed list: HTTP 403 model_not_allowed_for_key;
  • less than $0.01 on the account balance: HTTP 402 insufficient_balance for every key.

Details are in the key limits section.

How to spend less

  • Match the model to the task. The same volume costs $0.40 a day on gpt-5.6-luna instead of $1.20 on claude-sonnet-5, and $0.16 on glm-5.3-flash. Move to a cheaper model the tasks it handled well in the pilot.
  • Trim the context. A big prompt with project files is input tokens in every request. Do not attach unnecessary folders to the agent, and clear the conversation history when the task changes.
  • Combine small questions. Ten separate requests with the same instruction send that instruction ten times; one request with a list of questions sends it once.
  • Cap the output. max_tokens sets a ceiling on answer length, and therefore on output cost.

FAQ

Can one developer accidentally burn the whole budget?

Without limits, yes: an agent in a loop can keep sending requests for a long time. That is why every key should have daily and monthly limits. Once a key's spend for the day reaches the limit, further requests get a 429 until the reset at 00:00 UTC.

What if a tool does not let me set a custom base URL?

Most IDEs and clients let you enter the address of an OpenAI- or Anthropic-compatible API. If a tool is hard-wired to its own server, you can use the browser chat, which charges the same balance, or run a local OpenAI-compatible proxy (for example, LiteLLM) and point it at Zukko.

How long does $100 last for one developer?

At the example volume (4 million tokens a day) on claude-sonnet-5, that is $1.20 a day or $26.40 for 22 working days, so $100 lasts about 100 / 26.40 ≈ 3.8 months. On glm-5.3-flash it is $0.16 a day, $3.52 a month, or about 28 months.

What else does the budget depend on?

The project and the tool. A large codebase and agents that run multi-step chains produce many times more input than occasional chat questions. That is why a pilot on real tasks is the only reliable source of numbers. To start, create keys for the pilot participants.

zukko

Pay 25×
less

for Claude Code & ChatGPT

One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.

Get API keyDocumentation

api.zukko.pro · fetch_*

AI Budget for a Developer Team: Token-Based Cost Calculation · Zukko