Azure savings plan billing
Microsoft introduced an Azure savings plan for compute services. This plan enables customers to save money by committing to an hourly spend on Azure compute services for either one or three years. To ensure your plan aligns with actual usage and costs, Partner Center now provides streamlined invoice and reconciliation line items. The daily rated usage data model is updated with new attributes to make the reconciliation process easier and faster.
File | New column | Description |
---|---|---|
Daily rated usage reconciliation (closed and open periods) | BenefitId | Unique identifier for each Azure savings plan. |
BenefitOrderId | Links daily charges to monthly costs (matches ReservationOrderId in the invoice reconciliation). |
|
BenefitType | To isolate savings plan charges, filter with SavingsPlan. |
API | New attribute | Description |
---|---|---|
Get invoice billed and unbilled commercial consumption line items | BenefitId | Unique identifier for each Azure Savings Plan. |
BenefitOrderId | Links daily charges to monthly costs (matches ReservationOrderId in the invoice reconciliation). |
|
BenefitType | To isolate savings plan charges, filter with SavingsPlan. |
Identify Azure savings plan charges:
- In your daily rated usage reconciliation line items, filter the
BenefitType
field by "SavingsPlan." - These line items show zero charges in the
BillingPreTaxTotal
field since savings plan discounts are applied to them.
Analyze cost efficiency:
Match identifiers:
- Link the
BenefitOrderId
(from daily rated usage line items) with theReservationOrderId
(in invoice reconciliation line items). - Cross-reference these IDs in your reports to align daily consumption with monthly savings plan costs.
- Link the
Calculate savings:
- Pay-as-you-go charges reflect standard rates without discounts.
- Compare pay-as-you-go costs to your savings plan rates to quantify your savings.
Note
Use only designated attributes: Rely exclusively on BenefitOrderId
and BenefitType
to track savings plan details—other fields might not provide accurate matches.
Important
Partner earned credit (PEC) exclusion: PEC doesn't apply to usage eligible for savings plans.
Frequently asked questions
Here are some questions and answers about reconciling savings plan usage and costs.
Where can you see the savings plan usage in the Azure portal?
To see the daily usage of your Azure savings plan in the portal:
- Go to your customer view.
- Select the savings plan you bought to check how much you used it in the last week, month, quarter, or any date range.
How do you reconcile the charges with the utilization percentage?
Use the Azure portal’s "Utilization over time" feature to monitor how effectively your savings plan aligns with actual usage. Follow these steps to reconcile charges and maximize value:
Step 1: Identify underutilized plans
- To identify savings plans with <100% utilization, filter them using
BenefitOrderId
orBenefitId
. - Goal: Address underused commitments and avoid wasted spend.
Step 2: Map covered resources
- To see which virtual machines, resource groups, or subscriptions are covered by your savings plan, check the
ResourceURI
in daily rated usage data. - Goal: Confirm resources are correctly aligned with your plan's scope.
Step 3: Verify daily coverage
- Sort daily usage data by
UsageDate
. - Look for
BenefitType
= "SavingsPlan"—these resources incur no daily charges under the savings plan. - If there's no
BenefitType
= "Charge" line item, no pay-as-you-go costs apply.
Step 4: Flag overcommitments
- To identify extra pay-as-you-go costs for plans exceeding hourly commitments, check for
BenefitType
= "Charge." - Goal: Catch overages early and adjust usage or plans.
How do you verify the effective rate of a savings plan?
To see the effective rate of a savings plan, you can either:
- Check amortized data in the Azure portal.
- Follow the calculation steps.
How do you verify effective rate, unused utilization, and amortized data?
To understand your savings plan usage and availability, review the amortized data for your subscription, resource group, or specific resource.
To download the data, use the instructions provided in the export cost data with an Azure Storage account SAS key.
Once downloaded, identify the savings plan's
resourceId
in the data. The attributes in this data are different from the Partner Center daily rated usage data. See the attribute mapping table for the mapping. The attribute mapping table helps you understand how the attributes in this data differ from the attributes in the Partner Center daily rated usage data. This mapping ensures you correctly interpret the data and avoid any confusion.To make it easier, sort or filter the transactions by date to quickly identify relevant charges. Check the charges for the resources. If the
pricingModel
is "SavingsPlan," it indicates no charge.Review the
effectivePrice
andcostInBillingCurrency
for the effective rate and charges.To determine the unused hours of the Azure savings plan:
- Filter by
productOrderId
to locate the order ID. - Look for the
chargeType
labeled "UnusedBenefits" to identify any unused benefits within your plan. This attribute helps you gauge how much of your plan remains unutilized. - Check the
quantity
value. A value greater than zero signifies the number of unused hours for that day, indicating how much of your savings plan remains unutilized.
- Filter by
How do you figure out the costs of the savings plan?
Here's an example of how much you can save with our hourly savings plan, designed to offer significant discounts compared to pay-as-you-go rates:
Savings plan example
If you buy a savings plan at USD 0.1 per hour, you're billed this amount first for the hours it covers instead of the pay-as-you-go rate of USD 0.3264 per hour for the VM, due to the discount.
This commitment translates to savings of USD 0.2264 per hour, which is approximately 69% discount.
Moreover, by committing to a year, you receive an extra discount of 31.43%, paying only USD 0.22381248 per hour.
Committed $$ per hour (A) | Pay-as-you-go rate per hour (B) | Savings plan rate per hour (C) | Savings plan discount % (D) | Total hours per day (E) | Savings plan hours per day (G) | Pay-as-you-go hours per day (G) |
---|---|---|---|---|---|---|
0.10 (A) | 0.3264 (B) | 0.22381248 (C) | 31.43 (D) | 24 (E) | 10.72326262 (E x S) | 13.27673738 (E – F) |
Assume the VM ran for 1 hour. | Apply the same calculation to cover the full 24-hour day. | |||||
Savings plan | Pay-as-you-go | Total | ||||
Quantity | 0.446802609 (S) | 0.553197391 (P) | 1 | 7.8336**(M)** | ||
Effective costs with the savings plan | 1 | 0.180563628 (J) | 0.280563628 (K) | 6.733527082**(L)** | ||
Savings | 1.100072918**(N)** | |||||
Savings % | 14.04% |
Calculation of savings
The savings plan covers 0.10 (A) ÷ 0.22381248 (C) hours per hour of VM usage, which is 0.446802609 (S) hours.
Every hour the VM runs, the savings plan covers 0.1 (A) ÷ 0.22381248 (C) hours per hour of VM usage, which is 0.446802609 (S) hours. For the remaining 0.553197391 (P) hours, you pay the pay-as-you-go rate of USD 0.180563628 (J), or 0.553197391 (P) x 0.3264 (B).
Overall cost
You're billed USD 0.280563628 (K) per hour, which includes USD 0.10 (H) for the savings plan and USD 0.180563628 (J) for the usage exceeding the savings plan commitment.
Running the VM for 24 hours results in a daily cost of USD 6.733527082 (L), based on 24 hours multiplied by USD 0.280563628 (K). This cost includes both the savings plan rate and the pay-as-you-go rate for usage exceeding the savings plan commitment.
Cost analysis
These steps provide a detailed comparison of costs between a pay-as-you-go model and a savings plan for a virtual machine (VM) over a 24-hour period.
Variables and assumptions
Variable | Description | Value |
---|---|---|
A | Committed cost per hour | USD 0.10 |
B | Pay-as-you-go rate per hour | USD 0.3264 |
C | Savings plan rate per hour | USD 0.22381248 |
D | Savings plan discount rate | 31.43% |
E | Total hours per day | 24 |
Calculations
Step 1: Determine savings plan quantity (S)
Formula: S = A ÷ C
Calculation: 0.1 ÷ 0.22381248 = 0.446802609
Variable | Description | Calculation | Value |
---|---|---|---|
S | Savings plan quantity | A ÷ C | 0.446802609 |
Step 2: Determine pay-as-you-go quantity (P)
Formula: P = 1 - S
Calculation: 1 - 0.446802609 = 0.553197391
Variable | Description | Calculation | Value |
---|---|---|---|
P | Pay-as-you-go quantity | 1 - S | 0.553197391 |
Step 3: Calculate daily hours distribution
Formula: F = E x S, G = E - F
Calculations:
Savings plan hours = 24 x 0.446802609 = 10.72326262
Pay-as-you-go hours = 24 - 10.72326262 = 13.27673738
Variable | Description | Calculation | Value |
---|---|---|---|
F | Savings plan hours | E x S | 10.72326262 |
G | Pay-as-you-go hours | E – F | 13.27673738 |
Step 4: Calculate total pay-as-you-go cost per day without the savings plan (M)
Formula: M = B x E
Calculation: 0.3264 x 24 = 7.8336
Variable | Description | Calculation | Value |
---|---|---|---|
M | Total pay-as-you-go cost | B x E | 7.8336 |
Step 5: Calculate effective costs with savings plan per day (K)
Formula: J = B x P, K = A + J
Calculations:
J = 0.3264 x 0.553197391 = 0.180563628
K = 0.1 + 0.180563628 = 0.280563628
Variable | Description | Calculation | Value |
---|---|---|---|
J | Effective pay-as-you-go cost/hour | B x P | 0.180563628 |
K | Total effective cost/hour | A + J | 0.280563628 |
Step 6: Calculate daily costs with savings plan (L)
Formula: L = K x E
Calculations:
L = 0.280563628 x 24 = 6.733527082
Variable | Description | Calculation | Value |
---|---|---|---|
L | Total cost per day | K x E | 6.733527082 |
Step 7: Calculate total savings (N)
Formula: N = M - L
Calculation: 7.8336 - 6.733527082 = 0.11000736
Variable | Description | Calculation | Value |
---|---|---|---|
N | Savings amount | M - L | 1.100072918 |
Savings percentage | (N ÷ M) x 100 | 14.04% |
Results summary
By utilizing the savings plan, the effective cost for 24 hours of VM usage is reduced from USD 7.8336 (pay-as-you-go) to USD 6.733527082, resulting in:
- Savings amount: USD 1.100072918
- Savings percentage: 14.04%
This analysis demonstrates the cost efficiency of using a savings plan for committed workloads, highlighting the financial benefits.
Amortized and daily rated usage data attribute mapping
The Azure portal amortized data and the Partner Center daily usage data help you compare your savings plans charges and usage. Although these two data sources may not match exactly due to differences in calculation methods or reporting times, they can still provide a useful estimate of your savings plan's benefits.
Amortized data attribute | Partner Center daily rated data attribute |
---|---|
invoiceId | InvoiceNumber |
previousInvoiceId | N/A |
billingAccountId | N/A |
billingAccountName | N/A |
billingProfileId | N/A |
billingProfileName | N/A |
invoiceSectionId | N/A |
invoiceSectionName | N/A |
partnerTenantId | PartnerId |
partnerName | PartnerName |
resellerName | N/A |
resellerMpnId | N/A |
customerTenantId | CustomerId |
customerName | CustomerName |
costCenter | N/A |
billingPeriodEndDate | N/A |
billingPeriodStartDate | N/A |
servicePeriodEndDate | ChargeStartDate |
servicePeriodStartDate | ChargeEndDate |
date | UsageDate |
serviceFamily | N/A |
productOrderId | BenefitOrderId |
productOrderName | N/A |
consumedService | ConsumedService |
meterId | MeterId |
meterName | MeterName |
meterCategory | MeterCategory |
meterSubCategory | MeterSubCategory |
meterRegion | MeterRegion |
productId | ProductId + SkuId |
productName | ProductName |
subscriptionId | EntitlementId |
subscriptionName | EntitlementDescription |
publisherType | N/A |
publisherId | PublisherId |
publisherName | PublisherName |
resourceGroupName | ResourceGroup |
resourceId | ResourceURI |
resourceLocation | ResourceLocation |
location | N/A |
effectivePrice | EffectiveUnitPrice |
quantity | Quantity |
unitOfMeasure | UnitType |
chargeType | N/A |
billingCurrency | BillingCurrency |
pricingCurrency | PricingCurrency |
costInBillingCurrency | PricingPreTaxTotal |
costInPricingCurrency | PricingCurrency |
costInUsd | N/A |
paygCostInBillingCurrency | N/A |
paygCostInUsd | N/A |
exchangeRatePricingToBilling | PCToBCExchangeRate |
exchangeRateDate | PCToBCExchangeRateDate |
isAzureCreditEligible | N/A |
serviceInfo1 | ServiceInfo1 |
serviceInfo2 | ServiceInfo2 |
additionalInfo | AdditionalInfo |
tags | Tags |
partnerEarnedCreditRate | PartnerEarnedCreditPercentage |
partnerEarnedCreditApplied | N/A |
PayGPrice | N/A |
frequency | N/A |
term | N/A |
reservationId | N/A |
reservationName | N/A |
pricingModel | BenefitType |
unitPrice | UnitPrice |
benefitId | BenefitId |
benefitName | N/A |
provider | N/A |