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 compare daily usage and charges with monthly savings plan costs, match the BenefitOrderId in the daily rated usage data and the ReservationOrderId in the invoice reconciliation data. Pay-as-you-go charges use standard 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?

To compare charges and track your savings plan's performance, use the Azure portal's "Utilization over time" feature.

  1. Query for the BenefitOrderId or BenefitId of plans with utilization below 100%.
  2. To find the virtual machines that savings plans cover, look at the ResourceURI in the daily rated usage data. You can apply the benefit to a resource, resource group, subscription, or multiple subscriptions.
  3. Sort the daily rated usage data by UsageDate. Transactions with "SavingsPlan" as BenefitType don't have daily usage charges. They're covered by the savings plan. If you see no transactions with Charge as BenefitType, the resources have no pay-as-you-go charges.
  4. Repeat steps 2 and 3 to ensure that plans with over commitments have pay-as-you-go charges.

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?

The amortized data shows how much of a savings plan is utilized or still available for a subscription, resource group, or specific resource.

To download the data, see Export cost data with an Azure Storage account SAS key.

  1. Once you have the data, look for 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.
  2. To make it easier, sort or filter the transactions by date. Check the charges for the resources. If the pricingModel is "SavingsPlan," it's not a charge.
  3. See effectivePrice and costInBillingCurrency for the effective rate and charges.
  4. To find the unused hours of the Azure savings plan:
    • Use productOrderId to filter by the order ID.
    • Look for the chargeType that says "UnusedBenefits."
    • Check the quantity value. If it's more than zero, it shows the number of unused hours for that day.

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

Here's an example of how we calculate savings plan costs. Suppose you bought a savings plan for Contoso for USD 1/hour. This plan covers a virtual machine (VM) that normally costs USD 4/hour with pay-as-you-go.

Consider the following scenario:

  • Suppose you bought a savings plan that provides a 50% discount on the pay-as-you-go rate. Instead of paying USD 4 per hour, you only pay USD 2.
  • The savings plan covers 0.5 (S) hours for every hour the VM runs, calculated as 1 (A) / 2 (C).
  • You're charged USD 3 (K) per hour for the first half an hour (P) at the lower rate for your savings plan (0.5 * 2) = 1 (H) and another half an hour (P) at the pay-as-you-go rate without a savings plan (0.5 * 4) = 2 (J).
  • The daily charge for the VM running for 24 hours is USD 72 (L), calculated as 24 (E) * 3 (K).

You decide the billing frequency (monthly or upfront) for your savings plan when you purchase it.

The table shows how we calculated the daily charges based on different commitments.

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 more realistic example of how much you can save with our plan:

  • Suppose you buy a savings plan for **USD 0.01 per hour, ** you pay that amount instead of the pay-as-you-go rate of USD 0.3264 per hour for the VM in the plan.
  • You get a discount of 31.43% when you sign up for a year. Pay only USD 0.22381248 per hour.
  • 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).
  • You're charged USD 0.32181636 (K) per hour: USD 0.01 (H) for the plan and USD 0.31181636 (J) for the usage over the savings plan commitment.
  • The daily cost for running the VM for 24 hours is USD 7.72359270 (L), based on 24 (E) * 0.32181636 (K).

Important

The daily rated usage data displays the pay-as-you-go amount for each day that your virtual machine runs. For 24 hours of running, the daily rated usage data shows a quantity of 22.9276737383009 and a billing total before tax of 7.48359270818142.

With this data, you can track your usage patterns and find ways to save money. You might need this information to monitor your usage and manage your expenses effectively, no matter how large or small your deployment is.

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. They might not match exactly, but they can give you an estimate of your savings plans 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