Definition and instantiation of metric based business logic reports

Groups of subordinate report definitions are determined for selected scorecard metrics based on suitable report type and layout features. A list comprising the available reports is assigned to each source metric enabling association of the groups across metrics. A context of the scorecard is passed to a physical instantiation of the group of reports to affect their behavior. Report presentation, queries, and the like may be performed using the assigned definition list(s).

BACKGROUND

Key Performance Indicators, also known as KPI or Key Success Indicators (KSI), help an organization define and measure progress toward organizational goals. Once an organization has analyzed its mission, identified all its stakeholders, and defined its goals, it needs a way to measure progress toward those goals. Key Performance Indicators are used to provide those measurements.

Scorecards are used to provide detailed and summary analysis of KPIs and aggregated KPIs such as KPI groups, objectives, and the like. Scorecard calculations are typically specific to a defined hierarchy of the above mentioned elements, selected targets, and status indicator schemes. Business logic applications that generate, author, and analyze scorecards are typically enterprise applications with multiple users (subscribers), designers, and administrators. It is not uncommon, for organizations to provide their raw performance data to a third party and receive scorecard representations, analysis results, and similar reports.

In scorecard applications, being able to pass the context of a user's selection in a scorecard to a subordinate report provides increased efficiency and improved user experience. This feature can be seamless when the metrics and data are homogenous. However, it can be extremely difficult to have a single subordinate report updated appropriately when the metrics are heterogeneous.

SUMMARY

Aspects are directed to determining suitable reports for selected scorecard metrics based on report type and associated layout. Groups of reports may be related across metrics, and assigned a list of available report definitions to the metrics based on the determination. Default report type suggestions may be modified by a subscriber in an editing mode. The list of available report definitions may be employed to generate report views, perform queries, and the like.

DETAILED DESCRIPTION

As briefly described above, determining suitable reports for selected scorecard metrics based on report type and associated layout and associating their definitions with the selected metrics enables scorecard configuration independent processing of heterogeneous metrics for report views. In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific embodiments or examples. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the spirit or scope of the present disclosure. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims and their equivalents.

Referring now to the drawings, aspects and an exemplary operating environment will be described.FIG. 1and the following discussion are intended to provide a brief, general description of a suitable computing environment in which the invention may be implemented. While the embodiments will be described in the general context of program modules that execute in conjunction with an application program that runs on an operating system on a personal computer, those skilled in the art will recognize that aspects may also be implemented in combination with other program modules.

With reference toFIG. 1, one exemplary system for implementing the embodiments includes a computing device, such as computing device100. In a basic configuration, the computing device100typically includes at least one processing unit102and system memory104. Depending on the exact configuration and type of computing device, the system memory104may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. System memory104typically includes an operating system105suitable for controlling the operation of a networked personal computer, such as the WINDOWS® operating systems from MICROSOFT CORPORATION of Redmond, Wash. The system memory104may also include one or more software applications such as program modules106, scorecard application120, grouping module122, and reporting application124. Scorecard application120manages business evaluation methods, computes KPIs, and provides scorecard data to reporting applications. In some embodiments, scorecard application120may itself generate reports based on metric data.

Grouping module122manages determination of subordinate report definitions for selected scorecard metrics and assignment of available report lists (groups) to the metrics within scorecard application120. Grouping module122may be an integrated part of scorecard application120or a separate application. Scorecard application120, grouping module122, and reporting application(s)124may communicate between themselves and with other applications running on computing device100or on other devices. Furthermore, any one of scorecard application120, grouping module122, and reporting application(s)124may be executed in an operating system other than operating system105. This basic configuration is illustrated inFIG. 1by those components within dashed line108.

Referring toFIG. 2, a system where example embodiments may be implemented, is illustrated. System200may comprise any topology of servers, clients, Internet service providers, and communication media. Also, system200may have a static or dynamic topology. The term “client” may refer to a client application or a client device employed by a user to perform business logic operations. Scorecard service202, database server204, and report server206may also be one or more programs or a server machine executing programs associated with the server tasks. Both clients and application servers may be embodied as single device (or program) or a number of devices (programs). Similarly, data sources may include one or more data stores, input devices, and the like.

A business logic application may be run centrally on scorecard service202or in a distributed manner over several servers and/or client devices. Scorecard service202may include implementation of a number of information systems such as performance measures, business scorecards, and exception reporting. A number of organization-specific applications including, but not limited to, financial reporting, analysis, marketing analysis, customer service, and manufacturing planning applications may also be configured, deployed, and shared in system200. In addition, the business logic application may also be run in one or more client devices and information exchanged over network(s)210.

Data sources212,214, and216are examples of a number of data sources that may provide input to scorecard service202through database server204. Additional data sources may include SQL servers, databases, non multi-dimensional data sources such as text files or EXCEL® sheets, multi-dimensional data source such as data cubes, and the like. Database server204may manage the data sources, optimize queries, and the like.

Users may interact with scorecard service202running the business logic application from client devices222,224, and226over network(s)210. In one embodiment, additional applications that consume scorecard-based data may reside on scorecard service202or client devices222,224, and226. Examples of such applications and their relation to the scorecard application are provided below in conjunction withFIG. 3.

Report server206may include reporting applications, such as charting applications, alerting applications, analysis applications, and the like. These applications may receive scorecard data from scorecard service202and provide reports directly or through scorecard service202to clients.

Network(s)210may include a secure network such as an enterprise network, or an unsecure network such as a wireless open network. Network(s)210provide communication between the nodes described above. By way of example, and not limitation, network(s)210may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.

Many other configurations of computing devices, applications, data sources, data distribution and analysis systems may be employed to implement a business logic application automatically generating dashboards with scorecard metrics and subordinate reporting.

Now referring toFIG. 3, example scorecard architecture300is illustrated. Scorecard architecture300may comprise any topology of processing systems, storage systems, source systems, and configuration systems. Scorecard architecture300may also have a static or dynamic topology.

Scorecards are a simple method of evaluating organizational performance. The performance measures may vary from financial data such as sales growth to service information such as customer complaints. In a non-business environment, student performances and teacher assessments may be another example of performance measures that can employ scorecards for evaluating organizational performance. In the exemplary scorecard architecture300, a core of the system is scorecard engine308. Scorecard engine308may be an application that is arranged to evaluate performance metrics. Scorecard engine308may be loaded into a server, executed over a distributed network, executed in a client device, and the like.

In addition to performing scorecard calculation, scorecard engine may also provide report parameters associated with a scorecard to other applications318. The report parameters may be determined based on a subscriber request or a user interface configuration. The user interface configuration may include a subscriber credential or a subscriber permission attribute. The report parameter may include a scorecard identifier, a scorecard view identifier, a row identifier, a column identifier, a page filter, a performance measure group identifier, or a performance measure identifier. The performance measure may be a KPI, a KPI group, or an objective. The page filter determines a period and an organizational unit for application of the scorecard calculations.

Data for evaluating various measures may be provided by a data source. The data source may include source systems312, which provide data to a scorecard cube314. Source systems312may include multi-dimensional databases such as an Online Analytical Processing (OLAP) database, other databases, individual files, and the like, that provide raw data for generation of scorecards. Scorecard cube314is a multi-dimensional database for storing data to be used in determining Key Performance Indicators (KPIs) as well as generated scorecards themselves. As discussed above, the multi-dimensional nature of scorecard cube314enables storage, use, and presentation of data over multiple dimensions such as compound performance indicators for different geographic areas, organizational groups, or even for different time intervals. Scorecard cube314has a bi-directional interaction with scorecard engine308providing and receiving raw data as well as generated scorecards.

Scorecard database316is arranged to operate in a similar manner to scorecard cube314. In one embodiment, scorecard database316may be an external database providing redundant back-up database service.

Scorecard builder302may be a separate application, a part of the performance evaluation application, and the like. Scorecard builder302is employed to configure various parameters of scorecard engine308such as scorecard elements, default values for actuals, targets, and the like. Scorecard builder302may include a user interface such as a web service, a Graphical User Interface (GUI), and the like.

Strategy map builder304is employed for a later stage in scorecard generation process. As explained below, scores for KPIs and parent nodes such as Objective and Perspective may be presented to a user in form of a strategy map. Strategy map builder304may include a user interface for selecting graphical formats, indicator elements, and other graphical parameters of the presentation.

Data Sources306may be another source for providing raw data to scorecard engine308. Data sources may be comprised of a mix of several multi-dimensional and relational databases or other Open Database Connectivity (ODBC)-accessible data source systems (e.g. Excel, text files, etc.). Data sources306may also define KPI mappings and other associated data.

Scorecard architecture300may include scorecard presentation310. This may be an application to deploy scorecards, customize views, coordinate distribution of scorecard data, and process web-specific applications associated with the performance evaluation process. For example, scorecard presentation310may include a web-based printing system, an email distribution system, and the like. A user interface for scorecard presentation310may also include an overview of available scorecards for a subscriber to select from. Scorecard presentation310may further include a matrix or a list presentation of the scorecard data. The scorecard presentation and one or more zones for other applications may be displayed in an integrated manner.

Grouping module320is configured to interact with scorecard engine308, scorecard presentation310, other applications318, and manage determination of suitable reports for selected metrics, categorize the reports based on type and layout features, generate a list of available report definitions, and assign the list to the selected metrics. As mentioned previously, coordinating subordinate reports can be very difficult for heterogeneous metrics. Below are two examples of a scorecard with homogeneous and heterogeneous KPIs.

Homogeneous Scorecard with a Homogeneous Subordinate Report:

KPIActualTargetStatusUnit Sales in Korea10090On TargetUnit Sales in Canada10099On TargetUnit Sales in United States10029On Target

In the scorecard application, selecting any row can send context to a subordinate report that might show line item detail of the dates when units are sold. As a parameterized report, complexity does not significantly vary if additional homogenous KPIs are added.

Heterogeneous Scorecard with a Heterogeneous Subordinate Report:

Each KPI in this scorecard uses a different schema and data source and requires a different set of subordinate reports. Sales in Korea (in 1000's US Dollars) may require subordinate reports of sales in different currencies and potentially geo-spatial visualizations of the data. Product defects per million may need to show trends of defects over time and line-item detail with photographs and rich documentation of the issue reports. Thus, the heterogeneous scenarios can be geometrically more complex and problematic than the homogeneous scenarios in terms of report definition, parameterization, and layout.

Other applications318may include any application that receives data associated with a report parameter and consumes the data to provide a report, perform analysis, provide alerts, perform further calculations, and the like. The data associated with the report parameter includes content data and metadata. Other applications may be selected based on the report parameter, a subscriber request, or a user interface configuration. The user interface configuration may include a subscriber credential or a subscriber permission attribute. Other applications318may include a graphical representation application, a database application, a data analysis application, a communications application, an alerting application, or a word processing application.

FIG. 4illustrates a screenshot of an example scorecard. As explained before, Key Performance Indicators (KPIs) are specific indicators of organizational performance that measure a current state in relation to meeting the targeted objectives. Decision makers may utilize these indicators to manage the organization more effectively.

When creating a KPI, the KPI definition may be used across several scorecards. This is useful when different scorecard managers might have a shared KPI in common. The shared use of KPI definition may ensure a standard definition is used for that KPI. Despite the shared definition, each individual scorecard may utilize a different data source and data mappings for the actual KPI.

Each KPI may include a number of attributes. Some of these attributes include frequency of data, unit of measure, trend type, weight, and other attributes. The frequency of data identifies how often the data is updated in the source database (cube). The frequency of data may include: Daily, Weekly, Monthly, Quarterly, and Annually.

The unit of measure provides an interpretation for the KPI. Some of the units of measure are: Integer, Decimal, Percent, Days, and Currency. These examples are not exhaustive, and other elements may be added without departing from the scope of the invention.

A trend type may be set according to whether an increasing trend is desirable or not. For example, increasing profit is a desirable trend, while increasing defect rates is not. The trend type may be used in determining the KPI status to display and in setting and interpreting the KPI banding boundary values. The trend arrows displayed in scorecard400indicate how the numbers are moving this period compared to last. If in this period the number is greater than last period, the trend is up regardless of the trend type. Possible trend types may include: Increasing Is Better, Decreasing Is Better, and On-Target Is Better.

Weight is a positive integer used to qualify the relative value of a KPI in relation to other KPIs. It is used to calculate the aggregated scorecard value. For example, if an Objective in a scorecard has two KPIs, the first KPI has a weight of 1, and the second has a weight of 3 the second KPI is essentially three times more important than the first, and this weighted relationship is part of the calculation when the KPIs' values are rolled up to derive the values of their parent Objective.

Other attributes may contain pointers to custom attributes that may be created for documentation purposes or used for various other aspects of the scorecard system such as creating different views in different graphical representations of the finished scorecard. Custom attributes may be created for any scorecard element and may be extended or customized by application developers or users for use in their own applications. They may be any of a number of types including text, numbers, percentages, dates, and hyperlinks.

One of the benefits of defining a scorecard is the ability to easily quantify and visualize performance in meeting organizational strategy. By providing a status at an overall scorecard level, and for each perspective, each objective or each KPI rollup, one may quickly identify where one might be off target. By utilizing the hierarchical scorecard definition along with KPI weightings, a status value is calculated at each level of the scorecard.

First column of scorecard400shows example elements perspective420“Manufacturing” with objectives422and424“Inventory” and “Assembly” (respectively) reporting to it. Second column402in scorecard400shows results for each measure from a previous measurement period. Third column404shows results for the same measures for the current measurement period. In one embodiment, the measurement period may include a month, a quarter, a tax year, a calendar year, and the like.

Fourth column406includes target values for specified KPIs on scorecard400. Target values may be retrieved from a database, entered by a user, and the like. Column408of scorecard400shows status indicators.

Status indicators430convey the state of the KPI. An indicator may have a predetermined number of levels. A traffic light is one of the most commonly used indicators. It represents a KPI with three-levels of results—Good, Neutral, and Bad. Traffic light indicators may be colored red, yellow, or green. In addition, each colored indicator may have its own unique shape. A KPI may have one stoplight indicator visible at any given time. Indicators with more than three levels may appear as a bar divided into sections, or bands. Column416includes trend type arrows as explained above under KPI attributes. Column418shows another KPI attribute, frequency.

FIG. 5illustrates a conceptual report view outline where different types of reports may be presented for heterogeneous metrics according to embodiments. While reports based on scorecard metrics may be presented in individual application UIs, multiple reports may also be presented in a combined UI along with a presentation of the scorecard itself. In diagram500, scorecard application UI502includes scorecard504titled “Manufacturing Evaluation” for Q1 of 2005. Scorecard504includes hierarchically structured metrics (KPIs). Reports may be generated based on any one or a combination of the KPIs of scorecard504. Where scorecard504includes heterogeneous KPIs, different types of reports may be generated for each KPI. Each type of report may also have its own layout features.

For example, report1in report view UI506may include a chart based on one of the KPIs, and therefore require a relatively proportional display area. Report2in report view UI508may be a transaction list requiring an elongated display as opposed to report1. By assigning lists of available report definitions to the KPIs, report view layouts may be associated across metrics and physical layout of the scorecard.

Embodiments are not limited to the example scorecard layouts, report types, and views described above. Definition and instantiation of metric-based report grouping may be provided in many other ways using the principles described herein.

FIG. 6is a diagram illustrating interactions between different components of a scorecard system for report generation purposes. Core elements of a scorecard system include KPIs602, Objectives604, and scorecards606. All three of these elements may have a multitude of report views612associated with them. In addition, KPIs602and scorecards606may have configured views608associated with them. It should be noted that these are views on scorecards showing different properties, e.g. one view might show owner and frequency of KPI update, another might show the name of the data source and the database administrator. The underlying definitions of the scorecards typically remain the same, the report is different in each case. KPIs602may also have virtual report views, which are employed to prevent repetitiveness for report views when multiple similar KPIs are used in a scorecard. Virtual report views may include all of the attribute information in their definition such that a single report view is created and updated for each one of the similar KPIs.

Report views612may include attribute displays614, reporting services reports616(e.g. transaction lists), web components618(e.g. pivot charts), URLs620, and the like. Each report view includes information associated with its components in its definition. By grouping the report views based on their types (components) and assigning them to a selected core component, heterogeneous metrics can be handled by the scorecard system in a seamless fashion.

FIG. 7illustrates a screenshot of an example report view inspector UI in a scorecard application. Workspace browser portion706of the UI includes a listing of KPIs and scorecards available to a subscriber in the scorecard application. The KPIs and scorecards (as well as other elements such as Objectives) may be presented in a listing tree format, a simple listing format, and any other format known in the art.

Upon selection of one of the items (e.g. Customer Satisfaction) in the workspace browser portion706, information associated with the selected item is presented in the adjacent portion of the UI. The editor UI may provide information such as details of the selected item, actuals and targets included in the selected KPI or scorecard, configured views of the KPI or scorecard, and report views associated with the selected KPI or scorecard. Listing of report views702is an example showing available reports associated with the selected item. As shown in the example screenshot, four reports are available for the selected KPI. Attributes of each report view such as report type, appearance, name, owner, last modification date, and the like, may be listed. More details for each report view may be provided in details portion704.

The selected KPI is assigned the listed report views and their attributes. Accordingly, the report views of this particular KPI are independent of the scorecard configuration and may be transferred to another scorecard along with the KPI, updated without having to recreate each of the reports when data is updated, and so on.

FIG. 8illustrates a screenshot of an example report view editor UI in a scorecard application. According to some embodiments, a scorecard application with metric-assigned report view definition capability may provide a number of default report views for a selected metric. Once the default report view have been proposed, the subscriber may be provided with an option to modify those report views, add new ones, or remove some of them.

Example report view editor UI includes a bar chart style report as shown in preview window802. Another portion (804) of the report view editor UI includes a listing of attributes associated with the selected report view such as documents and links, comments, permissions, configuration, parameters, and the like. Each of these attributes may be modified depending on the permission level of the subscriber.

The example implementations of report views, scorecards, and UIs inFIGS. 4 through 8are intended for illustration purposes only and should not be construed as a limitation on embodiments. Other embodiments may be implemented using the principles described herein.

FIG. 9illustrates logic flow diagram for a process of using report definition lists assigned to scorecard metrics. Process900may be implemented in a business logic application.

Process900begins with operation902, where available reports are determined. Available reports are determined based on an evaluation of suitable reports for selected scorecard elements such as KPIs, Objectives, and the like. Report type for the data included in the element, features of a report presentation layout associated with the report, and the like, are taken into consideration when determining the available reports. Processing advances from operation902to operation904.

At operation904, the reports are categorized based on report view type(s). As mentioned previously, different report types may be generated based on the same scorecard element. For example, a scorecard element representing manufacturing defects may be associated with various charts, manufacturing records, or even images of product defects. Each category of reports may include a number of reports based on the data (different time periods, organizational units, etc.). Processing moves from operation904to operation906.

At operation906, group indicators are assigned to the report definitions. Group indicators may be used to identify types of available reports for a selected scorecard element. For example, ordered numbers or letters may be assigned to report types such as charts, transaction lists, URLs, and the like. If multiple reports are to be generated under one or more categories, the reports for that category can be identified by the same group indicator. Processing then proceeds to operation908.

At operation908, a report definition list is generated. The report definition list includes available report definitions for the selected scorecard element by category. The report list may be made part of the selected scorecard element allowing association of reports across metrics and physical layouts of the scorecard. Processing advances from operation908to optional operation910.

At optional operation910, the report definition list is made available for consumption by the scorecard application or another application for report presentation, query-based searches, and similar purposes. After operation910, processing moves to a calling process for further actions.

The operations included in process900are for illustration purposes. Providing coordinated reports for heterogeneous metrics by assigning report definition lists to the metrics may be implemented by similar processes with fewer or additional steps, as well as in different order of operations using the principles described herein.