Subscription management

The second planet of our billing journey is the Planet of Subscriptions. On this planet, we do not deal with events anymore but with subscriptions which will be processed by batches.
The different layers on this planet are not invoked at the same pace :
  • Once consolidated, the events are rated right away as they are made available.
  • The Billing and Taxing activity is performed by cycles which periodicity is usually once a month.

The Rating operation consists in calculating a price for a given transaction as if this transaction was billed as a single event without any associated commercial tarif plan, similar to the Pay-Per-ride in the metro where you pay for each trip you make.

Rating very often relates to time …

  • Linear function : For an A to B call, you pay for the duration of the call, once rounded per minute or second applying a price per minute or second.
  • Time range based linear function : Similar to the previous category but the rate varies over time. As an example, a parking fee where the 15 first minutes are free or costs 1$ and any additional minutes on top would then be valued at 10 cents each.
  • Time range based linear function with a setup cost : Same as above adding an initial 15cts to setup the call (or entering the parking space) plus the time you spent.

but can also relates to many other indicators such as Power consumption when charging your Electric Vehicle for example:
Depending on the power line, the rate per kWh is going to be different.
As the charging is not linear, the price will also depend on the level of charging or on the time you spent on the charging point.

As you can imagine, many Off-The-Shelf models are already available and we can invent and create many others. Our rating functional layer is flexible enough not to limit your creativity.

Thanks to a concept of look up table, we can aggregate the price lists in the way that suits you. For instance, at the rating level we could use the country where the call is made to assign it to a predefined tariff zone and then retrieve the right price to apply.


The billing operation is required to calculate the global amount of your invoice.

Usually manually launched on a dedicated batch of subscriptions, this consists in the following actions :

  • Bundle all the events, calculating the SUM/AVERAGE/MIN/MAX … of duration, consumption, or any other input the bundle is built upon.
  • Apply bundle rules on the subscriptions.
  • Mark some or all of the bundle’s transactions as free (zero rate) if and when they are included in a bundle package.
  • Create discounts transactions based on bundle indicators : total call duration, total consumption, etc…
  • Create commitment fee transactions if the bundle doesn’t meet the customer commitment requirements
  • Apply flat fees (if any) of the subscriptions.
  • Various periodicity : one-shot, monthly, yearly etc…
  • Prorated calculation where applicable.
  • Applied upfront or on due date.
  • Resiliation fee

All these calculations are done net of tax which will be added by the following layer.


The last layer of this subscription planet relates to the taxation. Tax regimes are generally dependent on the countries and some as in North America have very specific rules applicable to the Telco business. In some instance, taxation is managed within the ERP or any accounting system. When this is the case, this layer is not used but be sure if you want to use it, BillingLabs can deal with any tax mechanisms and regimes.

VAT case :

  • BillingLabs has a built-in VAT management feature.
  • There are two ways for VAT to be applied : the billable accounts and the transaction types.
  • Within the user modeling, a flag defines whether the account is “taxable” or “Exempted”. If exempted, no tax treatment is performed, .For all the other accounts the general VAT calculation mechanism applies

All the rated and billed transactions have been mapped to a product code. Each product codes has a corresponding tax code that gives the VAT rate to apply. The taxing process sums all the transactions with the same tax code and applies the corresponding rate creating an additional transaction. This operation is performed by batches of transactions with the same tax code.

This system can be easily customized for additional tax regimes based on equivalent mechanisms.

North America specific case:
In some countries like the US, Canada, India and some south American countries, each transaction could be eligible to tax at multiple jurisdiction level such as the city, county, state, federal levels. To make it even more complex, those regimes can vary over time and fortunately, third parties have developed dedicated systems we can interconnect to. So for each transaction, we push all the required information – usually the locations of the caller, the calling, the service and the billing address and the type of transaction (sub / event) – to this external system which will calculate the tax to be applied. As a result and in certain specific cases, it is not unusual to see more than one tax line per transaction. On BillingLabs side we retrieve the full lists of additional transactions to be aggregated and displayed on the invoice.

This optional layer is the last stop-over of our journey on the Subscription planet and it is now time to move to the Document planet.