Managed application metered billing
With the Marketplace metering service, you can create managed application plans for Azure Application offers that are charged according to nonstandard units. Your system informs Microsoft via the Marketplace metering service API of billable events as they occur.
Prerequisites for metered billing
In order for a managed application plan to use metered billing, it must:
- Meet all of the offer requirements as outlined in Create an Azure application offer.
- Configure Pricing for charging customers the per-month cost for your service. Price can be zero if you don't want to charge a fixed fee and instead rely entirely on metered billing.
- Set Billing dimensions for the metering events the customer pays for on top of the flat rate.
- Integrate with the Marketplace metering service APIs to inform Microsoft of billable events.
Note
Pricing for your Azure App using the per-month price and metered billing must only account for the management fee (i.e., may not be used for IP/software costs, Azure infrastructure, or add-ons). Use the underlying Virtual Machine or Container Offer to transact IP/software costs.
How metered billing fits in with pricing
When it comes to defining the offer along with its pricing models, it's important to understand the offer hierarchy.
- Each Azure Application offer can have Solution template or managed application plans.
- Metered billing is implemented only with managed application plans.
- Each managed application plan has a pricing model associated with it.
- Pricing model has a monthly recurring fee, which can be set to $0.
- In addition to the recurring fee, the plan can also include optional dimensions used to charge customers for usage not included in the flat rate. Each dimension represents a billable unit that your service communicates to Microsoft using the Marketplace metering service API.
Important
You must keep track of the usage in your code and only send usage events to Microsoft for the usage that is above the base fee.
Note
Offers will be billed to customers in the customers’ agreement currency, using the local market price that was published at the time the offer was created. The amount that customers pay, and that ISVs are paid, depends on the Foreign Exchange rates at the time the customer transacts the offer. Learn more on "How we convert currency?".
Sample offer
As an example, Contoso is a publisher with a managed application service called Contoso Analytics (CoA). An Azure customer subscribing to CoA service can analyze and generate reports per month based on the plan selected. Contoso measures the service calls up to the included quantity without sending any metering events to Microsoft. When customers use service calls above what is included in the base quantity, Contoso emits usage events to Microsoft for extra usage using the Marketplace metering service API. Microsoft in turn charges the customer for the extra service calls as specified by the publisher.
Billing dimensions
Billing dimensions are used to communicate to the customer on how they'll be billed for using the software. These dimensions are also used to communicate usage events to Microsoft. They're defined as follows:
Dimension identifier: the immutable identifier referenced while emitting usage events.
Dimension name: the display name associated with the dimension, for example "hours of service"
Unit of measure: the description of the billing unit, for example "per hour".
Price per unit: the price for one unit of the dimension.
Included quantity for monthly term: quantity of dimension included per month for customers paying the recurring monthly fee, must be an integer.
Billing dimensions are shared across all plans for an offer. Some attributes apply to the dimension across all plans, and other attributes are plan-specific.
The attributes, which define the dimension itself, are shared across all plans for an offer. Before you publish the offer, a change made to these attributes from the context of any plan affects the dimension definition across all plans. Once you publish the offer, these attributes will no longer be editable. The attributes are:
- Identifier
The other attributes of a dimension are specific to each plan and can have different values from plan to plan. Before you publish the plan, you can edit these values and only this plan will be affected. Once you publish the plan, the following attributes will no longer be editable:
- Included quantity for monthly customers
- Included quantity for annual customers
Dimensions also have two special concepts, "enabled" and "infinite":
- Enabled indicates that this plan participates in this dimension. You might want to leave this option unchecked if you're creating a new plan that doesn't send usage events based on this dimension. Also, any new dimensions added after a plan was first published will show up as "not enabled" on the already published plan. A disabled dimension won't show up in any lists of dimensions for a plan seen by customers.
- Infinite, represented by the infinity symbol "∞", indicates that this plan participates in this dimension, without metered usage against this dimension. If you want to indicate to your customers that the functionality represented by this dimension is included in the plan, but with no limit on usage. A dimension with infinite usage shows up in lists of dimensions for a plan seen by customers. This plan never incurs a charge.
Note
The following scenarios are explicitly supported:
- You can add a new dimension to a new plan. The new dimension will not be enabled for any already published plans.
- You can publish a plan with a fixed monthly fee and without any dimensions, then add a new plan and configure a new dimension for that plan. The new dimension will not be enabled for already-published plans.
Constraints
Locking behavior
A dimension used with the Marketplace metering service represents an understanding of how a customer pays for the service. All details of a dimension are no longer editable once an offer is published. Before publishing your offer, it's important that you have your dimensions fully defined.
Once an offer is published with a dimension, the offer-level details for that dimension can no longer be changed:
- Identifier
Once a plan is published, the plan-level details can no longer be changed:
- Included quantity for monthly term
- Whether the dimension is enabled for the plan
Note
Metered billing using the marketplace metering service isn't yet supported on the Azure Government Cloud.
Upper limits
The maximum number of dimensions that can be configured for a single offer is 30 unique dimensions.
Get support
If you have one of the following issues, you can open a support ticket.
- Technical issues with marketplace metering service API.
- An issue that needs to be escalated because of an error or bug on your side (ex. wrong usage event).
- Any other issues related to metered billing.
Follow the instruction in Support for the commercial marketplace program in Partner Center to understand publisher support options and open support ticket with Microsoft.