Skip to content

Commit f893e58

Browse files
Merge pull request #260884 from bandersmsft/pricing-defs
MCM - Updates to pricing definitions for jojo
2 parents 8e1c551 + 67e43b0 commit f893e58

File tree

3 files changed

+57
-43
lines changed

3 files changed

+57
-43
lines changed

articles/cost-management-billing/automate/automation-ingest-usage-details-overview.md

Lines changed: 45 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
title: Ingest cost details data
33
titleSuffix: Microsoft Cost Management
4-
description: This article explains how to use cost details records to correlate meter-based charges with the specific resources responsible for the charges so that you can properly reconcile your bill.
4+
description: This article explains how to use cost details records to correlate meter-based charges with the specific resources responsible for the charges. Then you can properly reconcile your bill.
55
author: bandersmsft
66
ms.author: banders
7-
ms.date: 11/17/2023
7+
ms.date: 12/11/2023
88
ms.topic: conceptual
99
ms.service: cost-management-billing
1010
ms.subservice: cost-management
@@ -13,21 +13,21 @@ ms.reviewer: jojoh
1313

1414
# Ingest cost details data
1515

16-
Cost details (formerly referred to as usage details) are the most granular cost records that are available across Microsoft. Cost details records allow you to correlate Azure meter-based charges with the specific resources responsible for the charges so that you can properly reconcile your bill. The data also includes charges associated with New Commerce products like Microsoft 365 and Dynamics 365 that are invoiced along with Azure. Currently, only Partners can purchase New Commerce non-Azure products. To learn more, see [Understand cost management data](../costs/understand-cost-mgt-data.md).
16+
Cost details (formerly referred to as usage details) are the most granular cost records that are available across Microsoft. Cost details records allow you to correlate Azure meter-based charges with the specific resources responsible for the charges so that you can properly reconcile your bill. The data also includes charges associated with New Commerce products like Microsoft 365 and Dynamics 365 that are invoiced along with Azure. Currently, only Partners can purchase New Commerce non-Azure products. To learn more, see [Understand cost management data](../costs/understand-cost-mgt-data.md).
1717

1818
This document outlines the main solutions available to you as you work with cost details data. You might need to download your cost data to merge it with other datasets. Or you might need to integrate cost data into your own systems. There are different options available depending on the amount of data involved.
1919

2020
You must have Cost Management permissions at the appropriate scope to use APIs and tools in any case. For more information, see [Assign access to data](../costs/assign-access-acm-data.md) and [Assign permissions to Cost Management APIs](cost-management-api-permissions.md).
2121

2222
## How to get cost details
2323

24-
You can use [exports](../costs/tutorial-export-acm-data.md) or the [Cost Details](/rest/api/cost-management/generate-cost-details-report) report to get cost details programmatically. To learn more about which solutions are best for your scenarios, see [Choose a cost details solution](usage-details-best-practices.md).
24+
You can get cost details programmatically with [exports](../costs/tutorial-export-acm-data.md) or the [Cost Details](/rest/api/cost-management/generate-cost-details-report) report. To learn more about which solutions are best for your scenarios, see [Choose a cost details solution](usage-details-best-practices.md).
2525

2626
For Azure portal download instructions, see [How to get your Azure billing invoice and daily usage data](../manage/download-azure-invoice-daily-usage-date.md). If you have a small cost details dataset that you maintain from one month to another, you can open your CSV file in Microsoft Excel or another spreadsheet application.
2727

2828
## Cost details data format
2929

30-
The Azure billing system uses cost details records at the end of the month to generate your bill. Your bill is based on the net charges that were accrued by meter. Cost records contain daily rated usage based on negotiated rates, purchases (for example, reservations, Marketplace fees), and refunds for the specified period. Fees don't include credits, taxes, or other charges or discounts.
30+
The Azure billing system uses cost details records at the end of the month to generate your bill. Your bill is based on the net charges that were accrued, by meter. Cost records contain daily rated usage based on negotiated rates, purchases (for example, reservations, Marketplace fees), and refunds for the specified period. Fees don't include credits, taxes, or other charges or discounts.
3131

3232
The following table shows the charges that are included in your cost details dataset for each account type.
3333

@@ -37,7 +37,7 @@ The following table shows the charges that are included in your cost details dat
3737
| Microsoft Customer Agreement (MCA) |||||
3838
| Pay-as-you-go (PAYG) |||||
3939

40-
A single Azure resource often has multiple meters emitting charges. For example, a VM may have both Compute and Networking related meters.
40+
A single Azure resource often has multiple meters emitting charges. For example, a VM might have both Compute and Networking related meters.
4141

4242
To understand the fields that are available in cost details records, see [Understand cost details fields](understand-usage-details-fields.md).
4343

@@ -49,33 +49,57 @@ Azure resource providers emit usage and charges to the billing system and popula
4949

5050
### Pricing behavior in cost details
5151

52-
The cost details file exposes multiple price points today. These are outlined below.
52+
The cost details file exposes multiple price points. They're outlined as follows.
5353

54-
- **PAYGPrice:** It's the list price or on demand price for a given product or service.
55-
- PAYGPrice is populated only for first party Azure usage charges where `PricingModel` is `OnDemand`. So for EA customers, `PAYGprice` isn't populated when `PricingModel` = `Reservations`, `Spot`, `Marketplace`, or `SavingsPlan`.
56-
- PAYGPrice is the price customers pay if the VM was consumed as a Standard VM, instead of a Spot VM.
54+
**PAYGPrice:** It's the market price, also referred to as retail or list price, for a given product or service.
55+
- In all consumption usage records, `UnitPrice` reflects the market price of the meter, regardless of the benefit plan such as reservations or savings plan.
56+
- Purchases and refunds have the market price for that transaction.
5757

58-
- **UnitPrice:** It's the price for a given product or service inclusive of any negotiated discounts on top of the pay-as-you-go price.
58+
When you deal with benefit-related records, where the `PricingModel` is `Reservations` or `SavingsPlan`, *PayGPrice* reflects the market price of the meter.
5959

60-
- **EffectivePrice** It's the price for a given product or service that represents the actual rate that you end up paying per unit. It's the price that should be used with the Quantity to do Price \* Quantity calculations to reconcile charges. The price takes into account the following scenarios:
61-
- *Tiered pricing:* For example: $10 for the first 100 units, $8 for the next 100 units.
62-
- *Included quantity:* For example: The first 100 units are free and then $10 for each unit.
63-
- *Reservations:* For example, a VM that got a reservation benefit on a given day. In amortized data for reservations, the effective price is the prorated hourly reservation cost. The cost is the total cost of reservation usage by the resource on that day.
64-
- *Rounding that occurs during calculation:* Rounding takes into account the consumed quantity, tiered/included quantity pricing, and the scaled unit price.
60+
**UnitPrice:** It's the price for a given product or service inclusive of any negotiated discount that you might have on top of the market price (PayG price column) for your contract.
61+
- In all consumption usage records, `UnitPrice` reflects the negotiated meter price that you have on your contract, regardless of the benefit plan such as reservations or savings plan.
62+
- Purchases and refunds have the negotiated price for that transaction.
6563

66-
- **Quantity:** This is the number of units used by the given product or service for a given day and is aligned to the unit of measure used in actual resource usage.
64+
**EffectivePrice** It's the price for a given product or service that represents the actual rate that you end up paying per unit. It's the price that should be used with the quantity to do `price * quantity` calculations to reconcile charges. The price considers the following scenarios:
65+
- Tiered pricing: For example: USD 10 for the first 100 units, USD 8 for the next 100 units.
66+
- Reservation/savings plan actual cost record: In the actual cost report, the effective price for a usage record is 0 because the resource, for example VM, is covered by prepaid commitment. The effective price for a purchase record shows the price of the purchase transaction.
67+
- Reservation/savings plan amortized cost record: In the amortized cost report, the effective price for a usage record is the prorated hourly price of the reservation/savings plan.
68+
69+
**Quantity:** It's the number of units used by the given product or service for a given day. It aligns to the unit of measure used in actual resource usage.
6770

6871
If you want to reconcile costs with your price sheet or invoice, note the following information about unit of measure.
6972

70-
**Price Sheet unit of measure behavior** - The prices shown on the price sheet are the prices that you receive from Azure. They're scaled to a specific unit of measure.
73+
**Price Sheet unit of measure behavior** - The prices shown on the price sheet are the prices that you receive from Azure. They're scaled to a specific unit of measure.
7174

7275
**Cost details unit of measure behavior** - The unit of measure associated with the usage quantities and pricing seen in cost details aligns with actual resource usage.
7376

7477
#### Example pricing scenarios seen in cost details for a resource
7578

76-
| **MeterId** | **Quantity** | **PAYGPrice** | **UnitPrice** | **EffectivePrice** | **UnitOfMeasure** | **Notes** |
77-
| --- | --- | --- | --- | --- | --- | --- |
78-
| 00000000-0000-0000-0000-00000000000 | 24 | 1 | 0.8 | 0.76 | 1 hour | Manual calculation of the actual charge: multiply 24 * 0.76 * 1 hour. |
79+
Here are some example scenarios that show how an actual cost report or amortized cost report might look like.
80+
81+
Sample actual cost report:
82+
83+
| **MeterId** | **PricingModel** | **ChargeType** | **Quantity** | **PAYGPrice** | **UnitPrice** | **EffectivePrice** | **UnitOfMeasure** | **Cost** | **Notes** |
84+
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
85+
| xxxxxxxx-xxxx- xxxx - xxxx -xxxxxxxxxxx | OnDemand | Usage | 24 | 1 | 0.8 | 0.8 | 1 hour | 19.2 | Manual calculation of the actual charge: multiply 24 \* 0.8 \* 1 hour. |
86+
| xxxxxxxx-xxxx- xxxx - xxxx -xxxxxxxxxxx | Reservations/SavingsPlan | Usage | 24 | 1 | 0.8 | 0 | 1 hour | 0 | Manual calculation of the actual charge: multiply 24 \* 0 \* 1 hour. |
87+
| xxxxxxxx-xxxx- xxxx - xxxx -xxxxxxxxxxx | Reservations | Purchase | 15 | 120 | 0.8 | 120 | 1 hour | 1800 | Manual calculation of the actual charge: multiply 15 \* 120 \* 1 hour. |
88+
89+
Sample amortized cost report:
90+
91+
| **MeterId** | **PricingModel** | **ChargeType** | **Quantity** | **PAYGPrice** | **UnitPrice** | **EffectivePrice** | **UnitOfMeasure** | **Cost** | **Notes** |
92+
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
93+
| xxxxxxxx-xxxx- xxxx - xxxx -xxxxxxxxxxx | OnDemand | Usage | 24 | 1 | 0.8 | 0.8 | 1 hour | 19.2 | Manual calculation of the actual charge: multiply 24 \* 0.8 \* 1 hour. |
94+
| xxxxxxxx-xxxx- xxxx - xxxx -xxxxxxxxxxx | Reservations/SavingsPlan | Usage | 24 | 1 | 0.8 | 0.3 | 1 hour | 7.2 | Manual calculation of the actual charge: multiply 24 \* 0.3 \* 1 hour. |
95+
96+
>[!NOTE]
97+
> - Limitations on `PayGPrice`
98+
> - For EA customers `PayGPrice` isn't populated when `PricingModel` = `Reservations`, `Spot`, `Marketplace`, or `SavingsPlan`.
99+
> - For MCA customers, `PayGPrice` isn't populated when `PricingModel` = `Reservations`, `Spot`, or `Marketplace`.
100+
>- Limitations on `UnitPrice`
101+
> - For EA customers, `UnitPrice` isn't populated when `PricingModel` = `Spot`, or `MarketPlace`.
102+
> - For MCA customers, `UnitPrice` isn't populated when `PricingModel` = `Reservations`, `Spot`, or `SavingsPlan`.
79103
80104
## Unexpected charges
81105

articles/cost-management-billing/automate/understand-usage-details-fields.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ MPA accounts have all MCA terms, in addition to the MPA terms, as described in t
5656
| CustomerName | MPA | Name of the Microsoft Entra tenant for the customer's subscription. |
5757
| CustomerTenantId | MPA | Identifier of the Microsoft Entra tenant of the customer's subscription. |
5858
| Date¹ | All | The usage or purchase date of the charge. |
59-
| EffectivePrice² | All | Blended unit price for the period. Blended prices average out any fluctuations in the unit price, like graduated tiering, which lowers the price as quantity increases over time. |
59+
| EffectivePrice² ³ | All | The price for a given product or service that represents the actual rate that you end up paying per unit. |
6060
| ExchangeRateDate | MCA | Date the exchange rate was established. |
6161
| ExchangeRatePricingToBilling | MCA | Exchange rate used to convert the cost in the pricing currency to the billing currency. |
6262
| Frequency | All | Indicates whether a charge is expected to repeat. Charges can either happen once (**OneTime**), repeat on a monthly or yearly basis (**Recurring**), or be based on usage (**UsageBased**). |
@@ -72,8 +72,8 @@ MPA accounts have all MCA terms, in addition to the MPA terms, as described in t
7272
| MeterRegion | All | Name of the datacenter location for services priced based on location. See Location. |
7373
| MeterSubCategory | All | Name of the meter subclassification category. Purchases and Marketplace usage might be shown as blank or `unassigned`.|
7474
| OfferId¹ | All | Name of the offer purchased. |
75-
| pay-as-you-goPrice² | All | Retail price for the resource. |
76-
| PartnerEarnedCreditApplied | MPA | Indicates whether the partner earned credit has been applied. |
75+
| pay-as-you-goPrice² ³| All | The market price, also referred to as retail or list price, for a given product or service. |
76+
| PartnerEarnedCreditApplied | MPA | Indicates whether the partner earned credit was applied. |
7777
| PartnerEarnedCreditRate | MPA | Rate of discount applied if there's a partner earned credit (PEC), based on partner admin link access. |
7878
| PartnerName | MPA | Name of the partner Microsoft Entra tenant. |
7979
| PartnerTenantId | MPA | Identifier for the partner's Microsoft Entra tenant. |
@@ -90,7 +90,7 @@ MPA accounts have all MCA terms, in addition to the MPA terms, as described in t
9090
| PublisherId | MCA | The ID of the publisher. It's only available after the invoice is generated. |
9191
| PublisherName | All | Publisher for Marketplace services. |
9292
| PublisherType | All | Supported values: **Microsoft**, **Azure**, **AWS**, **Marketplace**. Values are `Microsoft` for MCA accounts and `Azure` for EA and pay-as-you-go accounts. |
93-
| Quantity | All | The number of units purchased or consumed. |
93+
| Quantity³ | All | The number of units used by the given product or service for a given day. |
9494
| ResellerName | MPA | The name of the reseller associated with the subscription. |
9595
| ResellerMpnId | MPA | ID for the reseller associated with the subscription. |
9696
| ReservationId¹ | EA, MCA | Unique identifier for the purchased reservation instance. |
@@ -111,12 +111,14 @@ MPA accounts have all MCA terms, in addition to the MPA terms, as described in t
111111
| Tags¹ | All | Tags assigned to the resource. Doesn't include resource group tags. Can be used to group or distribute costs for internal chargeback. For more information, see [Organize your Azure resources with tags](https://azure.microsoft.com/updates/organize-your-azure-resources-with-tags/). |
112112
| Term | All | Displays the term for the validity of the offer. For example: For reserved instances, it displays 12 months as the Term. For one-time purchases or recurring purchases, Term is one month (SaaS, Marketplace Support). Not applicable for Azure consumption. |
113113
| UnitOfMeasure | All | The unit of measure for billing for the service. For example, compute services are billed per hour. |
114-
| UnitPrice² | EA, pay-as-you-go | The price per unit for the charge. |
114+
| UnitPrice² ³| EA, pay-as-you-go | The price for a given product or service inclusive of any negotiated discount that you might have on top of the market price (pay-as-you-go price) for your contract. |
115115

116116
¹ Fields used to build a unique ID for a single cost record. Every record in your cost details file should be considered unique.
117117

118118
² For MCA customers, prices are shown in the pricing currency in the Actual Cost and Amortized Cost reports. In contrast, for EA customers, the billing and pricing currencies are the same.
119119

120+
³ For more information about pricing terms and definitions, see [Pricing behavior in cost details](automation-ingest-usage-details-overview.md#pricing-behavior-in-cost-details).
121+
120122
The cost details file itself doesn’t uniquely identify individual records with an ID. Instead, you can use fields in the file flagged with ¹ to create a unique ID yourself.
121123

122124
Some fields might differ in casing and spacing between account types. Older versions of pay-as-you-go cost details files have separate sections for the statement and daily cost.

0 commit comments

Comments
 (0)