/ docsHow a run is pricedllms.txt
On this page
The creditWhat a run costsA device you connected yourselfA run that reaches no verdictOther operationsDiscovery is quotedBudgets & top-upsEstimates err high

How a run is priced

One unit, two currencies, and every number visible before it is spent. This page states the exact arithmetic the meter uses — the same figures the pricing page sells, read from the same file.

The credit

1 credit = 8,000 AI tokens on the reference model, or 2 device-minutes on our emulators (1 on our physical devices). Tokens convert with the chosen model's multiplier — a 2.0× model burns credits twice as fast per token; the multiplier table is public on the models list.

What a run costs on our hardware

charge = max(floor, tokens) + device-time overage. The floor is 2 credits on an emulator / simulator / web device and 4 on one of our physical devices, and it is a maximum against the token portion, never an addition — most runs replay a compiled plan with zero AI tokens, and the floor is the only thing between them and a zero bill. A run's charged credits buy included device time (2 minutes per credit on an emulator, 1 physical); only time beyond that bills overage, per minute.

The physical tier — a higher floor, half the included minutes, double the overage rate — prices the scarce hardware in our farm: the device, the cable, the rack and the electricity. It is not a surcharge for the word "physical".

A device you connected yourself

You pay for the thinking, not the phone. A run on a device you plugged into your own machine costs the 2-credit base floor or its AI tokens, whichever is greater — and no device time, however long it runs. The platform supplied no device and no rack, so it charges no rent for one; the physical tier above never applies to your hardware.

The device is still recorded as the physical device it is — only the price tier moves. A run whose ownership the farm never stated (a web run, a run with no lease) keeps the pricing it has always had. See /docs/your-devices for how a machine of yours joins a workspace.

Your own includes a device you rent. A device in your own cloud-lab account, reached through the same agent, is priced by this same rule: we supply no device and no rack for it either, and you already pay the lab for the handset. See Devices you rent from a cloud lab.

A run that reaches no verdict

A run ends Passed, Failed or Error. Error is not a verdict about your app — it means the engine or the infrastructure did not get far enough to judge it, and that includes a run the platform refuses to start (a missing credential, a device it will not drive, a Strict run of a scenario with steps only AI could find). Such a run pays its AI tokens and nothing else: no run floor, no device time. A refusal spends no tokens, so a refused run costs nothing at all.

Two endings are yours, and they are charged as a finished run. A run you cancel once its steps have begun pays its floor or its tokens, whichever is greater, and device time on our devices. A run on your own device that loses its connection to it — the agent stopped, the cable came out, your machine went offline — pays the base floor or its tokens, as it would have if it had finished. When the connection to one of our devices is lost, the run costs nothing.

A run your own device stops before its first step pays only the minimum. A phone locked with a PIN, pattern or password cannot be driven, so the run stops before step 1 and says the phone was locked. It costs 1 credit, or its tokens if they cost more, and no device time. It is not free, so a phone left locked does not run up free runs.

An error on our side is never billed as a failing test. The charge on it is its tokens or zero — never the floor. An Error pays the floor only when the ending was yours: a cancel, or your own device going away.

Other operations

OperationPrice
run (our hardware)max(floor 2 emulator / 4 physical, tokens) + device-time overage
run (your own device, or one you rent)max(floor 2, tokens) — no device time, at any length
run that reached no verdicttokens only; a refused run costs nothing
run whose connection to your own device was lostmax(floor 2, tokens), as a finished run
run your own device stopped before its first stepmax(floor 1, tokens) — no device time
run whose connection to our device was lostnothing
compiletokens, floor 1 credit
scope generationquoted up-front; each pass at its own model's tokens, never more than the quote — see below
scenario generationtokens, floor 1 credit
discoveryquoted up-front — see below

A scope run is quoted before it starts, and the quote is the most it costs. It reads your scope document's requirements on one model and writes the scenarios on the model you pick, and the dialog prints both lines and their total before you press the button. The charge is each pass's tokens at its own model's price, and never more than that quote. A scope run that fails costs nothing, the reading included, and a document too large for one run is refused before anything is read.

Discovery is quoted, and the quote is the price

You pick a token ceiling (Quick 50k · Standard 100k · Thorough 200k) and a model; the quote is ceil(ceiling × multiplier / 12,500) — reserved tokens are deliberately cheaper per token than consumed ones (12,500 to the credit against 8,000), because you pay for the ceiling whether or not the crawl uses it. When scenario proposal is on, the proposal call adds its measured share. The quote is stored when you press the button: a completed discovery charges exactly the quote, and a cancelled one is still charged it. A discovery started before discoveries were quoted has no stored quote and keeps the contract it started under: the tokens it used, at least 1 credit when it used any.

A discovery the platform fails costs nothing, on either branch. One that ends Failed or Error — not cancelled by you — on one of our devices, in our browser, or before it spent any tokens (unless it lost the connection to your own device) is charged no quote, no tokens and no floor, quoted or not — a device that could not be read included. Your credit ledger shows it as a Not charged row with the reason — for one that mapped nothing, Not charged: the discovery failed before it could map anything — and the discovery's own page shows the same words. One on your own device that loses the connection, or fails after it has spent tokens, pays for what it used: at least 1 credit, never more than its quote, and its page says so. A discovery our AI service stopped early is charged only for what it used, and one it made fail is not charged. A run our AI service stopped costs nothing: when it refused a call a step needed and that changed the verdict, the run pays no floor, no tokens and no device time.

Budgets & top-ups

The plan's weekly budget replaces the allowance every seven days — nothing rolls over, and a mid-week plan change lifts the allowance only upward (to the new weekly rate, if it is higher). Top-up credits are a separate purchased balance: they never expire, never reset, and survive a plan change. Cancelling forfeits the remaining allowance and keeps the top-up balance.

Estimates err high, on purpose

Pre-flight estimates for a workspace with no history fall back to deliberately conservative constants — a brand-new workspace's first run is quoted well above what runs typically cost, so "how many runs can I afford" understates your runway rather than overstating it. The estimate is advisory; the charge is always the meter's.