List-price math only. Real Supabase bills depend on per-second sampling of MAU, point-in-time DB size, and rolling 30-day egress. The deep audit reconciles your actual usage report against included caps and ranks reduction wins by dollar impact.
| Usage dimension | Included | Your usage | Overage | $ / mo |
|---|---|---|---|---|
| — | ||||
| Dimension | Free (cap) | Pro included | Pro overage | Team included |
|---|---|---|---|---|
| Base fee | $0 | $25/mo | — | $599/mo |
| Database storage | 500 MB | 8 GB | $0.125 / GB | 8 GB |
| Egress | 5 GB | 100 GB | $0.09 / GB | 250 GB |
| MAU (auth) | 50,000 | 100,000 | $0.00325 / MAU | 100,000 |
| Edge function calls | 500,000 | 500,000 | $2 / million | 2,000,000 |
| Realtime peak conn | 200 | 500 | $10 / 100 | 500 |
One-page checklist of the biggest Supabase levers — egress reduction via signed URLs and CDN, MAU vs auth.users.count difference, edge function cron-trigger trap, the storage compression mistake, realtime channel-per-user vs broadcast, when to upgrade from Pro to Team, dedicated compute tier break-even, Postgres connection pooling on Pro, point-in-time recovery cost vs daily backups, branching-environment billing, and the AWS PrivateLink add-on most teams forget. PDF sent to your inbox.
monthly = base + max(0, db - inc_db) × 0.125 + max(0, egress - inc_egress) × 0.09 + max(0, mau - inc_mau) × 0.00325 + max(0, ceil((fn - inc_fn) / 1e6)) × 2 + max(0, ceil((rt - inc_rt) / 100)) × 10
Example: Pro tier, 12GB database, 150GB egress, 120,000 MAU, 750,000 function invocations, 600 realtime connections. Base $25 + (12 - 8) × $0.125 = $0.50 storage overage + (150 - 100) × $0.09 = $4.50 egress overage + (120,000 - 100,000) × $0.00325 = $65 MAU overage + ceil((750,000 - 500,000) / 1,000,000) × $2 = $2 function overage + ceil((600 - 500) / 100) × $10 = $10 realtime overage = $107/month. The same workload on Team is $599 flat, which is 5.6x more expensive on this profile. Team only wins when MAU overage alone would exceed roughly $574/mo, which means 277,000+ MAU.
The Free tier example: any single dimension above its cap means the project is service-degraded or locked, not billed. A small app with 600MB database and 6GB monthly egress cannot stay on Free even one day — the database hits read-only mode and egress requests get throttled.
Upgrade the moment any single usage line crosses a Free-tier ceiling, because Free does not bill overage — it degrades or locks the service. The hard ceilings are 500MB database storage, 5GB egress per month, 50,000 MAU, 500,000 edge function invocations per month, and 200 concurrent realtime connections. The most common surprise is egress: a 5GB cap is roughly 5,000 large API responses or a few thousand image downloads, so a single viral day can push past it. Pro at $25/mo gives 8GB DB, 100GB egress, 100,000 MAU, 500,000 function calls included, 500 realtime — and bills predictable overage above those caps. If you are running a real product with actual users, Pro is the floor.
Team at $599/mo makes financial sense only when your overage on Pro would exceed roughly $574/mo, the gap between base fees. Team includes 250GB egress (vs 100GB on Pro), 100,000 MAU (same), and 2M function calls (vs 500K). At Pro overage rates, you would need 150GB of extra egress ($13.50) plus 1.5M extra function calls ($3) to even start narrowing the gap — those alone are nowhere near $574. The real reason teams upgrade is the non-pricing features: SOC 2 compliance, SAML SSO, daily backups with 14-day retention, priority support, and 8GB RAM compute (vs 4GB on Pro). If you do not need those, stay on Pro and pay overage.
Supabase Edge Functions bill per invocation, not per compute second. Pro includes 500,000 invocations per month; above that, $2 per additional million. Each execution counts as one invocation regardless of duration, so a 50ms function and a 5-second function cost the same. The catch most teams miss is that scheduled functions (cron triggers) count too — a function running every minute is 43,200 invocations per month per schedule. Auth hooks, database webhooks, and storage triggers also count. Team raises the included pool to 2 million, useful only for very high-traffic apps. There is no separate compute-time charge, but functions are hard-capped at 150 seconds execution time and 256MB memory.
On Pro you are billed predictable per-unit overage on top of the $25 base. DB above 8GB is $0.125/GB. Egress above 100GB is $0.09/GB. MAU above 100K is $0.00325/MAU. Edge function invocations above 500K are $2/million. Realtime above 500 connections is $10 per additional block of 100. No service interruption — your project keeps running, the overage appears on next month's invoice. This is the key difference from Free, which simply degrades or locks features when caps are hit. Set up usage alerts in the dashboard at 80 percent of each cap so a viral day does not become a billing surprise.
No. Database sizes, egress volumes, MAU counts, function invocations, and realtime numbers all run locally in your browser. The page fires an anonymous pageview beacon and CTA-click events so we can measure whether the calculator is useful — no project IDs, no usage data, no email (unless you submit one to the cheat-sheet form), no IP stored raw.