Prorata Billing

From WHMCS Documentation

In WHMCS 8.2 and later, you can choose to use prorata billing with product addons. Prorata billing synchronizes billing to a specific day of the month.

Prorata billing is popular in part because it enables you to control customer due dates. This allows you to line up income from customer payments with the payment schedule you have with your vendors. It also provides convenience for your customers, since shared due dates reduce the number of invoices your customers receive and provide a consolidated view of their purchased services.

For product addons, WHMCS uses the prorata date setting from the associated parent product or service instead of a separate date. WHMCS will then bill for the product addon and the parent product or service on the same day of the month for their respective billing cycles.

Examples
See below for example scenarios using prorata billing with product addons.

  • These are examples only and do not represent all of the possible combinations in WHMCS.
  • For simplicity, these examples only discuss a single parent product and a single product addon. In real-world scenarios, you will likely offer multiple products and addons in various configurations.

Example Setup

In these examples, an admin wants to create a product and associated product addon that offer prorata billing. The initial billing period for the customer depends on the settings for each product and addon and their purchase dates.

To begin creating this scenario, the admin could create a Shared Hosting product with the following settings:

  • Recurring as the Payment Type.
  • All possible billing cycles enabled.
  • Prorata Billing enabled.
  • 1 as the Prorata Date value.
  • 20 as the Charge Next Month value.

The admin could then create a Dedicated IP product addon with the following settings:

  • Recurring as the Payment Type.
  • All possible billing cycles enabled.
  • Prorata Billing enabled.

Purchasing Products and Addons Together

Given these settings, a customer could purchase Shared Hosting as the parent product and Dedicated IP as the product addon.

Purchasing these together on a given date would result in the following initial billing periods for the following billing cycle configurations:

Product Billing CycleAddon Billing CycleInitial Billing Period for January 22nd PurchaseInitial Billing Period for February 10th PurchaseNext Addon Billing Period for January 22nd PurchaseNext Addon Billing Period for February 10th Purchase
MonthlyMonthlyJanuary 22–February 28February 10–February 28March 1–March 31March 1–March 31
MonthlyQuarterlyJanuary 22–March 31February 10–March 31April 1–June 30May 1–July 31
AnnuallySemi-AnuallyJanuary 22–June 30February 10–July 31July 1–December 31August 1–January 31 (next year)
AnnuallyAnnuallyJanuary 22–December 31February 10–January 31 (next year)January 1–December 31 (next year)February 1–December 31 (following year)

Charge Next Month Values

Because Charge Next Month is set to 20, the initial billing period for purchases after the 20th of the month extends until the end of the next billing cycle. For monthly billing, this means billing through the next month, while quarterly billing would extend through the next quarter.

  • Because the purchase on January 22nd is after the Charge Next Month date, the initial billing period includes both the remainder of that month (January) and the full billing period that applies to the following month (for example, through the February 27 for the Monthly addon billing cycle).
  • Because the purchase on February 10th is before the Charge Next Month date, the initial billing period only includes the remainder of that billing cycle.

If, however, the admin did not use Charge Next Month but retained all of the other settings above, the billing periods and behavior would depend on the Prorata Date setting and the method the admin used to disable Charge Next Month (using a setting of 0 versus 32). For more information, see Products and Services.

Short Prorata Periods

When customers make purchases at the end of a month, prorata billing can help to ensure that their initial payment is for more than just a day or two.

For example, purchasing a product and addon with the above settings on February 27th would result in the following billing periods and billing cycles:

Product Billing CycleAddon Billing CycleAddon's Initial Billing PeriodNext Addon Billing Period
MonthlyMonthlyFebruary 27–March 31April 1–April 30
MonthlyQuarterlyFebruary 27–April 30May 1–July 31
AnnuallySemi-AnuallyFebruary 27–July 31August 1–January 31 (next year)
AnnuallyAnnuallyFebruary 27–January 31 (next year)February 1–January 31 (following year)

Prorating to an Exact Day of the Month

An admin might want to configure prorata billing to ensure that billing cycles start on a specific day of the month. To do this, both the parent product and the addon must have the same configured billing cycle.

  • For example, a parent product may have the Monthly, Annually, and Triennially billing cycles configured. To bill on the same schedule, you must configure the Monthly, Annually, and Triennially billing cycles for the addon as well.
  • To match billing cycles to the same day of the month each month, choose Monthly.

If a product and addon do not share a billing cycle, they will use the default WHMCS billing behavior.

Purchasing Addons for an Existing Product

Using the settings above and a Prorata Date value of 1, a different customer may have purchased Shared Hosting on January 1st but did not purchase any associated addons.

If, on February 10th, they later purchase Dedicated IP separately to add to their existing Shared Hosting product, the addon would use the following initial billing periods for the following billing cycle configurations:

Product Billing CycleAddon Billing CycleShared Hosting Next Due DateInitial Addon Billing PeriodNext Addon Billing Period
MonthlyMonthlyMarch 1February 10–February 28March 1–March 31
MonthlyQuarterlyMarch 1February 10–April 30April 1–July 31
AnnuallySemi-AnuallyMarch 1February 10–July 31August 1–January 31 (next year)
AnnuallyAnnuallyMarch 1February 10–January 31 (next year)February 1–December 31 (following year)

In this example, the existing Shared Hosting product retains its existing due dates.

For the combination of Monthly product and addon billing cycles, this means that the product and addon will bill on the same date each month beginning on March 1st. Whenever a product and addon with these settings share the same billing cycle, the addon is automatically prorated to the existing service's Next Due Date.

Meanwhile, for the Annual and Semi-Annual example above, the product will continue to bill on January 1st each year while the addon will be billed on January 1st and July 1st.

Purchasing Prorata Addons for Non-Prorata Products

In a slightly different scenario, the admin may have disabled Prorata Billing for Shared Hosting but kept it enabled for Dedicated IP.

If, on January 22nd, another customer purchases Dedicated IP and Shared Hosting together with this configuration, they could share the following initial billing periods for the following billing cycle configurations:

Product Billing CycleAddon Billing CycleShared Hosting Next Due DateInitial Addon Billing PeriodNext Addon Billing Period
MonthlyMonthlyFebruary 22January 22–February 21February 22–March 21
MonthlyQuarterlyFebruary 22January 22–April 21April 22–July 21
AnnuallySemi-AnuallyJanuary 22 (next year)January 22–July 21July 22–January 21 (next year)
AnnuallyAnnuallyJanuary 22 (next year)January 22–January 21 (next year)January 22–January 21 (following year)

Because the product does not use prorata billing, it is billed on the day of the initial purchase (the 22nd). The addon will behave as though prorata billing is not enabled for it and, like the product, WHMCS will calculate the billing period based solely on the billing cycle length and purchase date.