Skip to main content

AI Assistant Billing: Every Model Call in a Turn Now Counts

· 5 min read
VolatiCloud Team
VolatiCloud

Ask the assistant to build you a strategy and it does not make one request to the model. It makes several: one to work out what you meant, one to look up the right GraphQL operation, one to read that operation's arguments, one to run it, and a final one to write you a sentence saying it is done. Our provider bills us for every one of those calls. Until this release, we were only charging you for the last.

That is a bug, and it has been fixed. From this release the assistant is metered on every successful model call in a turn, not just the one that produced the answer. If you use the assistant for multi-step work, your credit usage for it will go up — in some cases by several times.

We would rather you read that here than work it out from an invoice.

What was actually wrong

An assistant turn is a loop. The model replies, and its reply is either a request to use a tool or an answer for you. If it is a tool request, we run the tool, hand back the result, and call the model again. The loop ends when the model finally answers in words.

Our metering only recognised the last reply — the one that ends the loop. Every call in between was a real request to a real provider, billed to us at real token rates, and recorded against your account as zero. A turn that made eight tool calls and then answered in one short sentence was charged for roughly that one sentence.

The effect was not small and it was not uniform. It was largest for exactly the people using the assistant most, because the more work you ask it to do, the more of the turn was invisible to billing.

What changes for you

If your turns look like thisWhat you will notice
One question, one answer, no toolsNothing. A turn with a single model call bills exactly what it billed before.
A lookup or two, then an answerA modest increase — you are now paying for the lookups as well as the reply.
"Build me a strategy and backtest it"The largest increase. These turns make the most model calls, and most of them were free until now.

Two things that do not change:

  • Rates are the same. We have not touched the per-token price of any model. The only thing that changed is which calls are counted.
  • Failures are still free, including turns that get nowhere. If our model provider falls over mid-turn, that call is not billed to you. We retry it at our own cost, and if the retries are exhausted, the failed call still costs you nothing. The same now applies when the assistant ends a turn by telling you it could not produce an answer: that turn is not billed at all — not the final call, and not any of the calls before it — even though every one of them cost us. Those turns make the most model calls of any kind, so under the change above they would otherwise have been the most expensive thing on your bill, in exchange for nothing. If you retry such a request, you pay only for the attempt that works. That was deliberate and it stays deliberate: work you did not receive is not your bill.

Why we are not grandfathering the old rate

The honest reason is that the old number was wrong rather than generous. It was not a discount anyone was offered; it was a meter that was not reading. Keeping it for some accounts would mean maintaining two different answers to "what does a turn cost", one of which we know to be false.

The assistant is also still early, and the shape of what it costs is going to keep moving as we make it better at doing more in fewer calls. A turn that reaches its answer in three model calls instead of eight is cheaper for you under the new metering and was identical under the old — which is the incentive we want on our side of the line.

How to see what a turn cost

A finished turn does not quote you a price in the chat. What it shows there is how much work it did — how many lookups it made, and whether anything was changed. The cost is on your organization's Billing page, where AI chat deductions appear in the transaction ledger alongside bot, backtest, and hyperopt charges, each row naming the turn's input and output tokens. That is where a month's assistant usage sits next to everything else you spend credits on.

If the assistant is costing more than you expected, the lever is the shape of the request, not the length of the answer. Asking for one thing at a time, and being specific about which strategy or bot you mean, keeps the model from spending calls working out what you meant.

Reference

If a charge on your account does not look right, tell us. We would rather check a ledger entry than have you guess at it.