All documentation
Team & account

Infrastructure costs

What your servers, volumes, snapshots, object storage and Provisore plan cost a month, each priced from its provider where Provisore can ask, with a monthly history and right-sizing from real load.

What is priced

Settings → Billing → Infrastructure costs lists one line per thing you pay for, at what a month costs at today's size. Every figure is before tax.

  • Servers Provisore created on Hetzner. Read from the Hetzner API with your team's token: the server type's price in its location, its primary IPv4 address, and Hetzner backups if they are on.
  • Volumes and snapshots. Read from the Hetzner API the same way: a volume on its size, a snapshot on the size Hetzner stores, at your account's price per GB-month. Detached volumes and the snapshots of deleted servers are billed and listed too.
  • Any other server. The monthly figure you enter, in the currency your provider bills. Until you enter one, the server is listed as unpriced and left out of the total.
  • Object storage. Each connection is priced from what its buckets hold, at the provider's published price for Hetzner Object Storage, Cloudflare R2 and Amazon S3 by region. Each line links the price's source and shows when it was last checked. For another provider or region, enter the price per GB-month.
  • Provisore. Your plan's list price, plus monitored servers above the plan's included count. Stripe applies discounts and tax, so the invoice is what you are charged.

Hetzner bills in euros, Provisore in dollars, and your other providers in whatever they use. Nothing is converted: each currency has its own total.

How buckets are measured

Provisore lists every object in each bucket with the key you connected and adds up the sizes, then does it again once the last measurement is 24 hours old. That is one list request per 1,000 objects. Amazon charges for list requests, Cloudflare R2 counts them as Class A operations, and Hetzner does not charge for them. A large bucket is measured over several passes and keeps its previous figure until the new one is complete.

The listing covers current objects in the standard storage class. Bytes in other classes are shown beside the line and not priced. Noncurrent versions and unfinished multipart uploads are not counted. Providers charge their base price and free allowance per account, so two connections to one account are priced as two accounts.

History and export

Once a day Provisore reads each team's costs and adds the reading to the month. A month's figure is the average of its readings, so a server that ran for half the month counts for half its price. The first month covers the days since the first reading and says how many days that is. A month where some line had no price is marked, because its figures leave that line out.

Export CSV downloads this month's lines and the monthly history in one file, with the currency in its own column.

Right-sizing

Each active server is judged from the metrics your plan keeps: Solo 24 hours, Pro 7 days, Scale 7 days. Evidence is counted in hours that hold at least one sample.

  • Too small. The 95th percentile of CPU load reaches 90% of the cores, or memory reaches 90%, over at least 20 hours.
  • Could be smaller. A cheaper size would keep that CPU load under 70% of its cores and the memory peak under 75% of its memory, over at least 144 hours. A plan that keeps fewer hours than that never suggests a smaller size.

For a server Provisore created on Hetzner, the suggestion names a server type and what it changes a month. Only types Hetzner would accept are offered: the same architecture, CPU and storage kind, available where the server runs, and a disk at least as large as the server's, because Hetzner never shrinks a disk.

Changing a server's type

Hetzner changes a type only while the server is off, so the change is an outage. The job shuts the server down (cutting the power if it has not stopped after 2 minutes), changes the type without growing the disk, powers it on, and checks that it answers SSH with the new number of cores. Expect 3 to 10 minutes of downtime. The job fails if the server is not back within 32 minutes, and if Hetzner refuses the change the server is powered back on as it was.

Because the disk is not grown, you can change back to the smaller type later. Right-sizing starts counting evidence again from the change.