May be you are very confused about title. Well let me explain what does it mean. Recently we [khalid bhai & me] were working on a paper for ICCIT2007. Our paper title is “Numerical Round-Off Error in Cellular Phone Services Billing System“. Actually it was an outcome of one of our undergrad mathematics course named “Numerical Methods“. We found here very interesting error. Due to computer’s floating point number handling system we had got an interesting findings that is a block of money generated which is not owned by any one either a customers or cellular operators.
Bangladesh, at present, is a country of approximately 30 million cellular phone subscribers with a “market expansion of 200% over the years 2004-2007“. The six cellular service operators i.e. Grameen Phone, AKTEL, Citycell, Teletalk, Banglalink and Warid are in continuous competition to grab more customers. Competitive advantages of these cellular operators are upheld by increasing network area and decreasing interruption; adding services.
Most customers are allured to buy a new cell phone or change operator to reach tariff facilities, for example “0.80 Tk/min for 5 Friends ‘n’ Family numbers” and “1-Second Pulse from first minute“. Some of the telecom operators offer 1-second pulse to its post-paid subscribers with 2.5, 2.00, 1.5 and 0.80 Taka per-minute rates for different time bands and call destinations. When such rates are divided by 60 to calculate per-second charge and multiply that calculated value with number of seconds in airtime usage, these operations and results involve round-off error and preparing bills taking only two places after decimal.
Well, may be there is question arise how does floating point arithmetic’s work? Actually it’s pretty simple. In floating point summation of large numbers, round-off error can be reduced to minimum by following steps :
1. sort numbers in ascending order,
2. add first two numbers
3. repeat step 1 and 2 until there is only one number left to add.
At each step normalization is employed in the computer. In case of multiplication and division operations involvement, precedence should be given by multiplying first and then dividing.
How cellular companies are going to set their tariff plans? India’s BPL Company was the first cellular service provider in this subcontinent to introduce the concept of 1-second billing across its markets- Mumbai, Maharashtra, Goa, Kerala, Tamil Nadu and Pondicherry since September 1, 2004. On postpaid, BPL Mobile subscribers enjoy 2 paisa/second for local outgoing calls to all phones. On prepaid, subscribers can get a standard call rate of 3 paisa/second for local outgoing calls to all phones.
Presently many companies in the world including telecom operators in Bangladesh are providing such 1-second pulse billing service. In June 2005 one of the telecom operators (AKTEL) in Bangladesh began to provide 1-second pulse service for its post-paid subscribers.
How did we simulate this with data sourcing and sampling? We had colleted two itemized bills, for 200 taka each, as in given Table. These itemized bills include date, time, airtime duration, airtime band and airtime amount of each SMS, PSTN NWD outgoing, mobile-to-mobile outgoing, PSTN local outgoing, IDD outgoing and PSTN incoming calls. VAT is applied on the total airtime use.
Subscriber’s Two Itemized Bills For Data Analysis
Bill No.
|
Duration of Usage
|
Mobile to Mobile Airtime Amount
|
No. of Calls
|
1
|
15/12/2005 – 14/01/2006
|
1052.02 taka
|
237 Calls
|
2
|
15/06/2006 – 14/07/2006
|
1053.74 taka
|
273 Calls
|
Numerical Methods and Software Tools we were Used
1) True Bill Value Calculation
Collected itemized bills are stored in an Oracle database. Each call’s bill (items) are calculated and stored with 32 places of decimal accuracy (assumed as true value) and 2 decimal places of round-off itemized bills are simulated. Probable computation error in this simulation is checked by comparing itemized bills and total billed value against service provider’s billing statement.
2) Percent Relative Errors in the First Minute
Percent relative errors for both bills are calculated in Oracle using equation 1. Microsoft Excel 2003 is used to calculate percent relative errors with 15 places of accuracy to show error occurring for call terminating at different seconds of the first minute, applying different per minute tariff rates.
The relative error can also be multiplied by 100 percent to express it as
where, εt designates the true percent relative error.
3) Positive and Negative Percent Error
Total percent error is calculated using the equation 1 on assumed true value and the billed amount. For example, considering 3.5 taka/minute rate, 15 seconds of airtime usage’s true bill is 0.875 but is recorded as 0.88, resulting error of 0.005 taka extra for the company which involves percent relative error of 0.571428571% (using 15 places of decimal). Similarly, considering 3.5 taka/ minute rate, 16 seconds of airtime usage’s true bill is 0.93333333 is recorded as 0.93, resulting error of -0.003333333333 taka extra for customer and percent relative error of -0.357142857(using 15 places of decimal).
4) Total Absolute Error and Total Percent Absolute Error
The following equation shows the calculation of total absolute and total percent absolute error.
Total Absolute Error = ∑abs(Error) |
|
Total Percent Absolute Error = ( ∑abs(Error)*100/( ∑True Total Bill))%
|
|
5) Operator Precedence in Bill Simulation
To reduce round-off error during mathematical operations itemized bills are calculated using the following equation
(Call Rate × Airtime in Number of Seconds )/ 60
|
|
Fig.1. Error in Considering 1.50 Taka/Min Rate
Percent Relative Errors for Two Bills
Percent Relative Error Analysis?
In above Table, for both bills, positive error, negative error, absolute error and effective true errors are shown. Effective error, which is the difference between positive and negative error, shows that in both bills customer loses and the operator wins. In the first billing statement, 0.91166667 taka was overcharged against 1052.02 taka billed amount over 1051.10833333 taka true bill which is 0.0867338444340497728588077664053% excluding VAT. If we consider this error as 0.09%, this would also involve round-off error. In second billing statement, 0.10666667 taka was overcharged against 1053.74 taka billed amount over 1053.63 taka true bill which is 0.0101236989465025783795754373754% excluding VAT. Accepting the fact that depending on calling behavior of a user such error could increase or decrease, let us take the average of these two percentage error. This would be 0.04842877169027617561919160189%.
For the sake of analysis, let us assume that in 2007 June, the service provider has 100,000 active post-paid subscribers paying about 2,000 taka per month for their airtime usage (excluding VAT) and average percent error is 0.04842877169027617561919160189%. Per month revenue would be 2,000 × 100,000 × 1.15 = 230,000,000 Taka (including 15% VAT). Due to round-off error overcharged amount would be 230,000,000 × 0.048428771690276175619/100 = 111,386.18 taka (with two places of decimal) per month and 1,336,634.099 taka per year. Such an accumulated amount could be a less or more in reality, depending on customer’s calling pattern, behavior, airtime usage during each call etc. Such is extremely probabilistic. But there is no doubt that the accumulated error value is not negligible.
Lastly we will stick on a point that is all telecom operators in Bangladesh and elsewhere in the world whoever has inconsistency between tariff plan and pulse billing system, should offer their rates in terms of “per pulse”, otherwise such round-off error will continue to occur. Making “nobody’s money” to “somebody’s body” knowing such fact of round-off error should be discontinued. Isn’t it interesting a block of money generated that owned by none !!!