- Schema:
FOCUS_ COST_ USAGE_ V1_ 3 view¶
The FOCUS_COST_USAGE_V1_3 view in the BILLING schema exposes cost and usage data formatted to the FinOps Open Cost and Usage Specification (FOCUS) v1.3. It provides daily granular charge line items covering Snowflake credit consumption across all sub-accounts within a billing account.
This view is the primary source for FOCUS-compliant cost analytics, enabling practitioners to perform invoice reconciliation, cost allocation, rate optimization, and FinOps reporting using a standardized schema.
Access¶
| Requirement | Details |
|---|---|
| Database | SNOWFLAKE |
| Schema | BILLING |
| Account requirement | Must be an org-enabled account |
| Database role | SNOWFLAKE.ORGANIZATION_BILLING_VIEWER |
Access is restricted to org-enabled accounts and requires the ORGANIZATION_BILLING_VIEWER database role
on the SNOWFLAKE shared database.
Grain¶
- One row per daily charge line item per sub-account, service, and charge type.
ChargePeriodStartandChargePeriodEndrepresent inclusive start / exclusive end of a 24-hour period.BillingPeriodStartandBillingPeriodEndrepresent the calendar month billing period (inclusive start / exclusive end).
Columns¶
FOCUS standard columns¶
| Column | Type | Description |
|---|---|---|
| BillingPeriodStart | TIMESTAMP_TZ | Inclusive start of the billing period (first day of month, UTC midnight). |
| BillingPeriodEnd | TIMESTAMP_TZ | Exclusive end of the billing period (first day of next month, UTC midnight). |
| ChargePeriodStart | TIMESTAMP_TZ | Inclusive start of the charge period (daily granularity). |
| ChargePeriodEnd | TIMESTAMP_TZ | Exclusive end of the charge period (daily granularity). |
| BillingAccountName | TEXT | The Organization responsible for paying for the line of usage. This will always refer to the Snowflake organization that owns the billing relationship. |
| BillingAccountId | TEXT | Unique identifier of the Snowflake organization billing account. |
| SubAccountId | TEXT | Unique identifier of the Snowflake account (sub-account within the org). |
| SubAccountName | TEXT | Display name of the Snowflake account. |
| SubAccountType | TEXT | Type of sub-account. Values: Regular, Reader. |
| ChargeCategory | TEXT | Highest-level charge classification. Values: Usage, Purchase, Adjustment. |
| ChargeClass | TEXT | Indicates correction rows. Value: Correction when applicable; otherwise null. |
| ChargeFrequency | TEXT | How often the charge recurs. Value: Usage-Based. |
| ServiceCategory | TEXT | High-level category of the Snowflake service (e.g., Compute, Storage, AI and Machine Learning). |
| ServiceName | TEXT | Specific Snowflake service type. See Service Types for the full list of possible values. |
| ChargeDescription | TEXT | Human-readable description of the charge (e.g., OVERAGE-COMPUTE). |
| ConsumedQuantity | NUMBER(38,9) | How the underlying resource was metered (up to 9 decimal places). May differ in unit from PricingQuantity (e.g., storage is metered in TiB-Days but priced in TiB-Months). |
| ConsumedUnit | TEXT | Unit of metered consumption (e.g., Credits, TiB-Days, TiB-Months). |
| PricingQuantity | NUMBER(38,9) | How Snowflake prices the consumption for billing (rounded to 3 decimal places). This is the quantity used in cost calculations. |
| PricingUnit | TEXT | Unit corresponding to PricingQuantity (e.g., Credits, TiB-Months). |
| ListUnitPrice | NUMBER(38,9) | Published list price per unit before any discounts. |
| ListCost | NUMBER(38,9) | Cost at list price: ListUnitPrice × PricingQuantity. |
| ContractedUnitPrice | NUMBER(38,9) | Negotiated/contracted price per unit, inclusive of discounts if applicable. Rounded to 2 decimal places. |
| ContractedCost | NUMBER(38,9) | Precise calculated cost: ContractedUnitPrice × PricingQuantity (up to 9 decimal places). This is not the amount actually billed to the customer. |
| EffectiveCost | NUMBER(38,9) | Amortized cost accounting for commitment drawdowns. Rounded to 2 decimal places. This is the amount actually drawn from the customer balance. |
| BilledCost | NUMBER(38,9) | Actual cost drawn from the customer’s capacity balance. Rounded to 2 decimal places. Matches the usage statement. |
| BillingCurrency | TEXT | Currency of all cost columns. Value: USD. |
| PricingCategory | TEXT | Pricing model applied. Value: Standard. |
| CapacityReservationId | NUMBER | Identifier of the capacity reservation associated with this charge. |
| CapacityReservationStatus | TEXT | Status of the capacity reservation. Value: Unused when capacity is not fully utilized. |
| RegionId | TEXT | Cloud provider region identifier (e.g., AWS_US_WEST_2). |
| RegionName | TEXT | Cloud provider region display name (e.g., AWS_US_WEST_2). |
| HostProviderName | TEXT | Name of the underlying cloud infrastructure provider (e.g., Aws, Azure, Gcp). |
| InvoiceIssuerName | TEXT | Entity issuing the invoice. Value: Snowflake. |
| InvoiceId | TEXT | Invoice identifier. See Known limitations. |
| ContractApplied | JSON Object | JSON object containing contract metadata applied to this charge. |
Snowflake custom columns¶
Custom columns are Snowflake-specific extensions to the FOCUS schema. Per FOCUS spec, custom columns use
the x_ prefix to distinguish them from standard FOCUS columns.
| Column | Type | Description |
|---|---|---|
| x_UpdatedAt | TIMESTAMP_TZ | Timestamp when this row was last updated in the billing system. |
| x_OrganizationName | TEXT | The Organization responsible for the line of usage. This will always refer to the Snowflake organization that owns the sub-account generating the usage. |
| x_ServiceLevel | TEXT | Snowflake edition/service level of the sub-account (e.g., Enterprise, Business Critical, Standard). |
| ContractApplied.x_BalanceSource | TEXT | The balance source where usage is drawn down from (e.g., capacity, rollover, free usage, overage). |
| ContractApplied.x_ContractCommitCostBalance | NUMBER | The resultant balance left for the corresponding bucket of usage after draw down. |
Cost and quantity relationships¶
Quantity columns¶
ConsumedQuantity and PricingQuantity may differ in both value and unit:
- ConsumedQuantity (up to 9 decimals): How the underlying resource was metered.
- PricingQuantity (rounded to 3 decimals): How Snowflake prices the consumption for billing.
For example, storage is metered in TiB-Days (ConsumedQuantity) but priced in TiB-Months (PricingQuantity = TiB-Days ÷ days in month). For compute, both are in Credits and typically equal.
Cost columns¶
Savings analysis: ListCost - ContractedCost shows savings from negotiated discounts.
Sample queries¶
For additional use cases and sample queries, see the FOCUS Use Cases library.
Total monthly spend by service¶
Daily spend by sub-account¶
Spend by cloud provider region¶
Current billing period summary¶
Known limitations¶
| Limitation | Detail |
|---|---|
| InvoiceId may be empty | For Contract (capacity) customers, InvoiceId may be empty as usage is not tied directly to the invoice for capacity purchases. For On-Demand customers, InvoiceId will only be populated after month end. |
| Missing conditional columns | CommitmentDiscount*, Sku*, PricingCurrency*, ResourceId/Name/Type, AllocatedTags, AllocatedMethodDetails columns are not populated. |
Usage notes¶
- The view refreshes hourly, but latent usage activity may take up to 72 hours before it is reflected in the data.
- Until month close, data for a given day in a month can change to account for any end-of-month adjustments, mid-month contract amendments, latent usage, or Snowflake account transfers from one organization to another.
- Historical data is available from January 1, 2026 onwards.
Related views¶
| View | Description |
|---|---|
| USAGE_IN_CURRENCY_DAILY | Org-level daily spend in billing currency. Requires ORGADMIN role. |
| RATE_SHEET_DAILY | Daily rate sheet with contracted pricing per service. Requires ORGADMIN role. |
| REMAINING_BALANCE_DAILY | Daily capacity balance remaining. Requires ORGADMIN role. |