The present invention relates to a system and a method for facilitating online rental reservations from one or more inventories, and more particularly to an online filter-deferred calendar for multi-instanced rental inventory.
Many Internet-based applications allow users to reserve inventoried items from a finite selection of instances within a specific item type. Examples include websites facilitating online reservations for seats on an air flight (https://www.southwest.com/), rooms in a hotel (https://www.thetrinityhotel.com/reservations), and rental cars in a city (https://www.budget.com/en/home). In such applications, the user is ordinarily asked to choose their desired dates before seeing available rental options. The user may have to reselect dates to see other options if, once these dates are selected, the availability or the cost is not to the user's liking. In other applications, where there is only a single instance of each of the items being rented—for example, “the Honeymoon Suite” in a specific hotel or Bed-and-breakfast—the user is ordinarily asked to choose the single specific item they are interested in renting first and they will then be shown a calendar representing available dates for that single resource. The user may have to go back and choose another if the cost or availability for that resource is not to the user's liking. Many of these solutions also have secondary filters (i.e. select type of car or specific seats on a flight) but the initial filter is required from the user before these secondary filters can be applied to offer a refined selection. Some solutions display “flexible dates” where the user interface (UI) can be more easily adjusted to compare prices but an initial date filter is again required from the user. Currently, there is no existing user-interface in which the user is offered a single availability calendar representing multiple instances of a desired item upfront, i.e. before either the date range or the individual item is selected.
The present invention provides a system and a method for facilitating online rental reservations from one or more inventories, and more particularly to an online filter-deferred calendar for multi-instanced rental inventory.
In general, in one aspect the invention provides a computer-implemented method for generating an online filter-differed calendar for a multi-instanced rental inventory of an item. The method includes the following steps. First, taking inventory of all item instances within a geographic region. Next, assigning a selection order to each item instance within the geographic region. Next, entering availability of each item instance on an individual availability calendar corresponding to each item instance. Next, displaying the individual availability calendar for the item instance with a highest selection order to a user via a user interface. Next, entering a start date and an end date for the item rental by the user via the user interface. Next, checking sequentially each item instance's individual availability calendar and determining a specific item instance that satisfies the entered start date and end date. The checking starts with the item instance having a lowest selection order. Next, reserving the specific item instance that satisfies the entered start date and end date. Finally, reassigning a new selection order to all item instances within the geographic region.
Implementations of this aspect of the invention include the following. The method further includes providing a client software, a server-based application, and a database datastore. The client software is configured to run on a client computing device and the server-based application and database datastore are configured to be hosted and run on a cloud service computing environment. The client software accesses the server-based application and a database datastore via a network connection, and the datastore comprises reservation information for all item instances. The item instance with the highest selection order that satisfies the entered start date and end date is a canonical instance. The individual availability calendar of the canonical instance is checked last. The reassigning of a new selection order to all item instances comprises counting number of future rental days for each item instance and ordering the item instances so that the item instance with the highest number of available rental days is set to the lowest selection order and the item instance with the lowest number of available rental days is set to the highest selection order. The method further includes displaying blackout days in an individual availability calendar for an item instance depicting days when the item instance is already rented. The user cannot select a start date and an end date with intervening blackout days. The geographic region is determined by IP address, GPS coordinates, entered address and/or an address associated with an account. The items that are offered for rent within the geographic region, comprise one of hotel rooms, cars, power equipment, exercise equipment or any item that is available for rent. The user interface includes the individual availability calendar for the item instance with the highest selection order, delivery time slots, return time slots, and a rent command field. The user interface is presented to the user via a mobile communication device, a desktop computer, a laptop computer, or other communication devices that are configured to connect to cloud services via a network. The method further includes taking inventory of all item instances in additional geographic regions. The reserving of the specific item instance that satisfies the entered start and end date is selected first from a geographic region that is closest to the user's location. The item instances within a geographic region are not identical, but share one or more common features. The method further includes selecting or deselecting additional filter criteria. The selecting or deselecting of the additional filter criteria provides instant user interface updates of the specific item's individual availability calendar. The method further includes submitting new inventory items by a third party based on primary selection criteria, but before secondary selection criteria are provided. The availability calendars for item instances of an additional item are stacked onto the availability calendars of the item instances within the geographic region.
In general, in another aspect the invention provides a system for generating an online filter-differed calendar for a multi-instanced rental inventory of an item including a client software, a server-based application, and a database datastore. The client software is configured to run on a client computing device and the server-based application and database datastore are configured to be hosted and run on a cloud service computing environment. The client software accesses the server-based application and a database datastore via a network connection. The database datastore comprises reservation information for one or more instances of an item. The server-based application comprises computer implemented instructions for taking inventory of all item instances within a geographic region, assigning a selection order to each item instance within the geographic region, entering availability of each item instance on an individual availability calendar corresponding to each item instance, displaying the individual availability calendar for the item instance with the highest selection order to a user via a user interface, receiving a start date and an end date for the item rental by the user, checking sequentially each item instance's individual availability calendar and determining a specific item instance that satisfies the entered start date and end date, reserving the specific item instance that satisfies the entered start date and end date, and reassigning a new selection order to all item instances within the geographic region. The checking starts with the item instance having the lowest selection order. The client software comprises the user interface that displays the individual availability calendar for the item instance with the highest selection and receives the start date and the end date for the item rental by the user.
Some embodiments of the present invention are illustrated as an example and are not limited by the figures of the accompanying drawings, in which like references may indicate similar elements and in which:
The present invention provides a three-tiered software system that includes a client software, a server-based application, and a database datastore. The datastore contains reservation information for one or more types of items. At least some of the types of items have multiple instances. They may also be inventoried in one or more geographically disparate locations. In one implementation, the invention provides a website which offers rentals of carpet cleaning machines, with multiple identical machines in each of multiple geographically-disparate depot locations.
The problem of showing a filter-deferred composite availability calendar for many identical rental items is difficult since, without knowing requested rent and return dates in advance, perfect availability information cannot be displayed without simply overlaying the availability calendars for each instance of the inventoried item type. To show a month or two-month view, for example, day-by-day, there will be some inventoried items available and some already reserved. It is impossible to mark a given day as not-available unless all items are rented on that day; but it is also impossible to say the day is an available one just because one or more items are not yet rented on that day because the length of the rental in not known in advance and so an item that is available on a specific day may still not be available for the entire duration of the desired rental.
In the present invention, a strategy is implemented, that displays to the user an availability calendar which presents no false positives (i.e. the “rentable days” for the item type are guaranteed to be rentable) and minimal false negatives (i.e. the number of non-available days matches actually restricted days as nearly as possible). The accuracy of the calendar (i.e., the number of false negatives) will increase with the number of instances of the item type inventoried. In the above mentioned implementation, the current and next month are shown and the user can browse subsequent months to see availability without having to first choose their rental dates.
Referring to
Database 140 includes relational databases and non-relational databases. A Relational Database such as SQL Server, MySql, POSTgres, Oracle includes data-tables with item type, item instances, and item instance calendar information. A non-relational Database captures effectively identical data-structures. The server based application 130 and the database 140 are hosted on a cloud service environment 125 behind a firewall 115.
Referring to
Referring to
The following example 1 depicts pseudocode in SQL-esque format for a basic stored procedure to select calendar events for the Displayed Calendar according to the above described process. The algorithm could be translated into a different query language or different steps to accomplish the same results.
Once the dates for a requested rental are submitted, the “canonical instance” is considered last. Beginning with the lowest selection order, each item instance's calendar is checked to see if it can satisfy the requested rental instead. The “canonical instance” is only used to satisfy the order as a last resort if no other item instance can.
The following example 2 depicts pseudocode in SQL-esque format for a basic stored procedure to reserve an item according to the above described process. The algorithm could be translated into a different query language or different steps to accomplish the same results;
In another embodiment, the selection order (including the canonical calendar) is changed. The total future days rented is calculated for each item and the item with the fewest future days has its availability calendar rotated into the position of the canonical calendar. It may either swap selection order with the prior highest selection order (in the same depot) or all items (again, in the same depot) can have their selection orders reassigned according to future rental days: the fewer the future rented days, the higher the selection order. This reassignment assures that the least-future-booked item instance is always also the canonical instance.
The following example 3 depicts pseudocode in SQL-esque format for a basic stored procedure that will reassign the selection orders based on making the item instances with the smallest number of future reserved days having the highest selection orders. This reassignment could happen, but is not limited to: after every rental, after every n rentals, after an item instance is returned, after n item instances are returned, or according to some recurring schedule. The algorithm could be translated into a different query language or different steps to accomplish the same results;
In another embodiment, when multiple geographic depot locations can be used to satisfy the rental requested by a single user, the canonical calendars from all depot locations are considered and the one with the fewest future rentals is selected for display. When the dates are selected, the algorithm is run against the item instances in the closest depot first (i.e. to minimize delivery cost), and more remote depots are considered subsequently only if the closer depots cannot satisfy the order. i.e. the algorithm is applied to each item instance in order first of proximity, then of selection order.
In another embodiment, the number of reserved entries for some future interval is taken in account in the query itself rather being subject to an explicit re-ordering event.
The following example 4 depicts pseudocode in SQL-esque format modifying the pseudocode given in example 1 to include geographically diverse sets of instance items (i.e. stored at different depots). The algorithm could be translated into a different query language or different steps to accomplish the same results.
Selection Order and Geo-Coordinates
The following example 5 depicts pseudocode in SQL-esque format modifying the pseudocode given in example 2 to include geographically diverse sets of instance items (i.e. stored at different depots). The algorithm could be translated into a different query language or different steps to accomplish the same results.
In another embodiment, the items are not identical, but merely share one or more categories (i.e. category “Honeymoon Suites” in Albuquerque, N. Mex., or category “Restaurants” in Santa Fe, N. Mex.). The algorithm can be used to show availability, then after selection, the user may decide from one or more secondary filters which available instance they want to rent (i.e. based on cost, amenities, or other criteria). In this embodiment, an additional step may or may not be introduced between primary and secondary selection. This additional step would allow third party providers to introduce new options given the primary filter. For example, a provider of hotel rooms may not be willing to offer a particular room for the first filter, but once a time period (i.e. an entire week) or particular amenities (breakfast-in-bed) are submitted after the first filter, that room may be deemed more desirable to offer along with other items which also fulfill primary and secondary filter options.
The following example 6 depicts pseudocode in SQL-esque format for a basic stored procedure to return secondary feature information for all available item instances in a selected rental period. The algorithm could be translated into a different query language or different steps to accomplish the same results.
In another embodiment, an item needs to be temporarily retired after n rentals until it receives maintenance. In this case, the item's availability calendar cannot be considered the canonical calendar and it cannot be selected as a rental either. It is simply removed from consideration until after it has been serviced.
In yet another embodiment, calendars can be “stacked” so that attributes which do not apply directly to the reservable item's amenities can nevertheless be added to the reservation as if they were, and thereby included in the selection process. For example, the calendar(s) for a hotel room in a given location can be joined to the calendars for a nearby Golf Course's available Tee-times, local Museum tours, or other items which could be reserved in conjunction with the primary, reservable item. Thus, a user can select a hotel room knowing that local experiences will also be available during the selected dates and can reserve those experiences (via an interface to the provider) at the same time. In this variation, the UI can update the availability calendar every time a new amenity is selected or de-selected.
An example of a UI that updates the availability calendar every time a new amenity 172 is selected or de-selected is shown in
In this embodiment, interfaces to a third party might be used to automatically reserve the third party's amenities at the same time the primary reservable item is being reserved.
Referring to
The term “computer code” includes applications, programs, instructions, signals, and/or data, among others. Processor 420 executes the computer code and may further send the computer code via the bus 410 to other computer systems. One or more computer systems 400 may be used to carry out the computer executable instructions of this invention.
Computer system 400 may further include one or more memories, such as first memory 430 and second memory 440. First memory 430, second memory 440, or a combination thereof function as a computer usable storage medium to store and/or access computer code. The first memory 430 and second memory 440 may be random access memory (RAM), read-only memory (ROM), a mass storage device, or any combination thereof. As shown in
The computer system 400 may further include other means for computer code to be loaded into or removed from the computer system 400, such as the input/output (“I/O”) interface 450 and/or communications interface 460. Both the I/O interface 450 and the communications interface 460 allow computer code to be transferred between the computer system 400 and external devices including other computer systems. This transfer may be bi-directional or omni-direction to or from the computer system 400. Computer code transferred by the I/O interface 450 and the communications interface 460 are typically in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being sent and/or received by the interfaces. These signals may be transmitted via a variety of modes including wire or cable, fiber optics, a phone line, a cellular phone link, infrared (“IR”), and radio frequency (“RF”) link, among others.
The I/O interface 450 may be any connection, wired or wireless, that allows the transfer of computer code. In one example, I/O interface 450 includes an analog or digital audio connection, digital video interface (“DVI”), video graphics adapter (“VGA”), musical instrument digital interface (“MIDI”), parallel connection, PS/2 connection, serial connection, universal serial bus connection (“USB”), IEEE1394 connection, PCMCIA slot and card, among others. In certain embodiments the I/O interface connects to an I/O unit 455 such as a user interface, monitor, speaker, printer, touch screen display, among others. Communications interface 460 may also be used to transfer computer code to computer system 400. Communication interfaces include a modem, network interface (such as an Ethernet card), wired or wireless systems (such as Wi-Fi, Bluetooth, and IR), local area networks, wide area networks, and intranets, among others.
The invention is also directed to computer products, otherwise referred to as computer program products, to provide software that includes computer code to the computer system 400. Processor 420 executes the computer code in order to implement the methods of the present invention. In one example, the methods according to the present invention may be implemented using software that includes the computer code that is loaded into the computer system 400 using a memory 430, 440 such as the mass storage drive 443, or through an I/O interface 450, communications interface 460, or any other interface with the computer system 400. The computer code in conjunction with the computer system 400 may perform any one of, or any combination of, the steps of any of the methods presented herein. The methods according to the present invention may be also performed automatically, or may be invoked by some form of manual intervention. The computer system 400, or network architecture, of
Several embodiments of the present invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.
This application claims the benefit of U.S. provisional application Ser. No. 62/987,503 filed on Mar. 10, 2020 and entitled FILTER-DEFERRED CALENDAR FOR A MULTI-INSTANCED RENTAL INVENTORY, which is commonly assigned and the contents of which are expressly incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62987503 | Mar 2020 | US |