commitment-analysis
Commitment Benefits & Utilization
Reports current RI / Savings Plan utilization, how much of eligible spend is covered, and what new commitments are recommended. If utilization is low, runs an optional ARG-based investigation to explain why.
Scope note:
list_benefit_utilizationrequires a billing scope (/providers/Microsoft.Billing/billingAccounts/{id}). If the user only provides a subscription, ask for the billing account ID before running.
The ARG queries in Step 4 take subscription-id placeholders (
<sub-id-1>, <sub-id-2>) — replace with the subscriptions where the reservation is scoped (Single/RG) or applied (Shared). To target a management group, first resolve member subs viaResourceContainers | where type == 'microsoft.resources/subscriptions' | where properties.managementGroupAncestorsChain has '<mg-name>' | project subscriptionId.
Run every ARG query through the generate → validate → execute workflow. The queries in Step 4 are ready to run, but pass each one to
validate_queryfirst — it confirms the syntax and property paths before you spend a call onexecute_query. If you need to adapt a query to a different resource type or field, draft it withgenerate_query(a natural-language prompt), then validate and execute.
Step 1: Portfolio Utilization
Call list_benefit_utilization for the billing scope. The summary returns a utilization percentage per benefit, each identified by its benefitId / benefitOrderId and kind (Reservation or SavingsPlan). For each commitment, report:
- Utilization % with status: 🟢 ≥90% | 🟡 70–89% | 🔴 <70%
- Which benefit it is —
kind(RI vs Savings Plan) and the benefit/order identifier.
The commitment's term, applied scope, and committed SKU/region describe the underlying reservation or savings-plan order, not the utilization summary — read them from the order itself if the user needs them.