Billing & pricing
Per-second metering, workload-class rates for sandboxes, apps, and databases, storage and egress, and how plan credits work.
PandaStack bills per second of actual runtime. Anything suspended, hibernated,
or scaled to zero bills no compute at all. The live rate card is always available
at GET /v1/pricing — the tables below mirror it.
Workload-class rates
One rate card. Sandboxes, apps and managed databases all bill the same two meters at the same prices — there is no per-class pricing:
| Meter | Rate |
|---|---|
| Active vCPU | $0.054 / hour |
| Working-set GiB | $0.0162 / hour |
- CPU vs. memory: memory bills by resident working-set GiB-hours — the RAM your workload actually keeps warm — capped at your committed size, so it can only come out cheaper than paying for the full baked size. CPU is billed by active CPU-seconds actually used, capped at the committed vCPU ceiling. A workload pays at most for what it provisioned, and usually much less: an 8-vCPU VM that sits idle bills almost no CPU. This applies to sandboxes, apps and databases alike.
- Apps: builds run inside your app's VM at the same rates. There are no separate build minutes.
- Databases: point-in-time recovery, backups, and failover are included, and database VMs run in a class that is never overcommitted — but they are priced like everything else, on the CPU they burn and the memory they hold resident. A database that auto-suspends bills storage only.
- Idle is free: hibernated sandboxes, sleeping apps, and auto-suspended databases bill no compute — only storage.
Storage & egress
| Meter | Rate |
|---|---|
| Volume storage beyond your plan quota (DB volumes count here too) | $0.15 per GiB-month |
| Network egress | not billed (inbound and outbound) |
Egress is metered so we can see it, but it is not charged on any plan. We do expect fair use — if a workspace's traffic is wildly out of line with normal agent, app, and database workloads we will get in touch rather than bill you by surprise.
Plans & credits
Plan base fees convert 1:1 into monthly usage credit — you only pay overage beyond it:
| Plan | Base | Included credit | Per-sandbox cap |
|---|---|---|---|
| Free | $0 | $5.40/mo | 4 GiB RAM |
| Pro | $20/mo | $20/mo | 16 GiB RAM |
| Team | $99/mo | $99/mo | 64 GiB RAM |
Every plan gets the same 8 burstable vCPUs — plans differ on memory, concurrency, and features, not CPU.
Apps deploy on the Free tier. The free credit covers a side project that sleeps when idle (a sleeping app + a dev database fit comfortably). An app kept always-on exhausts the free credit in a few days, after which it is hibernated until the next month — upgrade to Pro to keep apps always-on.
What happens when the free credit runs out
Running out of free credit stops compute. It never destroys your work.
At 80% of the credit you get a heads-up email. At 100%:
- Running apps, databases, and sandboxes are paused — they stop running, and stop costing anything. Their state is preserved exactly as it was.
- New creates return
402 Payment Requireduntil there is credit again. - A paused app's URL answers
503with a short "this app is paused" page rather than failing to connect, so visitors and crawlers see something sensible.
Nothing is deleted. There is no grace period and no countdown — your code, data, volumes, and settings are kept for as long as the workspace exists. The workspace stays paused until either:
- you add a payment method or upgrade — the pause lifts on the next reconcile (within about a minute) and your resources resume where they left off; or
- your monthly credit resets, which lifts the pause automatically.
Running workloads are never surprise-billed: exceeding the free credit pauses them rather than charging you.
Where to see your usage
The dashboard's Billing page shows the credit meter and month-to-date usage.
Programmatically, GET /v1/pricing returns the current rates and tier catalog.