Companies make and depend on contractual agreements. For example, a company may invest its manufacturing resources based on contractual agreements with customers, or may invest its marketing resources based on contractual agreements with suppliers. Contractual agreements generally facilitate planning and decision making by establishing prices, quantities, dates, delivery locations, and other necessary details.
As companies struggle to achieve and maintain successful positions in competitive markets, they and their competitors have made changes in their approaches to contractual agreements. Particularly in the high-technology industries, many companies may cooperate in providing a given service or product to a customer. The market's never-ending drive for greater efficiency has produced a high degree of interdependence between such companies. This interdependence often places a company's revenue stream at the mercy of others, and accordingly, companies have developed increasing sophisticated agreements to define and enforce the business agreement.
It is becoming common for a company to find itself part of a network of complex contractual agreements. The network of agreements and the interactions between agreements may be difficult to understand, and hence may be difficult to manage. A company that fails to understand its contractual obligations is likely to make very costly mistakes. Further, such a lack of understanding may prevent a company from learning from mistakes and improving its performance. A system or method of aiding the understanding of a network of contractual agreements would be desirable, particularly if such a system or method could assist in identifying interactions between different contractual agreements in the network and provide other advantages.
For a detailed description of various invention embodiments, reference will now be made to the accompanying drawings in which:
a, 6b and 6c show an animation time sequence for the occurrence graph in accordance with embodiments of the present invention; and
Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, different companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the term “couple” or “couples” is intended to mean either an indirect or a direct electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
The following discussion is directed to various embodiments of the invention. Although one or more of these embodiments may be preferred, the embodiments disclosed and discussions thereof should not be interpreted, or otherwise used, as limiting the scope of the disclosure or the claims.
Desktop computer 100 typically includes a chassis 102, a display 104, and an input device 106. The chassis 102 typically includes a processor, memory, and information storage devices. One or more of the information storage devices may store programs and data on removable storage media such as a floppy disk 108 or a compact disc 110. The chassis 102 may further include a network interface that allows the computer 100 to receive information via a wired or wireless network. Collectively, information storage media and information transport media may be termed information carrier media.
The chassis 102 is coupled to the display 104 and the input device 106 to interact with a user. The display 104 and the input device 106 may together operate as a user interface. The display 104 is shown as a video monitor, but may take many alternative forms including a printer, a speaker, or other means for communicating information to a user. The input device 106 is shown as a keyboard, but may similarly take many alternative forms including a button, a mouse, a keypad, a dial, a motion sensor, a camera, a microphone or other means for receiving information from a user. Both the display 104 and the input device 106 may be integrated into the chassis 102.
The processor 206 gathers information from other system elements, including input data from the peripheral interface 204, program instructions and other data from the memory 210, the information storage device 212, or from a remote location via the network interface 208. The processor 206 carries out the program instructions and processes the data accordingly. The program instructions may further configure the processor 206 to send data to other system elements, including information for the user which may be communicated via the display interface 202 and the display 104.
The network interface 208 enables the processor 206 to communicate with remote systems via a network. The memory 210 may serve as a low-latency temporary store of information for the processor 206, and the information storage device 212 may serve as a long term (but generally high-latency) store of information.
The processor 206, and hence the computer 100 as a whole, typically operates in accordance with one or more programs stored on the information storage device 212. The processor 206 may copy portions of the programs into the memory 210 for faster access, and may switch between programs or carry out additional programs in response to user actuation of the input device. The additional programs may be retrieved from information the storage device 212 or may be retrieved from remote locations via the network interface 208. One or more of these programs may configure the computer 100 to carry out at least one of the agreement visualization methods disclosed herein.
In graphical user interface form, the information transform component 304 may gather information directly from a user by providing data entry fields and directing the user regarding the appropriate information to be entered in each field. In parsing form, the information transform component 304 may gather data from an existing file or database. In file retriever form, the information transform component 304 may retrieve an already-constructed data structure such as a file previously created by the software 302. In each of these forms, the information transform component 304 produces a hierarchical data structure 306 containing the agreement information.
In
The dependency flow graph component 308 may generate a dependency flow graph such as that shown in
In one embodiment, the positions of the providers along the center boundary is determined in accordance with the following equations (the center of the view window is assumed to be the origin x=0, y=0):
where n is the number of providers, R is the radius of the circle, and (xi,yi) is the position of provider i. The customer positions (xi,yi) may be determined in accordance with the following equations:
where n is the number of customers. For the supplier positions (xi,yi), only the angle calculation changes:
where n this time represents the number of suppliers.
The view window 402 shows a line between parties if the parties have one or more current agreements. The line may be shown in a color that represents the presence and severity of violations of the represented agreement(s). For example, a green color may be used to represent an absence of violations or at most violations of a minimal severity. A blue color may represent an average violation level of moderate severity, and a purple color may represent a high violation level.
Various portions of the view window 402 may be highlighted or otherwise identified in response to user selection of folders in the view window 702 (described below with respect to
The user may also directly select portions of the view window 402. If a user selects a provider node or a contract line associated with a provider node, the visualization system triggers operation of component 310. Component 310 provides a view window such as that shown in
On the left side of the circle, three sets of horizontal lines 518, 520 and 524 represent conditions of the contracts that the provider 410 has with the first, second, and third customers, respectively. The lines may be shown in a color that represents the presence and severity of violations of the represented conditions. As before, green may be used to represent an absence of a violation or at most a violation of minimal severity. A blue color may represent a violation of moderate severity, and a purple color may represent a severe violation. As described below with reference to
Various portions of the view window 502 may be highlighted in response to user selection of folders in the view window 702 (described below with reference to
Each violation has associated with it a time at which the violation occurred. As shown in
The time sequence may be shown in a “loop,” with the view window 502 pausing at the end of the time sequence, indicating a break to the user, and restarting the sequence from the beginning. The break may take any suitable form, including blanking the view window, showing a text message and/or showing a progress bar that indicates the location in the time sequence.
As mentioned above, the software may include a display tree component 306 to aid the user in identifying elements shown by the graphical display component 312.
Associated with each folder (except perhaps the root folder 704) is an indicator 706 that indicates whether the folder is “open” or “closed.” When the indicator 706 is oriented vertically, the folder is open, meaning that subordinate entries are shown. When the indicator 706 is oriented horizontally, the folder is closed, meaning that no subordinate entries are shown. To toggle between open and closed states, the user may select (e.g., with a mouse click) the indicator. The component 306 will display the appropriate entries from the view window 701.
In one embodiment, the hierarchical data structure has the following organization (others would also be suitable):
At the highest level (Level 0) is a root, or starting point, for the hierarchical structure. The root includes a list of party types (Level 1), e.g., customer, provider, and supplier. Other types of parties to business agreements may potentially be included. (Depending on the number of parties involved, it may be convenient to subdivide the provider type based on the different agreement types the provider supports, namely, “provider-customer” and “provider-supplier.”) At Level 1, each of the three (or four) party types is listed.
At Level 2, each party of a given party type is listed. The list of parties for a given party type may be empty if the contemplated agreement situation does not include parties of that type. The parties may be identified in any suitable way, including without limitation, a company name, or abbreviation thereof. Each party may also have associated with it a list of parties (Level 3) with whom a current agreement exists.
At Level 3, each party with whom a current agreement exists is listed. Thus, for example, a customer company with the hypothetical name “Customer 3” may have agreements with two different providers hypothetically named “Provider 1” and “Provider 3.” In the hierarchical structure below the entry for Customer 3, entries would be provided for Provider 1 and Provider 3. A list of current agreements (Level 4) between the Level 2 party and Level 3 party may be associated with each of the Level 3 entries.
At Level 4, an entry is provided for each current agreement. For example, if only one agreement exists between Customer 3 and Provider 3, only one Level 4 entry would appear below the Provider 3 entry at Level 3.
At Level 5, each agreement entry may include one or more condition entries. Conditions may be thought of as components of each agreement. For example, an agreement to deliver 500 premium widgets before the end of the quarter has three conditions: quantity, quality, and date. Thus the agreement could be violated in at least three different ways (e.g., not enough widgets delivered, widgets are of inferior quality, or the delivery occurs late).
At Level 6, each condition entry may include one or more occurrence entries. Occurrence entries indicate an occurrence such as a violation of the condition and may include some indication of severity and a description of how the condition was violated. For example, the violation occurrence entry may indicate “1 day late,” “3 widgets short,” or “no delivery.” The occurrence entries may also include an indication of the time at which a violation occurred (which may often be the originally scheduled delivery date).
Returning to
The Customer 3 folder is open, showing the level 3 folders 711. The folders 711 identify the parties with which Customer 3 has current agreements: Provider 1 and Provider 3. The Provider 3 folder is open, showing the current agreement between Provider 3 and Customer 3 as a level 4 folder 712. Within the agreement folder is a single condition folder 714, which in turn contains an occurrence folder 716. Those persons experienced in operating modern computers will find it easy to navigate through the data hierarchy using the view window 701. As various folders are selected (perhaps by “double-clicking” with a pointing device), corresponding elements in the view window 402 or the view window 502 may be highlighted or otherwise identified to the user.
The above discussion is only meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.