REAL-TIME DELIVERY OF OPTIMAL VEHICLE PRICING DATA USING A CACHING SCHEME
20230079516 · 2023-03-16
Inventors
- Alexey PLOKHIKH (West Newton, MA, US)
- Inesa PLOKHIKH (West Newton, MA, US)
- Jared NEVES (Plympton, MA, US)
Cpc classification
International classification
Abstract
For real-time delivery of optimal vehicle price data, an application host receives a request for optimal price data for a specific vehicle displayed on the dealer website. When the response exists in the application cache, the application host, returns the response including the optimal price data for the specific vehicle to the browser for display on the dealer website. To calculate the optimal price data, the application host determines whether meta data for the specific vehicle matches parameter values in one or more pricing rules. If so, the application host identifies the pricing rule that has the highest number of parameter values. The optimal price data for the specific vehicle is then calculated by applying the formula in this pricing rule.
Claims
1. A method for real-time delivery of optimal vehicle price data, comprising: receiving, by an application host, from a browser displaying a dealer website, a request for optimal price data for a specific vehicle displayed on the dealer website; determining, by the application host, whether a response to the request exists in an application cache; in response to determining that the response exists in the application cache, retrieving the response by the application host, wherein the response comprises the optimal price data for the specific vehicle, wherein a calculation of the optimal price data by the application host comprises: determining whether meta data for the specific vehicle matches one or more parameter values comprised in one or more pricing rules, wherein each pricing rule further comprises a formula for calculating a price; when the meta data for the specific vehicle matches one or more parameter values comprised in one or more pricing rules, identifying a given pricing rule of the one or more pricing rules that comprises a highest number of parameter values; and calculating the optimal price data for the specific vehicle by applying the formula comprised in the given pricing rule; and returning, by the application host, to the browser, the response comprising the optimal price data for the specific vehicle for display of the optimal price data on the dealer website.
2. The method of claim 1, wherein the one or more parameter values comprises a combination of one or more of the following: a year of a vehicle; a make of the vehicle; a model of the vehicle; a trim of the vehicle; a vehicle type; and an age representing a time in which the vehicle has been in an inventory of the dealer.
3. The method of claim 1, wherein the formula comprises one or more variables comprising a combination of one or more of the following: a manufacturer suggested retail price (MSRP); an invoice; a vehicle price; an age discount; a fixed value discount; and an incentive.
4. The method of claim 1, wherein when the meta data for the specific vehicle does not match the one or more parameter values comprised in any of the pricing rules, returning, by the application host, to the browser, an indication that no optimal price data is available for the specific vehicle.
5. The method of claim 1, wherein in response to determining that the response does not exists in the application cache, the method further comprises: determining, by the application host, whether the optimal price data for the specific vehicle exists in a database cache or a disk cache; in response to determining that the optimal price data for the specific vehicle exists in the database cache, creating the response to the request by the application host, the response comprising the optimal price data from the database cache or the disk cache; and storing, by the application host, the response to the request in the application cache and returning the response to the browser.
6. A non-transitory computer readable medium comprising computer readable program code embodied therein, wherein when executed by a processor causes the processor to: receive, from a browser displaying a dealer website, a request for optimal price data for a specific vehicle displayed on the dealer website; determine whether a response to the request exists in an application cache; in response to determining that the response exists in the application cache, retrieve the response, wherein the response comprises the optimal price data for the specific vehicle, wherein a calculation of the optimal price data comprises: determine whether meta data for the specific vehicle matches one or more parameter values comprised in one or more pricing rules, wherein each pricing rule further comprises a formula for calculating a price; when the meta data for the specific vehicle matches one or more parameter values comprised in one or more pricing rules, identify a given pricing rule of the one or more pricing rules that comprises a highest number of parameter values; and calculate the optimal price data for the specific vehicle by applying the formula comprised in the given pricing rule; and return, to the browser, the response comprising the optimal price data for the specific vehicle for display of the optimal price data on the dealer website.
7. The medium of claim 6, wherein the one or more parameter values comprises a combination of one or more of the following: a year of a vehicle; a make of the vehicle; a model of the vehicle; a trim of the vehicle; a vehicle type; and an age representing a time in which the vehicle has been in an inventory of the dealer.
8. The medium of claim 6, wherein the formula comprises one or more variables comprising a combination of one or more of the following: a manufacturer suggested retail price (MSRP); an invoice; a sale price; an age discount; a fixed value discount; and an incentive.
9. The medium of claim 6, wherein when the meta data for the specific vehicle does not match the one or more parameter values comprised in any of the pricing rules, return, to the browser, an indication that no optimal price data is available for the specific vehicle.
10. The medium of claim 6, wherein in response to determining that the response does not exists in the application cache, the processor is further caused to: determine whether the optimal price data for the specific vehicle exists in a database cache or a disk cache; in response to determining that the optimal price data for the specific vehicle exists in the database cache, create the response to the request, the response comprising the optimal price data from the database cache or the disk cache; and store the response to the request in the application cache and returning the response to the browser.
11. A system, comprising: an application host comprising a processor, an application cache, and a non-transitory computer readable medium comprising computer readable program code embodied therein, wherein when executed by the processor causes the processor to: receive, from a browser displaying a dealer website, a request for optimal price data for a specific vehicle displayed on the dealer website; determine whether a response to the request exists in the application cache; in response to determining that the response exists in the application cache, retrieve the response, wherein the response comprises the optimal price data for the specific vehicle, wherein a calculation of the optimal price data comprises: determine whether meta data for the specific vehicle matches one or more parameter values comprised in one or more pricing rules, wherein each pricing rule further comprises a formula for calculating a price; when the meta data for the specific vehicle matches one or more parameter values comprised in one or more pricing rules, identify a given pricing rule of the one or more pricing rules that comprises a highest number of parameter values; and calculate the optimal price data for the specific vehicle by applying the formula comprised in the given pricing rule; and return, to the browser, the response comprising the optimal price data for the specific vehicle for display of the optimal price data on the dealer website.
12. The system of claim 11, wherein the one or more parameter values comprises a combination of one or more of the following: a year of a vehicle; a make of the vehicle; a model of the vehicle; a trim of the vehicle; a vehicle type; and an age representing a time in which the vehicle has been in an inventory of the dealer.
13. The system of claim 11, wherein the formula comprises one or more variables comprising a combination of one or more of the following: a manufacturer suggested retail price (MSRP); an invoice; a vehicle price; an age discount; a fixed value discount; and an incentive.
14. The system of claim 11, wherein when the meta data for the specific vehicle does not match the one or more parameter values comprised in any of the pricing rules, return, to the browser, an indication that no optimal price data is available for the specific vehicle.
15. The system of claim 11, wherein in response to determining that the response does not exists in the application cache, the processor is further caused to: determine whether the optimal price data for the specific vehicle exists in a database cache or a disk cache; in response to determining that the optimal price data for the specific vehicle exists in the database cache, create the response to the request, the response comprising the optimal price data from the database cache or the disk cache; and store the response to the request in the application cache and returning the response to the browser.
Description
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE FIGURES
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
DETAILED DESCRIPTION OF THE INVENTION
[0013] The following description is presented to enable one of ordinary skill in the art to make and use the present invention and is provided in the context of a patent application and its requirements. Various modifications to the embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein.
[0014] Reference in this specification to “one embodiment”, “an embodiment”, “an exemplary embodiment”, or “a preferred embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments. In general, features described in one embodiment might be suitable for use in other embodiments as would be apparent to those skilled in the art.
[0015] Embodiments of the present invention provide the real-time delivery of optimal vehicle pricing data using a caching scheme. Exemplary embodiments of a system in accordance with the present invention allows dealers to configure pricing rules with a greater granularity of parameters than existing systems. For example, exemplary embodiments are capable of grouping vehicles in dealer inventories by any combination of parameters, such as vehicle type, year, make, model, and trim. Dealers configure the pricing rules, which are used to calculate the optimal vehicle pricing data. The vehicle pricing data can then be provided to end user in real-time through the dealer website.
[0016]
[0017] In an exemplary embodiment, a code snippet is installed on the dealer website by the website provider 115. The code snippet is a reference to a script, e.g., JavaScript™ file, created specifically for a particular dealer website. Upon installation of the code snippet to the dealer website, the script is inserted into an inventory page of the dealer website and executes. The script parses the Document Object Model (DOM) of the inventory page containing the dealer's inventory of vehicles and identifies locations on the webpage to which to add the vehicle pricing data tool. The script modifies the DOM and adds additional HTML tags to the webpage. The HTML tags include an Inline Frame (Iframe), which serves content to the dealer website from the web server 103.
[0018]
[0019] If the response does not exist in the application cache 105, the application host 104 checks the database cache 109 for the optimal price data for the specific vehicle (block 209). If the optimal price data is found in the database cache 109, then the application host 104 creates a response with the optimal price data (block 210) and returns the response to the web server 103 (block 206). The application host 104 also stores the response in the application cache 105 (block 211), to be used for subsequent requests for the same optimal price data. If the optimal price data is not found in the database cache 109, then the application host 104 calculates the optimal price data for the specific vehicle (block 212), as described further below. The application host 104 then creates the response with the optimal price data (210) and returns the response to the web server 103 (block 206). The application host 104 also stores the response in the application cache 105 (block 211) and stores the optimal price data in the database cache 109 (block 213), to be used for subsequent requests. Optionally, the calculated optimal price data can be stored on the hard disk 110 and/or in the hard disk cache 111.
[0020] In the above manner, the dealer website provides the optimal price data for the specific vehicle to the end user in real-time, or “instantly”, i.e., while the end user is still interacting with the dealer website.
[0021] In some embodiments, the application cache 105 is not involved in the real-time delivery of the optimal vehicle pricing data, however, the involvement of the application cache 105 decreases the response time to a request for pricing data.
[0022] In some embodiments, the response time is further reduced by the use of the CDN 112. In this case, the request from the browser 101 is sent to the CDN 112. The CDN 112 determines whether the response to the request is stored in the CDN cache 113. If the response is found in the CDN cache 113, the CDN 112 returns the response without the request being forwarded to the web server 103. If the response is not found in the CDN cache 113, the request is forwarded to the web server 103, and blocks 203-213 are performed. When the web server 103 returns the response to the browser 101 (block 207), the response is sent through the CDN 112. The CDN 112 stores a copy of the response and its corresponding request in the CDN cache 113 and forwards the response to the browser 101. The copy of the response in the CDN cache 113 can then be used for subsequent requests.
[0023]
[0024] Using a pricing tool implemented by the application host 104, an administrator or account manager of a dealer configures one or more pricing rules used to calculate the optimal pricing data. The pricing rules include two parts: meta data containing parameter values, used to match a rule to vehicle(s) in the inventory; and formulas used for calculating optimal price data for vehicles matching a configured combination of parameters values. In an exemplary embodiment, the parameters include but are not limited to: vehicle type; year; make; model; and trim. An example formula is as follows:
Optimal Price=Base Price±n% of Base Price±OEM Incentives±Age Bucket Discount±Dealer Discount,
where the value of any of the variables can be zero. Here, the Base Price can be represented by any of the following: manufacturer suggested retail price (MSRP); invoice (the actual price that the dealer pays to the manufacturer for a vehicle; sale price/selling price (the price at which the dealer is willing to sell a vehicle); advertising price (price used in different advertising materials); or a custom price set by the dealer. OEM Incentives are financial inducements used by manufacturers to motivate dealers to sell particular vehicles by offering additional specified discounts. Age Bucket is a discount that the dealer sets based on the amount of time a vehicle has been in the dealer's inventory. Dealer Discount is an additional fixed amount discount offered by the dealer. The administrator can configure pricing rules to group vehicles by any combinations of parameter values in a hierarchical manner to realize desired levels of granularity. For example, a first pricing rule can be configured to apply to all new vehicles in the inventory. A second pricing rule can be configured to apply a discount to vehicles of a specific year, which overrides the first pricing rule. A third pricing rule can be configured with a combination of type, year, and make parameter values, which overrides the first and second pricing rules, etc. If a specific vehicle matches the parameters values in multiple rules, then the pricing rule with the most detailed combination of parameters is applied to calculate the optimal price for the specific vehicle.
[0025]
[0026] If the vehicle meta data does not match all of the parameter values in the first pricing rule, but matches the parameter values in a second pricing rule (block 404), configured with a combination of year, make, and model parameter values, then the application host 104 applies the formula in the second pricing rule to calculate the optimal price data for the vehicle (block 407). Pricing rules of lesser granularity of parameters than the second pricing rule are not applied.
[0027] If the vehicle meta data does not match all of the parameter values in the first or second pricing rules, but matches the parameter values in a third pricing rule (block 405), configured with a combination of year and make parameter values, then the application host 104 applies the formula in the third pricing rule to calculate the optimal price data for the vehicle (block 407). Pricing rules of lesser granularity of parameters than the third pricing rule are not applied.
[0028] If the vehicle does not match all of the parameter values in the first, second, or third pricing rules, but matches the parameter value in a fourth pricing rule (block 406), configured with a year parameter value), then the application host 104 applies the formula in the fourth pricing rule to calculate the optimal price data for the given vehicle (block 407).
[0029] The above process is repeated for other vehicles in the database 108. The calculated optimal price data for each vehicle is stored in the database 108 or hard disk 110, or in the database cache 109 or disk cache 111, as described above with reference to
[0030]
[0031] When a new vehicle is delivered to the dealer, typically the dealer assigns the vehicle a specific stock number. The vehicle then begins to “age”. In an exemplary embodiment, the dealer can assign different age discounts for different time intervals a vehicle stays in its inventory. The ability to configure different age discounts for different age buckets assists the dealer in keeping the vehicle inventory rotated, since the more a vehicle stays in the inventory, the less likely the dealer will receive an incentive from the manufacturer.
[0032]
[0033] The present invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the present invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
[0034] Furthermore, the present invention can take the form of a computer program product accessible from a computer usable or computer readable storage medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer usable or computer readable storage medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
[0035] A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
[0036] Input/output or I/O devices (including but not limited to keyboards, displays, point devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
[0037] Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
[0038] 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 local 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.
[0039] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
[0040] Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.