Pricing system table reference

This article provides you with an overview of the pricing system table, including the schema and example queries. The pricing table gives you access to a historical log of SKU pricing. A record gets added each time there is a change to a SKU price. These logs can help you perform cost analysis and monitor pricing changes.

Table path: This system table is located at system.billing.list_prices.

Pricing table schema

The pricing system table uses the following schema:

Column name

Data type

Description

Example

price_start_time

timestamp

The time this price became effective in UTC

2023-01-01T09:59:59.999Z

price_end_time

timestamp

The time this price stopped being effective in UTC

2023-01-01T09:59:59.999Z

account_id

string

ID of the account this report was generated for

1234567890123456

sku_name

string

Name of the SKU

STANDARD_ALL_PURPOSE_COMPUTE

cloud

string

Name of the Cloud this price is applicable to. Possible values are AWS, AZURE, and GCP.

AWS, AZURE, or GCP

currency_code

string

The currency this price is expressed in

USD

usage_unit

string

The unit of measurement that is monetized.

DBU

pricing

struct

A structured data field that includes pricing info at the published list price rate. The key default will always return a single price that can be used for simple long-term estimates. The key promotional represents a temporary promotional price that all customers get which could be used for cost estimation during the temporary period. The key effective_list resolves list and promotional price, and contains the effective list price used for calculating the cost. Some pricing models might also include additional keys that provide more detail.

{

"default": "0.10",

"promotional": {"default": "0.07"},

"effective_list": {"default": "0.07"}

}

Sample queries

You can use the following sample queries to answer common questions about SKU pricing:

For examples queries concerning job cost observability, see Monitor job costs with system tables.

Find the list price of a particular SKU on a particular date

Since the table only contains records for times when the SKU price changes, you have to look up the most recent price change on or before the date.

SELECT sku_name, price_start_time, pricing.default
FROM system.billing.list_prices
WHERE sku_name = 'STANDARD_ALL_PURPOSE_COMPUTE'
AND price_start_time <= "2023-01-01"
ORDER BY price_start_time DESC
LIMIT 1

View total cost of everything that used a particular custom tag during the previous calendar month

Note

Be sure to replace the custom tag’s key and value.

SELECT
 SUM(usage.usage_quantity * list_prices.pricing.effective_list.default)
 as `Total Dollar Cost`
FROM system.billing.usage
JOIN system.billing.list_prices ON list_prices.sku_name = usage.sku_name
WHERE usage.custom_tags.{{ tag_key }} = {{ tag_value }}
AND usage.usage_end_time >= list_prices.price_start_time
AND (list_prices.price_end_time IS NULL OR usage.usage_end_time < list_prices.price_end_time)
AND usage.usage_date BETWEEN "2023-05-01" AND "2023-05-31"

View prices that have changed between months

SELECT sku_name, price_start_time, pricing.default
FROM system.billing.list_prices
WHERE price_start_time BETWEEN "2023-05-01" AND "2023-07-01"

Estimate the add-on costs for usage in the previous calendar month

This query applies a simple percentage to all usage in the period. Note that this might differ slightly from the actual monetization due to how entitlements for some add-ons are managed. Replace the add-on rate with your account’s rate.

SELECT SUM(usage.usage_quantity * list_prices.pricing.effective_list.default) * {{ add_on_rate }} as `Total Add-On Dollar Cost`
FROM system.billing.usage
JOIN system.billing.list_prices ON list_prices.sku_name = usage.sku_name
  WHERE usage.usage_end_time >= list_prices.price_start_time
  AND (list_prices.price_end_time IS NULL OR usage.usage_end_time < list_prices.price_end_time)
  AND usage.usage_date BETWEEN "2024-02-01" AND "2024-02-29"