Supabase pricing is a plan fee with usage overages on top. Pro costs $25 a month, Team starts at $599, Enterprise is custom, and every paid plan includes $10 in compute credits that cover one Micro instance. Usage beyond the included allowances, monthly active users, disk, egress, file storage and Edge Function invocations, is billed at published rates. Below you get a reusable formula, three hypothetical workloads costed line by line, and the places where bills move. Each model ends with a monthly total. Those are illustrative models, not anyone's real invoice, so re-check every rate before you commit.
The plan structure on the pricing page
There are four plans. That is the whole menu, and the pricing page lists the allowances for each.
Free is $0. You get 50,000 monthly active users, a 500 MB database on shared CPU with 500 MB RAM, 5 GB egress, 5 GB cached egress and 1 GB of file storage. The catch is operational: projects pause after 1 week of inactivity, and you are limited to 2 active projects. Fine for experiments. Not fine for anything a customer pays for.
Pro is $25 a month, with the first project included and additional projects from $10 a month. It adds daily backups kept for 7 days and 7-day log retention. The spend cap is on by default; turn it off and you can pay for resources beyond the included quota.
Team starts at $599 a month. It is Pro plus SOC2 and ISO 27001, project-scoped and read-only access, SSO for the dashboard, priority email support with SLAs, daily backups kept for 14 days and 28-day log retention. HIPAA is listed as a paid add-on. Enterprise is custom priced and lists uptime SLAs, AWS PrivateLink support and 24×7×365 premium support.
Here is how the allowances compare for the two plans most people actually choose between:
| Line | Free allowance | Pro allowance | Pro overage |
|---|---|---|---|
| Monthly active users | 50,000 | 100,000 | $0.00325 per MAU |
| Database disk | 500 MB | 8 GB per project | $0.125 per GB |
| Egress | 5 GB | 250 GB | $0.09 per GB |
| Cached egress | 5 GB | 250 GB | $0.03 per GB |
| File storage | 1 GB | 100 GB | $0.0213 per GB |
One structural point matters later. Billing is organisation-based: one subscription per organisation, with usage summed across projects. That comes from a 2023 Supabase post on organisation billing, so treat it as background and confirm it against the current billing docs. Extra projects are where the roughly $10 a month for another database comes from.
What you are actually billed for
The model is simple. Every line is either an allowance that is free until you cross it, or a charge that starts with the first unit. Confuse those two and estimates go wrong.
- Included, then metered: MAUs, disk size, egress, cached egress, file storage, Edge Function invocations, Realtime connections and messages, log ingestion, image transformations.
- Billed from the first unit: compute instances above what the $10 credit covers, advanced disk IOPS and throughput beyond the included amounts, the custom domain, Point in Time Recovery, log drains, branches, Advanced MFA phone.
Compute
This is the line most people underestimate. Each project gets its own Postgres instance, and compute is billed hourly, so you can scale up or down at any time and pay for the hours you ran. Monthly prices below are the published figures:
| Size | Per month | Compute | Memory |
|---|---|---|---|
| Micro | $10 | Shared | 1 GB |
| Small | $15 | Shared | 2 GB |
| Medium | $60 | Shared | 4 GB |
| Large | $110 | Dedicated, 2 vCPUs | 8 GB |
| XL | $210 | Dedicated, 4 vCPUs | 16 GB |
| 2XL | $410 | Dedicated, 8 vCPUs | 32 GB |
| 4XL | $960 | Dedicated, 16 vCPUs | 64 GB |
| 8XL | $1,870 | Dedicated, 32 vCPUs | 128 GB |
| 12XL | $2,800 | Dedicated, 48 vCPUs | 192 GB |
| 16XL | $3,730 | Dedicated, 64 vCPUs | 256 GB |
Anything above 16XL is a sales discussion. The $10 monthly credit covers a Micro or offsets any other instance, so the pricing page's own Pro example reads: subscription $25, compute $10, credit minus $10, total $25.
Disk, egress and storage
Disk includes 8 GB per project on Pro, then costs $0.125 per GB. If you need more performance, advanced disk has two tiers. General Purpose goes to 64 TB with 8 GB included, 3,000 IOPS included then $0.024 per IOPS, and 125 MB/s included then $0.095 per MB/s. High Performance goes to 60 TB at $0.195 per GB and $0.119 per IOPS, with throughput scaling alongside IOPS.
Egress is easier to misread than it should be. The egress docs say it is incurred by every service, Database, Auth, Storage, Edge Functions, Realtime and Log Drains, against one unified quota, and that cached and uncached egress have independent quotas and pricing. File storage is billed per GB-hour, at $0.00002919 per GB-Hr, which is the $0.0213 per GB per month you see on the pricing page. Only usage above the quota is charged.
Auth, Edge Functions and Realtime
Auth is MAU-based: 100,000 included on Pro, then $0.00325 each. Third-party providers such as Clerk get the same treatment, per a March 2025 Supabase post. Add-ons sit on top: SAML SSO has 50 included then $0.015 per MAU, and Advanced MFA phone is $75 a month for the first project.
Edge Functions include 2 million invocations on Pro and Team, then $2 per million. Realtime includes 500 concurrent peak connections then $10 per 1,000, and 5 million messages then $2.50 per million.
Add-ons and logs
Custom domain is a flat $10 a month. Point in Time Recovery starts at $100 a month, that is $100 per 7 days of retention. Branching is $0.01344 per branch per hour. Image transformations include 100 origin images then $5 per 1,000.
Logs are the untidy line item. The pricing page shows Pro and Team with 20 GB log ingestion included then $0.50 per GB, and log query priced as ingestion usage times 100. A log drain is $60 per drain per month plus $0.20 per million events plus $0.09 per GB egress. But the June 2026 changelog describes metering with 5 GB ingest and 1,000 GB query included, overage at $0.50 per GB and $0.002 per GB, with existing organisations migrating from July 1. A secondary source dates the change differently and says reports differ on the allowance. I have kept logs out of the worked totals for that reason.
Three hypothetical workloads, one worksheet
These are made-up workloads. The inputs are mine, chosen to show how each meter behaves. The rates come from the pricing page and docs above. Swap in your own numbers.
The formula
- Start with the plan base: $25 for Pro, $599 for Team.
- Add the monthly price of every compute instance across your projects, then subtract the $10 credit (floor the result at zero).
- For each metered line (MAU, disk, egress, cached egress, storage):
max(0, usage - allowance) x rate. - For Edge Functions: invocations are billed in whole packages of 1 million, so charge the number of whole packages above the included allowance at $2 each.
- For Realtime: connections over 500 at $10 per 1,000, messages over 5 million at $2.50 per million. I treat both as pro rata, so check how the invoice rounds.
- Add flat add-ons, then add logs as a separate line with a range until the rates settle.
The inputs
A. Prototype. Pro plan, one project on Micro. 2,000 MAU, 300 MB of data, 2 GB egress, under 1 GB of files, a few thousand function calls. Everything sits inside the allowances. On Free this would cost $0, but a project that pauses after a week of quiet is a poor home for a demo you are showing to customers.
B. Growing SaaS. Pro plan, one project on Small. MAU above the included allowance, 20 GB disk, 400 GB egress, 300 GB cached egress, 150 GB file storage, Edge Function invocations above the included amount, a custom domain. Realtime stays under 500 peak connections and 5 million messages.
C. Larger production app. Team plan, one project on 2XL. MAU well above the included allowance, 500 GB General Purpose disk with 6,000 IOPS and 250 MB/s throughput, 2,000 GB egress, 3,000 GB cached egress, 1,000 GB file storage, Edge Function invocations well above the included amount, 2,000 peak Realtime connections, Realtime messages well above the included amount, PITR for 7 days, a custom domain and one log drain, base fee only.
The arithmetic
| Line | A. Prototype | B. Growing SaaS | C. Larger app |
|---|---|---|---|
| Plan base | Pro base fee | Pro base fee | Team base fee |
| Compute (before credit) | Micro price | Small price | 2XL price |
| Compute credit | Credit applied | Credit applied | Credit applied |
| Disk and advanced disk | $0 | Disk overage | Advanced disk charges |
| MAU overage | $0 | MAU overage | MAU overage |
| Egress | $0 | Egress overage | Egress overage |
| Cached egress | $0 | Cached overage | Cached overage |
| File storage | $0 | Storage overage | Storage overage |
| Edge Functions | $0 | Package charges | Package charges |
| Realtime | $0 | $0 | Connection and message overage |
| Flat add-ons | $0 | Custom domain | PITR, custom domain and log drain base fee |
| Monthly total | Base fee only | Base fee plus overages | Base fee plus overages |
Here is where the odd-looking numbers come from, so you can audit them.
- B, MAU: the users over the allowance x $0.00325 give the MAU overage line.
- B, disk: 12 GB over x $0.125 gives the disk line.
- B, egress: 150 GB over x $0.09 gives the egress line, plus 50 GB cached over x $0.03 for the cached line.
- B, storage: 50 GB over x $0.0213 gives the storage line.
- B, Edge Functions: the invocations over the included 2 million round up to 2 packages at $2 each.
- C, advanced disk: 492 GB over x $0.125, plus 3,000 IOPS over x $0.024, plus 125 MB/s over x $0.095. Those three sum to the advanced disk line.
- C, MAU: the users over the allowance x $0.00325 give the MAU line.
- C, egress: the egress above the allowance x $0.09, plus the cached egress above the allowance x $0.03.
- C, storage: 900 GB x $0.0213 gives the storage line.
- C, Edge Functions: the invocations above the included amount are billed in whole packages at $2 each.
- C, Realtime: 1,500 connections over x $10 per 1,000 = $15, plus the messages over the allowance x $2.50 per million.
- C, add-ons: PITR $100, custom domain $10, log drain $60.
Look at B again. Remove the MAU overage and the bill drops by about half. Half of that workload's cost is users past the allowance. That is the pattern I would watch for: a cheap-looking plan where one meter does most of the damage.
Notice what C is not. It is not mostly compute. The 2XL instance nets to $400, which is under a fifth of the total. MAUs, egress and Realtime together cost more. If you size your budget around the instance price alone, you will be wrong by a wide margin.
There is a catch with B. Its MAU, egress and storage figures all exceed Pro allowances, so the default spend cap would need to be off for those to be billed. That is a decision to make deliberately, not a default to forget.
Cost traps and what to watch each month
Most surprises come from lines that look free until they are not.
- MAUs are per user, not per request. A marketing spike that brings sign-ups can move you from $0 to hundreds of dollars of overage. At $0.00325 each, 100,000 extra users is $325.
- Egress is shared across services. Database reads, Auth responses, Storage downloads, Edge Function responses and Realtime all draw from one unified quota. Cached and uncached egress are tracked separately, so a good CDN hit rate moves traffic into the cheaper $0.03 per GB bucket.
- Edge Function packages round up. Usage between two packages is billed as the next whole package. Invocations count regardless of status code, so a retry loop hammering a failing function is billed. OPTIONS preflight requests are not.
- Branches and extra projects accrue hourly. At $0.01344 per hour, a branch left running for a full month adds up. Forgotten preview environments add up.
- IOPS and throughput are separate meters. Raising disk performance on General Purpose adds charges per IOPS and per MB/s on top of size.
- Logs are in flux. The pricing page and the June 2026 changelog disagree on allowances, and a secondary source gives yet another date. Treat logs as a range in your worksheet, and look at the Logs Ingest and Logs Query pages in the usage docs before you budget.
- Announcements are not prices. Supabase said on October 2, 2026 that it is acquiring Turso with no pricing given. Do not plan around terms nobody has published.
Monitoring checkpoints
Put these on a calendar, not in your head.
- Before launch: decide on the spend cap, and write down what happens to users if a quota is hit versus what you pay if it is not.
- First week after launch: compare each metered line in the usage docs against your worksheet. A line that is already above forecast will be worse at month end.
- Monthly: reconcile the invoice against the formula above, line by line. Any gap you cannot explain is a meter you do not understand yet.
- After any architecture change: re-run the worksheet. Moving image processing or webhooks around changes invocations and egress at the same time.
- Quarterly: re-read the pricing page. The logs situation shows that meters can change within a year.
That last architecture point is concrete. If you are choosing whether image resizing and webhook handlers live in Edge Functions or in your app server, both choices move invocation packages and egress, and that is the kind of call covered in Next.js and Supabase development.
When a Postgres-only host fits better
The bundle itself is not a tax. Auth, Storage and Realtime cost nothing until you cross an allowance. So the argument for a Postgres-only product is never that you pay for features you do not use. It is narrower than that.
A plain managed Postgres host can be the better fit when:
- You already have an auth provider, and it bills per user. Third-party Auth through Supabase carries the same MAU pricing as Supabase Auth, so bringing your own provider does not reduce that line.
- Your workload is database-heavy and everything else is thin. Then compute and disk are your bill, and a simpler product with a simpler meter is easier to forecast.
- You want one price you can explain on a single line, because finance asks for it.
- You need a very different database shape, such as many small databases created on demand. That is a different pricing model altogether, and the Turso acquisition shows even Supabase sees it as separate from hosted Postgres.
The opposite case is just as real. If you would otherwise assemble auth, file storage, realtime and functions yourself, a $25 base with generous allowances is hard to beat on engineering time. The comparison to run is your worksheet total against the sum of the separate products you would stitch together, plus the hours to wire them.
For a broader view of how Supabase sits against Neon, PlanetScale, Turso and Convex, see the serverless database comparison and the Supabase overview. Use those for fit, not for rates. Rates change faster than comparison articles get updated, and secondary sources have already disagreed with the primary ones on logs.
FAQ
Does using Clerk or another third-party auth provider lower my MAU charges?
No. Per Supabase's March 2025 post, Third-party Auth was moved to parity with Supabase Auth: 50,000 MAU on Free, 100,000 on Pro, then $0.00325 per MAU. You might choose an external provider for features, but not for a cheaper meter.
How is file storage charged if I only exceed the quota for a few days?
Storage is metered per GB-hour at $0.00002919, which equals $0.0213 per GB per month, and only usage above your plan quota is charged. In principle a short overshoot costs a fraction of the monthly rate. Read the storage pricing docs for exactly how the hourly figures are summed.
What does an extra project cost?
Billing is one subscription per organisation with usage summed across projects. An extra project means another Postgres instance, which the pricing page puts at additional projects from $10 a month. The 2023 organisation-billing post gives the hourly rate as $0.01344. Compute above Micro is priced on top, and the single $10 credit is not repeated per project in the pricing page's own example.
Why did my Free project stop working?
Free projects are paused after 1 week of inactivity, and the plan allows 2 active projects. That is by design rather than a billing fault. If a project must stay up for real users, that is the clearest reason to move it to Pro.
A Supabase bill is the plan fee plus a handful of meters, and in the growing-SaaS model a single one, MAU overage, made up about half of it. The sharpest caveat is logs: the pricing page and the June 2026 changelog disagree on allowances, so treat that line as a range until the numbers settle.