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. You can use Partner Center invoices and reconciliation data to confirm that the savings plan you purchased aligns with your consumption and costs. 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 A unique identifier for each Azure savings plan.
BenefitOrderId An identifier to link between the monthly cost and the daily charges based on the ReservationOrderId from the invoice reconciliation.
BenefitType To see Azure savings plan transactions, use the SavingsPlan filter.
API New attribute Description
Get invoice billed and unbilled commercial consumption line items BenefitId A unique identifier for each Azure Savings Plan.
BenefitOrderId An identifier to link between the monthly cost and the daily charges based on the reservationOrderId from the invoice reconciliation.
BenefitType To see Azure savings plan transactions, use the SavingsPlan filter.

To see Azure savings plans charges, filter BenefitType by "SavingsPlan." These transactions have zero charges in BillingPreTaxTotal. To effectively compare daily usage and charges with monthly savings plan costs, first match the BenefitOrderId in the daily rated usage data with the ReservationOrderId in the invoice reconciliation data and cross-reference these identifiers in the dataset.

Pay-as-you-go charges use standard rates, calculated based on regular pricing without discounts, highlighting the savings difference between standard and savings plan rates.

Note

Only use "BenefitOrderId" and "BenefitType" attributes to match savings plan costs. Other attributes might not work as expected.

Important

Savings plan discounts exclude partner earned credits (PEC).

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:

  1. Go to your customer view.
  2. 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?

You can track and compare charges using the Azure portal's "Utilization over time" feature, which helps you monitor the effectiveness of your savings plan over a specific period.

  1. Identify plans with utilization below 100% by querying for the BenefitOrderId or BenefitId.

  2. To find the virtual machines covered by savings plans, check the ResourceURI in the daily rated usage data. Depending on your needs, you can apply the benefit to a specific resource, resource group, single subscription.

  3. Sort the daily rated usage data by UsageDate. Transactions labeled "SavingsPlan" as BenefitType indicate those resources are covered by the savings plan and don't incur daily usage charges. If there are no transactions with "Charge" as BenefitType, it means there are no extra pay-as-you-go charges for those resources.

  4. Repeat steps 2 and 3 to ensure that plans with overcommitments have pay-as-you-go charges, which help in identifying any extra costs incurred due to exceeding the savings plan limits.

How do you verify the effective rate of a savings plan?

To see the effective rate of a savings plan, you can either:

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.

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

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

  3. Review the effectivePrice and costInBillingCurrency for the effective rate and charges.

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

How do you figure out the costs of the savings plan?

Here's an example of how we calculate savings plan costs. Suppose you purchase a savings plan for a virtual machine (VM) at USD 1/hour. This plan typically costs USD 4/hour with pay-as-you-go, leading to significant savings.

Consider this scenario:

  • If your savings plan offers a 50% discount on the usual rate of USD 4 per hour, you pay only USD 2 per hour with the plan.

  • To determine coverage, for every hour your VM runs, the plan covers 0.5 (S) hours. This duration is calculated by dividing your commitment amount USD 1 (A) by the discounted rate USD 2 (C). 1 (A) / 2 (C) = 0.5 (S). Each hour of VM operation is billed half at the discounted rate.

  • For the first half-hour at the discounted rate, you're billed USD (0.5 * 2) = 1 (H). For the next half-hour at the regular rate, you're billed USD (0.5 * 4) = 2 (J). So, the total cost per hour is USD 3 (K).

  • If the VM runs for 24 hours, the daily charge is USD 72. This cost is calculated by multiplying the hourly charge (USD 3) by the number of hours in a day (24): 24 (E) * 3 (K) = 72 (L).

When purchasing your savings plan, you can choose the billing frequency, either monthly or upfront.

The table illustrates daily charges based on different commitments, varying discount rates, or usage durations.

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) Pay-as-you-go hours per day (F) Savings plan hours per day (G)
1 (A) 4 (B) 2 (C) 0.50 (D) 24 (E) 12 (E - G) 12 (E * S)
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.5 (A / C) ==> S 0.5 (1 - S) ==> P 1 96 (B * E ==> M)
Effective costs with the savings plan 1 (H) 2 [B * [1 - (A / C)]] ==> J 3 (H + J) ==> K 72 (K * E) ==> L 48 (B * F) ==> Q 0
Savings 1 0 1 24 (M - L) ==> N
Savings % 25% (N / M)

Here's a realistic 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 comparison

  • If you buy a savings plan at USD 0.01 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.3164 per hour, which is approximately 97% discount.

  • Moreover, by committing to a year, you receive an extra discount of 31.43%, paying only USD 0.22381248 per hour.

Calculation of savings

  • The savings plan covers 0.01 (A) / 0.22381248 (C) hours per hour of VM usage, which is 0.04468026 (S) hours.

  • Every hour the VM runs, the savings plan covers 0.01 (A) / 0.22381248 (C) hours per hour of VM usage, which is 0.04468026 (S) hours. For the remaining 0.95531973 (P) hours, you pay the pay-as-you-go rate of USD 0.31181636 (J), or 0.95531973 (P) * 0.3264 (B).

Overall cost

  • You're billed USD 0.32181636 (K) per hour, which includes USD 0.01 (H) for the savings plan and USD 0.31181636 (J) for the usage exceeding the savings plan commitment.

  • Running the VM for 24 hours results in a daily cost of USD 7.72359270 (L), based on 24 hours multiplied by USD 0.32181636 (K). This cost includes both the savings plan rate and the pay-as-you-go rate for usage exceeding the savings plan commitment.

This structured approach not only clarifies potential savings but also highlights how committing to a plan can significantly reduce costs.

Important

The daily rated usage data presents the usage of each day your virtual machine operates. For a full 24 hours of operation, the data indicates a usage quantity of 22.9276737383009 and a pre-tax billing total of 7.48359270818142.

This information helps you monitor your usage patterns and identify cost-saving opportunities. By analyzing this data, you can pinpoint peak usage times or underutilized resources, ultimately helping you manage your expenses more effectively.

The table shows how daily charges vary by commitment.

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) Pay-as-you-go hours per day (F) Savings plan hours per day (G)
0.01 (A) 0.3264 (B) 0.22381248 (C) 0.3143 (D) 24 (E) 22.92767373 (E - G) ==> F 1.07232626 (E * S) ==> G
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.04468026 (A / C) ==> S 0.95531973 (1 - S) ==> P 1 7.8336 (B * E ==> M)
Effective costs with a savings plan 0.01 (H) 0.31181636 (B * P) ==> J 0.32181636 (H + J) ==> K 7.72359270 (K * E) ==> L 7.48359270 (B * F) ==> Q 0
Savings 0.11000729 (M - L) ==> N
Savings % 1.40% (N / M)

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