From a billing perspective, CPBM reconciles its books every billing period. Depending on an implementation's need, the definition of a billing period can be changed. CPBM supports three models for defining billing periods. There are two configuration properties in CPBM that control this behavior, namely billingPeriod.type and billingPeriod.config. The billing type determines which model CPBM uses to compute billing periods. The billingPeriod.config is interpreted differently depending on the billingPeriod.type. The different billing mode types are:
- FIXED_DAYS: This model defines a billing period as a fixed number of days. The billingPeriod.config in this case determines the number of days that make a billing period. This is counted from the 'anniversary date' of an account, which is the date on which the account is registered. CPBM will then compute every billing period as x (determined by billingPeriod.config) number of days from the end of the last billing period (or from anniversary date for the first time). The common value for billingPeriod.config between 28 and 31.
- FIXED_DATE: This model defines a billing period as a calendar month ending the day before a fixed date every month. The billingPeriod.config in this case is the date on which the billing period is reconciled (in other words, the books are closed for the month ending the day before). For example, if billingPeriod.config is 1 (a common setting), then the account statements are posted on the 1st of every month. In the fixed date model, the billingPeriod.config cannot be greater than 28.
- ANNIVERSARY_DATE: This model is a variation on the FIXED_DATE model and defines a billing period as a calendar month ending the day before a fixed date every month, but the date being determined by the anniversary date (that is the date the customer registered) of each customer independently. This means customers who registered on the 5th will have their billing periods end on the 4th of every month, but a customer who registers on the 12th will have the billing period end on the 11th of every month. Customers who register on dates after the 28th get reset to the 28th starting the second month. In this model, the billingPeriod.config is ignored.