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 by way of 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 (that is, it's not to 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 a 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.
  • Each plan, in addition to the recurring fee, can also include optional dimensions 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 are 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 independent software vendors are paid, depends on the Foreign Exchange rates at the time the customer transacts the offer. For more information, see 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 Tocoa 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 beyond what the base quantity includes, Contoso submits usage events to Microsoft for the extra usage. They use the Marketplace metering service API to generate the events. Microsoft in turn charges the customer for the extra service calls as specified by the publisher.

Billing dimensions

Billing dimensions communicate to the customer on how they're 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. After you publish the offer, these attributes are no longer 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 is affected. After you publish the plan, the following attributes are no longer editable:

  • Included quantity for monthly 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 show up as "not enabled" on the already published plan. A disabled dimension doesn'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 isn't 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 isn't 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 publishes. Before publishing your offer, it's important that you have your dimensions fully defined.

After an offer publishes with a dimension, you can no longer change the following offer-level details for that dimension:

  • Identifier

After a plan publishes, you can no longer change the following plan-level details:

  • 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 you can configure 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 (for example, a wrong usage event)
  • Any other issues related to metered billing

Follow the steps in Support for the commercial marketplace program in Partner Center to understand publisher support options and open support tickets with Microsoft.