VEXXHOSTDocumentation
Concepts

Cost calculation

Cost Explorer estimates costs from how long each server, volume, image and object storage bucket existed and the price of each, before taxes, credits and discounts.

Cost Explorer estimates what your resources cost from two things: how long each one existed, and its published price. Every amount it returns is an estimate, marked "estimated": true, including those for months that have ended.

An estimate is not an invoice. It does not include taxes, credits, or discounts on your account, and amounts are not rounded to cents. Use Cost Explorer to see where spending goes and to track it over time. Your invoice remains the final amount.

What is charged

ServiceUsage typeCharged forUnit
computeThe server's flavor, such as v3-standard-2Every hour from the server's creation until its deletionHours
volumeThe volume type, such as ssd or nvmeThe volume's size for every hour it existsGiB-Hours
imagestoredThe image's size in whole GiB, rounded down, for every hour it is storedGiB-Hours
objectThe storage class, such as standardThe bytes each bucket or container holds, for every hour it holds themGiB-Hours

A server costs the same whether it is running or stopped, because a stopped server still holds its resources. Only deleting it ends its charges. The same is true of volumes and images.

Object storage

Object storage is measured the way S3 measures it. About once an hour, Cost Explorer reads how many bytes each bucket holds, counting every object version and the parts of uploads that have not finished. That size is charged until the next reading that finds a different one. A bucket's resource_id is its name, prefixed with your project ID: <project_id>/<bucket>. Swift containers are buckets too, so they appear the same way.

Because the size is a reading rather than a record, usage starts when Cost Explorer first reads a bucket. A bucket that already existed before then is not charged for the time before it.

Object storage time is not rounded up to the minute: a bucket is charged for exactly the time it holds its bytes.

Prices and rounding

Hourly prices apply to each hour of use. Monthly prices, such as most storage, are spread evenly over the hours of each calendar month, so the hourly rate is slightly lower in a 31-day month than in a 30-day one.

Cost Explorer counts time in whole minutes, rounded up, and counts each calendar month separately. A server that runs for 90 seconds is charged for two minutes.

Tiered prices

Some prices fall as you use more, such as object storage: the first TiB-month of the month costs one rate, the usage beyond it a lower one, and so on. Each tier's price applies only to the usage inside that tier, so using more never makes the earlier usage cheaper. Tiers count one project's usage in one region, from the start of each calendar month.

Usage moves through the tiers in the order it happens, so the first days of a month are charged at the first tier's rate and later days at lower rates once the project passes a threshold. A report that starts partway through a month continues from the tier the month had already reached, so a month's daily amounts add up to its monthly amount. When several buckets share a tier, each is charged the tier's average rate for that period, in proportion to its size.

Amounts are decimal strings with up to 12 decimal places, so daily amounts add up exactly to the monthly total. Each report names the currency and the pricing_version it used.

How current the data is

Recent usage takes a little time to arrive. Every report lists each region it covers with data_through, the time its usage is complete up to:

"regions": [{"name": "ca-ymq-1", "data_through": "2026-10-07T14:00:00Z"}]

Usage after that time is not counted yet, so the most recent hours of a report can grow when you ask again later.

Who can see what

A report covers the project your token is scoped to. Asking for another project returns 403 Forbidden.

On this page