Our client (a large Russian mobile operator with approximately 120m subscribers) found that they had unexplained mismatches between pre-pay subscriber balances held within their SDP and balances calculated in a downstream BSS platform. Timing differences between the two datasets made accurate exception detection difficult and even after detection, they did not know which system held the correct balance and had no way to identify the source of the errors.
We designed a model to collect subscriber balance data from the SDP and BSS systems and identify balance differences at midnight each day. However, many balance differences will have been caused by issues that had occurred months or years earlier (and not useful for identifying the error cause). To overcome this, PhixFlow was configured to compare the balance differences for each subscriber between days. (A powerful feature in PhixFlow is built-in handling of data over time). On start-up, PhixFlow identified the “base offset” for all subscribers i.e. if a subscriber’s balance difference is the same X roubles over three days, then we can be pretty sure that past errors had already introduced a mismatch of X roubles. This difference is then automatically adjusted for in future comparisons.
PhixFlow then continues to monitor for (additional) balance differences and when detected, checks that the same difference is detected for three days in a row (to remove the possibility that the mismatch was not just caused by a process timing difference).
For each of the exceptions identified through the logic above, PhixFlow then automatically fetches priced CDR and prepay recharge records (from the date that the difference was first identified) and calculates the expected balance. User screens were then set up to allow users to drill down on exception cases to see the SDP balance, BSS balance and calculated balance together with full details of call records and recharges.
After just a few weeks of running this model, PhixFlow identified that the cause of the mismatches was due to batches of CDRs which were being missed from downstream processing. The information collated from the (now known) missing CDRs enabled the root problem to be identified and fixed so that no new balance mismatches occurred.