You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -22,6 +22,12 @@ The benefit is first applied to the product that has the greatest savings plan d
22
22
23
23
A savings plan discount only applies to resources associated with Enterprise Agreement, Microsoft Partner Agreement, and Microsoft Customer Agreements. Resources that run in a subscription with other offer types don't receive the discount.
24
24
25
+
## Benefit allocation window
26
+
27
+
With an Azure savings plan, you get significant and flexible discounts off your pay-as-you-go rates in exchange for a one or three-year spend commitment. When you use an Azure resource, usage details are periodically reported to the Azure billing system. The billing system is tasked with quickly applying your savings plan in the most beneficial manner possible. The plan benefits are applied to usage that has the largest discount percentage first. For the application to be most effective, the billing system needs visibility to your usage in a timely manner.
28
+
29
+
The Azure savings plan benefit application operates under a best fit benefit model. When your benefit application is evaluated for a given hour, the billing system incorporates usage arriving up to 48 hours after the given hour. During the sliding 48-hour window, you may see changes to charges, including the possibility of savings plan utilization that's greater than 100%. This situation happens because the system is constantly working to provide the best possible benefit application. Keep the 48-hour window in mind when you inspect your usage.
30
+
25
31
## When the savings plan term expires
26
32
27
33
At the end of the savings plan term, the billing discount expires, and the resources are billed at the pay-as-you go price. By default, the savings plans aren't set to renew automatically. You can choose to enable automatic renewal of a savings plan by selecting the option in the renewal settings.
title: Troubleshoot Azure savings plan utilization
3
+
titleSuffix: Microsoft Cost Management
4
+
description: This article helps you understand why Azure savings plans can temporarily have utilization greater than 100% in usage reporting UIs and APIs.
5
+
author: bandersmsft
6
+
ms.reviewer: onwokolo
7
+
ms.service: cost-management-billing
8
+
ms.subservice: cost-management
9
+
ms.topic: troubleshooting
10
+
ms.date: 10/14/2022
11
+
ms.author: banders
12
+
---
13
+
14
+
# Troubleshoot Azure savings plan utilization
15
+
16
+
This article helps you understand why Azure savings plans can temporarily have high utilization.
17
+
18
+
## Why is my savings plan utilization greater than 100%?
19
+
20
+
Azure savings plans can temporarily have utilization greater than 100%, as shown in the Azure portal and from APIs.
21
+
22
+
Azure saving plan benefits are flexible and cover usage across various products and regions. Under an Azure savings plan, Azure applies plan benefits to your usage that has the largest percentage discount off its pay-as-you-go rate first, until we reach your hourly commitment.
23
+
24
+
The Azure usage and billing systems determine your hourly cost by examining your usage for each hour. Usage is reported to the Azure billing systems. It's sent by all services that you used for the previous hour. However, usage isn't always sent instantly, which makes it difficult to determine which resources should receive the benefit. To compensate, Azure temporarily applies the maximum benefit to all usage received. Azure then does extra processing to quickly reconcile utilization to 100%.
25
+
26
+
Periods of such high utilization are most likely to occur immediately after a usage hour.
27
+
28
+
## Next steps
29
+
30
+
- Learn more about [Azure saving plans](index.yml).
@@ -44,7 +44,7 @@ Here's a comparison of the two data sets:
44
44
| --- | --- | --- |
45
45
| Savings plan purchases | Available in the view.<br><br>To get the data, filter on ChargeType = `Purchase`.<br><br>Refer to `BenefitID` or `BenefitName` to know which savings plan the charge is for. | Not applicable to the view.<br><br>Purchase costs aren't provided in amortized data. |
46
46
|`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. |
47
-
| 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. | Available in the view.<br><br>To get the data, filter on ChargeType = `UnusedBenefit`.<br><br>Refer to `BenefitID` or `BenefitName` to know which savings plan was underutilized. Indicates how much of the savings plan was wasted for the day. |
47
+
| Unused Savings Plan (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. | Available in the view.<br><br>To get the data, filter on ChargeType = `UnusedSavingsPlan`.<br><br>Refer to `BenefitID` or `BenefitName` to know which savings plan was underutilized. Indicates how much of the savings plan was wasted for the day. |
48
48
| UnitPrice (price of the resource from your price sheet) | Available | Available |
49
49
50
50
## Get Azure consumption and savings plan cost data using API
@@ -59,9 +59,9 @@ Information in the following table about metric and filter can help solve for co
59
59
|**Usage that got savings plan discount**| Request for an ActualCost report.<br><br> Once you've ingested all of the usage, look for records with ChargeType = 'Usage' and PricingModel = 'SavingsPlan'. |
60
60
|**Usage that didn't get savings plan discount**| Request for an ActualCost report.<br><br> Once you've ingested all of the usage, filter for usage records with PricingModel = 'OnDemand'. |
61
61
|**Amortized charges (usage and purchases)**| Request for an AmortizedCost report. |
62
-
|**Unused savings plan report**| Request for an AmortizedCost report.<br><br> Once you've ingested all of the usage, filter for usage records with ChargeType = 'UnusedBenefit' and PricingModel ='SavingsPlan'. |
63
-
|**Savings plan purchases**| Request for an AmortizedCost report.<br><br> Once you've ingested all of the usage, filter for usage records with ChargeType = 'Purchase' and PricingModel = 'SavingsPlan'. |
64
-
|**Refunds**| Request for an AmortizedCost report.<br><br> Once you've ingested all of the usage, filter for usage records with ChargeType = 'Refund'. |
62
+
|**Unused savings plan report**| Request for an AmortizedCost report.<br><br> Once you've ingested all of the usage, filter for usage records with ChargeType = 'UnusedSavingsPlan' and PricingModel ='SavingsPlan'. |
63
+
|**Savings plan purchases**| Request for an ActualCost report.<br><br> Once you've ingested all of the usage, filter for usage records with ChargeType = 'Purchase' and PricingModel = 'SavingsPlan'. |
64
+
|**Refunds**| Request for an ActualCost report.<br><br> Once you've ingested all of the usage, filter for usage records with ChargeType = 'Refund'. |
65
65
66
66
## Download the cost CSV file with new data
67
67
@@ -101,7 +101,7 @@ Savings plan purchase costs are available in Actual Cost data. Filter for Charge
101
101
102
102
### Get underutilized savings plan quantity and costs
103
103
104
-
Get amortized cost data and filter for `ChargeType` = `UnusedBenefit` and `PricingModel` = `SavingsPlan`. You get the daily unused savings plan quantity and the cost. You can filter the data for a savings plan or savings plan order using `BenefitId` and `ProductOrderId` fields, respectively. If a savings plan was 100% utilized, the record has a quantity of 0.
104
+
Get amortized cost data and filter for `ChargeType` = `UnusedSavingsPlan` and `PricingModel` = `SavingsPlan`. You get the daily unused savings plan quantity and the cost. You can filter the data for a savings plan or savings plan order using `BenefitId` and `ProductOrderId` fields, respectively. If a savings plan was 100% utilized, the record has a quantity of 0.
105
105
106
106
### Amortized savings plan costs
107
107
@@ -124,15 +124,15 @@ Get the Amortized costs data and filter the data for a savings plan instance. Th
124
124
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.
125
125
3. Subtract savings plan costs from estimated pay-as-you-go costs to get the estimated savings.
126
126
127
-
Keep in mind that if you have an underutilized savings plan, the _UnusedBenefit_ entry for _ChargeType_ becomes a factor to consider. When you have a fully utilized savings plan, you receive the maximum savings possible. Any _UnusedBenefit_ quantity reduces savings.
127
+
Keep in mind that if you have an underutilized savings plan, the _UnusedSavingsPlan_ entry for _ChargeType_ becomes a factor to consider. When you have a fully utilized savings plan, you receive the maximum savings possible. Any _UnusedSavingsPlan_ quantity reduces savings.
128
128
129
129
## Purchase and amortization costs in cost analysis
130
130
131
131
Savings plan costs are available in [cost analysis](https://aka.ms/costanalysis). 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.
132
132
133
133
:::image type="content" source="./media/utilization-cost-reports/portal-cost-analysis-amortized-view.png" alt-text="Example showing where to select amortized cost in cost analysis." lightbox="./media/utilization-cost-reports/portal-cost-analysis-amortized-view.png" :::
134
134
135
-
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 that you see when looking at actual cost are purchases. Costs aren't allocated to the individual resources that used the benefit when looking at amortized cost. You'll also see a new _**UnusedBenefit**_ plan charge type when looking at amortized cost.
135
+
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 that you see when looking at actual cost are purchases. Costs aren't 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.
0 commit comments