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.
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_exceeded — never
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 / MCP —
run_taskandrun_trialsreturn aneval_costblock with what the run will consume and what is left.get_platform_contextreports every meter. - Dashboard — the running-sandboxes view and Usage show the same reading.
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_contextover MCP — the same snapshot asentitlements.
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.