Edit

View savings plan cost and usage details

Cost Management provides enhanced savings plan cost and usage data for Enterprise Agreement (EA) and Microsoft Customer Agreement (MCA) accounts. This article helps you to:

  • Get savings plan purchase data
  • Know which subscription, resource group or resource used the savings plan
  • Calculate savings plan savings
  • Get savings plan under-utilization data
  • Amortize savings plan costs

Savings plan charges in Azure cost data

In Cost Management, cost details provide savings plan costs in two separate datasets: Actual Cost and Amortized Cost. The following sections explain how the datasets differ:

Actual Cost - Provides data to reconcile with your monthly bill, including savings plan purchase costs and benefit application details. You can identify which subscription, resource group, or resource received the savings plan discount on a particular day. The EffectivePrice for usage that receives the savings plan discount is zero.

Amortized Cost - This dataset is like the Actual Cost dataset, except that the EffectivePrice for usage that receives a savings plan discount is the prorated cost of the savings plan instead of zero. It shows the monetary value of savings plan consumption by a subscription, resource group, or resource, which can help you charge back costs internally. The dataset also includes unused savings plan hours charged at the hourly commitment amount. It doesn't include savings plan purchase records.

The following fields in Azure cost data are relevant to savings plan scenarios.

  • BenefitId and BenefitName - These are their own fields in the data and correspond to the Savings Plan ID and Savings Plan name associated with your purchase.
  • PricingModel - The field will be SavingsPlan for purchase and usage cost records that are relevant to a Savings Plan.
  • ProductOrderId - The savings plan order ID, added as its own field.
  • ProductOrderName - The product name of the purchased savings plan.
  • Term – The period associated with your savings plan purchase.

The following table compares the two datasets:

Data Actual Cost data set Amortized Cost data set
Savings plan purchases To get the data filter on ChargeType = Purchase.

Refer to BenefitID or BenefitName to know which savings plan the charge is for.
Purchase costs aren't provided in amortized data.
EffectivePrice The value is zero for usage that gets savings plan discount. The value is per-hour prorated cost of the savings plan for usage that has the savings plan discount.
Unused benefit (provides the number of hours the savings plan wasn't used in a day and the monetary value of the waste) Not applicable in the view. To get the data, filter on ChargeType = UnusedSavingPlan.

Refer to BenefitID or BenefitName to know which savings plan was underutilized. It's how much of the savings plan was wasted for the day.
UnitPrice (price of the resource from your price sheet) Available Available

Get Azure consumption and savings plan cost data using API

You can get the data by using the API or download it from the Azure portal. Call the Cost Details API to get the data. For details about terminology, see usage terms. For more information about calling the Cost Details API, see Get cost data on demand.

The following table describes metrics and filters that can help solve common savings plan problems.

Type of API data API call action
All Charges (usage and purchases) Request for an ActualCost report.
Usage that got savings plan discount Request for an ActualCost report. Once you've ingested all the usage, look for records with ChargeType = Usage and PricingModel = SavingsPlan.
Usage that didn't get savings plan discount Request for an ActualCost report.

Once you've ingested all the usage, filter for usage records with PricingModel = OnDemand.
Amortized charges (usage and purchases) Request for an AmortizedCost report.
Unused savings plan report Request for an AmortizedCost report.

Once you've ingested all of the usage, filter for usage records with ChargeType = UnusedSavingsPlan and PricingModel =SavingsPlan.
Savings plan purchases Request for an ActualCost report.

Once you've ingested all the usage, filter for usage records with ChargeType = Purchase and PricingModel = SavingsPlan.
Refunds Request for an ActualCost report.

Once you've ingested all the usage, filter for usage records with ChargeType = Refund.

Download the cost CSV file with new data

To download your savings plan cost and usage file, use the information in the following sections.

EA customers

If you're an EA admin, you can download the CSV file that contains new cost data from the Azure portal.

In the Azure portal, navigate to Cost Management + Billing.

  1. Select the billing account.
  2. In the left menu, select Usage + charges.
  3. Select Download.
    Screenshot showing the download usage file option.
  4. In Download Usage + Charges, under Usage Details Version 2, select All Charges (usage and purchases) and then select download.
    • Repeat for Amortized charges (usage and purchases).

MCA customers

To view and download usage data for a billing profile, you must be a billing profile Owner, Contributor, Reader, or Invoice manager.

To download usage for billed charges:

  1. Search for Cost Management + Billing.
  2. Select a billing profile.
  3. Select Invoices.
  4. In the invoice grid, find the row of the invoice corresponding to the usage that you want to download.
  5. Select the ellipsis (...) at the end of the row.
  6. In the download context menu, select Azure usage and charges.

Common cost and usage tasks

The following sections are common tasks that are used to view savings plan cost and usage data.

Get savings plan purchase costs

Savings plan purchase costs are available in Actual Cost data. Filter for ChargeType = Purchase. Refer to ProductOrderID to determine which savings plan order the purchase is for.

Get underutilized savings plan quantity and costs

Get Amortized Cost data and filter by ChargeType = UnusedSavingsPlan and PricingModel = SavingsPlan. The results show the daily unused savings plan quantity and cost. Filter the data for a savings plan or savings plan order by using the BenefitId and ProductOrderId fields, respectively. If a savings plan was 100% utilized, the record has a quantity of 0.

Amortize savings plan costs

Get Amortized Cost data and filter for a savings plan order using ProductOrderID to get daily amortized costs for a savings plan.

Chargeback for a savings plan

You can charge back savings plan costs to other organizations by subscription, resource group, or tag. Amortized cost data provides the monetary value of savings plan utilization at the following levels:

  • Resources (such as a VM)
  • Resource group
  • Tags
  • Subscription

Determine savings resulting from savings plan

Get the Amortized costs data and filter the data for a PricingModel = SavingsPlan. Then:

  1. Get estimated pay-as-you-go costs or customer discounted cost. Multiply the UnitPrice value with Quantity values to get estimated pay-as-you-go costs if the savings plan discount didn't apply to the usage.
  2. Get the savings plan costs. Sum the Cost values to get the monetary value of what you paid for the savings plan. It includes the used and unused costs of the savings plan.
  3. Subtract estimated pay-as-you-go costs from savings plan costs to get the estimated savings.

To determine the savings from the pay-as-you-go list price:

  1. To get the pay-as-you-go list price cost (PayGPriceCost), multiply the PayGPrice value with the Quantity value.
  2. Subtract PayGPriceCost from Cost to determine the savings from the savings plan.

To determine the savings percentage from the discounted price:

  1. Subtract PayGPrice from Cost to get the savings from the savings plan against discounts.
  2. Divide Cost by PayGPrice and then divide by 100 to get the discount percentage applied, per line item.

If you have an underutilized savings plan, include the UnusedSavingsPlan entries for ChargeType in your calculations. A fully utilized savings plan provides the maximum savings possible. Any unused commitment reduces savings.

Savings plan purchases and amortization in cost analysis

Savings plan costs are available in cost analysis. By default, cost analysis shows  Actual cost , which is how costs are shown on your bill. To view savings plan purchases broken down and associated with the resources that used the benefit, switch to Amortized cost. Here's an example.

Example showing where to select amortized cost in cost analysis.

Group by Charge Type to see a breakdown of usage, purchases, and refunds; or by Pricing Model for a breakdown of savings plan and on-demand costs. You can also group by Benefit and use the BenefitId and BenefitName associated with your savings plan to identify the costs related to specific savings plan purchases. The only savings plan costs you'll see when looking at actual cost are purchases. Costs will be allocated to the individual resources that used the benefit when looking at amortized cost. You'll also see a new UnusedSavingsPlan plan charge type when looking at amortized cost.

Next steps