1. Field of the Invention
The field of the invention is data processing, or, more specifically, methods, apparatus, and products for optimizing a business performance forecast.
2. Description of Related Art
Businesses today often utilize analytics software to generate a forecast of future sales. Most of that software generally relies on prior sales figures as well as upcoming events like holidays, weekends, and the like to generate a forecast. There are, however, many other factors that can influence sales that are not taken into account by the prior art analytics software in generating a sales forecast.
Methods, apparatus, and products for optimizing a business performance forecast are disclosed in this specification. Optimizing a business performance forecast may include: projecting, by a projection module based on a projection algorithm, a performance forecast for a period of time, wherein the projection algorithm includes a plurality of inputs with each input having a weight and the projection algorithm is associated with a confidence score; capturing, by the projection module, results of actual performance for the period of time; comparing, by the projection module, the results of actual performance to the performance forecast, including determining whether the difference between the results of actual performance and the performance forecast is less than a predetermined threshold; if the difference between the results and the performance forecast is less than the predetermined threshold, increasing, by the projection module, the confidence score associated with the projection algorithm; if the difference between the results and the performance forecast is not less than the predetermined threshold: iteratively, until a difference between the results of actual performance and a new forecast is less than the predetermined threshold: modifying, by the projection module, the projection algorithm; projecting, by the projection module, a new forecast based on the modified projection algorithm; and determining, by the projection module, whether the difference between the results of actual performance and the new forecast is less than the predetermined threshold.
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular descriptions of exemplary embodiments of the invention as illustrated in the accompanying drawings wherein like reference numbers generally represent like parts of exemplary embodiments of the invention.
Exemplary methods, apparatus, and products for optimizing a business performance forecast in accordance with the present invention are described with reference to the accompanying drawings, beginning with
The system of
Stored in RAM (168) is a projection module (104), a module of computer program instructions that, when executed, cause the computer (152) of
A projection algorithm as the term is used in this specification is process by which a performance forecast is generated. Such a projection algorithm may be implemented as a module of computer program instructions, such as a function. The projection module (104) may pass such a function one or more arguments such as, for example, a time period for the forecast. The projection algorithm (110) in the example of
Social media services, like Twitter™ and Facebook™, may be data mined for keywords, phrases, or other data that may be used by the projection algorithm to infer various changes in the forecast. Consider, for example, a projection algorithm configured to generate a sales forecast for a particular product. The projection algorithm may indicate a higher forecast (greater number of sales) if many users of a social media service have posted positive reviews of the product, positive sentiment toward the product, positive sentiment toward the business itself, or a desire to purchase such product.
Direct customer feedback may include any feedback provided directly to the business.
Examples of such feedback may be customer service call statistics, customer service survey results, customer service email statistics and content, reviews of products provided directly to the business via a web interface or web form submission, data representing a user's ‘wish list’ on the business's e-commerce website, and so on.
Indirect customer feedback may include customer feedback regarding the business or a business's product(s) not provided directly to the user, but rather through other web-based media. Examples of such indirect customer feedback may include user reviews of a business's product on e-commerce sites other than business's e-commerce site.
Web-based publications may include any web-based data source not previously mentioned. Examples of such publications may include product review websites, news related websites, websites providing weather information, and the like. Consider, for example, that a major portion of a business's supply chain relies on products sources from Japan. Weather information indicating uncharacteristic but extremely harsh weather conditions in Japan may be utilized in the projection algorithm to generate a forecast that takes into account a possible loss of supply chain resources.
Each of these inputs may be weighted according to likelihood that inputs' data correlates to a change in the forecast. Consider, for example, that positive mentions of a business's product on a social media service may be less likely to indicate higher sales in the coming quarter than positive reviews provided directly to the company. In this way, such positive mentions on a social media site may be weighted less than positive reviews provided as direct customer feedback.
When establishing the algorithm, a set of inputs as well as a weight for each input may be provided by system administrator. As described below, the weights and inputs may be modified, automatically without the system administrator, as fine-tuning of the algorithm is carried out. The inputs described here are inputs from data sources not utilized by business analytics software of the prior art. It should be noted, however, that in addition to input described here, traditional data (such as past sales data) may also be utilized by the projection algorithm in projecting a performance forecast.
The projection algorithm (110) in the example of
After the projection module (104) of
The projection module (104) in the example of
Effectively, the projection algorithm produced a highly accurate forecast and, as such, the confidence score (116) representing the estimated accuracy of the algorithm to produce a forecast that reflects actual results is increased.
If, however, the difference between the results (108) and the performance forecast (106) is not less than the predetermined threshold (that is, the forecast does not reflect actual results with the desired accuracy), the projection module (104) optimizes the algorithm. The optimization may be carried out in iterative manner until a difference between the results of actual performance and a new forecast is less than the predetermined threshold. The steps carried out iteratively by the projection module may include modifying the projection algorithm, projecting a new forecast based on the modified projection algorithm and determining whether the difference between the results of actual performance and the new forecast is less than the predetermined threshold. Here, the projection module utilizes the actual results (108) recently captured to optimize the algorithm.
The projection module (104) may modify the projection algorithm (110) in a variety of ways. The projection module (104), for example, may modify one or more weights (114) of the inputs (112). The projection module (104) may also identify one or more additional inputs and assign a weight to each of the additional inputs. The projection module (104) may identify additional inputs in a variety of ways. One way, for example, is by data mining the original inputs for additional data sources. Consider, for example, an original input where the data source for the input is a news website. Consider also that the projection module may identify additional inputs as targets of hyperlinks on pages that included phrases that the algorithm utilized in projecting the performance forecast.
In another example, the projection module (104) may identify correlation between data in data sources and results from a set of actual performance results. That is, the projection module (104) may utilize historical results and data from data sources at the time of the results to identify additional inputs. Consider, for example, that a particular phrase was repeated in social media services in three of the last four quarters. In those three quarters, the actual performance results were positive. In the other quarter, where the particular phrase was not repeated in social media services, the actual performance results were poor. From this historical set of data, the projection algorithm (104) can identify, as an additional input to the projection algorithm, the presence of the particular phrase on social media services.
In this way, the projection algorithm takes into account data sources and inputs not utilized by business analytics software of the prior art when projecting a performance forecast. Further, the projection algorithm is continually optimized to provide more accurate forecasts.
Also stored in RAM (168) is an operating system (154). Operating systems useful optimizing a business performance forecast according to embodiments of the present invention include UNIX™ Linux™ Microsoft XP™ AIX™ IBM's i5/OS™ and others as will occur to those of skill in the art. The operating system (154), projection module (104), performance forecast (106), actual performance results (108), projection algorithm (110), confidence score (116), and predetermined threshold (118) in the example of
The computer (152) of
The example computer (152) of
The exemplary computer (152) of
The arrangement of servers and other devices making up the exemplary system illustrated in
Transport Protocol), and others as will occur to those of skill in the art. Various embodiments of the present invention may be implemented on a variety of hardware platforms in addition to those illustrated in
For further explanation,
In the method of
The method of
The method of
If the difference between the results (108) and the performance forecast (106) is less than the predetermined threshold (118), the method of
If the difference between the results (108) of actual performance and the new forecast (216) is less than the predetermined threshold (118), the method of
If the difference between the results of actual performance and the new forecast is not less than the predetermined threshold (118), the method of
The method of
The method of
Modifying (210) the projection algorithm in the example of
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
It will be understood from the foregoing description that modifications and changes may be made in various embodiments of the present invention without departing from its true spirit. The descriptions in this specification are for purposes of illustration only and are not to be construed in a limiting sense. The scope of the present invention is limited only by the language of the following claims.
This application is a continuation application of and claims priority from U.S. patent application Ser. No. 14/062,600, filed on Oct. 24, 2013.
Number | Date | Country | |
---|---|---|---|
Parent | 14062600 | Oct 2013 | US |
Child | 14063427 | US |