How to Set up and Operate Usage Based Offer
AppXite platform supports offers which are billed based on:
- Number of licenses
- Amount of usage
- Combination of licenses and usage – hybrid offers.
This 'How To' guide will focus on latter two examples **.
Usage Based Offer price will depend on the usage used within agreed time period.
Hybrid Offer price will depend on the usage used within agreed time period plus the amount of licenses associated with particular offer.
Example of a usage based offer is Azure Plan provided by Microsoft.
Appxite platform makes it possible for any vendor to submit usage to Appxite via API calls and to charge for that based on the pricing plan set up in Product Management section.
Here are the steps required for that:
- Create an offer and offer form in a pricing plan
- Set up meter(s)
- Set up meter prices
- Publish the offer and add it to catalog(s)
- When customers buy such offers ensure that your APIs properly return your internal subscription Ids as those will be used when reporting usage data
- Report (push) usage data to AppXite platform
- Billing will be calculated for billing periods based on the usage data (and, optionally, other pricing rules configured in case of hybrid offers).
1. Create an offer and offer form in a pricing plan
- Same process as when creating license-based offers
You can mix license-based and usage-based billing models, for example for reservation offers, where some usage is included.
2&3. Set up meter and meter prices
- Click on “Usage” and then “Add New Meter” links:
- Define your meter:
“Id From Vendor” – it is your meter Id, that you use to report usage
"Name" – meter name
"Category" – category name
"Sub-Category" – sub-category name
"Unit" – unit of measure (MB, IO operations, data received amount etc.)
- Add pricing for your meter
Click on “Add new pricing variable” and then define pricing formula for the meter (same way as you define it for license-based offers).
Note: “Variable name” is important as it is what we will show users on the UI.
In the above example you define the rule that up to 10 MB usage is free, and then the price is 10 and 15 EUR for InPrice and Retail Price respectively per MB.
Also, we set “Tier Mode” as “Graduated”, to ignore amounts up to 10 MB.
- Test your price set-up
You can test your meters’ pricing. To do so press “Preview” button and input some usage.
As you can see below usage price is calculated correctly, and fixed price is shown as “0 EUR” since we charge only per usage:
- Add fixed license component (optional)
If you need to charge some fixed fee regardless of usage amount (even if usage is 0), add license quantity control and set it its pricing in “Prices” section, as for ordinary license-based offer:
Design section with quantity control:
4. Publish the offer and add it to catalog(s)
After you have configured pricing plans do not forget to publish your offer and (optionally) add it to a catalog.
It is a good idea to make a test purchase and then report some usage for newly purchased subscription. Billing is generated at the end of the billing period so you will not see it straight away, however when reporting the usage it is being validated by AppXite so if usage data is accepted then you can be sure that the billing will be calculated properly, as per rules you set up in the pricing plan.
5. When customers buy such offers ensure that your APIs properly return your internal subscription Ids as those will be used when reporting usage data.
6. Report (push) usage data to AppXite platform
To report the usage, you need to use AppXite API (be sure to obtain your vendorId, subscription and SAS keys first!)
The API is located here, please check it out for more details:
Use the following request:
"CorrelationId": "c297a574-c5c6-4033-af86-8de7bb2a59dd", //optional, used for diagnostics
"VendorSubscriptionId": “subscription_123", //subscription Id of your customer
"MeterId": “YourTestMeterId", //meter id from the vendor, required
"StartDateUtc": "2021-03-12 00:00:00.000",
"EndDateUtc": "2021-03-12 00:00:00.000",
"Service": "string,optional", //optional description of a service, used for reports
"ServiceType": "string,optional", //optional description of a service type, used for reports
"Quantity": 123.00, // quantity, decimal value (decimal (20,8))
"ResourceName": "string optional", //optional, name of the resource, used for reports
"ResourceId": "string optional" //optional, id of the resource, string, used for reports
7. Billing will be calculated for billing periods based on the usage data (and, optionally, other pricing rules configured in case of hybrid offers).
** There could be valid use cases when we would like to set up the prizing plans as Usage type but without requesting pricing or meters to be set.
For details, refer to the following article:
What is 'Per Usage' formula?
Was this article helpful?
Articles in this section
- What is 'Per Usage' Formula?
- How to Set up and Operate Usage Based Offer
- Configure quantity change rules
- Design section overview
- What is the choice price table?
- What is the constant function?
- What is quantity price table function?
- What is Tier mode?
- How to calculate with tier mode Graduated?
- How to calculate with tier mode Up to?