- 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 (https://focus.finops.org). 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 (https://focus.finops.org/use-cases/?version=v1-3&use_case=analyze-costs-by-service-name).
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. |