How to Control AI Development Costs per Client

Once AI agents start doing real development work, they generate a cost with an unusual property: it is created by individual tickets, but it arrives as one number at the end of the month, on a card belonging to the company rather than to any client. That mismatch is what makes AI spend feel uncontrollable. Fix the attribution and the control follows.

calendar_monthtimer 8 min readlanguage Lees dit artikel in het Nederlands
AI cost controls: model per agent, own provider key, monthly cap with warning, and cost booked to client and project

Four questions to answer before you scale up

Agencies that run agents comfortably have concrete answers to all four. Agencies that feel nervous about it usually cannot answer the last two.

  1. Whose bill is it? Are you paying a vendor a marked-up rate for inference, or paying your provider directly?
  2. Which model runs where? One model for everything is the most expensive possible configuration.
  3. What is the ceiling? A spend limit that actually stops work, not a dashboard you check afterwards.
  4. Who caused it? Which client, which project, which ticket. Without this, AI cost is overhead, and overhead comes out of your margin.

Bring your own key: pay the provider, not a reseller

The default arrangement in most AI-enabled tools is that the vendor buys inference wholesale and sells it to you with a margin. It is convenient, and it means a third party sits between you and a cost that scales with your delivery volume.

Connecting your own provider account changes the shape of that relationship: the tool orchestrates the work, your provider bills you at their published rates, and nobody adds a margin in between. It also means you can move models when pricing changes, without waiting for a vendor to pass a reduction on. Suporta works this way: you choose the provider and the model per agent, on your own key.

The cheaper option: run the work on a developer machine

There is a second execution model that most teams overlook. Your developers may already pay for a coding assistant subscription. If queued tickets can be picked up by a developer's own machine and worked on with that subscription, the marginal token cost of an agent run is zero, because you are using capacity you have already bought.

This also keeps the work inside your existing development environment: the agent runs where your developer works and pushes with your own credentials, so the code stays in the Git workflow you already use. Suporta calls this local mode and it is configured per organisation with per-project exceptions — the mechanics are on the developer page.

A model per agent, not a model per company

Stages in a pipeline have genuinely different requirements, and paying premium rates for the cheap ones is where most avoidable spend goes.

AgentWhat it needsSensible choice
PlannerUnderstanding of an unfamiliar codebase, good judgementYour strongest model. It is the cheapest place to prevent expensive mistakes.
CoderConsistency and instruction-following across many filesA capable general model, balanced for cost
ReviewerReading a diff, interpreting test outputMid-range. Your own tests do the heavy lifting first.
Doc reviewComparing prose to a diffThe cheapest model that can read. Leave it permanently on.

One structural saving is worth more than any model choice: run your own test suite before the review model. A build that fails linting or unit tests costs nothing to reject and should never reach a model at all.

A cap that stops work, not a report that describes it

Spend alerts alone are how you find out about a problem after it has happened. Three controls together give you actual predictability:

  • A monthly ceiling in your own currency, with a warning at around 80 percent and a hard stop at the cap. The hard stop is the part that matters.
  • A switch per agent. If the optional test agent is the expensive one this month, turn that stage off without abandoning the pipeline.
  • Selective auto-run. Enable automatic agent runs only on the projects where you want them, and only for genuinely new tickets, so nobody accidentally points a fleet of agents at a two-year backlog.

Note that work running on a developer machine does not consume the budget, because it costs nothing in tokens. That asymmetry is useful: it makes the cheap path the obvious one.

Attribution: the part that turns cost into a billable line

This is where AI spend stops being a scary overhead. If token cost is measured per phase and booked to the ticket, it rolls up the same way hours do: ticket to project to client. At that point you can answer the question that matters — what did this client cost us this month, in people and in machines — and you can put a markup on it if your contracts allow.

The reporting discipline is the same as for billable hours: the cost is recorded where the work happened, so nobody has to reconstruct it later. A ticket that took two developer hours and a small amount of model spend should show you both numbers side by side.

How to bill it, and how to talk about it

There are three defensible positions, and the only indefensible one is passing through a cost the client cannot see and did not agree to.

ModelHow it worksFits when
Absorbed into the rateAI is a cost of doing business, the hourly rate is unchangedSpend is small relative to hours, and you want zero conversation about it
Passed through with markupCost per client appears as a line, with your margin appliedSpend is material and your contract allows cost-plus items
Priced into the estimateTickets delivered with agent help are estimated in points as usualFixed-price work, where the client buys an outcome

Whichever you pick, be able to show the number. A client who asks "what did the AI cost on our project last month" and gets a precise answer is reassured. One who gets "we do not break that out" draws their own conclusions.

AI cost control checklist

  • check_circleYou pay your provider directly, or run on a developer subscription, rather than buying resold inference
  • check_circleEach agent has a model chosen for its job, not one model for everything
  • check_circleYour own tests and linting run before any review model is called
  • check_circleA monthly ceiling exists, with a warning before it and a hard stop at it
  • check_circleAuto-run is enabled per project, and only for new tickets
  • check_circleCost is booked per phase and rolls up to ticket, project and client
  • check_circleLocal runs report usage honestly, including when it is an estimate
  • check_circleYou have decided, in writing, how AI cost is reflected in what you charge

Put your ticket queue to work

Fourteen days, every feature unlocked, no credit card. Bring your own model, or point it at the Claude Code you already pay for.