supabase · pricing · database
Supabase Cost: Why Your Bill Is So High
By Aakash Verma ·
A Supabase bill is usually higher than the $25 Pro price because of four lines: compute for every project (each one is its own Postgres server billed by the hour, and the $10 monthly credit covers only one Micro), add-ons the Spend Cap doesn’t cover (Point-in-Time Recovery from about $100 a month, a dedicated IPv4 at $4, a bigger compute size), egress past the 250 GB quota at $0.09 per GB, and provisioned disk above 8 GB at $0.125 per GB. Those prices are from Supabase’s usage docs, checked October 20, 2026.
The fastest way to find yours: open the organization’s Usage page and the last invoice side by side, and look for those four line names. The rest of this post is what each one means and what to do about it.
Compute: the line people don’t expect
Supabase doesn’t charge for “a database” the way you’d assume. The compute docs say every project gets a dedicated Postgres instance on its own server, and you pay for that server’s hours whether anyone queries it or not. Partial hours round up to a full hour.
The sizes, monthly: Micro about $10, Small $15, Medium $60, Large $111, XL $210, 2XL $410, and up to $3,730 for 16XL. Paid plans include $10 of compute credits per organization per month, which is exactly one Micro. Everything past that is on top of the $25.
So the classic surprise is the second and third project. A staging copy on Small, an old prototype nobody deleted on Micro: that’s $25 a month before a single user shows up. Supabase’s own billing example shows three Small projects as $25 + $45 - $10 = $60. And “Medium” sounds modest until you see it’s four times Small.
The Spend Cap doesn’t cap what you think
Pro organizations get a Spend Cap, on by default, and plenty of founders read it as “my bill can’t go above $25”. It can’t do that. The cost control docs list what it covers: usage items like egress, disk size, monthly active users, storage, Edge Function invocations and Realtime. It does not cover compute, read replicas, branching, a custom domain, IPv4, Point-in-Time Recovery, log drains or extra disk IOPS and throughput. Supabase’s reasoning is that those are things you switched on yourself, so they’re predictable.
That’s fair, but it means the expensive items are exactly the ones the cap ignores. Point-in-Time Recovery is the big one: about $100 a month for 7 days of retention, $200 for 14 and $400 for 28. If someone turned it on during a scary week and never looked again, it’s often the biggest line on the invoice.
Egress: 250 GB goes faster than it sounds
The Pro plan includes 250 GB of uncached egress and a separate 250 GB of cached egress per month. Past that, uncached costs $0.09 per GB and cached (served from Supabase’s CDN) $0.03, per the egress docs. Every service counts against it: database responses, auth, storage downloads, Edge Function responses and Realtime messages.
The usual causes are boring. A list page that runs select('*') on a table with a big JSON column. Images served at full size from Storage and resized in the browser. A Realtime subscription on a busy table that pushes every row change to every open tab. None of these show up in development with three test users.
On the Usage page, egress is split by service, so you can tell “Storage Egress” from “Database Egress” before you start guessing. For storage, cached egress at a third of the price is the cheap win if your files can be cached. For the database, select only the columns the screen shows.
Disk: you pay for the size, not the data
Disk is billed on the provisioned size: 8 GB is included, then $0.125 per GB per month on the default gp3 disks (disk size docs). If the disk grew once because of a big import or bloated WAL, you keep paying for the bigger size after the data is gone until you reduce it. At these prices it’s rarely the main problem, but on a 200 GB disk it’s $24 a month you may not need.
A worked example (hypothetical)
Here’s how a “$25 plan” turns into $174 a month with nothing unusual going on. One Pro organization: production on Small, staging on Small, an old test project on Micro, Point-in-Time Recovery with 7 days on production, a dedicated IPv4 for a tool that needed it, 400 GB of uncached egress and a 20 GB disk.

That’s $25 for Pro, $40 of compute minus the $10 credit, about $100 for PITR, $4 for IPv4, $13.50 for 150 GB of egress over the quota and $1.50 for 12 GB of extra disk. The fixes are in the same order: delete or move the projects you don’t use (a free organization can hold small test projects), decide whether you really need PITR or whether daily backups are enough, drop the IPv4 if nothing needs it, then work on egress.
Our Supabase pricing calculator does this sum for your own numbers, and the Supabase pricing page has the plan limits if you’re comparing tiers. If the bill still doesn’t make sense after that, send it to us for a free review.
Want us to look at your bill?
No upfront fee: for six months you pay half of what we save you each month, then you keep all of it. Nothing saved, nothing owed.
Also here: Free cloud cost audit ($0) · Cloud cost optimization services: $0 up front · Reduce your startup's AWS bill · Pricing: paid only from verified savings · Move from AWS to a European cloud