Analyzing business scenarios is essential to acquire an insight into the elements influencing the scenarios. Information aggregated over a period of time may play a significant role in establishing an associated scenario. This information associated with the scenario may be presented to an end user in different formats including but not limited to business analytics, business reports, emails, blogs, web pages, newsletters, presentations, or other consumable digital forms. Aggregating such information presented in different formats may result in an unstructured representation of business data. Such unstructured information may undergo eventual changes depending upon events influencing an associated scenario. Analyzing the eventual changes helps in understanding past influencing events along with future anticipated events.
The claims set forth the embodiments with particularity. The embodiments are illustrated by way of examples and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. The embodiments, together with its advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings.
Embodiments of techniques for systems and methods to perform relative trend analysis for a scenario are described herein. In the following description, numerous specific details are set forth to provide a thorough understanding of the embodiments. One skilled in the relevant art will recognize, however, that the embodiments can be practiced without one or more of the specific details, or with other methods, components, materials, etc. In other instances, well-known structures, materials, or operations are not shown or described in detail.
Reference throughout this specification to “one embodiment”, “this embodiment” and similar phrases, means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one of the one or more embodiments. Thus, the appearances of these phrases in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
A business scenario represents circumstances based on assumptions and predictions from past and present business information associated with it. The information is aggregated over a period of time and is represented in the form of a trend. A trend is hence a statistically quantifiable movement of an entity as a function of a measure, for example time The analysis of the trend includes examining related internal and external factors affecting the trend. The information represents business data of the business scenario, and may be residing in business objects. The internal or external factors affecting the business scenario include business objects, herein referred to as “related business objects” corresponding to related business scenarios. A user performs a relative trend analysis on one of the business scenarios to determine related business objects that affect the business scenario. The results of the relative trend analysis are rendered as a graphical illustration of the trend of the business scenario under analysis and trends corresponding to the related business scenarios.
For instance, consider the percentage “change in Inflation” including values between 5 and 45 represented as 202 on y-axis, for a time frame between 2000 and 2010 represented as 204 on x-axis. In the part of the trend representing the values 10, 14, 20 and 20 of the percentage change in inflation, the ratio of change in adjacent values is computed. The quotient of ratio of 14 and 10 is computed to be equal to 1.4; the quotient of ratio of 20 and 14 is computed to be equal to 1.42; and the quotient of ratio of 20 and 20 is computed to be equal to 1. It can be observed that there is no significant change in the quotient values 1.4 and 1.42. However, there is a significant change in the quotient values between 1.42 and 1. Hence the part of the trend representing the values 10, 14 and 20 is split to obtain a first trend-split 208a. Similarly, in the part of the trend representing the values 20, 20 and 20, the quotient of ratio is computed to be equal to 1. Hence the part of the trend representing the values 20, 20 and 20 is split to obtain a second trend-split 208b. In a similar manner the entire trend for the change in inflation may be split to obtain a plurality of trend-splits 208c, 208d, 208e and 208f. In an embodiment, the ratio of adjacent values may increase, representing a positive trend. In another embodiment, the ratio of adjacent values may decrease, representing a negative trend.
In an embodiment, data points at which the intervals of the time frame are split may be referred to as split-coefficients. The time frame 2000-2010 204 associated with trend 206 is split to obtain split-intervals T1210a, T2210b, T3210c, T4210d, T5210e and T6210f representing intervals corresponding to the trend-splits 208a, 208b, 208c, 208d, 208e and 208f. Thus trend-split 208a corresponds to the percentage change in inflation between a time frame 2000 and 2002, represented as TI 210a. Similarly the trend-splits 208b-208f corresponds to percentage change in inflation between the respective time frames T2-76210b-210f. In an embodiment, the gradients representing corresponding trends of other business scenarios in the database may be split to generate a plurality of gradient-splits. The corresponding time frame associated with the gradient may be split to generate a plurality of split-intervals, as explained above.
For every business scenario, the relative trend analysis engine 415 identifies an established trend, and corresponding time frames. Based on the identified trends and the corresponding time frames associated with the business scenario, parameters 445 associated with the business scenario are rendered on the UI. The parameters 445 associated with the business scenario represent analysis criteria, based upon which the relative trend analysis is performed. The parameters 445 may include a measure name, a dimension name, a relation type, a degree of impact, and the like. The measure name parameter represents a group of quantifiable entities associated with the business scenario, for example Real Estate Prices. The dimension name parameter represents a time frame associated with the business scenario, for example, a Year or a Month. A relation type parameter represents an upward trend or a downward trend for a business object. For example, consider business object A corresponds to a time instant T1 and business object B corresponds to time instant T2. Business object B has a downward trend with respect to business object A, if business object B is impacted by business object A at an instant such that T2 is greater than T1. Business object B has an upward trend with respect to business object A, if business object B is impacted by business object A at an instant such that T1 is greater than T2.
In an embodiment, upon receiving a user selection of the parameters 445 via the UI 410, the relative trend analysis engine determines trend-splits associated with the business scenario and queries the database 420 to determine related data for analysis. The related data may include business objects 425 of other business scenarios. In an embodiment, a data splitting module 430 of the relative analysis engine 415 splits the trend associated with the business scenario to obtain the trend-splits, as explained in detailed description of
In an etribodintent, the gradient includes positive gradient representing ascending values of the business object and negative gradient representing descending values of the business object. In an embodiment, the business object 425 includes linear values, and the associated gradient represents a linear gradient. In another embodiment, the business object 425 includes logarithmic values, and the associated gradient representing logarithmic gradient.
The relative trend analysis engine 415 may store a reference to the trend-splits of the business scenario and a reference to the gradient-splits of other business scenarios by generating an index for each trend-split and gradient-split. A data matching module 110 of the relative trend analysis engine 415 matches the trend-splits of the business scenario under analysis with gradient-splits of the other business scenarios. Matching may include matching the positive trend-splits of the business scenario with the positive gradient-splits or the negative gradient-splits of the other business scenarios. Matching may also include matching the negative trend-splits of the business scenario with the positive gradient-splits or the negative gradient-splits of the other business scenarios. A process of matching includes correlating trend-splits of the business scenario under analysis with the gradient-splits of the business scenarios residing in the database. The trend-splits of the business scenarios under analysis, having a similar pattern of change in the trend, or change in a quotient of ratio between adjacent values are determined and matched with the gradient-splits of other business scenarios. In an embodiment, the change in quotient of ratio between adjacent values for trends and gradients may include positive values or negative values.
Based on the matching trend-splits of the business scenario under analysis and the gradient-splits of the other business scenarios residing in the database 420, related business objects 425 of related business scenarios are determined and retrieved from the database 420 by the relative trend analysis engine 415. A graphical illustration of the trend-splits represents a trend of the business scenario under analysis and the gradient-splits representing gradients of the related business scenarios is rendered on the UI 410. In an embodiment, the graphical illustration rendered includes related business objects of the related business scenarios. The related business objects 425 which are rendered on the UI may represent the impacted and the impacting business objects. Thus the graphical illustration provides a first-level analysis of the business scenario based on the selected parameters, and provides insights on the affecting factors associated with the business scenario under analysis.
In an embodiment, system 400 includes a second-level analysis UI 110 component. The second-level analysis UI 410 component helps the user to perform the relative trend analysis by narrowing the scope of a first-level analysis and providing a next level characterization and the related business objects affecting the business scenario under analysis. Hence the second-level analysis is performed by the user based on the first-level analysis. In an embodiment, the relative trend analysis engine 415 of the system 400 generates the second-level analysis UI 410 component to determine a second set of related business objects 425. The second-level analysis 410 component is rendered on UI 410 that includes the graphical illustration of the trend of the business scenario under analysis and the gradient of first related business scenarios including the impacted or impacting business objects 425. Based on the first-level analysis of the business scenario and the first related business scenarios, the relative trend analysis engine 415 determines second related business scenarios, as explained above. The relative trend analysis engine 415 retrieves the gradient-splits of the second business scenarios and renders it on the UI 410. The graphical illustration includes the trend of the business scenario under analysis, gradients of the first related business scenarios and gradients of the second related business scenarios, including the impacting and the impacted business objects of the first related business scenarios and impacting and impacted business objects of the second related business scenarios.
In an embodiment, system includes a third-level analysis UI 410 component, also referred to as point-level analysis. The relative trend analysis engine 415 generates a third-level analysis UI 410 component that helps the user perform the relative trend analysis by narrowing the second-level scope of analysis to a specific time frame. The third-level analysis UI 410 component may include parameters 445 corresponding to a specific time frame, and measures associated the business scenario. The parameters 445 for third-level analysis may include an all-time high parameter, an all-time low parameter, a major fluctuations parameter, and a matching-trends parameter. The all-time high parameter indicates a maximum possible value for an entity in the business scenario. The all-time low parameter indicates a minimum possible value for an entity in the business scenario. The major fluctuations parameter indicates major fluctuations in values for an entity in the business scenario. The matching-trends parameter indicates similar trends for an entity in the business scenario. The specific time frame parameter corresponds to specific instants of time of the business scenario. In an embodiment, multiple-levels of relative trend analysis may be performed to obtain specific insights about the affecting factors associated with the business scenario under analysis.
The user selection of the second-level analysis parameters including “Object 1” for the parameter 528 and “100%-80%” for the parameter 530 are received and a “add current selection for selective analysis button” 532 is triggered. Upon triggering a selective analysis button 534, the relative trend engine 415 determines the gradient-splits of the first related business scenario “percentage change in Inflation”. Based on the user selection of “Object 1” for parameter 528, the relative trend analysis engine 415 determines related business scenario as “change in Oil Prices” and retrieves the gradient-splits of related business scenario “change in Oil Prices”, by matching the gradient-splits of the “change in Oil Prices” with the gradient-splits of “percentage change in Inflation”, as explained in detailed description of
Upon rendering an illustration of the second level analysis on the UI 500 in
The user may select “All-time High” for the 538 parameter and “2005-2009” for the 510 parameter for the third-level analysis. As a result of the user selection, the relative trend analysis engine 415 narrows the scope of analysis and highlights the results of the third-level analysis by visually indicating the results of the third-level analysis. A visual indication 538 including an all-time high value of all the rendered trends 506, 518 and 522 (for example, the business scenario under analysis, the first related business scenario, and the second related business scenario) for the period 2005-2009 is rendered on the 500. By performing such relative trend analysis on the trend 508 associated with business scenario under analysis, the impacting or impacted business objects can be identified. Legend 536 provides a reference to the rendered trends of business scenario 506 and gradients of related business scenarios 518, 522, the corresponding time frames 504, Real Estate Prices 502A, the percentage change in Inflation 502B, and the change in Oil Prices 502C.
Some embodiments may include the above-described methods being written as one or more software components. These components, and the functionality associated with each, may be used by client, server, distributed, or peer computer systems. These components may be written in a computer language corresponding to one or more programming languages such as, functional, declarative, procedural, object-oriented, lower level languages and the like. They may be linked to other components via various application programming interfaces and then compiled into one complete application for a server or a client. Alternatively, the components maybe implemented in server and client applications. Further, these components may be linked together via various distributed programming protocols. Some example embodiments may include remote procedure calls being used to implement one or more of these components across a distributed programming environment. For example, a logic level may reside on a first computer system that is remotely located from a second computer system containing an interface level (e.g., a graphical user interface). These first and second computer systems can be configured in a server-client, peer-to-peer, or some other configuration. The clients can vary in complexity from mobile and handheld devices, to thin clients and on to thick clients or even other servers.
The above-illustrated software components are tangibly stored on a computer readable storage medium as instructions. The term “computer readable storage medium” should be taken to include a single medium or multiple media that stores one or more sets of instructions. The term “computer readable storage medium” should be taken to include any physical article that is capable of undergoing a set of physical changes to physically store, encode, or otherwise carry a set of instructions for execution by a computer system which causes the computer system to perform any of the methods or process steps described, represented, or illustrated herein. Examples of computer readable storage media include, but are not limited to: magnetic media, such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs, DVDs and holographic devices; magneto-optical media; and hardware devices that are specially configured to store and execute, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer readable instructions include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment may be implemented using Java, C++, or other object-oriented programming language and development tools. Another embodiment may be implemented in hard-wired circuitry in place of, or in combination with machine readable software instructions.
A data source is an information resource. Data sources include sources of data that enable data storage and retrieval. Data sources may include databases, such as, relational, transactional, hierarchical, multi-dimensional (e.g., OLAP), object oriented databases, and the like. Further data sources include tabular data (e.g., spreadsheets, delimited text files), data tagged with a markup language (e.g., XML data), transactional data, unstructured data (e.g., text files, screen scrapings), hierarchical data (e.g., data in a file system, XML data), files, a plurality of reports, and any other data source accessible through an established protocol, such as, Open DataBase Connectivity (ODBC), produced by an underlying software system (e.g., ERP system), and the like. Data sources may also include a data source where the data is not tangibly stored or otherwise ephemeral such as data streams, broadcast data, and the like. These data sources can include associated data foundations, semantic layers, management systems, security systems and so on.
In the above description, numerous specific details are set forth to provide a thorough understanding of embodiments. One skilled in the relevant art will recognize, however that the embodiments can be practiced without one or more of the specific details or with other methods, components, techniques, etc. In other instances, well-known operations or structures are not shown or described in detail.
Although the processes illustrated and described herein include series of steps, it will be appreciated that the different embodiments are not limited by the illustrated ordering of steps, as some steps may occur in different orders, some concurrently with other steps apart from that shown and described herein. In addition, not all illustrated steps may be required to implement a methodology in accordance with the one or more embodiments. Moreover, it will be appreciated that the processes may be implemented in association with the apparatus and systems illustrated and described herein as well as in association with other systems not illustrated.
The above descriptions and illustrations of embodiments, including what is described in the Abstract, is not intended to be exhaustive or to limit the one or more embodiments to the precise forms disclosed. While specific embodiments of, and examples for, the one or more embodiments are described herein for illustrative purposes, various equivalent modifications are possible within the scope, as those skilled in the relevant art will recognize. These modifications can be made in light of the above detailed description. Rather, the scope is to be determined by the following claims, which are to be interpreted in accordance with established doctrines of claim construction.