Configure
Billing and limits
Runnable bills normalized Linux minutes, admits work against plan concurrency and spend controls, and applies retention and shared storage allowances from the active organization plan.
Default plan limits
The dashboard is authoritative because deployments may override catalog defaults. Prices are monthly in USD; self-serve overage is $0.006 per normalized minute.
| Plan | Base | Minutes | Concurrent jobs | Logs | Artifacts + cache | MCP | SAML SSO |
|---|---|---|---|---|---|---|---|
| Hobby | $5 | 500 | 1 | 7 days | 2 GB | Yes | No |
| Starter | $29 | 3,000 | 3 | 14 days | 10 GB | Yes | No |
| Pro | $99 | 10,000 | 10 | 30 days | 50 GB | Yes | No |
| Scale | $299 | 30,000 | 30 | 90 days | 250 GB | Yes | No |
| Enterprise | Contact sales | 100,000+ | 100+ | Custom/default 365 days | Custom/default 1 TB | Yes | Yes |
Active billing status is required
Normalized Linux minutes
Usage scales with measured machine time and requested vCPU relative to the 2-vCPU baseline. Each completed usage event rounds up to a whole normalized minute.
normalized minutes = ceil(
(billable milliseconds / 60,000) × (vCPU / 2)
)
10 min on 2 vCPU → 10 normalized min
10 min on 4 vCPU → 20 normalized min
10 min on 16 vCPU → 80 normalized minAdmission reserves the worst-case normalized minutes from the job timeout and runner size. Final metering uses executor-reported billable time. Reservations prevent simultaneous jobs from overshooting a stop rule or hard cap.
Plan and workflow concurrency
Two different controls can make a job wait.
| Control | Scope | Behavior |
|---|---|---|
| Plan concurrency | Organization | Limits the number of active jobs across every repository. New ready jobs wait until a slot is free. |
| strategy.max-parallel | Matrix job | Caps active variants from one matrix. |
| concurrency group | Repository | Serializes or cancels runs/jobs sharing a case-insensitive group. |
Queued time is not compute usage
Storage and retention
Artifacts and cache entries share the plan storage allowance. Log retention is separate in time but log-object bytes are visible in the usage report.
| Data | Lifecycle |
|---|---|
| Artifacts | Immutable until expiry, subject to the plan’s retention at creation. Upload is rejected if cache eviction cannot free enough shared space. |
| Cache | Immutable entries, evicted least-recently-used when space is needed, and expired after seven idle days under the current cache contract. |
| Logs | Masked, compressed chunks with an absolute expiry based on plan log retention when created. |
| Upload reservations | Count against storage while an upload is pending; abandoned reservations are expired by lifecycle maintenance. |
Lifecycle reads hide expired metadata before object access. A daily authenticated maintenance job removes expired objects and unreferenced objects after a safety window.
Overages, alerts, and hard caps
Organization owners manage controls from Billing. They affect new dispatch; they do not retroactively alter recorded usage.
- 1
Choose allowance behavior
Metered continues above included minutes at the plan overage rate. Stop rejects work whose reservation would exceed the included allowance. - 2
Set a budget alert
The amount must exceed the plan base price. Runnable recreates the corresponding usage alert for each billing period and records triggered alerts. - 3
Set a hard spend cap
The amount cannot be below the base price. Admission includes completed usage plus active and requested worst-case reservations. - 4
Inspect invoice preview
Billing shows Stripe’s upcoming invoice when available and a local usage estimate as fallback before checkout.
Alerts do not stop jobs
What happens when a limit is reached
Runnable fails admission before provisioning a runner and records a reason an operator can act on.
| Gate | Result |
|---|---|
| Inactive subscription | Dispatch is rejected until checkout or subscription recovery completes. |
| Plan concurrency | Ready job remains queued until active jobs fall below the limit. |
| Stop at allowance | Dispatch whose reservation would exceed included minutes is rejected. |
| Hard spend cap | Dispatch whose projected invoice would exceed the cap is rejected. |
| Storage quota | Artifact/cache upload reserves space; cache is evicted LRU, then the upload is rejected if insufficient. |
| Retention expiry | Metadata is filtered and the object is no longer available to customer reads. |

