What goes in a commitment coverage dashboard?
A commitment coverage dashboard tracks the two failure modes of Savings Plans, Reserved Instances, and committed use discounts: paying on-demand rates for steady workloads (low coverage) and paying for commitments you don't use (low utilization). Coverage and utilization must be shown together.
What does this dashboard look like?
The layout pairs coverage with utilization, then shows the savings rate, the uncovered on-demand remainder, and what expires next — read it before buying or renewing a commitment.

Which cards belong on this dashboard?
- Commitment coverage rate: covered share of eligible spend
- Commitment utilization rate by commitment
- Effective savings rate vs. on-demand equivalent
- On-demand spend eligible for commitment, by service
- Upcoming expirations in the next 90 days
- Coverage by account and region
- Savings realized per month from commitments
- Unused commitment cost (the waste line)
What data does this dashboard need?
- Billing line items with pricing model (on-demand, Savings Plan, Reserved)
- Commitment inventory: term, rate, scope, start and end dates
- Amortized cost including upfront prepayments
- On-demand-equivalent rates for savings math
- Eligibility flags (some usage can't be covered by commitments)
How do you build it?
- Land billing exports or cost-platform data in a database and keep raw line items, tags, timestamps, and pricing models.
- Build rollup models at the grain this dashboard needs, with cost conventions (amortized, unblended, net) as explicit columns.
- Create one saved question per card and certify the shared models and definitions.
- Add dashboard filters for Date range, account, service, commitment type, region.
- Show data freshness — billing exports lag, and every viewer should see by how much.
Example card SQL
SELECT
date_trunc('month', usage_date) AS month,
ROUND(
100.0 * SUM(cost_usd) FILTER (WHERE pricing_model IN
('SavingsPlan', 'Reserved'))
/ NULLIF(SUM(cost_usd) FILTER (WHERE is_commitment_eligible), 0), 1
) AS coverage_pct,
ROUND(
100.0 * SUM(commitment_used_usd)
/ NULLIF(SUM(commitment_purchased_usd), 0), 1
) AS utilization_pct
FROM billing_line_items
GROUP BY 1
ORDER BY 1;