Some embodiments relate to the creation of reports based on business data. More specifically, some embodiments relate to systems to create a sales plan.
A sales plan is a well-known tool for defining sales targets for one or more sales categories. A sales category may be defined by any combination of geographical region, corporate entity, product, or other characteristic. For example, a sales plan may define sales targets for automobile tires in the U.S. Northeast. A sales plan may specify sales targets for one or more time periods, such as a single sales target for a sales category for a particular year, and/or a sales target for a sales category for each month of a particular year.
Typically, a sales plan for an upcoming year (e.g., 2011) is generated during the last quarter of the current year (e.g., 2010). The sales plan may take into account, for example, incoming sales orders in the current year as a guideline for what to expect in the upcoming year. However, little incoming sales order data may exist for the time period between generation of the plan and the end of the current year. The user must therefore identify and gather other data for generating sales targets for the remainder of the year.
This problem is exacerbated as the number of sales categories in a sales plan increases. That is, a user must identify and gather data for generating sales targets for each of the multiple sales categories during the remainder of the year. Although such a process may provide a sales plan reflecting a total sales target across all sales categories, the process does not operate in reverse, i.e., it does not provide the generation of sales targets for several time periods and several sales categories based on an initially-provided total sales target.
Systems are therefore needed to efficiently generate a sales plan. Moreover, systems are desired for efficiently defining sales targets within such a sales plan for various sales categories and in view of a desired sales total.
System 100 includes application server 110 to provide data of datastore 120 to client 130. For example, client 130 may send a request for sales figures to application server 110 and, in response, application server 110 delegates the request to datastore 120, retrieves the requested figures from datastore 120 and returns them to client 130.
Datastore 120 may comprise any one or more systems to store business data. The data stored in datastore 120 may be received from disparate hardware and software systems, some of which are not interoperational with one another. The systems may comprise a back-end data environment employed in a business or industrial context. The data may be pushed to datastore 120 and/or provided in response to queries received therefrom.
The data of datastore 120 may be stored in a traditional fixed disks or in-memory (e.g., in Random Access Memory) to allow fast retrieval and processing thereof. The data may comprise a relational database, an in-memory database, a multi-dimensional database, an eXtendable Markup Language (XML) document, and/or any other structured data storage system. The physical tables of datastore 120 may be distributed among several relational databases, dimensional databases, and/or other data sources. To provide economies of scale, datastore 120 may include data of more than one customer. Application server 110 therefore includes mechanisms to ensure that a client accesses only the data that the client is authorized to access. Moreover, the data of datastore 120 may be indexed and/or selectively replicated in an index.
Client 130 displays user interfaces and data received from application server 110, and may also be operated to process such data and send data back to application server 110 for storage in datastore 120. Client 130 may comprise any suitable device, such as a desktop computer, a laptop computer, a personal digital assistant, a tablet PC, and a smartphone. Client 130 may execute program code of a rich client application, an applet in a Web browser, or any other application to perform the processes attributed thereto herein. According to some embodiments, client 130 executes a standalone application (e.g., a spreadsheet application) which communicates with application server 110 via Web Services to retrieve data therefrom.
Initially, at S205, a request is received to generate a sales plan associated with a future time period for each of a plurality of sales categories. To assist in the present description of an example of process 200,
According to the present example, it will be assumed that the Head of Finance at Akron Heating Inc. has already created the illustrated plan (i.e., Plan 2011) and specified the Sales Budget of 7.5M USD. Next, the Head of Sales has selected Sales Unit Plan from pull-down menu 310 to view the plan. Forecast 2010 tab 320 is then selected to request generation of the sales plan at S205.
In response to the request, user interface 300 displays visualization 400 of
User interface 300 of
As shown in
The user then selects GO control 415. Then, at S210, and for each of the plurality of time periods, a first plurality of values of the first sales metric is determined, where each of the first plurality of values is associated with a respective one of the plurality of sales categories. For example, S210 may comprise determining, for each sales category shown in
Again, the user then selects GO control 415 and, at S220, and for each of the plurality of time periods (i.e., SEPT 2010, OCT 2010, NOV 2010, DEC 2010), a second plurality of values of the second sales metric is determined, where each of the second plurality of values is associated with a respective one of the plurality of sales categories. In the present example, S220 comprises determining, for each sales category, the weighted expected values of opportunities for each of the last four months of 2010. Next, a composite value is determined at S225 for each one of the plurality of time periods based on the second plurality of values determined for the plurality of time periods. The composite value is the sum of all weighted expected values of opportunities determined for a particular month for all sales categories.
After selection of GO control 415, a third plurality of values of the third sales metric is determined for each of the plurality of time periods and for each of the plurality of sales categories. The third plurality of values simply consists of the monthly sales targets for each of the sales categories for each of the last four months of 2010. These values are summed according to month and the results are displayed in visualization 400 of
Next, at S230, an expected sales value for each of the plurality of sales categories is determined for each of a third plurality of time periods. The expected sales value is determined based on the determined first plurality of values and the determined second plurality of values. The present example also includes a third plurality of values (i.e., the monthly sales targets for each of the sales categories), therefore the determination of the expected sales values in this example will also be based on the third plurality of values.
In one example of S230, the values determined for a particular sales category for a particular month will be used to determine an expected sales value for that sales category in that particular month. For January 2010 through August 2010, the expected sales value is simply equal to the incoming sales order value for that sales category in the particular month. However, for September 2010 through December 2010, the expected sales value is equal to the greater of the weighted expected values of opportunities and the 2010 sales target in the particular month. This calculation is repeated for every sales category. Embodiments are not limited to this particular calculation.
At S235, a total expected sales value for each one of the third plurality of time periods is determined based on the determined expected sales values. In the present example, the total expected sales value for a given month is the sum of the expected sales values determined for that month. Next, at S240, a first visualization is displayed, including the first composite value determined for each one of the first plurality of time periods, the second composite value determined for each one of the second plurality of time periods, and the total expected sales value determined for each one of the third plurality of time periods.
Visualization 400 of
Table 800 of
Apparatus 1100 includes processor 1110 operatively coupled to communication device 1120, data storage device 1130, one or more input devices 1140, one or more output devices 1150 and memory 1160. Communication device 1120 may facilitate communication with external devices, such as an external design tool. Input device(s) 1140 may comprise, for example, a keyboard, a keypad, a mouse or other pointing device, a microphone, knob or a switch, an infra-red (IR) port, a docking station, and/or a touch screen. Input device(s) 1140 may be used, for example, to enter information into apparatus 1100. Output device(s) 1150 may comprise, for example, a display (e.g., a display screen) a speaker, and/or a printer.
Data storage device 1130 may comprise any appropriate persistent storage device, including combinations of magnetic storage devices (e.g., magnetic tape, hard disk drives and flash memory), optical storage devices, Read Only Memory (ROM) devices, etc., while memory 1160 may comprise Random Access Memory (RAM).
Application server 1132 of data storage device 1130 may comprise program code executable by processor 1110 to provide any of the functions described herein. Embodiments are not limited to execution of these functions by a single apparatus. Datastore 1134 may include data as described herein with respect to datastore 120. As also mentioned herein, memory 1160 may also or alternatively store data of data store 120, with datastore 1134 providing a persistent backup. Data storage device 1130 may also store data and other program code for providing additional functionality and/or which are necessary for operation thereof, such as device drivers, operating system files, etc.
Other topologies may be used in conjunction with other embodiments. Moreover, each system described herein may be implemented by any number of computing devices in communication with one another via any number of other public and/or private networks. Two or more of such computing devices of may be located remote from one another and may communicate with one another via any known manner of network(s) and/or a dedicated connection. Each computing device may comprise any number of hardware and/or software elements suitable to provide the functions described herein as well as any other functions. For example, any computing device used in an implementation of system 100 may include a processor to execute program code such that the computing device operates as described herein.
All systems and processes discussed herein may be embodied in program code stored on one or more computer-readable non-transitory media. Such media non-transitory media may include, for example, a fixed disk a floppy disk, a CD-ROM, a DVD-ROM, a Flash drive, magnetic tape, and solid state Random Access Memory (RAM) or Read Only Memory (ROM) storage units. Embodiments are therefore not limited to any specific combination of hardware and software.
The embodiments described herein are solely for the purpose of illustration. Those in the art will recognize other embodiments may be practiced with modifications and alterations limited only by the claims.