# Billing & limits

Kestrel bills for runs, not for seats nobody uses. Usage is metered in sandbox minutes and model tokens, and settled once a month.

![Each run adds its usage to the month as it ends. On the last day the month settles into one invoice, line by line, with the total at the bottom.](/illos/billing-basin.svg)

## How usage adds up

A run uses two things: **sandbox minutes**, from the moment the sandbox is ready until it is wiped, and **model tokens**, for every step the agent takes. Both are counted when the run ends and added to the month.

Routing keeps the token part small. Most steps go to a small model, and only the hard ones reach the large one. See [Model routing](/agents/routing).

## Plans

| | Hobby | Team | Enterprise |
|---|---|---|---|
| Price | $0 | $40 per seat a month | Custom |
| Runs | 100 a month | Unlimited | Unlimited |
| Repos | 1 | Unlimited | Unlimited |
| Concurrent runs | 1 | 20 | Set by contract |
| Sandbox timeout | 1 hour | 24 hours | 24 hours |
| Trace history | 7 days | 90 days | 1 year |

## Spend limits

Set a monthly cap per workspace in **Settings → Billing**. When usage reaches it, new runs wait in the queue instead of starting, and you get an email at 80% and 100%. Runs already in progress always finish.

> [!TIP]
> Put a lower cap on one repo with [rate limits](/runs/rate-limits). A busy repo then can't use up the whole team's month.
