Large corporations typical have geographically distributed computing systems.
Maintaining consistency of data and execution across these distributed computing systems can be challenging, particularly when data needs to be sent to select computing systems and the computing systems are dynamically updated based on the data.
Illustrative embodiments are shown by way of example in the accompanying drawings and should not be considered as a limitation of the present disclosure:
Described in detail herein are methods, systems, and computer-readable media associated with generation and sequenced distribution of suggested data over a distributed computing system.
In accordance with embodiments of the present disclosure, a computing system in a distributed computing environment can include an application located on one or more centrally located servers that executes periodically based on, for example, a specified period of time. Embodiments of the application can retrieve current data being utilized by other computing systems in the distributed computer environment to facilitate operation of the other computing systems, and can generate suggested data to be utilized by the other computing systems in place of the current data to alter an operation of the other computing systems.
In accordance with embodiments of the present disclosure, a distributed computing system may include data storage devices including first and second data sources, which may be embodied as or in one or more non-transitory computer-readable media, a first computing system may include a first server having a first processor communicatively coupled to the one or more data storage devices through a first network to facilitate communication between the processor and the first data source and between the processor and the second data source.
In exemplary embodiments, the server may be programmed to execute an automated batch file to query the first data source for current data associated with an object, generate suggested data based on the current data, and transmit the suggested data to the second data source. In exemplary embodiments, a second computing system may include a second server having a second processor communicatively coupled to the one or more data storage devices through a second network to facilitate communication between the second processor and the second data source.
In exemplary embodiments, the second server may be programmed to query the second data source for the suggested data, and transmit the suggested data to select additional computing systems distributed across the different geographic locations through a third network, wherein the second computing system replaces the current data with the suggested data based on transmission of the suggested data to the select additional computing system.
In exemplary embodiments, the suggested data may be a suggested price for a product. In exemplary embodiments, the current data may include market rules, current price and price gap goals. In exemplary embodiments, the market rules may include a country, a format, a category, or a zone.
In exemplary embodiments, wherein calculating the suggested price for a product may include, calculating price elasticity of the product based on the current data, calculating, a revenue of the product based on the current data and the calculated price elasticity, calculating a profit of the product based on the current data and the calculated price elasticity calculating a lower limit price and an upper limit price based on the revenue, the profit and the current data and calculating a new price for the product in-between the lower limit price and the upper limit price.
The following description is presented to enable any person skilled in the art to generate and distribute suggested data over a distributed computing system. Various modifications to the example embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Moreover, in the following description, numerous details are set forth for the purpose of explanation. However, one of ordinary skill in the art will realize that example embodiments of the present disclosure may be practiced without the use of these specific details. In other instances, well-known structures and processes are shown in block diagram form in order not to obscure the description of example embodiments with unnecessary detail. Thus, the present disclosure is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
The data sources 112 and 118 may store information/data, as described herein. For example, the data sources 112 may include a current data source 114. In exemplary embodiments the current data source 114 can include a group of shared folders stored in one or more directories maintained by the data source, where one or more current data files are stored in the folders. The current data source 114 can store product information including current pricing, market rules, and price gap goals. In exemplary embodiments, data sources 118 may include a suggested data 116. In exemplary embodiments, the suggested data 116 can be stored in a database in the suggested data source 118. In exemplary embodiments, the suggested data source 118 can store suggested data generated by an operation of the central computing system and can include category description, item number, country, store banner, zone, item class, current price, current cost, current margin, lower limit price, upper limit price, suggested (optimum) price, price gap at current price, price gap at suggested price, price gap goal, and adjusted price.
In an example embodiment, one or more portions of communications network 108 and 110 can be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless wide area network (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, a wireless network, a WiFi network, a WiMax network, any other type of network, or a combination of two or more such networks.
The central computing system 102 can be configured to execute one or more instances of an application 120 to facilitate retrieval of product data (e.g., from the current data source), generation of suggested price data for products based on the retrieved data, and pushing the new suggested price data into one or more data structures stored in one or more data sources (e.g., the suggested data database). In exemplary embodiments, an operation of the central application 120 can be distributed across the servers 124a-d such that each server is performing one or more functions and/or operations of the central application 120. In exemplary embodiments, an instance of the central application 120 can be implemented by each server such that functions and/or operations of the application can be formed by a single server.
The regional computing system 104 can be configured to execute one or more instances of a regional application 122 to facilitate retrieval of suggested price data from the one or more data structures (e.g., suggested data source 118), editing the suggested price data in the one or more data structures, and selectively transmitting the updated data structure to computing systems located in different geographic locations. In exemplary embodiments, an operation of the regional application 122 can be distributed across the servers 126a-d such that each server is performing one or more functions and/or operations of the regional application 122. In exemplary embodiments, an automated batch file may be executed based on a predetermined period of time. The automated batch file may include instructions to launch the central application 120. In an exemplary operation, upon execution of the central application 120 by the automated batch file, the central application 120 may retrieve current data. For example, the central application 120 can retrieve the current data from current data files stored in the current data source 114. The current product data can include, but is not limited to current pricing for products, market rules, and price gap goals. In exemplary embodiments, market rules can be specified according to one or more parameters, such as country, format, category and zone. The central application 120 may generate suggested price data based on the current data and can transmit the suggested data to the data source 118. In exemplary embodiments, the automated batch file may be an automated script file, .bat file, .cmd file or .btm file. In exemplary embodiments, the automated batch file may be executed based on a predetermined period of time. In other embodiments, the automated batch file may be executed based on data updates in the current data source 114.
In some embodiments, the central application 120 can determine the effect suggested data can have on affinity products. In exemplary embodiments, affinity products can be products often sold together with the product for which a suggested pricing data is generated. The central application 120 may calculate that the suggested pricing data will not adversely affect the sale of the affinity products.
In some embodiments, the central application 120 may suggest the price for any linked products. For example, if one flavor of ice cream for a specific brand has a new suggested (optimal) price, all the flavors of the same brand of ice cream will have the same newly suggested (optimal) price.
In some embodiments, the central application 120 may subtract taxes from the current prices before generating suggested pricing data. For example, in certain countries tax is included in listed prices of products. To calculate a suggested price, the appropriate taxes can first be taken out of the current price. The central application 120 can omit this step in jurisdictions where tax is not included in the listed price of products.
Once the central application 120 generates the suggested data and the suggested data is stored in the suggested data source 118, the regional computing system can execute the regional application 122 to query the suggested data database 116 and retrieve the suggested data. In exemplary embodiments, the suggested data may include, category description, item number, country, store banner, zone, item class, current price, current cost, current margin, lower limit price, upper limit price, optimum price, price gap at current price, price gap at suggested price, price gap goal, and adjusted price. In some embodiments, the suggested price data can be modified at the regional computing system based on requirements associated with the store computing systems 106a-m. The regional computing system can transmit the suggested price data to one or more selected store computing systems 106a-m distributed across the different geographic locations. For example, the regional application may be executed to select to send the suggested (optimal) pricing data to computing system 106a, 106b and 106f. In exemplary embodiments, the computing systems may update the POS system with the respective suggested (optimal) pricing data. In exemplary embodiments, a designated user may select which stores to transmit the suggested data. In exemplary embodiments, the regional computing system may transmit the suggested data to the respective store computing systems 106a-m to replace the current data with the suggested data in the Point Of Sale (POS) systems located in the stores.
Virtualization may be employed in the computing system 200 so that infrastructure and resources in the computing system 100 may be shared dynamically. A virtual machine 212 may be provided to handle a process running on multiple processors so that the process appears to be using only one computing resource rather than multiple computing resources. Multiple virtual machines may also be used with one processor.
Memory 206 may include a computer system memory or random access memory, such as DRAM, SRAM, EDO RAM, and the like. Memory 206 may include other types of memory as well, or combinations thereof.
A user may interact with the computing system 200 through a visual display device 214, such as a computer monitor, which may display one or more graphical user interfaces 216, multi touch interface 220, and a pointing device 218.
The computing device 200 may also include one or more storage devices 226, such as a hard-drive, CD-ROM, or other computer readable media, for storing data and computer-readable instructions and/or software that implement exemplary embodiments of the present disclosure (e.g., applications). As one example, when the computing device is implemented as one of the servers 124a-d of the central computing system 102 (
The computing device 200 can include a network interface 208 configured to interface via one or more network devices 224 with one or more networks, for example, Local Area Network (LAN), Wide Area Network (WAN) or the Internet through a variety of connections including, but not limited to, standard telephone lines, LAN or WAN links (for example, 802.11, T1, T3, 56 kb, X.25), broadband connections (for example, ISDN, Frame Relay, ATM), wireless connections, controller area network (CAN), or some combination of any or all of the above. In exemplary embodiments, the computing system can include one or more antennas 222 to facilitate wireless communication (e.g., via the network interface) between the computing device 200 and a network and/or between the computing device 200 and other computing devices. The network interface 208 may include a built-in network adapter, network interface card, PCMCIA network card, card bus network adapter, wireless network adapter, USB network adapter, modem or any other device suitable for interfacing the computing device 200 to any type of network capable of communication and performing the operations described herein.
The computing device 200 may run any operating system 210, such as any of the versions of the Microsoft® Windows® operating systems, the different releases of the Unix and Linux operating systems, any version of the MacOS® for Macintosh computers, any embedded operating system, any real-time operating system, any open source operating system, any proprietary operating system, or any other operating system capable of running on the computing device 200 and performing the operations described herein. In exemplary embodiments, the operating system 210 may be run in native mode or emulated mode. In an exemplary embodiment, the operating system 210 may be run on one or more cloud machine instances.
The servers and the terminals of the computing systems shown in
As an example, in graph 502 shown in
Referring to
P
2=((P1−*(ME−1)/2*(ME))+C (1)
In exemplary embodiments, P2 represents the suggested (optimal) price, P1 represents the current price, C represents the current cost, ME represents Margin Elasticity and PE represents the Price Elasticity. In exemplary embodiments margin elasticity relates to expected proportional change in quantity to a given proportional change in margin.
In exemplary embodiments, Equation 2 is applied to calculate the price of a product resulting in a maximum (optimal) revenue.
P
2
=P
1(PE−1)/(2*PE) (2)
In exemplary embodiments, P2 represents the suggested (optimal) price, P1 represents the current price, and PE represents the Price Elasticity.
As an example, in graph 600 shown in
Referring again to
In exemplary embodiments, in operation 404, the central application 120 calculates a new suggested (optimal) price which is expected to maintain margins and increase sales. In exemplary embodiments, the suggested (optimal) price will be within the lower limit price and upper limit price.
In exemplary embodiments, the suggested (optimal) price may be calculated using the following conditional logic.
IF(PE<−1 AND ME<−1)OR(PE>−1 AND ME>−1)THEN New Price=(Output of Max revenue+Output of Max margin)/2
In exemplary embodiments, PE represents price elasticity and ME represents margin elasticity.
Referring to
In exemplary embodiments, as a non-limiting example, the central application 120 may calculate a suggested (optimal) price for 3400 products. In exemplary embodiments, the central application 120 may select up to a specified number of products, e.g., 400 out of 3400 products, for which the price can be adjusted. In exemplary embodiments, the central application 120 may select the 400 products that may produce the maximum difference in (optimal) revenue and maximum difference (optimal) profit while remaining within the price gap goals, after adjustment to the suggested (optimal) price. To determine if a product will be selected for a price adjustment based on the suggested (optimal) price, the central application 120 can first calculate the maximum profit of the product using the following equation.
In Equation 3, pi represents price of a product, ci represents cost of the product, qi represents new average quantity of the product and q′i represents current average quantity of the product. In exemplary embodiments, the maximum profit can represent the maximum potential difference between the profit at the current prices and the profit at the suggested prices, and can be calculated by taking the difference of the current profit (shown as the second summation element in Equation 3) and new profit based on the newly suggested (optimal) price (shown as the first summation element in Equation 3).
The central application 120 can next count how many products have been selected for a price adjustment. In exemplary embodiments, only a specified number N of products can be selected to be changed, e.g., only up to 400 products can be selected for a price adjustment. The central application 120 will use the following equation to count the number of products that can be selected for a price adjustment.
In Equation 4, N represents the maximum number of price changes.
The central application 120 will next determine if the total revenue is greater than or equal to 0. That is, for selection for price adjustment, the product must have a revenue greater than 0. The central application 120 uses the following equation to determine if the difference between the current revenue and new revenue (the total revenue benefit) is greater than or equal to 0.
In Equation 5, pi represents price of a product, qi represents new average quantity of the product and q′i represents current average quantity of the product. In exemplary embodiments, the current revenue can be calculated using current data (shown as the second summation element in Equation 5) and a predicted new revenue can be calculated using new data based on the newly suggested (optimal) price (shown as the first summation element in Equation 5). The central application 120 will determine whether the total revenue benefit is greater or equal to 0 by calculating the difference between the current revenue and predicted new revenue.
The central application 120 determines if the product's price gap is greater than or equal to the lower limit price gap. For selection for price adjustment the product must have a price gap greater than or equal to the lower limit price gap. The central application 120 will use the following equation to determine if the price gap is greater than or equal to the lower limit price gap.
In Equation 6, pi represents price of a product, ci represents cost of the product, qi represents new average quantity of the product, q′i represents current average quantity of the product, mi represents market price of the product and L represents the lower limit price gap.
The central application 120 may then assign the product a binary number of 0 or 1. In exemplary embodiments, if the product is selected for price adjustment based on the suggested (optimal) price if assigned a 1. Conversely, the product is assigned a 0 if the product is not selected for price adjustment based on the suggested (optimal) price. The central application 120 uses the following equation to assign the binary number to the product.
x{0,1}∀iεI (7)
In Equation 7, the binary value is assigned to the product within the set constraint iε{1 . . . 3400}.
In other embodiments, the number of products for which the central application 120 calculates a suggested (optimal) price can be greater than or less than 3400.
In other embodiments, the maximum number of products for which the price can be adjusted may be greater than or less than 400.
In exemplary embodiments, in operation 1104 the central application 120 may transmit and store the suggested (optimal) pricing data in a suggested data source 116. In operation 1106, the regional application 122 may pull the suggested (optimal) pricing data from the suggested data database 232. In exemplary embodiments, the regional application 122 may display the suggested (optimal) pricing data in an excel spreadsheet format. In operation 1108, the suggested (optimal) pricing data may be edited in the excel sheet. The changes in the data based on different price settings may be reviewed. In operation 1110, the updated data in the suggested (optimal) pricing data may be saved in the suggested data source 116. In operation 1112, the regional application 122 may transmit the suggested (optimal) pricing data to select stores computing system 106a-m. In exemplary embodiments, the store computing system may be a smart store system. In operation 1114, the smart store system updates the POS systems throughout the store with the suggested (optimal) pricing data.
In describing exemplary embodiments, specific terminology is used for the sake of clarity. For purposes of description, each specific term is intended to at least include all technical and functional equivalents that operate in a similar manner to accomplish a similar purpose. Additionally, in some instances where a particular exemplary embodiment includes a plurality of system elements, device components or method steps, those elements, components or steps may be replaced with a single element, component or step. Likewise, a single element, component or step may be replaced with a plurality of elements, components or steps that serve the same purpose. Moreover, while exemplary embodiments have been shown and described with references to particular embodiments thereof, those of ordinary skill in the art will understand that various substitutions and alterations in form and detail may be made therein without departing from the scope of the invention. Further still, other embodiments, functions and advantages are also within the scope of the invention.
Exemplary flowcharts are provided herein for illustrative purposes and are non-limiting examples of methods. One of ordinary skill in the art will recognize that exemplary methods may include more or fewer steps than those illustrated in the exemplary flowcharts, and that the steps in the exemplary flowcharts may be performed in a different order than the order shown in the illustrative flowcharts.
This application is claims priority to U.S. Provisional Application No. 62/255,126 filed on Nov. 13, 2015, and U.S. Provisional Application No. 62/258,179 filed on Nov. 20, 2015, the content of each is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62258179 | Nov 2015 | US | |
62255126 | Nov 2015 | US |