Source: http://patents.com/us-10074137.html
Timestamp: 2018-11-19 02:47:40
Document Index: 217452087

Matched Legal Cases: ['Application No. 05742949', 'Application No. 05742949', 'Application No. 05742949', 'Application No. 05742949', 'Application No. 05742949', 'Application No. 05742949', 'Application No. 3545', 'Application No. 3545', 'Application No. 3545', 'art 270']

US Patent # 1,007,4137. Forecasting system and method using change data based database storage for efficient ASP and web application - Patents.com
United States Patent 10,074,137
Orumchian , et al. September 11, 2018
Orumchian; Kim (Foster City, CA), Stabenow; Art (Foster City, CA), Skelton; Dean (Foster City, CA), Petiot; David (Foster City, CA)
Right90, Inc. (Austin, TX)
Family ID: 35242153
15/432,673
US 20170154381 A1 Jun 1, 2017
14625083 Feb 18, 2015 9600549
12264123 May 5, 2015 9026487
11116143 Nov 4, 2008 7447718
60565758 Apr 26, 2004
Current CPC Class: G06F 17/30321 (20130101); G06Q 10/063 (20130101); G06Q 10/0631 (20130101); G06Q 30/02 (20130101); G06Q 30/0202 (20130101); G06Q 30/06 (20130101); G06Q 40/04 (20130101); G06F 17/30563 (20130101); G06F 17/30592 (20130101); G06F 17/30979 (20130101); G06Q 40/06 (20130101); G06Q 10/04 (20130101); G06F 2216/03 (20130101); Y10S 707/99933 (20130101); Y10S 707/99956 (20130101)
Current International Class: G06F 17/30 (20060101); G06Q 40/06 (20120101)
6766325 July 2004 Pasumansky
7260513 August 2007 Petrulescu et al.
7370001 May 2008 Harris
7590554 September 2009 Chen et al.
7805383 September 2010 Veit et al.
8086607 December 2011 Orumchian et al.
8938453 January 2015 Lewak
2001/0013004 August 2001 Haris et al.
2002/0144174 October 2002 Nwabueze et al.
2003/0195873 October 2003 Lewak et al.
2004/0193576 September 2004 Petculescu
2006/0212362 September 2006 Donsbach et al.
2007/0265904 November 2007 Lindquist et al.
2010/0121675 May 2010 Charles
Examination Report dated Oct. 16, 2009, mailed in European Application No. 05742949.0, pp. 1-5. cited by applicant .
Response to Examination Report dated Oct. 16, 2009, as filed in European Application No. 05742949.0 on Feb. 26, 2010, pp. 1-10. cited by applicant .
Summons to Attend Oral Proceedings dated Apr. 15, 2013, mailed in European Application No. 05742949.0, pp. 1-8. cited by applicant .
Response to Summons to Attend Oral Proceedings dated Apr. 15, 2013, as filed in European Application No. 05742949.0 on Sep. 17, 2013, pp. 1-40. cited by applicant .
Decision to Refuse dated Jul. 30, 2014, mailed in European Application No. 05742949.0, pp. 1-17. cited by applicant .
Ground of Appeal in Response to Decision to Refuse dated Jul. 30, 2014, as filed in European Application No. 05742949.0 on Dec. 8, 2014, pp. 1-31. cited by applicant .
First Office Action dated Mar. 5, 2012, mailed in Indian Application No. 3545/KOLNP/2006, pp. 1-2. cited by applicant .
Response to First Office Action dated Mar. 5, 2012, as filed in Indian Application No. 3545/KOLNP/2006 on May 7, 2012, pp. 1-64. cited by applicant .
Notice of Hearing dated Mar. 9, 2017, mailed in Indian Application No. 3545/KOLNP/2006, 1 page. cited by applicant .
Bass Diffusion 1969 downloaded from Wikipedia on Jun. 30, 2015, pp. 1-4. cited by applicant .
Notice of Allowance dated Nov. 3, 2016, mailed in U.S. Appl. No. 14/625,083, pp. 1-37. cited by applicant .
Request for Continued Examination (RCE) and RCE Submission as filed in U.S. Appl. No. 14/625,083 on Oct. 17, 2016, pp. 1-18. cited by applicant .
Advisory Action dated Sep. 26, 2016, mailed in U.S. Appl. No. 14/625,083, pp. 1-2. cited by applicant .
Response to Final Office Action dated Apr. 15, 2016, as filed in U.S. Appl. No. 14/625,083 Sep. 15, 2016, pp. 1-15. cited by applicant .
Final Office Action dated Apr. 15, 2016, mailed in U.S. Appl. No. 14/625,083, pp. 1-42. cited by applicant .
Response to Non-Final Office Action dated Jul. 28, 2015, as filed in U.S. Appl. No. 14/625,083 on Jan. 28, 2016, pp. 1-10. cited by applicant .
Non-Final Office Action dated Jul. 28, 2015, mailed in U.S. Appl. No. 14/625,083, pp. 1-32. cited by applicant.
1. A system comprising: an analysis server adapted for coupling to at least an external first client and incorporating an analytics and aggregation unit to analyze and update the information in a first customer database; and a first database of information coupled to the analysis server, the first database embodying forecast data and receiving updates to the forecast data, wherein during operation the analytics and aggregation unit analyze and update the information of at least a first partition of the first database; wherein the first partition includes only changed data, the amount of data in the first partition is smaller than the amount of data in the second partition, so that there is a relatively low consumption of resources of the analytics and aggregation unit in analyzing and updating the information and in responding to a query, and so that access to the data is accomplished more quickly that if responding to the query required a higher consumption of resources of the analytics and aggregation unit in analyzing and updating the information in the second partition.
3. The system of claim 1, wherein the customer database comprises forecast data for a first customer.
9. The system of claim 1, wherein the first partition containing change data is calculated frequently without using too many analysis server resources due to the small amount of change data included in that second partition.
12. The system of claim 1, wherein the system includes provides a world wide web interface and a world wide web hosted forecasting application.
13. The system of claim 1, wherein the system provides for concurrent access by multiple organizations.
14. The system of claim 13, wherein for the multiple organizations, the data in the database is segregated for each different one of the multiple organizations to satisfy confidentiality concerns.
15. The system of claim 14, wherein the first database includes multiple data repositories that may be separate, either logically or physically, or both logically and physically.
16. The system of claim 13, wherein: a first user uses a first client to access the system, and access a first data repository using the analysis server including the analytics and aggregation unit; and a second user uses a second client to access the system, and access a second data repository.
17. The system of claim 13, wherein the first user and the second user use the same the analytics and aggregation unit.
18. The system of claim 13, wherein the first user and the second user use a different the analytics and aggregation unit.
19. The system of claim 13, wherein the first user and the second user use a different instantiation of the same analytics and aggregation unit.
20. The system of claim 1, wherein the an analytics and aggregation unit processing facilities are separated, logically, or physically, or both logically and physically.
In one embodiment, a sales representative or similar individual (user) enters information into each cell in frame 260, and is required to "touch" each cell (enter or confirm data in the cell) to attempt to verify that no data is inadvertently left out or entered incorrectly. Moreover, the user may be required to touch each cell of the summary data of part 270. Additionally, status information related to what is being entered is displayed as status 205, and submit 210 and exit 215 buttons are provided for submission of entered data and exit of the software respectively. Once data has been entered, a similar user interface may be used to display the data. If changes are made to the data, those changes may also be displayed as described below.
FIG. 7 shows several computer systems that are coupled together through a network 705, such as the internet. The term "internet" as used herein refers to a network of networks which uses certain protocols, such as the TCP/IP protocol, and possibly other protocols such as the hypertext transfer protocol (http) for hypertext markup language (html) documents that make up the world wide web (web). The physical connections of the internet and the protocols and communication procedures of the internet are well known to those of skill in the art.
Access to the internet 705 is typically provided by internet service providers (ISPs), such as the ISPs 710 and 715. Users on client systems, such as client computer systems 730, 740, 750, and 760 obtain access to the internet through the internet service providers, such as ISPs 710 and 715. Access to the internet allows users of the client computer systems to exchange information, receive and send e-mails, and view documents, such as documents which have been prepared in the html format. These documents are often provided by web servers, such as web server 720 which is considered to be "on" the internet. Often these web servers are provided by the ISPs, such as ISP 710, although a computer system can be set up and connected to the internet without that system also being an ISP.
Similarly, the ISP 715 provides internet connectivity for client systems 740, 750, and 760, although as shown in FIG. 7, the connections are not the same for these three computer systems. Client computer system 740 is coupled through a modem interface 745 while client computer systems 750 and 760 are part of a LAN. While FIG. 7 shows the interfaces 735 and 745 as generically as a "modem," each of these interfaces can be an analog modem, ISDN modem, cable modem, satellite transmission interface (e.g. "direct pc"), or other interfaces for coupling a computer system to other computer systems.
FIG. 8 shows one example of a conventional computer system that can be used as a client computer system or a server computer system or as a web server system. Such a computer system can be used to perform many of the functions of an internet service provider, such as ISP 710. The computer system 800 interfaces to external systems through the modem or network interface 820. It will be appreciated that the modem or network interface 820 can be considered to be part of the computer system 800. This interface 820 can be an analog modem, isdn modem, cable modem, token ring interface, satellite transmission interface (e.g. "direct pc"), or other interfaces for coupling a computer system to other computer systems.
The non-volatile storage 850 is often a magnetic hard disk, an optical disk, or another form of storage for large amounts of data. Some of this data is often written, by a direct memory access process, into memory 840 during execution of software in the computer system 800. One of skill in the art will immediately recognize that the terms "machine-readable medium" or "computer-readable medium" includes any type of storage device that is accessible by the processor 810 and also encompasses a carrier wave that encodes a data signal.
In addition, the computer system 800 is controlled by operating system software which includes a file management system, such as a disk operating system, which is part of the operating system software. One example of an operating system software with its associated file management system software is the family of operating systems known as Windows.RTM. from Microsoft Corporation of Redmond, Wash., and their associated file management systems. Another example of an operating system software with its associated file management system software is the Linux operating system and its associated file management system. The file management system is typically stored in the non-volatile storage 850 and causes the processor 810 to execute the various acts required by the operating system to input and output data and to store data in memory, including storing files on the non-volatile storage 850.
Various networks and machines such as those illustrated in FIGS. 7 and 8 may be utilized. FIG. 9 illustrates an embodiment of a system for use in forecasting data with real-time updates. System 900 includes clients, servers, and supporting databases. Various embodiments of systems may be used, with different configurations as needed due to circumstances surrounding an implementation or installation of such a system. The system 900 may be used with various types of data which is suitable for both forecasting and for essentially real-time updates. Essentially real-time updates refer to updates provided to the system as soon as practicable--this may be immediate, or it may occur as soon as a person with the appropriate information is in a position to relay that information to the system 900.
Both judgments and watches may be understood with reference to further illustrations. FIG. 22 illustrates application of judgment in an embodiment. Judgment interface 430 includes value change option 440 and percentage change option 460. Value change option 440 includes type 445 (units or revenue for example) and value 450 (amount of change for example). Percentage change option 460 includes direction 465 (increase/decrease), type 470 (revenue or units for example) and amount 475 (the amount of change for example). As illustrated, a change by value is executed, with a set amount provided--the end result of the change is specified. With a change by percentage, the amount of change (delta) is specified. Additionally, because a change (judgment) is being entered, status 340 indicates that an approval must be provided for the change to take effect.
The released forecast then provides departments within the company, such as production, engineering and operations, insight into what will need to be built, both when and where. Moreover, this allow for vetting (and thus feedback) from production, and may allow for prediction of trends for parts or supplies for example. Similarly, this allows finance departments to analyze and predict financial data such as a gross margin, either on a line-by-line level or at an enterprise level, for example. This then allows for planning of capital needs and for simulation or `what if` type of scenarios, both within the system or in a separate financial system. Additionally, finance departments can provide feedback to the baseline as well, such as by indicating which accounts are doubtful and should be discouraged until payment is more reasonable, or by indicating what expected financial trends may do to various industries.
From this, the CEO may then see all perspectives of the forecast, along with the broad overview of the forecast. This allows the CEO to obtain `one number` for the entire company--allowing for intelligent discussions with media and outside interests when the CEO interacts with the public. Alternatively, the CEO can track a set of numbers and associated relationships, allowing the CEO to also understand the perspectives within the company which relate to these numbers. Moreover, this provides a clear and detailed view of expected developments of the company. As the CEO may also simulate changes, apply judgments or watch numbers (along with other departments and people), the CEO and staff may then analyze potential changes. As such, this facilitates key decisions a CEO may need to make. Such decisions, whether made by the CEO or some other member of the company, may include determining what parts to retire and when; how much of internal resources to allocate; where to invest based on what appears to be driving the business; how to streamline internal operations; and how to maximize capital efficiency for example.
In some embodiments, baseline creation and continuous updates form separate tasks and may have separate interfaces. Thus, a different business process may be used for each. Creating a baseline is often oriented towards a bottom-up commit--sales people providing commitments to the company for example. Creating updates is often more of a change notification prompting or requiring decisions and/or action--the biggest customer starts canceling orders and high-level executives need to act right away.
With the data stored in the system, this enables continuous updates--a change may be propagated essentially immediately. The system may immediately notify all groups to a change in terms that make the impact (of the change) clear. These groups may include sales, marketing, production, engineering, operations, finance, and executive groups for example. Moreover, the updates may be provided using a simple client or interface, and may be tied to production to ensure that sales people will get goods for their customers in the right quantities at the right times.
Impacts of changes are often an important goal of analysis, watches, judgments, aggregations or any other exercises carried out on financial data. The system automatically determines what the biggest impacts are and displays them by absolute rank and relative change percentage--basically by tracking changes as they occur and maintaining a set of lists of such information. This allows users to drill down into sources of the biggest impacts. Moreover, impacts are provided according to whatever the drill down perspective is, (such as through context sensitive impacts) in some embodiments.
At module 2750, a request is received for data in its current state from a field operative. Thus, the field operative is seeking data after feedback information has been provided. The altered data is provided in response to the request at module 2760, such as through a database request for information related to a given user, for example. Thus, the user may view information or data which is visible based on an associated userid (e.g. Data the user has privileges for or is authorized for) or may view data based on what information the user originally entered, for example. At module 2770, the user may provide objections to changes to data, such as contesting changes to some or all of the data, or contesting the reasoning behind such changes if available. These objections are received by the system, and may be submitted for review by a predetermined user at module 2780--thereby allowing for intelligent adoption or rejection of objections or changes. At module 2790, the data in question is finalized, signaling that the data will not change further, at least during the present data entry/modification cycle.
Comparison of this data results in various analytical results. Variance 3540 represents differences between two sets of data, and illustrates where the forecast did not meet reality. Accuracy 3550 represents how far away a forecast was from reality or a later forecast--accuracy 3550 and variance 3540 may represent the same data, and either present the data differently, or present different aspects of the data, such as percentage versus absolute magnitude, for example.
A fact datum (new data point or change to data) is received at module 4410. At module 4420, the datum is recorded in a database, with a flag indicating a change has occurred--the recorded datum is new. At module 4430, all data in the database which is flagged is then processed into the change partition of an OLAP cube. Since this is likely to be a small amount of data relative to the contents of the database, this results in relatively low consumption of resources. Thus, the OLAP cube has a partition with changed data in it, and that data populates the cube to allow for access to information in a speedy fashion.
A query is received at module 4510, requesting data from the OLAP cube and associated database--and which will be serviced from the OLAP cube. Preferably, the query is then sent in parallel to the two cubes (partitions) or in a nearly parallel manner. At module 4520, the query is passed to the main cube. At module 4530, responsive data is received from the main cube, and at module 4540, that data is aggregated into a result.
Data structure 4600 includes facts 4610, customer information 4620, user information 4630, and other associated information. Data structure 4600 also includes window information 4640. Thus, for each fact datum in facts 4610, a customer, user, and window is associated--although this data need not be absolutely populated for all data.
The window specified may dictate that some changes are excluded, either because they are private (specific to a private window) or because the window is private and does not include all changes in a forecast. However, a request may also be set up to include a selection of windows, allowing a user to cut out changes made by the executive suite or marketing group to determine if results are better that way, for example. Similarly, a response may provide a display of the changing information over time--indicating values at various windows, for example. Moreover, if the request of module 4725 is transmitted when changes are being stored at module 4830, the request may overlap the change storage, but the result may include the changes as long as sufficient time is allowed to collect changes.
However, these various numbers may each build off of a common history and common set of numbers which are aggregated to arrive at the various expectations. Similarly, the baselines may build selectively off of other baselines--and baselines in general may be expected to depend from earlier baselines in terms of the data used and drawn from for calculations. Thus, each user may have a unique view of the data and still all look at (essentially) the same data. If baselines selectively build from earlier baselines, the information about which baselines are included will generally be accessible when such baseline information is used.
Previous Patent US 10,074,136 | Next Patent US 10,074,138