Billing
Infrastructure is billed on what your resources used, at a published rate per unit. Kuppit meters every resource itself, prices the meter at the rates below, and shows the month so far on the dashboard's Usage page. Nothing here is a markup on someone else's invoice, and nothing is estimated from one: the figure on the page and the figure on the invoice are the same meter at the same rates.
Reading the Usage page
The page leads with three figures, and they answer three different questions:
| Figure | What it is |
|---|---|
| Current usage | What your resources have used this month, priced at the rates below, and how current the meter is. |
| Included usage | How much of that your plan already pays for, what is left, and when the allowance resets. A plan that includes no infrastructure usage shows no meter. |
| Estimated bill | What will be charged for infrastructure: the meter, less what your plan still covers and any credit you hold. |
Current usage is not a bill. On a plan that includes $20 of infrastructure, a month that has used $12 reads $12 under Current usage, $12 of $20 under Included usage, and $0 under Estimated bill. Past the allowance, the difference appears as additional usage and the bill.
Under the figures, the page charts the same meter across the period — as a running total by default, or day by day — for all usage or for one category. Only days that have happened are drawn: the rest of the month is not a row of zeroes. The categories beneath the chart each show their share of what has been priced so far, and choosing one narrows the lists below to the resources that are part of it.
The breakdown below that puts projects first and resources second. A project reports production, its named environments, and its preview environments separately, with open previews readable one pull request at a time and closed ones summed — which is what answers "why are previews costing us this". A resource's own meters are one click away rather than printed for every resource at once, and a project or resource deleted during the month keeps its place and its name, grouped behind Deleted projects or Deleted resources.
Rates
| Resource | What is metered | Billed per | Rate |
|---|---|---|---|
| Web service | CPU while serving | vCPU-hour | $0.030 |
| Web service | Memory while serving | GB-hour | $0.015 |
| Worker, scheduled worker | CPU while allocated, or per run | vCPU-hour | $0.055 |
| Worker, scheduled worker | Memory while allocated, or per run | GB-hour | $0.008 |
| PostgreSQL | Compute while active | CU-hour | $0.125 |
| PostgreSQL | Storage | GB-month | $0.45 |
| Every resource | Bandwidth out | GB | $0.05 |
A compute unit (CU) is one vCPU with four gigabytes of memory, which is how a database's compute is measured; a database that scales down uses a fraction of one. Memory is metered in binary gigabytes (GiB) and billed per GiB-hour; the page and the invoice say GB. A web service that scales to zero costs nothing for compute or memory while idle; a worker's instances are billed for as long as they are allocated, whether or not there is work; a scheduled worker is billed only while a run executes; a database is billed for its compute while active and for its storage while it exists.
Rates apply from the first of a month and do not change inside one. A rate change is a new rate table with a start date; a month that was closed at the old rates stays closed at them.
Measured, not billed
Two things the Usage page shows carry no charge, and both read Included wherever they appear:
- Builds. Kuppit measures how long each build ran and shows the minutes. They cost nothing.
- Requests. The count of requests a service served is shown for reference. It is never billed.
Usage Kuppit has measured but cannot yet price reads Pending instead, and is listed beneath the figures. It is never shown as zero, and the month it belongs to does not close until it can be priced.
How a month closes
A billing month is a UTC calendar month. While it is running, the Usage page shows the month so far, current through the last metering window Kuppit collected; the line under the figure says how current that is, and says so plainly when collection has fallen behind.
The month closes one day after it ends, once the meter has collected every window up to its end for every piece of infrastructure your resources ran on. At that point every line is written down — the resource, the metric, the quantity, the rate and the amount — and never changes again. What you were shown is what you are invoiced.
A month that closes owing money before a payment method is on file is not forgiven. The amount waits, the Billing page says it is waiting, and the invoice is issued as soon as a card is added.
A month is never closed short. If any usage cannot be priced — a resource whose kind Kuppit could not establish, or usage that reached the organization but no resource — the month stays open until the cause is fixed. Nothing is guessed and nothing is quietly left off; Kuppit would rather invoice you later than invoice you wrong.
The same holds when Kuppit's own meter missed part of the month, whether because the provider can no longer supply it or because Kuppit stopped reading that infrastructure. The month stays open until Kuppit has reviewed what happened, and what was not measured is never charged: the month then closes on what was measured, which can only be less than what was used.
A resource deleted during the month keeps its place on the Usage page under its own name, marked deleted, for what it used before it went. Deleted resources are grouped behind Deleted resources with their total, so a month that cleaned up a hundred previews still shows what is running now first.
Plans
Developer is $0 a month for one member, and pays for the infrastructure it uses. A new organization starts with $5 of infrastructure to use before a payment method is needed. The $5 is a one-time credit, not a monthly one. Once it is used, new builds and deployments wait for a card; everything already running keeps running for seven days, and if no card has been added by then it is paused too, and resumes as soon as one is.
Team is $20 a month, and includes $20 a month of infrastructure usage. Unlimited team members. Additional infrastructure is pay as you go.
The included usage is the whole $20: a team using $20 of infrastructure in a month pays $20 in total, not $40. In practice:
| Infrastructure used | Subscription | Infrastructure invoice | Paid in total |
|---|---|---|---|
| $12 | $20 | $0 | $20 |
| $20 | $20 | $0 | $20 |
| $32 | $20 | $12 | $32 |
| $70 | $20 | $50 | $70 |
The included usage is per calendar month, the same month the infrastructure invoice covers: every month the organization is on Team includes $20, whatever day of the month the subscription renews on. A month in which the organization moves to Team includes the full $20. It does not roll over, and it is not a credit: nothing accrues, and nothing left unused in one month reduces the next.
The subscription is invoiced on its own date. Infrastructure is invoiced once per calendar month, after the month closes, with one line per kind of resource — web services, workers, databases — then bandwidth, then the included usage taken off.
Estimates
Where the dashboard shows what a size might cost — when you choose one for a new resource — the figure is the published rates applied to a stated month: one instance running the whole month for a web service or a worker, thirty runtime hours for a scheduled worker, storage alone for a database. The sentence beside the figure says which. It is for comparing sizes, not a price; the bill is what actually ran. See sizes.
Spending limits
A spending limit you set on the Billing page is a limit on what the month's infrastructure invoice would come to: the meter at the published rates, less the usage your plan includes for the month, less any credit that will be applied. A Team organization with a $20 limit is restricted when its infrastructure passes $40, since the first $20 is included; a Developer organization with the same limit is restricted at $20. Usage the book could not yet price counts at its highest rate until it is priced, so the limit is never slipped under.
The daily ceiling each plan carries is different: it is measured on every dollar of usage in the day, whatever the plan includes, because it exists to bound what a runaway can cost in a day rather than to bound the invoice. What each does when it is reached is on the limits page.