Telecommunication service providers typically provide multiple types of services to customers. For example, a large telecommunication service provider may provide “wired” services, such as telephone, Internet, or television services, and wireless services for mobile devices. Combining telecommunication usage information for billing and/or analysis can be a complex process. Information must be collected and processing within relatively short intervals to identify trends, trigger alerts, and/or certify outgoing bills. Furthermore, usage information from legacy systems may need to be integrated with information from newer systems to enable consolidated billing and/or analysis.
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
Service provider network 110 may, for example, collect customer account and/or usage data, relating to each of customers 120, to generate bills for services and to monitor customer activity. In one implementation, service provider network 110 may include a billing operations and certification platform 125 that receives data from multiple systems (e.g., television systems, internet services systems, telephone systems, wireless communications systems, etc.) within service provider network 110. Billing operations and certification platform 125 may include processes requiring certification of bills (e.g., prior to issuing to customers) and other internal supervisory functions.
Systems and/or methods described herein may provide user interfaces to supervise activities of multiple systems affecting billing operations and certification platform 125. In one implementation, devices may receive, from multiple business processes, real-time billing data relating to the multiple business processes. The multiple business processes may include, for example, both mainframe systems and open systems for different telecommunications services. The devices may compile the real-time billing data into summary tables corresponding to metrics for the multiple business processes and may store the summary tables corresponding to the metrics for the multiple business processes. The devices may receive, from a user device, a request to present a dashboard user interface including particular charts of the multiple business processes and retrieve, from the summary tables, data to populate the particular charts for the dashboard user interface. The devices may provide, to the user device, a configuration interface for presentation of the particular charts for the dashboard user interface and may provide, to the user device, the data to populate the particular charts for the dashboard user interface.
Billing analyzer module 210 may include one or more server devices, or other types of computation or communication devices, that gather, process, search, and/or provide information in a manner described herein. For example, billing analyzer module 210 may receive data from business systems 240, synthesize the data, and generate metrics that are relevant to business operations. Billing analyzer module 210 may process the data and populate summary information in respective tables which can be input for dashboard user interface module 220. Billing analyzer module 210 is described further below in connection with
Dashboard user interface module 220 may include combination of hardware and software to provide user access to summary information from billing analyzer module 210. For example, dashboard user interface module 220 may showcase the trending of real-time billing metrics, as well as provide alerts of any deviation in trending from one period over another. Dashboard user interface module 220 may include, for example, an application designed to easily add or remove trends from the dashboard with just configuration of a new chart via a web page interface. Dashboard user interface module 220 may have separate modules to separately track alerts, track trends, and track combined billing metrics. Dashboard user interface module 220 is described further below in connection with
User device 230 may include one or more computing devices, servers, or other types of computation or communication devices, that provide secure internal access to dashboard user interface module 220. User device 230 may, for example, allow users (e.g., employees of a service provider) to communicate with components of billing operations and certification platform 125 via private secure connections. For example, in one implementation, user device 230 may include a web browser. Users may use user device 230 to submit configuration settings, view real-time data, monitor particular metrics, etc. related to one or more components of billing operations and certification platform 125.
Business systems 240 may include profile, billing, and/or production processing systems that generate data. Generally, business systems 240 may include any combination of databases, servers, processes, or protocols used to accomplish a business objective. One example of a business system is a billing system that may store user account or service information and handle processes such as invoice generation, payment tracking, rebate tracking, etc. The billing system may be a physically distributed system implemented by a number of computer devices. Business systems 240 may include multiple types of platforms. For example, business systems 240 may include billing systems from multiple different platforms, such as mainframe platforms, open platforms (e.g., Unix, Linux, etc.), etc., and multiple different services (e.g., different telecommunications services, such as wired and wireless services). Each of business systems 240 may generate data at different intervals, on a cyclic and/or ad hoc basis. For example, some business systems 240 may generate monthly data compilations, while other business systems 240 may generate data incrementally. In some instance, business systems 240 may generate data in binary code, while in other business systems 240 may generate numeric data. In another implementation, business systems 240 may include internal systems for managing other business systems, such as certification, operations, and/or reporting systems for other business systems 240.
Although
Bus 310 may permit communication among the components of device 300. Processing unit 320 may include one or more processors or microprocessors that interpret and execute instructions. In other implementations, processing unit 320 may be implemented as or include one or more application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or the like.
Memory 330 may include a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by processing unit 320, a read only memory (ROM) or another type of static storage device that stores static information and instructions for execution by processing unit 320, and/or some other type of magnetic or optical recording medium and its corresponding drive for storing information and/or instructions.
Input device 340 may include a device that permits an operator to input information to device 300, such as a keyboard, a keypad, a mouse, a pen, a microphone, one or more biometric mechanisms, or the like. Output device 350 may include a device that outputs information to the operator, such as a display, a speaker, etc.
Communication interface 360 may include a transceiver (e.g., a transmitter and/or receiver) that enables device 300 to communicate with other devices and/or systems. For example, communication interface 360 may include mechanisms for communicating with other devices, such as other devices of network 100 or another device 300.
As described herein, device 300 may perform certain operations in response to processing unit 320 executing software instructions contained in a computer-readable medium, such as memory 330. A computer-readable medium may include a non-transitory memory device. A memory device may include space within a single physical memory device or spread across multiple physical memory devices. The software instructions may be read into memory 330 from another computer-readable medium or from another device via communication interface 360. The software instructions contained in memory 330 may cause processing unit 320 to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
Although
Analyzer database 400 may generally store information fed to billing analyzer module 210 from business systems 240. Analyzer database 400 may provide a real-time repository for data relating to business processes in billing operations and certification platform 125.
Load processes 410 may provide a common format for data fed from business systems 240. For example, load processes 410 may receive and format data for storage in respective tables 420. Data may include, for example, billing process data from a particular business systems 240. Thus, in one implementation, each of load processes 410 may update a particular table 420 (or set of tables) within analyzer database 400. In another implementation, load process 410 may receive data that defines how other data from load processes 410 may be summarized. For example, load process 410 may identify particular data fields for certification measurements, operations metrics, and/or reports that can be used by scheduler/report generator 430 to generate summary report tables. Thus, in some instances, load processes 410 may not feed into a particular table 420, but instead may feed directly to scheduler/report generator 430.
Tables 420 may include formatted data received from load processes 410. For example, tables may include may include data fields that may represent process metrics and/or actual bill data relating to billing operations and certification platform 125.
Scheduler/report generator 430 may use data from tables 420 to generate and update reports for dashboard reports tables 440. For example, scheduler/report generator 430 may generate particular tables for dashboard report tables 440 based on configuration tables that identify particular feed files and/or metrics to be presented by dashboard user interface module 220. Scheduler/report generator 430 may extract/receive data from tables 420 based on the configuration tables and generate metric-specific tables for dashboard reports tables 440.
Dashboard report tables 440 may include reports generated by scheduler/report generator 430. Dashboard report tables 440 may be overwritten/updated at regular intervals and/or as new data is recognized by scheduler/report generator 430. Some or all of the tables in dashboard report tables 440 may be retrieved, for example, by dashboard user interface module 220 to populate a dashboard presentation for user device 230. Dashboard report tables 440 may include data to support presentation of particular reports and charts by dashboard user interface module 220. For example, dashboard report tables 440 may include a trends of particular metrics related to billing processes. Exemplary tables in dashboard report tables 440 may include payment trends (e.g., in relation to due dates), adjustment trends (e.g., non-standard changes from standard service rates), promotion proration trends (e.g., temporary changes from standard service rates); new charges alert trends (e.g., new charges exceed a threshold over previous bills); value added services trends (e.g., charges for non-standard service options), etc. New tables for dashboard report tables 440 may be configured by users to support presentation of additional trends/reports by dashboard user interface module 220.
Presentation module 510 may provide a visual framework for presenting data from dashboard report tables 440. In one implementation, the presentation module 510 for dashboard user interface module 220 may be based on an ASP.NET framework with Telerik® Silverlight controls on an Oracle® platform.
Configuration module 520 may include display controls to allow a user to selectively present charts and/or other information from dashboard report tables 440. For example, configuration module 520 may receive configuration settings from a dashboard user (e.g., via user device 230) and apply the configuration settings to selected data for presentation. Configuration module 520 may also include, for example, an alerts component to receive alert settings, monitor particular data based on the alert settings, and generate alerts (e.g., email, SMS message, etc.) when the monitored data matches the alert settings.
Chart number 720 may indicate a particular unique number for one of charts 605. The unique number may correspond, for example, to a particular display position within billing alert dashboard 600. Chart table 725 may include a name of table from which alert metrics are to be measured. Names in chart table 725 may correspond to, for example, names of tables include in dashboard report tables 440.
Alert name 730 may include the name of a particular alert and/or metric that is being monitored. Alert name 730 may be presented, for example, as a title in each respective chart 605. Alert type 735 may include an indication of alert significance, such as critical, information only, action required, etc.). Alert column 740 may include an indication of a particular column (e.g., in the chart identified in chart table 725) from which data is to be monitored. Active indication 745 may include an indication (e.g., Yes/No) of whether the particular alert configuration is active.
Red low limit 750 may include a low threshold value for which data (e.g., data in the column identified in alert column 740) may trigger a “Red” or high-level alert. Red high limit 755 may include a high threshold value for which data (e.g., data in the column identified in alert column 740) may trigger a “Red” or high-level alert. In some implementations, no limit may be defined for one of red low limit 750 or red high limit 755.
Yellow low limit 760 may include a low threshold value for which data (e.g., data in the column identified in alert column 740) may trigger a “Yellow” or lower-level alert. Yellow high limit 765 may include a high threshold value for which data (e.g., data in the column identified in alert column 740) may trigger a “Yellow” or lower-level alert. In some implementations, no limit may be defined for one or more of yellow low limit 760 or yellow high limit 765.
Email low limit 770 may include a low threshold value for which data (e.g., data in the column identified in alert column 740) may trigger an alert email. Email high limit 775 may include a high threshold value for which data (e.g., data in the column identified in alert column 740) may trigger n alert email. Email group 780 may include one or more email address to which an email alert may be sent (e.g., when a monitor value in a column from tables 440 falls within an email alert threshold indicated by email low limit 770 or email high limit 775). In some instances, email group 780 may include other contact formats, such as phone numbers for text messages, etc. In one implementation, values in email low limit 770 or email high limit 775 may correspond to a set of “Yellow” or “Red” threshold values for a particular chart 605.
Dashboard configuration tool 810 may provide functionality to create new or modify existing charts (e.g., charts 805). All options to configure a chart can be made available in dashboard configuration tool 810, including a chart title field 815, a chart type field 820, a category field 825, axis labeling fields 830, and a status field 835. Other configuration options may be accessed via a detailed chart configuration GUI (e.g., detailed chart configuration GUI 820, described below). Once a chart is configured in dashboard configuration tool 810, changes can be immediately reflected on billing trend dashboard 800 without any additional steps for deployment. Any chart 805 may be activated/deactivated using dashboard configuration tool 810 and also a priority order for displaying each chart 805 could be changed for display on billing trend dashboard 800.
Referring to
A category input field 914 may include a selection mechanism to allow a user of detailed chart configuration GUI 900 to select a particular category of chart for chart 805. Categories for category input field 914 may include, for example, simple, classic, or complex. A “simple” chart category may be used to chart trending of only one variable. For example, if a number of particular event counts are being tracked for cycles billed, a simple chart category could be used (e.g., “Promo Proration Comparison—VRNY” of
A status input field 916 may include a selection mechanism to allow a user of detailed chart configuration GUI 900 to selective toggle a particular chart as active (e.g., presented on billing trend dashboard 800) or inactive (e.g., not presented on billing trend dashboard 800). Detailed chart configuration GUI 900 may also provide a preview pane window 918. Any changes to the information in general tab 905 can be previewed on preview pane window 918 to confirm the desired effect.
Referring to
Referring to
Consolidated billing system dashboard 1000 may track all charge records processed by various systems and keep track of all successes and fallouts in processing. Tracking map 1010 may provide a GUI that presents real-time status of billing data process through each processing point 1020 (e.g., a collection point, a review point, a combination point, etc.) of a consolidated billing system. In one implementation, process flow segments 1030 between processing points 1020 may be color-coded to reflect a process status. For example, green connectors may represent successful processes and red connectors may represent process fallouts. Color-coding may be based on, for example, a threshold level of fallouts configured for each process flow segment 1030. Operations personnel may monitor fallout details, based on input from the tracking map 1010, and advise involved systems to make necessary corrections to flow down the corrected records to downstream applications for further processing. In one implementation, each process flow segment 1030 may include a selectable link that may be selected from tracking map 1010.
Referring to
Billing analyzer module 1210 may include one or more server devices, or other types of computation or communication devices, that gather, process, search, and/or provide information in a manner described herein. For example, billing analyzer module 1210 may provide functionality to identify potential certification issues and to further research certification issues by providing bill details and analysis in helping to find the root cause. Billing analyzer module 1210 may process certification data and populate summary information in respective tables which can be input for certification user interface module 1220. Billing analyzer module 1210 is described further below in connection with
Certification user interface module 1220 may include combination of hardware and software to present trends, alerts, and failed certification checks related to, for example, internal billing certifications for service provider network 110. In other implementations, some or all of certification user interface module 1220 may be combined with other components of network portion 1200. For example, one implementation, dashboard user interface module 220 and certification user interface module 1220 may be included as a single component. Certification user interface module 1220 is described further below in connection with
Billing feeds interface module 1230 may include combination of hardware and software to present validation information and summary data related to, for example, load processes 410 used to supply data to analyzer data base 400 and/or other tables for service provider network 110. In other implementations, some or all of billing feeds interface module 1230 may be combined with other components of network portion 1200. For example, one implementation, billing feeds interface module 1230 may be combined with one or more of dashboard user interface module 220 and certification user interface module 1220. Billing feeds interface module 1230 is described further below in connection with, for example,
In one implementation, scheduler/report generator 1300 may include features of scheduler/report generator 430 described above in connection with
Certification data 1310 may include certification data (e.g., fed from one or more of load processes 410) and configuration settings which may be received from certification user interface 1210. Configuration settings may include, for example, alert settings, trend configurations, alert settings, etc.
Data analyzer 1410 may receive input files from, for example, one of business systems 240 and check data formats for the input files and split out data into particular fields for certification database 1310. Data analyzer 1410 may certify various section of the bill file and provide all metrics to be presented on billing certification GUI.
Certification engine 1420 may include rules and/or tables for analyzing issues with billing data (e.g., billing data stored in certification database 1320). Certification engine 1420 may process and synthesize data from certification data 1310 based on the stored rules and/or tables to identify issues with billing data.
Bill image builder 1430 may construct images of one or more bills for presentation to a user. Bill image builder 1430 may, for example, retrieve billing data (e.g., from one or more of tables 420 and/or certification database 1310 to create an image of a prospective (e.g., not yet issued) bill for a particular account. The image of the prospective bill may replicate presentation and formatting of an actual bill to simplify visual comparisons with previously issued bills. In one implementation, bill image builder 1430 may retrieve data from previous bills to present a comparison of billing images for a particular account. For example, if a certification check (e.g., by certification engine 1410) identifies a problem with a particular bill, a user may be prompted to view the current and past bills for comparison. Bill image builder 1430 may compile billing data for the particular account and generate an image of, for example, bills of the past three months for that particular account.
Report generator 1440 may generate certification reports for a particular month and/or billing cycle. Report generator 1440 may, for example, receive user input to identify a particular region (e.g., a state, locality, etc.) and period (e.g., month, billing cycle, etc.). Report generator 1440 may retrieve certification data and configuration settings from certification data 1310 and populate the relevant data in a report template for presentation to a user.
Alert generator 1450 may receive alert indications (e.g., from data analyzer 1420) and may generate/send an alert (e.g., email, SMS message, etc.) to a particular user or group of users. In another implementation, alert generator may receive alert settings, monitor particular data based on the alert settings, and generate alerts when the monitored data matches the alert settings. For example, alert generator 1450 may employ a table of alert settings similar to table structure 710 described above in connection with
Flagged item check module 1510 may provide a user interface to present items that may be potential certification issues (e.g., as identified by certification engine 1420). Flagged item check module 1510, may for example, present a report of issues for particular metrics. Certification trend module 1520 may provide a user interface to present selected trends to a user of user device 230 and to allow users to adjust presentation of particular trends.
Map 1610 may be configured to enable a user to select a particular region for addition billing certification details. For example, once a user selects a state, flagged item check module 1510 may present a certification report 1620 with details corresponding to that state for the particular month and/or billing cycle. Certification report 1620 may be shown, for example, adjacent to map 1610 (as shown in
As shown in
Content of certification report 1620 may be configured (e.g., by report generator 1440) within a separate certification report configuration table 1650. As shown in
Trends preview window 1630 may present one or more charts of metrics being tracked along with failed checks trending. For example, trends preview window 1630 may include trending of key statistics for the last six months for that cycle to help identify any potential system issues for the major key statistics of the billing system metrics. If any of the trend charts in trends preview window 1630 are selected, a bigger display with statistics may be displayed. Each of the charts in trends preview window 1630 may be controlled by a chart table and a data series table, similar to those described above in connection with
As shown in
The single bill view (not shown) may present only the prospective (e.g., not yet issued) current month bill. However, for some metrics it could be easier to research a current and a previous bill side by side.
Generally, billing feeds processor 1800 may process mainframe billing feeds on open systems (e.g., Unix, Linux, etc.) by parsing the feed using copybooks and loading the data into database tables (e.g., tables 420). Billing feeds processor 1800 may have functionality to decode mainframe compressed fields by reading binary data and converting them to numeric data. Billing feeds processor 1800 may process various billing feeds with different data standards by simply providing configuration options to load engine 1810. Load engine 1810 may extract data from billing feed files and load the data into different tables. Once the data of billing feeds are loaded into tables, comparison between various loads can be performed using compare engine 1820. The data differences identified by compare engine 1820 may be included in a report (e.g., from reports engine 1830) and displayed on a web page to be analyzed by users.
More particularly, load engine 1810 may identify a feed file identifier (ID) and file type. For example, load engine 1810 may read a file ID for the execution run from a sequence table that includes multiple feed files. Load engine 1810 may read a billing feeds file passed as arguments and may parse the fields in the billing feeds file by reading copybook layouts defined in a database table. For example, load engine 1810 may identify a trailer record in the file to identify a line count and confirm the line count in the trail record matches an actual line count of the feed file. Load engine 1810 may also match records in the file to the copybook layout and store the records in a data table that associates each record with a file ID and sequence. After parsing the data for respective record types, load engine 1810 may load the data by record type into respective tables. Load engine 1810 may then generate a control report detailing the records processed and any failures in processing.
Compare engine 1820 may compare all fields by record type between two billing feeds in a database (e.g., as provided by load engine 1810) and loads all the differences between the runs in a designated table (e.g., a compare_fallouts table). Compare engine 1820 may perform a straight comparison or can translate/transform data of a run before comparison or can have rules where multiple records in one run are now translated to one record in other run being compared. For example, for a particular account, compare engine 1820 may compare the line count of all record types on the account, compare the record type counts on the account, and compare the fields by record type. Compare engine 1820 may store any discrepancies in the compare_fallouts table. Compare engine 1820 may also generate detail and summary control reports for each execution run. For example, compare engine 1820 may report the file ID, account ID and bill line sequence number in both the compared files, along with any field discrepancies that were discovered.
Reports engine 1830 may provide an interface to presents all the details from the compare process (performed by compare engine 1820) on a webpage (accessible by user device 230) for analyzing/researching the differences between runs compared.
Each record type in mismatch summary section 1920 may include a link to a detailed list. For example, if any of the mismatch summary record types in mismatch summary section 1920 are selected then a detail list of all accounts for which differences exist for the record type is displayed below the summary section. As shown in
Each listed account in list of accounts 1930 may include a link to a detailed list of fields for that particular account. As shown in
Process 2000 may include receiving real-time billing data relating to multiple business processes (block 2010), compiling the real-time billing data into summary tables corresponding to metrics for the multiple business processes (block 2020), and storing, in a database, the summary tables corresponding to the metrics for the multiple business processes (block 2030). For example, one or more of business systems 240 may generate real-time billing data. Billing analyzer module 210/1210 may receive the data from business systems 240, synthesize the data, and generate metrics that are relevant to business operations. Billing analyzer module 210/1210 may process the data and populate summary information in respective tables which can be used as input for one or more of dashboard user interface module 220, certification user interface module 1120, or billing feeds interface module 1230.
Process 2000 may further include receiving, from a user device, a request to present a dashboard user interface including particular charts of the multiple business processes (block 2040), retrieving, from one or more of the summary tables corresponding to the metrics for the multiple business processes, data to populate the particular charts for the dashboard user interface (block 2050), and providing, to the user device, the data to populate the particular charts for the dashboard user interface (block 2060). For example, dashboard user interface module 220 may provide user access to summary information from billing analyzer module 210. For example, dashboard user interface module 220 may showcase the trending of real-time billing metrics, as well as provide alerts of any deviation in trending from one period over another. Dashboard configuration tool 810 may provide functionality to create new or modify existing charts. Some or all of the tables in dashboard report tables 440 may be retrieved by dashboard user interface module 220 to populate a dashboard presentation for user device 230.
Systems and/or methods described herein may receive, from business processes of a consolidated billing system for multiple telecommunications services, real-time billing data relating to the business processes and may compile the real-time billing data into summary tables corresponding to metrics for the business processes. The systems and/or methods may store, in a database, the summary tables corresponding to the metrics for the business processes and may retrieve, from one or more of the summary tables corresponding to the metrics for the business processes, data to present a graphical tracking map for the consolidated billing system. The graphical tracking map may track bill processing of a billing data from a first telecommunications service through a billing system of a second telecommunications service. The systems and/or methods may provide, to the user device, the data to populate the graphical tracking map.
In this specification, various preferred embodiments have been described with reference to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the broader scope of the invention as set forth in the claims that follow. The specification and drawings are accordingly to be regarded in an illustrative rather than restrictive sense.
While a series of blocks has been described with regard to the process 2000 illustrated in
It will be apparent that different aspects of the description provided above may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement these aspects is not limiting of the invention. Thus, the operation and behavior of these aspects were described without reference to the specific software code—it being understood that software and control hardware can be designed to implement these aspects based on the description herein.
Further, certain portions of the invention may be implemented as a “component” or “system” that performs one or more functions. These components/systems may include hardware, such as a processor, an ASIC, or a FPGA, or a combination of hardware and software.
No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” and “one of” is intended to include one or more items. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.