A common approach to managing restaurant inventory uses fixed slots of time for fixed table configurations of a restaurant floor. However, diners and restaurant managers do not always arrange their meal times and/or their tables in the fixed time slots and/or table configurations. When the meal times and/or table configuration do not align with the time slots and/or table configurations, this can result in underutilization or overbooking of the restaurant.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
A system for restaurant inventory management is disclosed. The system comprises a processor and a memory. The processor is configured to receive restaurant table configuration. A first list of combinations and permutation of possible reservations available for one or more time periods is determined based at least in part on the restaurant table configuration information. A second list of combinations and permutation of possible reservations available for one or more time periods is determined. The second list removes combinations and permutation that are not available due to a selection of a reservation from the list; the second list comprises the reservation availability. The memory is coupled to the processor and configured to provide the processor with instructions. In some embodiments, the system narrows the first list dynamically as reservations are made/inventory is committed to generate the second narrowed list.
In some embodiments, the system comprises a user interface (e.g., a human-machine interface—for example, a graphical user interface). In some embodiments, the system is connected to the Opentable network (e.g., a network comprising a plurality of restaurant systems, a web available system, and a main server system). In some embodiments, the processor is configured to receive operational information (e.g., server information, shift start and stop information, chef information, personnel information, menu information, special occasion information, etc.). In some embodiments, the processor is further configured to present restaurant reservation availability to the external (Opentable) network. In some embodiments, the processor is further configured to receive restaurant reservation requests, choose the most suitable assignment of the request to a resource and transmit the assignment back to the network; or deny the request if there are not sufficient resources.
In some embodiments, the restaurant availability is provided to a restaurant and/or to the web and thereby to a customer or diner. In various embodiments, restaurant availability is provided in such a manner as to provide no table combinations, all table combinations, pacing by covers, pacing by party, pacing by covers/party and by server or section, pacing for large parties separate from small parties, or any other appropriate manner. In various embodiments, restaurant combinations are all auto generated, partially auto generated (e.g., by spatial areas, by party size cap or limit, by a cap or limit on the number of tables in a combination, etc.), manually, manually with overrides to auto methods, or any other appropriate manner or combination of manners. In various embodiments, turn times are determined manually, automatically (e.g., based on historic turn times based on different factors including weather, holidays, shifts, days of the week, time of the day, etc.), or any other appropriate factor.
In various embodiments, restaurant configuration information comprises a table configuration including a maximum seating size, a minimum seating size, a list of tables that can be combined, a blocked table list, a single seating list, a fixed time seating list, a very important person (VIP) seating list, seating order preference, special attributes such as smoking section, or any other appropriate configuration information. In various embodiments, a table on the block table list (including blocking the table for combinations) blocks a table for a specific time period such that the table will be held available for that time period (no other reservation can coincide with the time period)—the time period can be zero, in which case the table is guaranteed to turn at that time; a table on the block table list (including blocking a table for combinations) blocks a table such that no reservations can be made within a given time period (no seating for the table during the period); a table on the block table list (including blocking a table for combinations) blocks a table such that reservations can only be seated within a time period (force seating for the table during fixed periods, or any other appropriate functionality for a block table list.
In some embodiments, the selection of the reservation is received (e.g., from a maitre d′ selecting a specific date, time, and/or party size). In some embodiments, the selection of the reservation (e.g., the specific table or set of tables at the restaurant) is based on a rule enabling automatic selection. In various embodiments, the rule for selecting a reservation comprises maximizing revenue, maximizing customer satisfaction, maximizing table availability, minimizing wait time, balancing load to wait staff, utilizing tables in a specific order (e.g., near windows first, back of the restaurant last, balancing among sections, etc.), or any other appropriate rule. In various embodiments, the selection of the reservation is determined based at least in part on one or more of the following: the time length of the reservation (e.g. turn time), the party size of the reservation in relation to other committed reservations (pacing) historical restaurant reservation information (e.g., used in the prediction of customer arrivals or customer flow), a historical customer search information (e.g., used in the prediction of customer demand and potential flow for tables in the restaurant), a maximum arrival rate for customers at a restaurant, a maximum arrival rate of parties at the restaurant, minimizing the number of combined table reservations by always offering uncombined tables first, or any other appropriate information to aid selection of a reservation. In some embodiments, the turn time is received (e.g. from the maitre d′). In some embodiments, the turn time is calculated from historical turn time from past reservations in the memory, (e.g., prediction of a table availability) based on factors such as party size, time of day, date, holiday configuration, or weather. In some embodiments, the turn time is calculated based on a configuration dependant on time of day, and particular date or day of week a configured maximum arrival rate as measured in individuals or parties or categories of parties that can be supported by the restaurant depending on the time, date and day of the week. In some embodiments, reservation size in relation to other committed reservations can be used to limit the number of reservations committed during a time interval (e.g., pacing) to maximum customer flow while still providing acceptable service. In various embodiments, the pacing is calculated by counting the total number of covers arriving for a time segment (pacing) or for the entire shift (e.g., allotment model), the number of parties for a time segment or a shift, or for categories of parties based on size (e.g., large party pacing). In various embodiments, the reservation is determined by suitability factors (e.g., minimum or maximum party size to seat at a table), the best fit (e.g., closest table size), historical resource utilization (e.g., table often combined in past seatings), optimization parameters assigned to the configuration, or any other appropriate factor. In some embodiments, rules determine the inventory offered to diners—for example, the restaurant initially offer all possible party sizes for a particular date and time (given the capacity of the restaurant) and then reduces this as reservations are booked, until the maximum arrival rate is reached; once the maximum arrival rate is reached it would not offer any inventory for that date and time.
In some embodiments, improvement to restaurant table utilization is achieved by determining all possible combination and permutation of available seating for the restaurant. All the possible combinations and permutations are offered to a potential customer. Upon selection of a reservation, the combinations and permutations available for reservations are updated to remove all conflicting combinations and permutations of reservations. In various embodiments, flexibility regarding the time configurations for table availability and flexibility (e.g., any possible start time for a meal, 15 minute increment start times, 1 start time per day, 3 seatings per evening, etc.), flexibility regarding table configurations (e.g., pushing tables together, adding tables to the floor, rearranging tables on the floor, etc.), or any other appropriate flexibility. In some embodiments, the combinations are received in the reservation (e.g., by a maitre d′). In some embodiments, the combinations are calculated using pre-defined table combination configuration data. In various embodiments, the combinations re calculated using defined relationships of the tables (e.g., spatial relationships) or limited based on other defined propertied (e.g. maximum number of tables to be combined), or in any other appropriate manner.
Inventory manager 210 comprises configuration viewer 212, configuration initialize 214, combination & permutation engine 206, query handler 218, and rule engine 220. Inventory manager 210 enables more efficient use of restaurant inventory by offering availability of all possible combinations and/or permutations of restaurant reservations. Then upon receipt of a new reservation, the list of possible combination and/or permutations is updated to remove combinations and/or permutations that are eliminated by the new reservation. For example, combinations and/or permutations that is/are not possible because the new reservation conflicts with them, i.e., use the same table within the same time period or likely time period based on historical average time used for the reservation, historical user time used, etc. Configuration viewer 212 enables a service provider employee to view the restaurant configuration. The configuration information includes table configuration for restaurant (e.g., location of table, combination possibilities, number of seats, etc.). Configuration initializer 214 is used to initialize the configuration for the restaurant. Combination & permutation engine 216 is used to determine the possible combinations and/or permutations of reservations available for a restaurant given the configuration of the restaurant and the existing reservations. Query handler 218 is used to handle queries regarding inventory. For example, a query is made regarding the available reservations that include all possible permutations and combinations of available times and available table configurations for a given restaurant. Rule engine 220 is used to determine a selection of a reservation/table/time slot based on a rule. Rule engine 220 is able to automatically select a reservation for a table/time slot.
In some embodiments, the selection of the reservation (e.g., the specific table at the restaurant) is based on a rule enabling automatic selection. In various embodiments, the rule for selecting a reservation comprises maximizing table availability (e.g., a best fit followed by a selection of maximizing table availability), minimizing wait time, balancing load to wait staff, utilizing tables in a specific order (e.g., near windows first, back of the restaurant last, or any other appropriate rule. In various embodiments, the selection of the reservation is determined based at least in part on one or more of the following: maximizing revenue (e.g., maximizing revenue can cause more/longer wait times), maximizing customer satisfaction (e.g., maximizing customer satisfaction can underutilize the restaurant), a historical turn time (e.g., used in the prediction of a table availability), a received turn time (e.g., from a maitre d′) a historical restaurant reservation information (e.g., used in the prediction of customer arrivals or customer flow), a historical customer search information (e.g., used in the prediction of customer demand and potential flow for tables in the restaurant; where historical can mean that the rule is based on the previous day, the same day of the previous week, month, or year, or any other meaningful earlier period such as a holiday period), a maximum arrival rate for customers at a restaurant (e.g., where the maximum arrival rate is based on an individual arrival rate, a party arrival rate, a large party arrival rate, etc. and a time segment for example 15 minute interval or entire shift length), or any other appropriate information to aid selection of a reservation.
Floater row 608 is designated with a ‘+’ sign and is not assigned a table number (e.g., the 11:30 row with a reservation for Irwin, James for 2). Resos View button 610 enables a user to view reservation times on a given table. Notes boxes 612 enable a user to edit/enter/view notes regarding reservations and/or guests. Make Resos button 614 enables a user to make a reservation. Seat button 615 enables a user to seat a party at their table (e.g., a table reserved for them, a table assigned to them, etc.). Move button 616 enables a user to move a reservation to another table, seating time, or date. Block table button 617 enables a user to block a table or unblock a table. Walk-in button 618 enables a user to add a walk-in party.
Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.