6.1 — Columns Overview
Metrics vs. Dimensions
- Metric — numeric, supports aggregation (sum, avg, min, max).
- Dimension — describes the row; used for filtering and grouping.
Type vs. Category in column names
Categoryin a name → normalized column with a fixed set of values (e.g.CommitmentDiscountCategory=spend|usage).Typein a name → vendor-defined column.
Feature levels
| Level | Means |
|---|---|
| Mandatory | MUST be present, no conditions. |
| Conditional | MUST be present under specified conditions. |
| Recommended | RECOMMENDED to be present. |
| Optional | MAY be present. |
6.2 — Billing columns
The financial dimensions of a charge.
| Column | What it is | Used for |
|---|---|---|
| Billed Cost | Charge serving as the basis for invoicing. Includes discounts; excludes amortization of prepaid purchases. | Invoice reconciliation, cash-basis allocation. |
| Effective Cost | Amortized cost after all discounts and the applicable portion of prepaid purchases. | True economic attribution, unit economics. |
| List Cost | List Unit Price × Pricing Quantity. No discounts. | Calculating savings vs. Contracted/Billed/Effective. |
| Contracted Cost | Contracted Unit Price × Pricing Quantity. Negotiated discounts only. | Measuring negotiation effectiveness. |
| Consumed Quantity / Unit | Volume of usage and the unit of measurement. | Usage trending, unit economics. |
| Billing Currency | ISO 4217 code for the currency the charge was billed in. | Group by before aggregating. |
Why these distinctions matter
- Billed Cost matches invoices; Effective Cost distributes prepaid purchases across resources. Summing Effective Cost for a period will not match the invoice.
- Comparing Effective Cost to List Cost overstates savings because it includes negotiated discounts you’d never have paid anyway. To measure commitment-discount savings, compare Effective Cost vs. Contracted Cost.
- Consumed Quantity ≠ Pricing Quantity. Pricing Quantity reflects billable units after pricing rules (e.g., 500 tokens billed as 1 block of 1,000 tokens).
Worked example — preventing double-count
You purchase a reservation: List $1,000, Contracted $900. It covers 3 VM usage rows of List $1, Contracted $0.90 each.
| Item | ChargeCategory | List Cost | Contracted Cost |
|---|---|---|---|
| Reservation | Purchase | $1,000 | $900 |
| VM | Usage | $1 | $0.90 |
| VM | Usage | $1 | $0.90 |
| VM | Usage | $1 | $0.90 |
Summing all rows = $1,003 List, $902.70 Contracted — wrong. The Usage rows are already covered by the Reservation. Filter by ChargeCategory before summing.
6.3 — Pricing
- List Unit Price — suggested price per Pricing Unit, no discounts. Validation:
List Unit Price × Pricing Quantity = List Cost. - Contracted Unit Price — agreed-upon price per Pricing Unit including negotiated discounts but excluding commitment-based discounts.
- Pricing Category — normalized:
Standard,Dynamic,Committed,Other. - Pricing Quantity / Pricing Unit — the billable unit basis (may differ from Consumed Quantity due to block pricing).
- Pricing Currency — may be national or virtual currency (credits, tokens).
6.4 — Account
- Billing Account ID / Name — the entity that pays the invoice.
- Sub Account ID / Name — nullable subdivision (Azure subscription, GCP project, AWS account).
- Billing Account Type / Sub Account Type — vendor-specific account categorisation.
6.5 — Capacity Reservations
- Capacity Reservation ID / Status — identifies reserved capacity blocks (Used, Unused).
- Crucial for measuring reservation efficiency: unused capacity = waste / opportunity.
6.6 — Charge
- Charge Category (normalized):
Usage,Purchase,Tax,Credit,Adjustment. The single most important filter for safe aggregation. - Charge Class:
Correction(or null). Marks rebill / adjustment rows. - Charge Description — vendor-supplied free text. Don’t use it as a stable filter.
- Charge Frequency:
One-Time,Recurring,Usage-Based.
6.7 — Charge Origination (v1.3+)
New in v1.3 — clarifies the difference between Service Provider (the brand you contract with) and Host Provider (the underlying infrastructure provider). Important for marketplace SaaS billed through a hyperscaler.
6.8 — Commitment Discounts
- Commitment Discount ID / Type / Category / Status — identifies and categorises the discount.
- Commitment Discount Category (normalized):
spend,usage. - To measure commitment-discount savings, compare Effective Cost vs. Contracted Cost on usage rows covered by a commitment.
6.9 — Location
- Region ID / Name — the deployment region (immutable ID; mutable display name).
- Availability Zone — finer-grained location, when applicable.
6.10 — Resource
- Resource ID / Name / Type — the thing being charged for.
- Tags — the JSON key-value column; foundation of allocation, chargeback, showback.
- Always join on Resource ID; use Resource Name only for display.
6.11 — Service
- Service Name — provider-defined service the charge applies to.
- Service Category (normalized): high-level group (e.g.
Compute,Storage,Networking,Databases). - Service Subcategory (v1.1+) — finer normalization.
6.12 — SKU
- SKU ID / Price ID / Meter — provider-defined product offering and the pricing dimension being metered.
- Use Sku-prefixed columns for product-level reporting and rate optimisation analysis.
6.13 — Timeframe
- Charge Period Start / End — the time interval the charge applies to.
- Billing Period Start / End — the broader invoicing period.
- Reminder: start dates are inclusive, end dates are exclusive — be careful around month and year boundaries.
Knowledge check
Q. You’re running an annual savings report. The fleet has a 3-year reservation covering steady-state VMs. Per running hour, the published list price is $0.10. Your CSP gives the account a flat 10% discount, so the contracted rate is $0.09. After amortising the upfront reservation, the effective rate is $0.07. The CFO wants the savings figure attributable to the reservation only — not the account discount you’d have got anyway. What’s the correct per-hour number?