Skip to main content
This page provides a comprehensive schema reference for all data exported from Metronome to your data warehouse. Use this reference to understand the structure and contents of each table available in your exports. For SQL query examples, see the SQL cookbook.
NULLABLE COLUMNSDue to our export methodology, all columns may appear as nullable in your destination schema.

Core entities

Foundational data types and entities used throughout Metronome.

billable_metric

credit_type

Events

The full set of deduplicated raw events received by Metronome, regardless of whether or not they matched a billable metric.

events

Customers

Includes customer metadata stored in Metronome including their ingest aliases, which can be joined with the events table. The archived_at column is used to determine if the customer is active.

customer

Invoicing

All invoice-related data including finalized invoices, drafts, and detailed breakdowns.

Finalized invoices

Includes all invoices to customers that have been finalized or voided. No further changes can be made to these invoices or their corresponding line items.

invoice

line_item

Draft invoices

Includes all invoices to customers that are in a draft state. These tables are daily snapshots of invoices based on each customer’s configuration and usage at a point-in-time during the day. The updated_at column is the time that the invoice row was calculated while the snapshot_time corresponds to the start of day (UTC). An invoice row will be populated once per day throughout a billing period until it is finalized or voided. If an invoice is in a DRAFT_INCOMPLETE state, it means that Metronome hasn’t fully computed the invoice. There will be no line items or total on the invoice. Exporting these invoices lets you know that the invoice exists, but Metronome has failed to compute it for some reason. Exporting incomplete invoices enables Metronome to send data to the specified destination as soon as possible. We expect these incomplete invoices to be hydrated in future snapshots.

draft_invoice

draft_line_item

Invoice breakdowns

Invoice breakdowns are stored in four separate tables that are exported to your warehouse destination daily. The draft invoice data exports in snapshots that contains all month-to-date breakdown periods up to the snapshot timestamp. This ensures that any mid-billing period pricing and packaging changes, as well as backdated usage data, correctly reflect in the most recent draft invoice breakdown snapshot. Finalized invoice breakdowns export incrementally as invoices finalize.
INVOICE BREAKDOWN FILTERSTo reduce the volume of data exported to your data warehouse destination, you can filter invoice breakdown exports to ignore:
  • All $0 total and >0 quantity invoices and line items
  • All $0 and 0 quantity invoices and line items
To enable filters, contact your Metronome Solutions Architect.

breakdowns_invoices

breakdowns_line_items

breakdowns_draft_invoices

breakdowns_draft_line_items

Contracts

Includes contract information. The archived_at column defines whether the contract has been archived or not.

contracts_contracts

contracts_commits

The commits table only includes contract-level commits. It does not include customer-level commits or credits, or contract-level credits.

contracts_commits.AccessSchedule

contracts_commits.InvoiceSchedule

contracts_commits.CommitLedgerEntry

contracts_commits.CommitSpecifier

contracts_balances

contracts_balances.AccessSchedule

contracts_balances.InvoiceSchedule

contracts_balances.CommitLedgerEntry

contracts_balances.CommitSpecifier

This includes any recurring commits and credits that are defined on contracts.

contracts_recurring_commits_and_credits

contracts_recurring_commits_and_credits.AccessAmount

contracts_recurring_commits_and_credits.InvoiceAmount

contracts_recurring_commits_and_credits.CommitSpecifier

contracts_recurring_commits_and_credits.CommitDuration

contracts_recurring_commits_and_credits.ProrationRounding

contracts_recurring_commits_and_credits.SubscriptionConfig

Usage filters change over time, so each row represents a distinct version of a usage filter. To determine the correct version of a usage filter at a given point in time, filter the table by:
  • contract_id
  • starting_at >= {TIME_PERIOD_START}
  • ending_before <= {TIME_PERIOD_END}
(Filter by all three qualifiers combined.)

contracts_usage_filter_schedule

contracts_usage_filters

Usage filters change over time, so each row represents a distinct version of a usage filter. To determine the correct version of a usage filter at a given point in time:
  • Filter the table by contract_id and starting_at <= {TIME}
  • Select the row with the largest version

contracts_prepaid_balance_threshold_configurations

contracts_spend_threshold_configurations

contracts_subscriptions

contracts_subscriptions.BillingCycleConfig

contracts_subscriptions.ProrationRounding

contracts_scheduled_charges

contracts_scheduled_charges.Schedule

contract_hierarchy_configurations

Contract modifications

Includes any modifications of contracts. The contracts_overrides table holds any overrides on top of an existing contract. The contracts_transitions and contracts_edits tables contain information about contracts ending, renewing, or changing.

contracts_overrides

contracts_overrides.OverrideSpecifier

contracts_overrides.Rate

contracts_transitions

contracts_edits

contracts_amendments

Contract pricing

Includes all information about pricing for a contract.

contracts_rate_cards

contracts_rate_card_entries

contracts_product_list_item_versions

Packages

Includes information related to packages.

packages

Payments

Private BetaMetronome invoicing is currently in Private Beta. Contact your Metronome representative for early access.
Payment information when invoicing with Metronome.

payment

payment.PaymentGateway

Alerts

Includes alerts and the history of customer alerts triggered.

alert

customer_alert_history

Metadata

Many tables in the data export include a metadata column. Clients using Metronome have a variety of external systems and require different metadata to be stored. This metadata is client-specific and is stored as a JSON object in the metadata column of the table.