Runnable

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.

PlanBaseMinutesConcurrent jobsLogsArtifacts + cacheMCPSAML SSO
Hobby$550017 days2 GBYesNo
Starter$293,000314 days10 GBYesNo
Pro$9910,0001030 days50 GBYesNo
Scale$29930,0003090 days250 GBYesNo
EnterpriseContact sales100,000+100+Custom/default 365 daysCustom/default 1 TBYesYes

Active billing status is required

New job dispatch and MCP credentials require an active trial or active subscription. Workflow scanning and compatibility diagnostics remain available when dispatch is blocked.

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.

formulaText
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 min

Admission 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.

ControlScopeBehavior
Plan concurrencyOrganizationLimits the number of active jobs across every repository. New ready jobs wait until a slot is free.
strategy.max-parallelMatrix jobCaps active variants from one matrix.
concurrency groupRepositorySerializes or cancels runs/jobs sharing a case-insensitive group.

Queued time is not compute usage

A job waiting on dependencies, an environment, concurrency, or billing admission does not consume runner capacity or normalized minutes.

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.

DataLifecycle
ArtifactsImmutable until expiry, subject to the plan’s retention at creation. Upload is rejected if cache eviction cannot free enough shared space.
CacheImmutable entries, evicted least-recently-used when space is needed, and expired after seven idle days under the current cache contract.
LogsMasked, compressed chunks with an absolute expiry based on plan log retention when created.
Upload reservationsCount 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. 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. 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. 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. 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

A budget alert is informational. Use stop-at-allowance or a hard spend cap when the organization must block new dispatch beyond a threshold.

What happens when a limit is reached

Runnable fails admission before provisioning a runner and records a reason an operator can act on.

GateResult
Inactive subscriptionDispatch is rejected until checkout or subscription recovery completes.
Plan concurrencyReady job remains queued until active jobs fall below the limit.
Stop at allowanceDispatch whose reservation would exceed included minutes is rejected.
Hard spend capDispatch whose projected invoice would exceed the cap is rejected.
Storage quotaArtifact/cache upload reserves space; cache is evicted LRU, then the upload is rejected if insufficient.
Retention expiryMetadata is filtered and the object is no longer available to customer reads.
NextOrganization administrationAssign least privilege and keep billing and credentials owner-controlled.