There are design issues that go to the core of how a billing system is built and coded. One of these is deciding if you want it to process data in near real time or in a batch fashion.
Some businesses process CDR in a batch fashion, in which they run through all of the CDR generated for the day, week or month at the end of the period. In my opinion this can reduce hardware and programming costs and reduce the time it takes to process the CDR.
Computer hardware costs are lower because the data can be sorted before processing to optimize the time it takes to find a rate for a CDR. The processing can also be done at a time in which the system is not being used to enter rates and run reports.
In addition there is the consideration of the accuracy of the rates entered into the system. In a batch mode there is time for someone to go and double check the rates to make sure they are correct. Policies can be put in place that prevent rate changes any time close to the time that the batch rating will start.
There are very specific ways to optimize a billing system to work in this mode which conflict with the way one would optimize a real time system.
I am using the term near real time because of the cost involved with implementing a true real time system with response times of under a second. I consider near real time as being anything from fifteen minutes to one hour.
A near real time billing / rating system would process CDR as it comes in from the switch. Some switches can release CDR in a streaming fashion and others release in small batches as a programmed threshold of data is met. As this data is gathered from the switches it can be processed immediately by the billing system.
There are many advantages to processing in this way. The main reason is that decisions can be made more quickly to changes in the behavior of the network. In the long run a near real time system will allow you to make money making decisions quickly and produce much more profit.
Performance by CDR
Based on the data from CDR you can determine the quality of calls and your vendors. Being able to monitor this in real time will allow you to make routing decisions to quality routes. Now you don't need a rating system for this but one of the first steps in rating calls is loading the CDR into a database. If you are able to load both the completed and uncompleted calls into a system that can analyze them for performance and allow it to pass the completed call data to the rating engine it saves some time in processing it twice.
If the billing system is set up to calculate both your price to the customer and your cost you can use it to determine your gross margin. By watching the information as it is processed you can gain a near real time view into the margin that each customer is bringing to you. You can watch for places where calls are being sold at too low of a margin and make decisions that maximize profit. No more waiting to the end of the month to figure out what needs to be done next.
Using the processed information from the monitoring system and billing system you can offer your customers and even vendor visibility into your network. This could take the form of online billing, real time monitoring of performance, CDR mediation and many other things. I have even seen a vendor without a billing system to determine what to charge them by looking at reports generated by the customers billing system.
Least Cost Routing
In addition the performance data and the prices and costs in the monitoring system and billing system can be fed into an automated routing system. A routing system could suggest changes to the routing of calls that would improve a customer's quality and maximize profit. Based on changes to the costs you are being charged it could make changes that would route calls to vendors that have the lowest cost at a desired quality.
Many of the disadvantages have to do with the cost of maintaining a real time system. It just takes more people to run it.
There are lots of "do overs" in a real time rating system. Many times prices and costs are entered incorrectly. Since the cost of each call is determined separately there is a good amount of processing time going back over CDR that has been rated before but at the wrong price. This is often due to input error and rates being renegotiated after the fact. There is also the time that employees spend looking for errors involved to be considered. (Here are some methods for mitigating data entry errors.)
This is not as much of an issue with a batch system especially if it is doing its work at the end of a billing period.
A real time system does not have the advantage of working on a batch of CDR that is going to be processed identically. In a simple rating batch system one could sort on the phone number so that the price for that group of CDR would all have the same rate. This allows one to only load into memory the rates needed for that particular batch. A real time system has to take the CDR as they come. This will slow processing down unless a larger amount of memory is dedicated to storing rates.
Again there is the issue of people power that I mentioned before. You will need more people to take advantage of all of the features that real time billing brings. It may take more people in the areas of rate entry, reporting, programming, database administrators and system administrators.
With real time rating the rate entry personnel become very important. Prices and costs need to be put in before they become effective. If they are not in the system others may make routing and sales decisions based on old rates. In addition when the prices and costs are updated the billing system will have to go back and re-calculate the data.
AccuracyAccuracy of prices and costs become extra important in a real time billing system. Someone putting in a rate incorrectly can skew the reports wildly. For example by putting in $1.00 a minute instead of $.10 a minute can make your profit or costs appear to be very high. There are fail safe mechanisms that can be put in place to prevent most errors that are made during the rate entry process. It may be important to look into methods for double checking rates as you consider which billing system to use. I will describe these methods in a future article.
One of the key points in picking out a telecom billing system to use or in building one is determining if you need one that performs in a near real time fashion or a batch system. Be careful of batch systems that have been retrofitted to do near real time work or that claim to do both.
Overall I believe that a near real time billing system gives a company a distinct competitive advantage. Well, that is if the competition does not have one already.
In the next article I deal with differences between retail and wholesale CDR rating systems.