Skip to main content
This page answers one question: what will this run cost me? It says what is counted and when you are charged. It states no prices and no plan allowances, on purpose — those live on pome.sh pricing, and two surfaces stating the same number is how the two disagree. What you will find here instead is the rule behind each number, which does not change when a plan does.

The three meters

Pome counts three different things. They are easy to confuse because a single run touches all three. A single eval typically spends many MCP / API calls — every tool call the agent under test makes against a digital twin is one of the latter — and holds one concurrency slot for as long as its sandbox is open. Three meters, one run. Your plan sets all three. Read your own numbers rather than assuming them: Dashboard → Usage, GET /v1/usage for concurrency, or get_platform_context over MCP for all of them at once.
There is a fourth plan limit that is not a meter: how many trials one run_trials call may provision. A request above your plan’s ceiling is clamped down rather than rejected, and the response tells you it clamped. The platform’s own hard ceiling is 10 trials in one call, on every plan.

The rule for an agent eval

One agent eval is charged when a run is graded at finalize, and at no other moment.
Nothing before finalize costs an eval. Starting a sandbox, provisioning twins, launching your agent, watching it work, reading its trace — all free. The charge lands when the run is frozen and scored, because that is the moment Pome produces the thing you came for: a verdict backed by evidence.

What is free

The short version: a run you get no verdict from is never charged. Concretely — Free of the eval meter is not free of the others: a sandbox you start and throw away still held a concurrency slot while it was open, and every call your agent made through a twin still counted.

What is charged

Which 402 is which

Every quota trip on this platform is 402 with type: quota_exceedednever 429, so retry logic keyed on 429 will not fire. Branch on details.kind to tell them apart, because the right next step differs for each.
The last two bound the cost of evaluating [model] criteria and nothing else. A task whose criteria are all [code] can never trip either one: deterministic scoring reads the twin’s state and tape, calls no model, and costs nothing to evaluate. See Write a task for the difference.

What happens at a limit

A refused finalize happens after your agent has already done the work, so the cost is quoted up front instead of discovered at the end:
  • Coach / MCPrun_task and run_trials return an eval_cost block with what the run will consume and what is left. get_platform_context reports every meter.
  • Dashboard — the running-sandboxes view and Usage show the same reading.
Both read the same counter the control plane enforces on, so the number you are quoted before a run is the number you are charged against. There is no overage on the free plan. When the allowance is spent the next finalize is refused with 402 — it does not silently bill, and it does not degrade to a cheaper grade. On paid plans, work beyond the included allowance depends on overage billing being enabled on your subscription.

Checking your usage

  • Dashboard → Usage — used / quota / remaining for every meter, and the reset date.
  • GET /v1/usage — the live concurrency snapshot.
  • get_platform_context over MCP — the same snapshot as entitlements.

Next

Sandboxes

The unit the concurrency meter counts — what one holds, and how long it lives.

Pricing

What each plan costs and what it includes. The numbers live on pome.sh.