Skip to main content
PRIVATE BETAThis feature is currently in Private Beta, contact sales@metronome.com for early access.Don’t have a Metronome account? Sign up to get started.
Provisioned throughput pricing is a pattern where a customer pays for a reserved baseline capacity (for example, “100 H100 GPUs”) and then pays an additional on-demand rate for usage above that reserved baseline. Metronome supports modeling these reserved instance commitments as contract-level pricing inputs. You store a customer’s reserved capacity (which may change over time) on the contract, and Metronome uses it when rating usage to split covered vs. overage consumption.

When to use this model

Use provisioned throughput pricing when:
  • Customers reserve capacity in advance (often with a recurring fee).
  • Actual usage is measured continuously (heartbeats or high-frequency usage events).
  • Billing needs to allocate usage into reserved (covered) usage up to the baseline and on-demand (overage) usage above the baseline.
  • The reserved baseline may change over time (for example, a customer increases reserved GPUs mid-contract).

Configuration overview

A typical Metronome configuration has four pieces:
  1. Ingest usage (for example, 30-second GPU heartbeats).
  2. Store reserved capacity on the contract as a time-varying value using Named Schedules (for example, “reserved A100 GPUs = 120 from Jan 1; 200 from Jun 15”).
  3. *Compute on-demand quantities using SQL billable metrics that reference the Named Schedules.
  4. Charge by pricing rates on the rate card

Products and rates

A common product setup for provisioned throughput billing:
  • Reservation fee (subscription): The recurring price the customer pays for the reserved capacity.
  • On-demand overage (usage): Metered overage above the reserved baseline.
  • Reserved-covered usage (optional): A $0 tracking product to display how much usage was covered by the reservation on invoices.

How Metronome allocates usage

At invoice time, usage is evaluated in consistent time windows (for example, 30-second slices), then split using the reserved capacity effective for that window:
  • covered = min(total_usage_in_window, reserved_capacity_in_window)
  • overage = max(total_usage_in_window - reserved_capacity_in_window, 0)
Metronome converts those quantities to your billing unit (for example, GPU-seconds to GPU-hours) and applies rates.