From 0bb0f25086d43d951e5a0db44c2bb83a1c7176ed Mon Sep 17 00:00:00 2001
From: Thomas <31189692+ecktoteckto@users.noreply.github.com>
Date: Wed, 15 Jan 2025 10:04:10 +0100
Subject: [PATCH] docs(billing): revamp - monthly invoice
---
.../NavigationMenu.constants.ts | 4 +
.../guides/platform/your-monthly-invoice.mdx | 77 ++++++++++++++++++
.../img/guides/platform/example-invoice.png | Bin 0 -> 395929 bytes
supa-mdx-lint/Rule001HeadingCase.toml | 1 +
4 files changed, 82 insertions(+)
create mode 100644 apps/docs/content/guides/platform/your-monthly-invoice.mdx
create mode 100644 apps/docs/public/img/guides/platform/example-invoice.png
diff --git a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
index ee23f22230b..802dceb084a 100644
--- a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
+++ b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
@@ -2091,6 +2091,10 @@ export const platform: NavMenuConstant = {
name: 'Billing FAQ',
url: '/guides/platform/billing-faq',
},
+ {
+ name: 'Your monthly invoice',
+ url: '/guides/platform/your-monthly-invoice',
+ },
],
},
],
diff --git a/apps/docs/content/guides/platform/your-monthly-invoice.mdx b/apps/docs/content/guides/platform/your-monthly-invoice.mdx
new file mode 100644
index 00000000000..b54fee9de5f
--- /dev/null
+++ b/apps/docs/content/guides/platform/your-monthly-invoice.mdx
@@ -0,0 +1,77 @@
+---
+id: 'your-monthly-invoice'
+title: 'Your monthly invoice'
+---
+
+## Billing cycle
+When you sign up for a paid plan you get charged once a month at the beginning of the billing cycle. A billing cycle starts with the creation of a Supabase organization. If you create an organization on the sixth of January your billing cycle resets on the sixth of each month. If the anchored day is not present in the current month, then the last day of the month is used.
+
+## Your invoice explained
+When your billing cycle resets an invoice gets issued. That invoice contains line items from both the current and the previous billing cycle. Fixed fees for the current billing cycle, usage based fees for the previous billing cycle.
+
+### Fixed fees
+Fixed fees are independent of usage and paid in-advance. Whether you have one or several projects, hundreds or millions of active users, the fee is always the same, and doesn't vary. Examples are the subscription fee, the fee for HIPAA and for priority support.
+
+### Usage based fees
+Fees vary depending on usage and are paid in arrears. The more usage you have, the higher the fee. Examples are fees for monthly active users and storage size.
+
+### Discounted line items
+Paid plans come with a free quota for certain line items. You only pay for usage that goes beyond the quota. The quota for Storage for example is 100 GB. If you use 105 GB, you pay for 5 GB. If you use 95 GB, you pay nothing. This quota is declared as a discount on your invoice.
+
+#### Compute Credits
+Paid plans come with $10 in Compute Credits per month. This suffices for a single project using a Nano or Micro compute instance. Every additional project adds compute fees to your monthly invoice though.
+
+### Example invoice
+The following invoice was issued on Jan 6, 2025 with the previous billing cycle from Dec 6, 2024 - Jan 5, 2025, and the current billing cycle from Jan 6 - Feb 5, 2025.
+
+
+
+1) The final amount due
+2) Fixed subscription fee for the current billing cycle
+3) Usage based fee for Compute for the previous billing cycle. There were two projects (wsmmedyqtlrvbcesxdew, wwxdpovgtfcmcnxwsaad) running 744 hours (24 hours * 31 days). These projects incurred $10 in Compute fees each. With $10 in Compute Credits deducted, the final Compute fees are $10.
+4) Usage based fee for Custom Domain for the previous billing cycle. There is no free usage quota for Custom Domain. You get charged for the 744 hours (24 hours * 31 days) a Custom Domain was active. The final Custom Domain fees are $10.19.
+5) Usage based fee for Egress for the previous billing cycle. There is a free usage quota of 250 GB for Egress. You get charged for usage beyond 250 GB only, meaning for 2,119.47 GB. The final Egress fees are $190.75.
+6) Usage based fee for Monthly Active Users for the previous billing cycle. There is a free usage quota of 100,000 users. With 141 users there is no charge for this line item.
+
+### Why is your invoice more than $25?
+The amount due of your invoice being higher than the $25 subscription fee for the Pro Plan can have several reasons.
+
+- **Running several projects:** You had more than one project running in the previous billing cycle. Supabase provides a dedicated server and database for every project. That means that every project you launch incurs compute costs. While the $10 Compute Credits cover a single project using a Nano or Micro compute instance, every additional project adds at least $10 compute costs to your invoice.
+- **Usage beyond quota:** You exceeded the included usage quota for one or more line items in the previous billing cycle while having the Spend Cap disabled.
+- **Usage that is not covered by the Spend Cap:** You had usage in the previous billing cycle that is not covered by the Spend Cap. For example using an IPv4 address or a custom domain.
+
+## How to settle your invoices
+Monthly invoices are auto-collected by charging the payment method marked as "active" for an organization.
+
+### Payment failure
+If your payment fails, Supabase retries the charge several times. We send you a Payment Failure email with the reason for the failure. Follow the steps outlined in this email. You can manually trigger a charge at any time via
+- the link in the Payment Failure email
+- the "Pay Now" button on the [organization invoices](https://supabase.com/dashboard/org/_/invoices) page
+
+
+## Where to find your invoices
+Your invoice is sent to you via email. You can also find your invoices on the [organization invoices](https://supabase.com/dashboard/org/_/invoices) page.
+
+## Manage your billing details
+You can configure your billing email address, billing address and tax id on the [organization billing](https://supabase.com/dashboard/org/_/billing) page.
+
+
+ Note that any changes made to your billing details will only be reflected in your upcoming invoices. Our payment provider cannot regenerate previous invoices.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/docs/public/img/guides/platform/example-invoice.png b/apps/docs/public/img/guides/platform/example-invoice.png
new file mode 100644
index 0000000000000000000000000000000000000000..1518484ec790bcbb4d41024cfea4c518e26760e7
GIT binary patch
literal 395929
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