1. Home
  2. Documentation
  3. Selling with Freemius
  4. Automatic discounts in Checkout

Automatic discounts in Checkout

Freemius Checkout is highly optimized for upsells. For example, if you’re selling both monthly and annual subscriptions, our Checkout will automatically upsell the annual pricing to your customers.

The checkout performs the upsell by automatically calculating the discounts when upgrading from a single unit monthly pricing and displaying the discount in the UI. Below is an example of how the checkout will display both annual discount and multi-site discount.

Freemius checkout annual and multi-unit discount

These discounts are calculated automatically; no additional setup is required from your side. Understanding how these discounts are calculated can help you better price your products and explain value to users.

There are three main types of automatic discounts:

  • Annual Discount
  • Multi-unit Discount
  • Bundle Discount

A unit is the measure of primary entitlement of licenses you sell through Freemius. For SaaS, it could be credits; for Apps, it could be activations; for WordPress products, it is a Site. Freemius allows you to customize the unit label in the product settings.

Annual Discount

This discount applies when your product is available in both monthly and annual billing cycles.

Freemius checkout annual discount

If your product has a monthly price set, Freemius multiplies that monthly price by 12 (to represent a full year). Then, it compares that amount to your actual annual price. If the annual price is lower, the difference is shown to the customer as a discount.

Annual Discount = (Single Unit Monthly Price ร— 12 - Single Unit Annual Price) ร— Number of Licenses

Example

Let’s say a product has the following pricing:

Freemius sample product pricing for automatic discount

Units Monthly Price Annual Price
1 $10 $100
3 $25 $250
5 $40 $400

The table below shows the annual discount for different numbers of licenses.

Number of Units (Licenses) Calculation Annual Discount
1 (10 ร— 12 โˆ’ 100) $20
3 (10 ร— 12 โˆ’ 100) ร— 3 $60

Notice that when purchasing multiple units (licenses), we do not take the monthly and annual price of that pricing into account. This allows us to show multi-unit discounts separately.

Disabling the Annual Discount

  • You can set the annual_discount setting to false in the JS SDK to disable the annual discount.
  • If you’re using the Hosted Checkout, simply pass annual_discount=0 to the checkout URL as a query parameter.

Multi-unit Discount

This applies when a customer selects more than one license unit, e.g., a 5-unit license (excluding unlimited licenses).
Freemius calculates what the total would cost if each license was priced individually (based on the current billing cycle), and then compares that to the actual price shown for the multi-license purchase.

Freemius checkout multi-unit discount

Multi-unit Discount = (Single License Price ร— Number of Licenses) - Current Price

Example

For the same pricing configuration as above, the table below shows the multi-unit discount for different numbers of licenses.

Billing Cycle Number of Licenses Calculation Multi-unit Discount
Monthly 3 (10 ร— 3) โˆ’ 25 $5
Annual 3 (100 ร— 3) โˆ’ 250 $50
Monthly 5 (10 ร— 5) โˆ’ 40 $10
Annual 5 (100 ร— 5) โˆ’ 400 $100

Disabling the Multi-unit Discount

  • You can set the multisite_discount setting to false in the JS SDK to disable the multi-unit discount.
  • If you’re using the Hosted Checkout, simply pass multisite_discount=0 to the checkout URL as a query parameter.

When the annual discount is disabled, the multi-unit discount is calculated based on the current billing cycle price and not the monthly price.

Bundle Discount

This applies when your product is part of a bundle of multiple products like plugins, themes, or add-ons.

Freemius checkout bundle discount

  • We calculate the sum of individual prices of all child products in the bundle. Let’s call this the base price.
  • The annual and multi-unit discounts are calculated based on the bundle’s pricing.
  • The remaining discount, after deducting the annual and multi-unit discounts, is attributed to the bundle discount.

Base Price Calculation Modes

The base price (undiscounted price) is calculated based on the bundle_discount setting.

bundle_discount What Freemius Uses
maximize (default) Single Unit Monthly Price of each child ร— current months ร— license count
true Current Unit and Current Billing Cycle Price of each child

Example

Let’s say we have two plugins, A and B, with the following pricing:

Plugin A Plugin B
Monthly price $10 $20
Annual price $100 $200

In such a scenario, the bundle discount will be calculated as follows:

With bundle_discount set to maximize

  • Child sum = (10 + 20) ร— 12 = $360
  • Bundle price = $260
  • Bundle discount = $360 โˆ’ $260 = $100

With bundle_discount set to true

  • Child sum (annual) = 100 + 200 = $300
  • Bundle price = $260
  • Bundle discount = $300 โˆ’ $260 = $40

When bundle_discount is not set to maximize, we intentionally do not show the Annual Discount percentage in the UI, because the breakdown price of the individual product changes based on the billing cycle itself.

Disabling the Bundle Discount

  • You can set the bundle_discount setting to false in the JS SDK to disable the bundle discount.
  • If you’re using the Hosted Checkout, simply pass bundle_discount=0 to the checkout URL as a query parameter.

That covers everything about automatic discounts in Freemius Checkout. Based on these discounts, Freemius Checkout will automatically display various upsells to customers.

Let us know if you have questions or would like to optimize your pricing setup!