Billing is the aggregation of all non-recurring, periodic, and chargeable events on an account-by-account basis. It is also the calculation of all outstanding charges and available discounts and bonuses.
The output from billing process is a stream of tagged bill data that can be used to create a bill on paper, disk, or any other media. Billing Engine, which is part of the Billing System, creates invoices.
The following diagram shows the basic diagram of the Billing Engine and associated functions −
The Billing Engine picks up an account to generate a bill and the following associated information to generate invoice data −
All the rated CDRs for the customer within the month of invoice.
All types of charges (initiation, installation, periodic, suspension, termination, etc.,) applicable for the customer's products and services.
If there is any refund or any other charges applicable.
Total outstanding from previous bills.
Total payments made by the customer in the given month.
Total adjustment passed in favor of the customer or against the customer.
Total discount given to the customer.
Total taxes applicable on customer's usage and rental charges.
Billing configuration parameter required to run the Billing Engine; for example, payment due date, etc.
The above-mentioned information is just an indicative and may vary from billing system to billing system and operator to operator.
Billing Engine produces raw data having all the information required to generate a final bill and this raw data can be used to generate a final invoice to be sent to the end customer.
When a customer is added into the Billing System, system assigns the customer a predefined Bill Cycle. A bill cycle is a date on which Billing Engine runs and produces bills for a set of customers.
If there are many customers, then they are divided into different billing cycles. For example, a group of customers can have billing data as 1st of every month; another can have the billing date on 15th of every month.
If a customer is assigned to run a bill on 1st of the month, this would be called customer's nominal bill date. But because of various reasons, many times bill run becomes delayed and actual bill gets generated on a later date, this would be called actual bill date.
There could be various types of bills available for a user. Few of them may not be supported by some Billing Systems.
|Sr.No.||Bill Type & Description|
Normally, only requested as the first bill on an account. Includes product charges and adjustments, but no events.
Produced at regular intervals. Includes all periodic charges, events, and adjustments.
An extra bill that contains charges due to events processed for the account since the last bill. Includes all events and adjustments, but no periodic charges.
Sent when an account has been suspended. Includes all periodic charges, events, and adjustments.
Sent when an account has been terminated to bill all outstanding charges that are due. Includes all periodic charges, events, and adjustments, along with any refunds; for example, the return of a deposit.
Sent when a terminated account has receivables outstanding after the production of a final bill. Includes any post-termination events and adjustments, but no periodic charges.
An extra bill that contains all adjustments in the customer's favor generated since the last bill.
A summary statement can be produced for a customer-driven billing hierarchy. It can summarize all the bills produced by all accounts associated with the respective customer. Optionally, they can also concatenate all the bills into a single statement.
Bills are produced either automatically or on request from a customer.
A Billing System can generate bills in two modes, for example −
Test (what if?) billing mode − This mode if used to produce formatted test bills whilst leaving the database unchanged. These bills are useful to make sure that system is working fine and test after making changes to bill templates or tariffs.
When running the Billing Engine in test mode, commits are not made to the database. So there would not be any impact on customer's profile even after running test billing many number of times.
Test bills are usually run for a sample set of customers. If you are satisfied with the test bills, then you can proceed for production bills.
Production (live) billing mode − This mode is used to produce normal production bills. Most of the time, this is the default mode for the Billing Engine.
Once a production bill is generated, Billing Engine updates customer's profile in the database with the total outstanding balance to be paid by the customer, and next bill date, etc.
Billing Engine assigns different invoice numbers to all the production bills which help in keeping track of different payments made against the invoice.
There may be a situation when it is not worth to generate a bill and better to suppress the bill. Following are such type of situations −
Suppressing bills for accounts with zero (zero activity bills) or very little value (small bills).
A particular type of bill can also be suppressed if multiple bill types are requested/scheduled at the same time and therefore preventing unnecessary bills from being sent to the customer.
A small bill is a bill that falls between the ranges defined by the minimum positive bill amount and the maximum negative bill amount, exceptional bill conditions. Small valued bills are produced and then removed from the billing process, so that they are not sent out to customers.
Examples of possible exceptional bills are unusually high bills or bills, which exceed the account's credit limit by a set multiplier. The Billing Engine performs some basic checks on the bill data that it produces. These involve testing the total being billed to ensure that the following conditions are met −
The bill total is greater than the minimum negative bill amount.
The bill total is less than the maximum positive bill amount.
The bill total is less than account's credit limit multiplied by the credit limit multiplier.
All the above conditions vary from billing system to billing system and operator to operator and they are called exceptional bills conditions.
By default, all the invoices provide a detailed summary of product and service charges along with usage charges. But it does not provide the details on all the calls made by the customer.
An itemized bill means giving complete details of all the calls made by the customer. This needs more number of papers to be printed. Recent trend is to send itemized bill through electronic e-mail and summary statement is sent using a physical copy of the bill.
There are Billing Systems, which provide Billing Formatting utilities, which can be used to generate final formatted bills.
Bill formatters take the output data produced by the Billing Engine and usually generate either Post Script file or a PDF file, which can be used by the Bill Printing Company.
If Billing System is not capable enough to generate formatted bills, then system generates a set of tagged files along with billing information and any external Bill Formatter can use that tagged information to generate a well-formatted invoice.
No matter, if Billing System generates formatted invoice or we use an external tool to generate these formatted invoice using raw data generated by the billing engine, finally these invoices are sent to the bill printing company, who takes care of generating final copy of generating invoice. We will discuss it in detail in the subsequent chapter "Invoice Generation."
Next chapter would explain discount process, which is actually a part of rating and billing process, but we kept it as a separate section because of the various that items need more explanation.
We will discuss different types of discount hierarchies and which can be given at the time of rating and billing.