Skip to content

Commit 6c17a10

Browse files
authored
Merge pull request #214599 from bandersmsft/savings-plan10142022
MCM - Savings plan update
2 parents e663359 + 018b517 commit 6c17a10

File tree

5 files changed

+52
-10
lines changed

5 files changed

+52
-10
lines changed

articles/cost-management-billing/savings-plan/discount-application.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.service: cost-management-billing
99
ms.subservice: reservations
1010
ms.custom: ignite-2022
1111
ms.topic: conceptual
12-
ms.date: 10/12/2022
12+
ms.date: 10/14/2022
1313
---
1414

1515
# How saving plan discount is applied
@@ -22,6 +22,12 @@ The benefit is first applied to the product that has the greatest savings plan d
2222

2323
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.
2424

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+
2531
## When the savings plan term expires
2632

2733
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.

articles/cost-management-billing/savings-plan/index.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,5 +70,7 @@ landingContent:
7070
url: view-utilization.md
7171
- text: View savings plan cost and usage
7272
url: utilization-cost-reports.md
73+
- text: Troubleshoot utilization
74+
url: troubleshoot-savings-plan-utilization.md
7375
- text: Charge back Azure savings plan costs
7476
url: charge-back-costs.md

articles/cost-management-billing/savings-plan/toc.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,8 @@
4040
- name: Charge back savings plan costs
4141
href: charge-back-costs.md
4242
- name: Renew a savings plan
43-
href: renew-savings-plan.md
43+
href: renew-savings-plan.md
44+
- name: Troubleshoot
45+
items:
46+
- name: Troubleshoot utilization
47+
href: troubleshoot-savings-plan-utilization.md
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
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).

articles/cost-management-billing/savings-plan/utilization-cost-reports.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.service: cost-management-billing
88
ms.subservice: reservations
99
ms.custom: ignite-2022
1010
ms.topic: how-to
11-
ms.date: 10/12/2022
11+
ms.date: 10/14/2022
1212
ms.author: banders
1313
---
1414

@@ -44,7 +44,7 @@ Here's a comparison of the two data sets:
4444
| --- | --- | --- |
4545
| 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. |
4646
| `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. |
4848
| UnitPrice (price of the resource from your price sheet) | Available | Available |
4949

5050
## 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
5959
| **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'. |
6060
| **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'. |
6161
| **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'. |
6565

6666
## Download the cost CSV file with new data
6767

@@ -101,7 +101,7 @@ Savings plan purchase costs are available in Actual Cost data. Filter for Charge
101101

102102
### Get underutilized savings plan quantity and costs
103103

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.
105105

106106
### Amortized savings plan costs
107107

@@ -124,15 +124,15 @@ Get the Amortized costs data and filter the data for a savings plan instance. Th
124124
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.
125125
3. Subtract savings plan costs from estimated pay-as-you-go costs to get the estimated savings.
126126

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.
128128

129129
## Purchase and amortization costs in cost analysis
130130

131131
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.
132132

133133
:::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" :::
134134

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.
136136

137137
## Next steps
138138

0 commit comments

Comments
 (0)