> ## Documentation Index
> Fetch the complete documentation index at: https://docs.m3ter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Recurring Charges Billing: Hybrid Pricing

Suppose you run a SaaS company that provides a build-and-host application service to developers. You want to charge customers in the first instance on a user license basis and allow for the number of developer licenses to increase and decrease throughout a customer's contract service period. Bills created for each billing period should correctly reflect any such changes in the number of developer licenses subscribed to. You also want to charge for any data storage developers make use of on a per gigabyte stored basis, which is an add-on service you offer. This amounts to a hybrid pricing model:

* The user license charges are a form of recurring subscription charges best served by a unit-based pricing model.
* The data storage charges are best served by a usage-based pricing model based on metered data storage volumes.

In m3ter, you can easily implement this kind of hybrid pricing model for your end-customer Accounts and set up pricing for an Account Plan that combines the rates you want to apply for both types of charge. At billing, all charge amounts due on the Account are combined in a single Bill.

This topic offers a worked example for this hybrid pricing use case, taking you through:

* [Creating Product and Account](/guides/recurring-charges-counters/recurring-charges-example-2-hybrid-pricing#creating-product-and-account)
* [Setting Up Pricing on Account](/guides/recurring-charges-counters/recurring-charges-example-2-hybrid-pricing#setting-up-pricing-for-account)
* [Submitting Sample Product Consumption to Account](/guides/recurring-charges-counters/recurring-charges-example-2-hybrid-pricing#submitting-sample-product-consumption-to-account)
* [Creating and Reviewing Bills on Account](/guides/recurring-charges-counters/recurring-charges-example-2-hybrid-pricing#creating-and-reviewing-bills-on-account)

## Creating Product and Account

We'll first set up a Product and Account for the hybrid pricing example.

**To set up a Product and an Account:**

First, create a Product:

1. In the Console, select **Product** and then select **Create product**.
2. Under **Product details** enter a **Name** and **Code** for the new Product and then select **Create product**:

* For the example, we've called the Product: **Dev License and Store**.

3. Select **Accounts** and then select **Create account**.
4. Under **Account details** enter **Name**, **Code**, and **Email address**, and then select **Create account**:

* For the example, we've called the Account: **Dev License n Store Account 1**.

## Setting Up Pricing for Account

For our hybrid pricing example to set up pricing for the Account, we'll need to

* Create two pricing metrics:
  * First, an *Aggregation* that sums metered values for storage volumes on the Account.
  * Second, a *Counter* to track the number of developer licenses the Account subscribes to.
* Third, create a Plan Template and Plan for the Product.
* Fourth, use our pricing metrics to price a Product Plan.
* Lastly, attach the priced Plan to the Account.

**To set up pricing for the Account:**

First, create an Aggregation targeting a Meter field:

1. Select **Metering**. The **Meters** page opens.
2. For **Product** select **Dev License and Store**.
3. Select **Create meter**. Here's the Meter configuration:

<img src="https://mintcdn.com/m3ter/zFF74W1cpWY5nnkU/images/1739282241-counters21a.png?fit=max&auto=format&n=zFF74W1cpWY5nnkU&q=85&s=82262821ae67024f618a7a896623de87" style={{ maxWidth: 'min(800px, 100%)' }} width="1172" height="594" data-path="images/1739282241-counters21a.png" />

* For the example, we've created a Meter with a single **Measure** Data Field - **GigBytes Storage** -to collect usage data amounts for gigabytes of storage used: **Dev Store Meter 1**.

4. Select **Create meter**.
5. Select **Metering>Aggregations**. The **Aggregations** page opens.
6. For **Product** select **Dev License and Store**, and select **Create aggregation**. Here's the Aggregation configuration:

**Aggregation details**:

<img src="https://mintcdn.com/m3ter/uB-nH3l_4oKUc0GG/images/Counters72.png?fit=max&auto=format&n=uB-nH3l_4oKUc0GG&q=85&s=d47fff5e94e540d18e4277031375a520" alt="Counters72" title="Counters72" style={{ width:"62%" }} width="647" height="457" data-path="images/Counters72.png" />

* We've called the Aggregation: **Dev Store Agg 1**.

**Meter settings**:

<img src="https://mintcdn.com/m3ter/zFF74W1cpWY5nnkU/images/1739282674-counters24a.png?fit=max&auto=format&n=zFF74W1cpWY5nnkU&q=85&s=ca27cd421c2d90cc30a0c5d2fac92c38" style={{ maxWidth: 'min(450px, 100%)' }} width="646" height="263" data-path="images/1739282674-counters24a.png" />

* The Aggregation targets the **GigBytes Storage** field on **Dev Store Meter 1**.

**Aggregation settings**:

<img src="https://mintcdn.com/m3ter/zFF74W1cpWY5nnkU/images/1739282784-counters25a.png?fit=max&auto=format&n=zFF74W1cpWY5nnkU&q=85&s=0261bd526290d12dadeaec191d88c349" style={{ maxWidth: 'min(450px, 100%)' }} width="645" height="658" data-path="images/1739282784-counters25a.png" />

* The Aggregation applies a **Sum** function to give a usage-based pricing metric of the total of values submitted for the **GigBytes Storage** target field for a billing period.

7. Select **Create aggregation**.

Second, create a Counter:

1. Select **Metering>Counters**. The **Counters** page opens.
2. For **Product** select **Dev License and Store**, and select **Create counter**. Here's the **Counter details** configuration:

<img src="https://mintcdn.com/m3ter/uB-nH3l_4oKUc0GG/images/Counters73.png?fit=max&auto=format&n=uB-nH3l_4oKUc0GG&q=85&s=bf40ab2e86f3b675c6eb346a91e8833d" alt="Counters73" title="Counters73" style={{ width:"66%" }} width="646" height="455" data-path="images/Counters73.png" />

* For the example, we've created the **Dev License Counter** to use **Licenses** as the **Unit**.

3. Select **Create counter**.

Third, create a **Plan Template** and **Plan** for the Product:

1. Open the **Pricing>Plan templates** page.
2. For **Product** select **Dev License and Store** and select **Create plan template**. Here's the **Plan template details** configuration:

<img src="https://mintcdn.com/m3ter/zFF74W1cpWY5nnkU/images/1739283268-counters27a.png?fit=max&auto=format&n=zFF74W1cpWY5nnkU&q=85&s=7a7b86fa7c35f4ec1fc37ce83b2d5c20" style={{ maxWidth: 'min(450px, 100%)' }} width="647" height="551" data-path="images/1739283268-counters27a.png" />

* We've created the **Dev License n Store Template 1** and set it up for **Monthly Bill frequency** using **US Dollar** as the billing **Currency**.
* For the current example, we can omit setting up any **Standing Charge** or **Minimum Spend** amounts for the Plan Template.

3. Open the **Pricing>Plans** page.
4. For **Product** select **Dev License and Store** and select **Create plan**. Here's the **Plan details** configuration:

<img src="https://mintcdn.com/m3ter/uB-nH3l_4oKUc0GG/images/Counters74.png?fit=max&auto=format&n=uB-nH3l_4oKUc0GG&q=85&s=b902802ad20fc77da934683c92e03a72" alt="Counters74" title="Counters74" style={{ width:"66%" }} width="647" height="335" data-path="images/Counters74.png" />

* The **Dev License n Store Plan 1** is based on **Dev License n Store Template 1**. The Plan will inherit the Monthly Billing frequency and US Dollar billing Currency we set up for the template.
* For the current example, we can omit setting up any **Standing charge** or **Minimum spend** amounts for the Plan.

5. Select **Create plan**.

Fourth, price the Plan:

1. Open **Pricing details** for **Dev License n Store Plan 1**.
2. Scroll down the page and on **Pricing** panel select **Add usage-based pricing**. A **Select aggregations** modal appears.
3. Select **Dev Store Agg 1** and then select confirm. The modal closes and the selected Aggregation is now shown under **Pricing**:

<img src="https://mintcdn.com/m3ter/uB-nH3l_4oKUc0GG/images/Counters75.png?fit=max&auto=format&n=uB-nH3l_4oKUc0GG&q=85&s=98b47836327688fbcc09998606634938" alt="Counters75" width="1190" height="445" data-path="images/Counters75.png" />

4. Select the **create new pricing** text link. You are taken to the **Pricing editor** with the **Pricing>Create** page open.
5. Under **Pricing details**, create a pricing for the Plan using **Dev Store Agg 1**:

* Leave as default to **Bill in arrears**.
* Set the period the pricing will apply to the Plan as July 1st 2025 through to June 30th 2026.
* Define a two-tiered pricing:
  * From 0 to 50 = \$0.60 per unit.
  * Over 50 = \$0.80 per unit

6. Select **Create pricing**. You are taken back to the **Plan details** page where the new usage-based **Pricing** is shown:

<img src="https://mintcdn.com/m3ter/uB-nH3l_4oKUc0GG/images/Counters76.png?fit=max&auto=format&n=uB-nH3l_4oKUc0GG&q=85&s=939c3ff48e03692c1d1add2430d2754a" alt="Counters76" width="1188" height="527" data-path="images/Counters76.png" />

7. Under **Pricing**, select **Add counter-based pricing**. A **Select counters** modal appears.
8. Select **Dev License Counter** and then select **Confirm**. The modal closes and the selected Counter is now shown under Pricing:

<img src="https://mintcdn.com/m3ter/uB-nH3l_4oKUc0GG/images/Counters77.png?fit=max&auto=format&n=uB-nH3l_4oKUc0GG&q=85&s=823943ac0fccf026c071e5b2f1573875" alt="Counters77" width="1188" height="201" data-path="images/Counters77.png" />

9. Select the **create new pricing** text link. You are taken to the **Pricing editor** with the **Counter pricing>Create** page open.
10. Under **Pricing details**, create a pricing for the Plan using **Dev License Counter**:

* Set the period the pricing will apply to the Plan as July 1st 2025 through to June 30th 2026.
* Leave as default to **Bill in arrears**.
* Switch all of the pro-rating switches for Counter charges to disabled.
* Define a two-tiered pricing:
  * From 0 to 20 = \$5 per unit.
  * Over 20 = \$7 per unit

11. Select **Create counter pricing**. You are taken back to the **Plan details** page where the new counter-based **Pricing** is shown:

<img src="https://mintcdn.com/m3ter/uB-nH3l_4oKUc0GG/images/Counters78.png?fit=max&auto=format&n=uB-nH3l_4oKUc0GG&q=85&s=667fa9582e25e22d1bee84fcedfdaa5d" alt="Counters78" width="1187" height="337" data-path="images/Counters78.png" />

Lastly, attach the priced Plan to the Account

1. Open **Dev License n Store Account 1**, select the **Attached plans** tab, and select **Create plan attachment**. Here's the **Plan attachment details**:

<img src="https://mintcdn.com/m3ter/uB-nH3l_4oKUc0GG/images/Counters79.png?fit=max&auto=format&n=uB-nH3l_4oKUc0GG&q=85&s=a847c50083a34a19b754a438f70abb0d" alt="Counters79" title="Counters79" style={{ width:"57%" }} width="645" height="358" data-path="images/Counters79.png" />

* Note that for convenience, we've set up the period the Plan will be *active for the Account* to correspond with the period the *pricing applies to the Plan*.
* For the current example, we do not need to change any of the **Plan attachment settings**.

2. Select **Create plan attachment**.

We now have a Product Plan set up for hybrid pricing and attached to our example Account.

## Submitting Sample Product Consumption to Account

To be able to run billing against the Account, we'll need to submit some sample Product consumption for the Account for a specific billing period:

* Metered measures for stored data volumes used by the Account.
* Counter Adjustments for developer license numbers subscribed to on the Account.

**To submit sample Product consumption for the Account:**

First, submit some sample measures for stored data volumes:

1. Select **Metering**. The **Meters** page opens
2. For **Product** select **Dev License and Store**.
3. Select **Dev Store Meter 1** hotlink text to open the Meter's **Details** page.
4. Scroll down to the **Submit measurements** panel and select **Submit usage data**.
5. For **Account**, select **Dev License n Store Account 1** and submit two usage data measures using the Meter's **GigBytes Storage** field:

* A measure **Value** of **50**.
* A measure **Value** of **20**.
* Make the **Timestamp** for each usage measurement as a Date/Time in July 2024.

Second, post a sample Counter Adjustment to the Account:

1. Select **Accounts** and open the **Dev License n Store Account 1** page.
2. Select the **Counter adjustments** tab.
3. For **Counter**, select the **Dev License Counter** and then **Create counter adjustment**.
4. Create a single Counter Adjustment for July 1st 2024. Here's the **Counter adjustment details**:

<img src="https://mintcdn.com/m3ter/uB-nH3l_4oKUc0GG/images/Counters80.png?fit=max&auto=format&n=uB-nH3l_4oKUc0GG&q=85&s=358e151a7da687606c699ae1d9683ce8" alt="Counters80" title="Counters80" style={{ width:"63%" }} width="648" height="633" data-path="images/Counters80.png" />

5. Select **Create counter adjustment**.

We now have some sample product consumption entered for the Account for July 2025 - both data volume stored and number of Dev Licenses subscribed to for the month's billing period.

## Creating and Reviewing Bills on Account

We'll run billing for the **Dev License n Store Account 1** for the July 2025 billing period and review and check the Bill.

**To run billing for the Account:**

1. Open the **Dev License n Store Account 1** page and select the **Bills** tab.
2. Select **Run billing** and on the modal that appears enter:

* **Invoice date**. Use the calendar pop-out to select **August 1st 2025**.
* **Bill frequency**. Select **Monthly**.
* **Target currency**. Select **US Dollar**.

3. Select **Run billing**. The modal closes and the Bill job executes. When the Bill job completes the newly generated Bill is listed on the **Bills** tab.
4. Select the **Reference** hotlink text for the Bill. The Bill opens in **Bill management**:

<img src="https://mintcdn.com/m3ter/uB-nH3l_4oKUc0GG/images/Counters81.png?fit=max&auto=format&n=uB-nH3l_4oKUc0GG&q=85&s=85f835b13f6431003f630e4faf7cb2a5" alt="Counters81" width="1168" height="699" data-path="images/Counters81.png" />

On review, we see that line item charges for the hybrid pricing for the **Dev License ad Store** Product are combined in the single Bill:

* The 70 **GigBytes Stored** are shown as **Usage** and are calculated correctly according to the two-tiered pricing we set up using the **Dev Store Agg 1**.
* The 15 **Licenses** are shown as a **Counter running total charge** and are calculated correctly according to the two-tiered pricing we set up using **Dev License Counter**.
