Charge Types and Categories

FOCUS classifies every charge along two axes: what kind of charge it is (ChargeCategory/ChargeClass) and how it was priced (PricingCategory), plus the service’s functional category (ServiceCategory).

ChargeCategory

ChargeCategory describes what the charge represents. It answers: “Is this a usage charge, a purchase, a tax, a credit, or an adjustment?”

Allowed values:

  • Usage — charges for consuming a service (compute hours, storage GB, API calls)
  • Purchase — buying a commitment or one-time fee (RI purchase, Savings Plan enrollment, domain registration)
  • Tax — government-imposed taxes, surcharges, or fees
  • Credit — a financial incentive unrelated to other charges (promotional credits, free-tier credits)
  • Adjustment — modifications to billing data addressing errors, disruptions, or pricing changes

ChargeClass

ChargeClass provides a secondary classification that refines ChargeCategory. While ChargeCategory tells you the nature of the charge, ChargeClass indicates whether it’s a normal charge or a correction. Key values include:

  • Correction — modifications to previously delivered records within defined delivery scopes
  • Refund — a return of previously charged funds

PricingCategory

PricingCategory describes how the charge was priced — the pricing model or mechanism used. It answers: “Was this priced at standard rates, through a commitment, or dynamically?”

Allowed values:

  • Standard — pricing at the predetermined agreed-upon rate for the billing account (your normal contracted rate)
  • Committed — the charge is subject to an existing commitment discount (it’s a covered charge, not the purchase of the commitment)
  • Dynamic — pricing determined by the provider and may change over time (spot instances, preemptible VMs), regardless of any predetermined agreement pricing
  • Other — a pricing model exists but none of the allowed values apply

PricingCategory is Conditional — it must be present when the provider supports more than one pricing category across all SKUs.

ServiceCategory

ServiceCategory is the highest-level classification of a service based on its core function. It answers: “What kind of service is this?” Think of it as the broadest possible grouping — compute, storage, networking, database, AI/ML, analytics, etc.

ServiceCategory is Mandatory — it must be present in every FOCUS dataset and must never be null. This makes it a reliable grouping dimension for cross-provider analysis (e.g., “What do I spend on compute across all clouds?”).

How They Work Together

These categories create a multi-dimensional classification system:

A charge for an EC2 instance covered by a Reserved Instance:
  ChargeCategory: Usage
  PricingCategory: Committed
  ServiceCategory: Compute
  CommitmentDiscountType: "Standard RI"

A tax line item:
  ChargeCategory: Tax
  PricingCategory: (null or N/A)
  ServiceCategory: (inherits from taxed service)

A spot instance charge:
  ChargeCategory: Usage
  PricingCategory: Dynamic
  ServiceCategory: Compute

A promotional credit:
  ChargeCategory: Credit
  PricingCategory: (null or N/A)

Key Points

  • ChargeCategory and PricingCategory are orthogonal — a Usage charge can be Standard, Committed, or Dynamic
  • ServiceCategory enables cross-provider spend analysis at the function level
  • ChargeClass is a refinement of ChargeCategory, not a separate axis
  • PricingCategory specifically excludes commitment purchases — “Committed” means a charge covered by a commitment, not the commitment purchase itself
  • These columns are designed for direct filtering and grouping in analytical queries — no parsing required

Connections

Sources