Get Enterprise Agreement reservation costs and usage

Reservation costs and usage data are available for Enterprise Agreement customers in the Azure portal and REST APIs. This article helps you:

  • Get reservation purchase data
  • Get reservation under-utilization data
  • Amortize reservation costs
  • Chargeback for reservation utilization
  • Calculate reservation savings

Marketplace charges are consolidated in usage data. You view charges for first party usage, marketplace usage, and purchases from a single data source.

Reservation charges in Azure usage data

Data is divided into two separate data sets: Actual Cost and Amortized Cost. How these two datasets differ:

Actual Cost - Provides data to reconcile with your monthly bill. This data has reservation purchase costs. It has zero EffectivePrice for the usage that received the reservation discount.

Amortized Cost - The resource EffectiveCost that gets the reservation discount is the prorated cost of the reserved instance. The dataset also has unused reservation costs. The sum of the reservation cost and unused reservation provides the daily amortized cost of the reservation.

Comparison of two data sets:

Data Actual Cost data set Amortized Cost data set
Reservation purchases Available in this view.

To get this data filter on ChargeType = "Purchase".

Refer to ReservationID or ReservationName to know which reservation the charge is for.
Not applicable to this view.

Purchase costs aren't provided in amortized data.
EffectivePrice The value is zero for usage that gets reservation discount. The value is per-hour prorated cost of the reservation for usage that has the reservation discount.
Unused reservation (Provides the number of hours the reservation wasn't used in a day and the monetary value of the waste) Not applicable in this view. Available in this view.

To get this data, filter on ChargeType = "UnusedReservation".

Refer to ReservationID or ReservationName to know which reservation was underutilized. This is how much of the reservation was wasted in for the day.
UnitPrice(Price of the resource from your price sheet) Available Available

Other information available in Azure usage data has changed:

  • Product and Meter information - Azure doesn't replace the originally consumed meter with the ReservationId and ReservationName, as it did previously.
  • ReservationId and ReservationName - They are their own fields in the data. Previously, it used to be available only under AdditionalInfo.
  • ProductOrderId - The reservation order ID, added as its own field.
  • ProductOrderName - The product name of the purchased reservation.
  • Term - 12 months or 36 months.
  • RINormalizationRatio - Available under AdditionalInfo. This is the ratio where the reservation is applied to the usage record. If instance size flexibility is enabled on for your reservation, then it can apply to other sizes. The value shows the ratio that the reservation was applied to for the usage record.

Get Azure consumption and reservation usage data using API

You can get the data using the API or download it from Azure portal.

You call the Usage Details API with API version "2019-04-01-preview" to get the new data. For details about terminology, see usage terms. The caller should be an Enterprise Administrator for the enterprise agreement using the EA portal. Read-only Enterprise Administrators can also get the data.

The data is not available in Reporting APIs for Enterprise customers - Usage Details.

Here's an example call to the API:

https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{enrollmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodId}/providers/Microsoft.Consumption/usagedetails?metric={metric}&api-version=2019-04-01-preview&$filter={filter}

For more information about {enrollmentId} and {billingPeriodId}, see the Usage Details – List API article.

Information in the following table about metric and filter can help solve for common reservation problems.

Type of API data API call action
All Charges (usage and purchases) Replace {metric} with ActualCost
Usage that got reservation discount Replace {metric} with ActualCost

Replace {filter} with: properties/reservationId%20ne%20
Usage that didn't get reservation discount Replace {metric} with ActualCost

Replace {filter} with: properties/reservationId%20eq%20
Amortized charges (usage and purchases) Replace {metric} with AmortizedCost
Unused reservation report Replace {metric} with AmortizedCost

Replace {filter} with: properties/ChargeType%20eq%20'UnusedReservation'
Reservation purchases Replace {metric} with ActualCost

Replace {filter} with: properties/ChargeType%20eq%20'Purchase'
Refunds Replace {metric} with ActualCost

Replace {filter} with: properties/ChargeType%20eq%20'Refund'

Download the usage CSV file with new data

If you are an EA admin, you can download the CSV file that contains new usage data from Azure portal. This data isn't available from the EA portal.

In the Azure portal, navigate to Cost management + billing.

  1. Select the billing account.
  2. Click Usage + charges.
  3. Click Download.
    Example showing where to Download the CSV usage data file in the Azure portal
  4. In Download Usage + Charges , under Usage Details Version 2 , select All Charges (usage and purchases) and then click download. Repeat for Amortized charges (usage and purchases).

The CSV files that you download contain actual costs and amortized costs.

Common cost and usage tasks

The following sections are common tasks that most people use to view their reservation cost and usage data.

Get reservation purchase costs

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

Get underutilized reservation quantity and costs

Get Amortized Cost data and filter for ChargeType = UnusedReservation. You get the daily unused reservation quantity and the cost. You can filter the data for a reservation or reservation order using ReservationId and ProductOrderId fields, respectively. If a reservation was 100% utilized, the record has a quantity of 0.

Amortize reservation costs

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

Chargeback for a reservation

You can chargeback reservation use to other organizations by subscription, resource groups, or tags. Amortized cost data provides monetary value of a reservation's utilization at the following data types:

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

Get the blended rate for chargeback

To determine the blended rate, get the amortized costs data and aggregate the total cost. For VMs, you can use either MeterName or ServiceType information from AdditionalInfo JSON data. Divide the total cost by the quantity used to get the blended rate.

Audit optimum reservation use for instance size flexibility

Multiple the quantity with the RINormalizationRatio, from AdditionalInfo. The results indicate how many hours of reservation use was applied to the usage record.

Determine reservation savings

Get the Amortized costs data and filter the data for a reserved instance. Then:

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

Reservation purchases and amortization in Azure cost analysis

Reserved instance cost is available in Azure cost analysis preview mode. By default, the cost data view is for Actual cost. You can switch to amortized cost. Here's an example.

Example showing where to select amortized cost in cost analysis

Apply filters to see your charges by a reservation or charge type. Group on reservation name to see the costs broken down by reservations.

Need help? Contact us.

If you have questions or need help, create a support request.

Next steps

To learn more about Azure Reservations, see the following articles: