# Pricing models

Upodi provides support for various monetization models. A monetization model consists of a pricing model and a charge type.

Upodi supports:

- Flat fee
- Per unit
- Tiered pricing
- Volume pricing
- Percentage of Quantity
- Percentage of Subtotal

The following outlines the different use.

Please be aware

Due to support of underlying finance systems (ERP), Upodi will handle all decimals when calculating tier and volume pricing, by supplementing quantity with 1 x the calculated price and adding the full quantity of this to the invoice line. ERP systems often calculate pricing of amount x quantity price, rendering the full amount wrong if decimals becomes larger than 2.

**Flat-fee**

**Flat-fee**

A *flat fee* pricing model bills a subscription a fixed amount in the term of the subscription. Flat fee pricing models ignore the quantity of the subscription charge, however, a subscription charge quantity of 0 will ignore the fee in a billing cycle.

Flat fee pricing models are usually used for sign-up fees, cancellation fees and based level subscription fees.

**Per-unit**

**Per-unit**

A per-unit pricing model, multiplies the per-unit amount with the quantity of a subscription charge. The following formula is used

```
quantity * per-unit price
```

Per unit fees are often used in SaaS subscription plans (per user) or mobile data plans (per gb data).

**Tiered pricing**

**Tiered pricing**

A tiered pricing model offers a flexible billing based on the quantity amount of a subscription. A tiered pricing model is calculated based on the quantity tier and type of that tier multiplying each tier of the full quantity.

Each tier can be charged by *per-unit pricing* level (see above), a *Flat fee* level (see above) or a percentage of quantity model which also comes with a minimum and a maximum.

#### Example:

A tiered pricing model is calculated by the sum of all tiers matching the volume. Let's try to define this by looking at a sample table.

Tier | Pricing level | Pricing | Range |
---|---|---|---|

A | Per-unit | $20 per unit | 1-100 |

B | Per-unit | $15 per unit | 101-200 |

C | Per-unit | $10 per unit | 201-300 |

A tiered pricing model for a quantity of 130, will sample calculation of *tier A* plus *tier B* but not *tier C*. The calculation is done as follows:

```
Tier A = 100 * $20 (per unit) = $2.000
+
Tier B = 30 (remainder) * $15 = $450
================
Totals = $2.450
```

Invoice output

The output of a tiered pricing is multiple lines applied to the same invoice to illustrate each tier that matches the quantity.

**Volume pricing**

**Volume pricing**

A volume pricing models looks for a given tier of the volume pricing model, and calculates the total quantity of this tier. So it is basically the same as the tiered pricing model, but only one of the tiers are chosen for the billing.

#### Example

Using the sample table from above (tiered pricing), a volume pricing model, calculated with a quantity of 130, is done as follows. 130 matches tier B:

```
Tier B = 130 * $15 = $1.950
================
Totals = $1.950
```

Invoice output

The output of a volume pricing is a sinlge line of the tier that match the quantity. Please be advised that the quantity is stored within Upodi in both the quantity field (being the input quantity), and the internal quantity field (being 1 for flat fee or the quantity on a per unit).

### Percentage of Quantity

The percentage of quantity pricing model will bill a percentage of the quantity field of the subscription charge. This also comes with a minimum and a maximum threshold for the percentage calculation.

#### Example

If the percentage is 0.75% with a minimum of 10$ and a maximum of 100$.

```
Quantity 1500: 1500 * 0.075 = 112.5$
Quantity 100: 100 * 0.075 = 7.5$ (7.5<10$) = 10$
```

This is particularly useful in combination with the Charge Type Metered option, which can calculate a complex quantity score based on the usage data you enter.

### Percentage of Subtotal

Bill a percentage of the subtotal of all other charges being billed. Again comes with a minimum and a maximum.

## Questions?

We're always happy to help with code or other questions you might have! **Search** our documentation or contact **helpdesk**. You can also chat live with us using the Intercom icon.

Updated 23 days ago