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. + +Example Invoice + +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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