U.S. patent application number 14/058583 was filed with the patent office on 2014-02-13 for system and method for determining competitors of a restaurant.
This patent application is currently assigned to GrubHub, Inc.. The applicant listed for this patent is GrubHub, Inc.. Invention is credited to Stefano Alexander Scotto, Rhiannon Sterling Zivin.
Application Number | 20140046730 14/058583 |
Document ID | / |
Family ID | 48655446 |
Filed Date | 2014-02-13 |
United States Patent
Application |
20140046730 |
Kind Code |
A1 |
Scotto; Stefano Alexander ;
et al. |
February 13, 2014 |
SYSTEM AND METHOD FOR DETERMINING COMPETITORS OF A RESTAURANT
Abstract
A utility for determining the competitors of a subject
restaurant accesses a database that contains information about
other, nearby restaurants. The utility assigns a competitor score
to each restaurant within the maximum radius based on the distance
from the subject restaurant, as well as the cuisine types, menus,
and order histories of the subject and competitor restaurants.
Inventors: |
Scotto; Stefano Alexander;
(Chicago, IL) ; Zivin; Rhiannon Sterling;
(Chicago, IL) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
GrubHub, Inc. |
Chicago |
IL |
US |
|
|
Assignee: |
GrubHub, Inc.
Chicago
IL
|
Family ID: |
48655446 |
Appl. No.: |
14/058583 |
Filed: |
October 21, 2013 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13337347 |
Dec 27, 2011 |
8595050 |
|
|
14058583 |
|
|
|
|
Current U.S.
Class: |
705/7.34 |
Current CPC
Class: |
G06Q 30/0205 20130101;
G06Q 30/02 20130101; G06Q 50/12 20130101; G06Q 10/04 20130101; G06Q
30/0206 20130101; G06Q 30/0202 20130101; G06Q 30/0204 20130101 |
Class at
Publication: |
705/7.34 |
International
Class: |
G06Q 30/02 20060101
G06Q030/02 |
Claims
1-17. (canceled)
18. A method of determining a set of competitors for a first
restaurant within a database of restaurants, wherein each
restaurant in the database has a location, one or more cuisine
types, and a market, the method operating within a computer and
comprising: i. querying the database over a network interface to
return a set of all restaurants within a particular market, wherein
the network interface is coupled to a processor of the computer;
ii. the processor filtering the set of all restaurants within the
particular market to produce a second set of restaurants within a
selected radius of the first restaurant; iii. the processor
generating a cuisine type match score for all restaurants within
the second set of restaurants based on similarity of each
restaurant's one or more cuisine types to the one or more cuisine
types of the first restaurant; iv. the processor generating a
distance score for all restaurants within the second set of
restaurants based on how far each restaurant is from the first
restaurant; v. the processor generating a competitor score for all
restaurants within the second set of restaurants, the competitor
score comprising a weighted combination of each restaurant's
cuisine type match score and distance score; vi. the processor
filtering the second set of restaurants to produce a set of
competitor restaurants with competitor scores greater than a
predetermined level; and vii. the processor presenting the set of
competitor restaurants.
19. The method of claim 18 wherein each restaurant in the database
further comprises a field designating whether the restaurant
accepts pickup orders, delivery orders, or pickup and delivery
orders, and the method further comprising the step of filtering all
restaurants within the market to produce a set of similar service
restaurants having a selected value in the field designating
whether the restaurant accepts pickup orders, delivery orders, or
pickup and delivery orders.
20. The method of claim 18 wherein the distance score is generated
using a Gaussian function.
21. A method of determining competitors for a first restaurant
within a database of restaurants, wherein each restaurant in the
database has a location, a cuisine type, an order history, and a
menu comprising a plurality of menu items, the method operating
within a computer and comprising: i. retrieving a plurality of
restaurants from the database over a network interface wherein the
network interface is coupled to a processor of the computer; ii.
filtering, by the processor, the plurality of restaurants to
produce a first set of restaurants within a radius of the location
of the first restaurant; iii. filtering, by the processor, the
first set of restaurants to produce a second set of restaurants
with a similar cuisine as the first restaurant; iv. comparing, by
the processor, the menu items of the first restaurant to the menu
items of each of the restaurants within the second set of
restaurants to produce a set of menu scores for the second set of
restaurants; v. comparing, by the processor, an order history of
the first restaurant with an order history of each of the
restaurants within the second set of restaurants to produce a set
of order history scores for the second set of restaurants, wherein
each order history includes a plurality of orders wherein each
order in the plurality of orders records at least a cost of the
order; vi. computing a set of weighted average scores of the set of
menu scores and the set of order history scores; and vii. based on
the set of weighted average scores, filtering, by the processor,
the second set of restaurants to produce a first set of competitor
restaurants.
22. The method of claim 21 wherein the step of comparing the order
history includes computing an average order amount for a subset of
the first restaurant's order history, and computing an average
order amount for a subset of the order history of each of the
restaurants within the second set of restaurants.
23. The method of claim 21 wherein the step of comparing the order
history includes computing a standard deviation for a subset of the
first restaurant's order history, and computing a standard
deviation for a subset of the order history of each of the
restaurants within the second set of restaurants.
24. The method of claim 21 wherein the step of comparing the order
history includes computing a daily order volume for a subset of the
first restaurant's order history, and computing a daily order
volume for a subset of the order history of each of the restaurants
within the second set of restaurants.
25. The method of claim 21 further comprising the step of computing
a seasonal pattern score for the first restaurant and for each of
the restaurants within the first set of competitor restaurants to
produce a second set of competitor restaurants.
26. The method of claim 21 wherein the step of computing a seasonal
pattern score includes computing the average monthly sales of the
subject restaurant and the average monthly sales of each of the
restaurants within the second set of restaurants.
27. The method of claim 21 wherein each restaurant in the database
has a set of ingredients associated with each menu item within the
menu associated with the restaurant, and wherein the step of
comparing the menu items comprises comparing the ingredients
associated with menu items.
28. The method of claim 21 wherein each restaurant in the database
has an hours of operation field and further comprising the step of
comparing the hours of operation of the first restaurant with the
hours of operation of each of the restaurants within the first set
of competitor restaurants to produce a second set of competitor
restaurants.
29. The method of claim 21 wherein each restaurant in the database
has one or more associated diner ratings and further comprising the
step of comparing the diner ratings of the first restaurant with
the diner ratings of each of the restaurants within the first set
of competitor restaurants to produce a second set of competitor
restaurants.
30. The method of claim 21 wherein each restaurant in the database
has a delivery radius and further comprising the stop of comparing
the delivery radius of the first restaurant with the delivery
radius of each of the restaurants within the first set of
competitor restaurants to produce a second set of competitor
restaurants.
31. The method of claim 21 wherein each restaurant in the database
has an associated delivery fees field and further comprising the
step of comparing the delivery fees field of the first restaurant
with the delivery fees of each of the restaurants within the first
set of competitor restaurants to produce a second set of competitor
restaurants.
32. The method of claim 21 wherein each restaurant in the database
has an associated order minimums fields and further comprising the
step of comparing the order minimums field of the first restaurant
with the order minimums field of each of the restaurants within the
first set of competitor restaurants to produce a second set of
competitor restaurants.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a divisional of U.S. patent application
Ser. No. 13/337,347, entitled "UTILITY FOR DETERMINING COMPETITIVE
RESTAURANTS," filed Dec. 27, 2011, assigned to GrubHub, Inc. of
Chicago, Ill., and which is hereby incorporated by reference in its
entirety to provide continuity of disclosure.
FIELD OF THE INVENTION
[0002] The present invention relates to a system and method of
determining competitors for a retail business, and more
particularly relates to a system and method of determining
competitors of a restaurant, and more particularly still, relates
to a system and method of determining competitors of a restaurant
for pickup and delivery business.
DESCRIPTION OF THE PRIOR ART
[0003] Businesses naturally desire to know who their most important
competitors are. Generally, any two businesses that market to the
same customers are in competition. For example, a suburban
convenience store is, in the broadest sense, in competition with a
nearby grocery store, as dollars spent by customers in the grocery
store cannot be spent in the convenience store. However, experience
shows that a gas station located a mile away and offering basic
convenience items is a far more important competitor to the
convenience store than the grocery store across the street, as
customers will look to the gas station for the same types of
purchases that they look to the convenience store; i.e., impulse
purchases or purchases that must be executed quickly.
[0004] Within the restaurant field, the situation becomes complex
very quickly. There are numerous cuisine types, such as Asian and
French, and within each cuisine type, there are often multiple
levels of dining experience. For example, within Asian restaurants,
there are fast-food Asian restaurants, as well as fine-dining Asian
restaurants, and multiple levels in between. Cuisine types can be
subdivided even further; for example, there are Chinese, Japanese,
Thai, and Vietnamese restaurants, all of which are "Asian
Restaurants," and all of which offer very different types of food
from one another, and are likely to attract diners with very
different tastes.
[0005] To further complicate matters, within the restaurant field,
restaurants offering very different types of food can be considered
competitors under certain circumstances. For example, an urban
Mexican restaurant primarily serving the lunch crowd is likely in
direct competition with nearby sandwich restaurants, pizza
restaurants, and Asian restaurants serving the same crowd.
[0006] One way that restaurants determine their closest competitors
is to consult market surveys. For example, a restaurant may setup
an online page that, in exchange for access to coupons or other
"bonuses," gathers information about customers' dining habits by
asking diners to answer surveys. Another way that this can be
accomplished would be by placing a tracking cookie on a user's
computer and checking the cookie each time a customer visits the
restaurant's web page for the identity of other restaurant's web
pages. Other, similar techniques have been employed in the
past.
[0007] There are a number of problems with such "market survey"
approaches. One problem is that the significance of market surveys
is difficult to quantify. For example, the relevance of a
restaurant's customer visiting the website of a competitor is
questionable. Another issue with such surveys is that they are
expensive and time consuming to conduct.
OBJECTS OF THE DISCLOSED COMPETITOR UTILITY
[0008] An object of the disclosed competitor utility is to provide
a utility that programmatically determines the competitors of a
restaurant;
[0009] Another object of the disclosed competitor utility is to a
provide a utility that determines the competitors of a restaurant
based on orders that are actually placed by restaurant customers
through a restaurant shopping service;
[0010] Other advantages of the disclosed shopping service will be
clear to a person of ordinary skill in the art. It should be
understood, however, that a system, method, or apparatus could
practice the disclosed competitor utility while not achieving all
of the enumerated advantages, and that the protected shopping
service is defined by the claims.
SUMMARY OF THE INVENTION
[0011] A utility for determining the competitors of a subject
restaurant accesses a database that contains information about
other, nearby restaurants. The database contains, for example, the
location, menus, and order histories of the other restaurants. The
utility queries the database for restaurants within a radius of the
subject restaurant to form a first set of restaurants, and then
discards the restaurants that do not have similar cuisine types to
the subject restaurant to form a second, narrower, set of
restaurants. Finally, the menu items of the subject restaurant are
compared to the menu items of each of the restaurants within the
second set of restaurants, and a competitor score is developed for
each restaurant within the second set.
[0012] An additional improvement would be to compare not only the
menu items but also the order histories of the competitor
restaurants with the subject restaurant.
BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Although the characteristic features of this invention will
be particularly pointed out in the claims, the invention itself,
and the manner in which it may be made and used, may be better
understood by referring to the following description taken in
connection with the accompanying drawings forming a part hereof,
wherein like reference numerals refer to like parts throughout the
several views and in which:
[0014] FIG. 1 is a simple system diagram of a system implementing
the disclosed competitor utility;
[0015] FIGS. 2a and 2b are a flowchart illustrating a first process
by which a utility can programmatically determine the competitors
of a subject restaurant;
[0016] FIG. 3 is a flowchart illustrating a process by which a
cuisine type match score between a subject restaurant and a
competitor restaurant can be calculated;
[0017] FIG. 4 is a flowchart illustrating a process by which a
distance score can be calculated between a subject restaurant and a
competitor restaurant can be calculated;
[0018] FIG. 5 is a flowchart illustrating a second process by which
a utility can programmatically determine the competitors of a
subject restaurant;
[0019] FIG. 6 is a flowchart illustrating a process by which the
menu of a subject restaurant can be compared with the menus of
competitor restaurants;
[0020] FIG. 7 is a flowchart illustrating a process by which the
order history of a subject restaurant can be compared with the
order histories of competitor restaurants;
[0021] FIG. 8 is a flowchart illustrating a third process by which
a utility can programmatically determine the competitors of a
subject restaurant;
[0022] FIGS. 9a and 9b comprise a flowchart illustrating a fourth
process by which a utility can programmatically determine the
competitors of a subject restaurant;
[0023] FIG. 10 is a flowchart illustrating a process by which the
hours of operation of a subject restaurant can be compared with the
hours of operation of the subject restaurant's potential
competitors;
[0024] FIG. 11 is a flowchart illustrating a process by which the
diner ratings of a subject restaurant can be compared with the
diner ratings of the subject restaurant's potential
competitors;
[0025] FIG. 12 is a flowchart illustrating a process by which by
which the delivery radius of a subject restaurant can be compared
with the delivery radii of the subject restaurant's potential
competitors;
[0026] FIG. 13 is a flowchart illustrating a process by which the
delivery fees of a subject restaurant can be compared with the
delivery fees of the subject restaurant's potential competitors;
and
[0027] FIG. 14 is a flowchart illustrating a process by which the
order minimums of a subject restaurant can be compared with the
order minimums of the subject restaurant's potential
competitors.
DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENT
[0028] Turning to the Figures, and to FIG. 1 in particular, a
system implementing the disclosed competitor locator utility is
depicted. In particular, the system comprises a computer 12, which
could be, for example, a personal computer or a smart phone, with
access to a database 14. The computer 12 executes software,
referred to as the competitor utility. The database contains
records of restaurants, including the restaurants' names, location,
a general description of the type of cuisine offered by each
restaurant, a detailed menu comprising the items offered for sale
and their prices, and an order history for each restaurant. Such a
database may be compiled by, for example, a market research company
covering the restaurant business, or a restaurant service,
providing delivery and/or order placement services for a large
number of restaurants, or any other entity having an interest in
restaurants.
[0029] FIGS. 2a and 2b comprise a flow chart depicting a first
process by which software with access to database 14 can assemble a
list of the most important competitors to a subject restaurant. In
a first step 20, a number of user inputs are accepted, including
identifying the subject restaurant, specifying whether restaurants
providing their service through pickup, delivery, either pickup or
delivery, or both pickup and delivery are to be included in the
search, and a maximum radius to search in. In step 22, the utility
queries database 14 for all restaurants within the market of the
subject restaurant; e.g., for a restaurant in Chicago, Ill., all
restaurants within the Chicago area will be returned, as all of
them are potentially competitors of the subject restaurant.
[0030] Execution then transitions to step 24, where the first of
two filters are applied. The first filter removes all restaurants
that do not provide the chosen pickup or delivery service, and
assembles competitor set 1. For example, if delivery were chosen
above, all restaurants that provide only pickup service would be
filtered out of competitor set 1. Execution then transitions to
step 26, where all restaurants outside of the specified maximum
radius are filtered out. Allowing a user to specify a maximum
radius allows the user to apply judgment regarding the specific
situation facing the subject restaurant. For example, a downtown
restaurant may use a much smaller maximum radius than a restaurant
within a residential neighborhood.
[0031] After assembling competitor set 2, the utility then
generates a cuisine match score for each restaurant within
competitor set 2 in step 28. The details of how a cuisine match
score can be generated are discussed below with regard to FIG. 3.
Execution then transitions to step 30, where a distance score is
generated for reach restaurant within competitor set 2, as further
discussed below with regards to FIG. 4.
[0032] The scores generated in steps 28 and 30 are then weighted
and combined to form a competitor score for each restaurant within
competitor set 2. The scores can be combined with any desired
weighting; for example, the cuisine score can be weighted by a
factor of 0.8, while the distance score can be weighted by a factor
of 0.2. In step 34, the lowest scoring competitors are discarded,
so that only the most relevant competitors are displayed. There are
a number of ways that competitors can be trimmed from the list; for
example, the lowest scoring restaurant can be removed, or a
percentage, such as 30%, of the lowest scoring restaurants can be
removed. Finally, in step 36, the competitor restaurants are
presented by the utility.
[0033] FIG. 3 is a flow chart that illustrates the process by which
a cuisine type match score can be computed. In step 50, the
database record for the subject restaurant is retrieved from the
database. In step 52, a check is made to determine if there are
more competitor restaurants in competitor set 2 to compute cuisine
type match scores for. If there are not, the process exits in step
54. However, if there are more competitor restaurants in competitor
set 2, execution transitions to step 56, where the next competitor
restaurant in competitor set 2 is retrieved. In step 58, the
cuisine type match score for the present competitor restaurant is
computed, and in step 60, the cuisine type match score for the
present competitor is saved for future use. Execution then returns
to step 52.
[0034] One way that the cuisine type match score could be computed
would be to compute the number of matching cuisine types between
the present competitor restaurant and the subject restaurant, and
then dividing the number of matches by the total number of cuisine
types of the subject restaurant. Cuisine type is a broad indication
of the type of food that a restaurant serves, and many restaurants
will cover multiple cuisine types. A non-exhaustive list of example
cuisine types are: African, Argentinian, barbecue, bagels, bakery,
Brazilian, Cajun, Cantonese, Caribbean, Chicken, classic,
Colombian, Cuban, deli, dessert, Dim Sum, eclectic, Ecuadorian,
fine dining, French, fresh fruits, German, Greek, grill, hoagies,
ice cream, Indian, Irish, Jamaican, Japanese, kids menu, Korean,
Kosher, late night, Latin American, Lebanese, low carb, low fat,
Malaysian, Mandarin, Mediterranean, Mexican, Middle Eastern,
noodles, organic, Persian, Peruvian, Polish, Portuguese, Puerto
Rican, ribs, Russian, seafood, soul food, soup, South American,
Spanish, steak, subs, sushi, Szechwan, tapas, Thai, Turkish, vegan,
vegetarian, Vietnamese, wings, and wraps.
[0035] Accordingly, if the subject restaurant has cuisine types of
Brazilian, fine dining, grill, late night, low carb, and South
American, and a competitor restaurant has cuisine types of classic,
Cuban, fine dining, and Latin American, there would be matches on
only 1 cuisine type out of 6. If another competitor restaurant has
cuisine types of Brazilian, fine dining, South American, and wraps,
there would by matches on 3 cuisine types out of 6. Accordingly,
the first competitor restaurant would have a cuisine type match
score of 1/6, while the second restaurant would have a cuisine type
match score of 1/2 (3/6).
[0036] FIG. 4 is a flowchart that illustrates the process by which
a distance score can be computed for competitor restaurants. In
step 70, the record of the subject restaurant is retrieved.
Execution then transitions to step 72, where a check is made to
determine if there are more competitor restaurants. If not,
execution transitions to step 74 where the process is exited. If
there are additional competitor restaurants, execution transitions
to step 76, where the next competitor restaurant record is
retrieved. In step 78, a distance score for the present competitor
restaurant is computed, and in step 80, the distance score for the
present competitor restaurant is stored for later use.
[0037] One way that a distance score for a competitor restaurant
can be computed is through the use of the Gaussian function, which
assumes that the preference of consumers regarding the distance to
a restaurant which they are willing to patronize is normally
distributed. The Gaussian formula can be expressed as:
f ( x ) = a - ( x - b ) 2 2 c 2 ##EQU00001##
[0038] Where e is Euler's number (approximately 2.718281828), a is
a constant that sets the high of the distributions peak, b is the
center value of the peak, and c controls the width of the resultant
distribution. Accordingly, for a distribution centered at 0
(meaning that most consumers will prefer restaurants closer to
them) with a maximum peak of 1.0, and an approximate width of 2.0
miles, the following equation results.
f ( x ) = - ( x ) 2 2 .times. 2 2 ##EQU00002##
[0039] Accordingly, for a competitor restaurant that is 2 miles
away from the subject restaurant would have a score of
approximately 0.60653.
[0040] In FIG. 5, a flow chart depicting a second process by which
software with access to database 14 can assemble a list of most
important competitors for a subject restaurant. In a first step
102, a record corresponding to the subject restaurant is retrieved
from the database 14. In the next step 104, a database query is
made to determine those restaurants within a maximum pickup
distance of the subject restaurant. Then, those restaurants that
have a different basic cuisine type are stripped out in step 106;
i.e., if the subject restaurant primarily serves pizza, then Asian
restaurants, French Restaurants, Fine Dining Restaurants, etc.,
will be stripped out, as they are not truly "competitors" of the
subject restaurant.
[0041] In step 108, the menus of the remaining competitor
restaurants are compared with the menu of the subject restaurant.
Similarly, in step 110, the order histories of the remaining
competitor restaurants are compared with the order history of the
subject restaurant. Based on the comparisons in step 108 and step
110, a list of most important competitors is assembled and output
in step 112. Generally, a competitor value is assigned to each
competitor in step 112, which is a combination of the menu value
derived in step 108 and the order history order history value
derived in step 110, both of which are addressed in more detail
hereafter. It should be noted that the different values can be
combined in a weighted fashion; for example, the menu value may
receive a weight of 2, while the order history value receives a
weight of 1, and the competitor score will be the addition of the
two weighted scores.
[0042] It is mentioned above in step 108 that the menu of the
subject restaurant is compared with the menus of the remaining
competitor restaurants. One way this can be accomplished is
illustrated in the flow chart of FIG. 6. It should be noted that
this process assumes that the subject restaurant has already been
retrieved into memory. Accordingly, the process begins at step 150,
where a check is made to determine if all of the competitor
restaurants have been compared to the subject restaurant. If there
are no competitor restaurants, execution transitions to step 168,
where the process is exited. However, if there are more competitor
restaurants to compare against the subject restaurant, execution
transitions to step 152, where the next competitor is retrieved and
becomes the present competitor restaurant. Execution then
transitions to step 154, where a check is made to determine if all
of the subject restaurant's menu items have been scored against the
present competitor restaurant. If the subject restaurant has more
menu items to score against the present competitor restaurant,
execution transitions to step 156, where the next menu item of the
subject restaurant is retrieved.
[0043] Execution then transitions to step 158 where a check is made
to determine if the present competitor restaurant has more menu
items to compare with the present menu item of the subject
restaurant. If so, execution transitions to step 160, where the
next menu item of the present competitor restaurant is retrieved.
In step 162, the present menu item of the subject restaurant and
the present competitor restaurant are compared and scored, and in
step 164 the menu match score of the competitor restaurant is
incremented by the match score of the last menu item.
[0044] Returning to step 154, if the subject restaurant does not
have more menu items, execution transitions to step 166, where the
score for the present competitor restaurant is stored. Execution
then returns to step 150, where execution proceeds as previously
discussed. With regards to step 158, if the present competitor
restaurant does not have any more menu items, execution returns to
step 154, where execution proceeds as previously discussed.
[0045] Step 162 discussed above requires that the menu items of two
restaurants are compared and scored based on how similar they are.
There are a variety of ways that this can be done. The simplest way
to do this would be to compare the names of the menu items using a
simple string comparison. Items that exactly matched could, for
example, be given a value of one (1), while items that did not
match could be given a value of zero (0). However, this method
would not provide a very reliable comparison, as restaurants are
likely to give different names to similar items. For example, one
restaurant may call a hamburger with cheese a "cheeseburger," while
another restaurant may refer to it as an "old fashioned burger with
cheese."
[0046] An improved method of determining how close two menu items
are to one another would be to employ a preprocessor, which would
classify menu items for each restaurant using a common
nomenclature. The preprocessor, which could be employed at the time
that menus were input into the database or at anytime thereafter,
could produce an extra field associated with each menu item. Within
the extra field, hereinafter referred to as the true item field, a
hamburger with cheese would be the same regardless of the title
that the restaurant gave it.
[0047] The comparison of true items would also allow for more
granular grading of matches. For example, each true item could
store a similarity to every other true item. Accordingly, a
hamburger could be given a similarity of 0.9 to a cheeseburger, and
vice-verse. However, such an approach would necessarily require a
large amount of information to be assembled and stored for every
food item. In particular, for a database of N true items, each true
item would need to store an additional N-1 fields to account for
its match to every other true item.
[0048] A different approach would be to group true items into a
variety of types, such as salads, soups, lunch sandwiches, pizzas,
steaks, etc. Simple items, such as a standard salad, would be
assigned a 1.0 for the type salads, and a 0.0 for the remaining
types. More difficult to classify items, such as a steak salad,
would be assigned non-zero values for multiple types, such as 0.75
for salads, 0.25 for steaks, and 0.0 for the remaining fields. When
two of the same true items were compared, a match score of 1.0
could be assigned, but when comparing different true items the
scores in each type could be multiplied together and added to form
a match score. For example, when comparing a steak salad to a
regular salad, a match score of 0.75 would result.
[0049] Another way of determining how close two menu items are to
one another would be to compare constituent ingredients. This
would, of course, require that the database actually store the
ingredients that comprise the various menu items. If the
ingredients are available, each ingredient of the two menu items
could be compared, and a score derived from the comparison. For
example, if a menu item of a subject restaurant has ten
ingredients, and a menu item of a competitor restaurant matches six
ingredients, a match score of 0.6 could result. This model can, of
course, be further adjusted so that only similar cuisines are
compared. For example, a steak salad could give a high match score
if compared to a steak taco, despite being very different food.
[0050] Other factors that can be used to compare menu items include
dietary value, such as, for example, low-calorie, low carbohydrate,
vegetarian, vegan, and gluten free, as well as food quality, such
as standard, all-natural, organic, and locally produced or
grown.
[0051] Returning to FIG. 5, step 110 requires a comparison of the
order history of the subject restaurant with competitor
restaurants, to reflect the principle that a restaurant that serves
gourmet sandwiches and burgers is not likely to compete directly
with a fast food restaurant serving lunch sandwiches and burgers,
even though their menus may be substantially identical. FIG. 7 is a
flowchart illustrating a process by which order histories of
restaurants can be compared and scored for similarity.
[0052] Starting with a step 202, an order history value for the
subject restaurant is computed. Execution then transitions to step
204, where a check is made to determine if there are more
competitor restaurants with which to compare order histories. If
none remain, execution transitions to step 214 where the order
history comparison process exits. However, if additional competitor
restaurants remain, the next competitor restaurant is retrieved and
marked as the present competitor restaurant in step 206. The order
history of the present competitor restaurant is retrieved and an
order history value is computed in step 208, and a comparison
between the order history values of the present competitor
restaurant and the subject restaurant is conducted and scored in
step 210. Execution then transitions to step 212, where the order
history score for the competitor restaurant is saved. Execution
then returns to step 204, where execution proceeds as previously
discussed.
[0053] The above process discussed computing the "order history
value" for the subject restaurant and each competitor of the
subject restaurant. One way that an order history value can be
computed would be to compute the mean, or average, value of an
order for the entirety of a restaurant's order history, or a
subsection thereof. It is also fairly simple to determine if a
restaurant's average order size is similar to another restaurant,
and therefore, it is fairly simple to "score" the similarity of one
restaurant's order history to another using the average order size.
For example, if one restaurant has an average order size of $29,
while another has an average order size of $11, it is likely that
the two restaurants are not in direct competition; on the contrary,
if one restaurant has an average order size of $13 and another has
an average order size of $11, it is far more likely that they are
in competition. Given the above, one way to compare the average
values would be to use a fixed range value, such as $3.50, as an
offset from the average order size. Accordingly, if a subject
restaurant had an average order size of $10, any restaurant's with
an average order size of between $6.50 and $13.50 would be judged a
potential competitor, and given an order history competition score
of 1, while restaurant's with an order size outside of that range
would be given a score of 0. One simple variation would be to vary
the range value based on the type of restaurant. For example, fast
food restaurants could use a range value of $1.80, while pizza
restaurants could use a range value of $3.20, etc.
[0054] Another simple extension of the above would be to vary the
size of the offset used for comparison based on the order history.
One way to do this would be to use a fixed percentage of the
average order size, such as, for example 10%. Another way would be
to use the standard deviation of the order history subset from
which the average value was computed. Standard deviation of a set
can be computed using the following formula:
.sigma.= {square root over
(.SIGMA..sub.i=1.sup.n(m-x.sub.i).sup.2)}
[0055] Where .sigma. is the standard deviation, m is the mean value
of a set having n members, and x.sub.i is the ith member of a set
having n members. Expressed in words, the standard deviation is the
square root of the sum of the square of the difference between the
mean and each set member. For example, assume that a subject
restaurant has an order history with the following five order
amounts: $13, $9, $17, $11, $11.50. The mean, or average of these
orders would be $12.30, and the standard deviation would be
$5.98.
[0056] Assuming that order sizes are normally distributed, one
standard deviation from the mean will account for 68.27% of all
orders within the set of orders used to compute the standard
deviation, while using two standard deviations would account for
95.45% of orders. Accordingly, given the example above, one way of
grading the orders would be to use an "all-or-nothing" scoring
system, and thereby assign a value of 1 to any restaurant whose
average order size is within, for example, 1 or 2 standard
deviations of the order size of the subject restaurant.
[0057] A further refinement that can be applied to any of the order
history competitive scoring systems discussed above would be to
scale the competitive score of a restaurant based on how far apart
the average order sizes were. With reference to the last system
discussed above, if a subject restaurant has an average order size
of $10 and a standard deviation of $1, a zero value could be
assigned to restaurants with, for example, an average order size 3
standard deviations away; i.e., less than or equal to $7 or greater
than or equal to $13. Intermediate values could be linearly
interpolated within that range, so that competitive restaurants
with an average order size identical to that of the subject
restaurant, $10 in this case, would be given a value of 1.
Accordingly, a competitive restaurant with an average order size of
$8.50 or $11.50 would be assigned an order history score of 0.5,
etc.
[0058] A simpler way of comparing the order history of the subject
restaurant with a competitor's order history would be to compare
the daily volume of orders that each restaurant processed. This
could be done by comparing average daily order volume as discussed
earlier for order size, with the average daily order volume being
computed, for example, over a week, a month, or a quarter.
Similarly, standard deviation of order volume computed over a
period can also be useful for comparing the order volume of a
subject restaurant and a competitor restaurant.
[0059] An additional, longer term, comparison of order histories
can also be used to determine if the subject restaurant and a
particular competitor have a similar seasonal pattern. If the
seasonal pattern diverges significantly, this can be indicative
that the restaurants may only compete part of the year, rather than
year round. One way to compute a seasonal pattern for the sales of
a restaurant would be to compute the total sales for a quarter, and
compare those sales on a quarter-to-quarter basis with other
quarters. Similarly, sales could be computed on a month of the year
basis, or a week of the year basis. Then a comparison can be made
from one time period to another; i.e., quarter-to-quarter,
month-to-month, week-to-week, etc., to determine if particular time
periods consistently perform better or worse than other time
periods. For example, it would be expected that ice cream parlors
in the Midwest would perform consistently better in summer than
winter, while other restaurant's would likely have the opposite
pattern. By comparing seasonal patterns of potentially competing
restaurant's competitors that are not readily apparent may be
found. For example, competitors of restaurants that specialize in
serving Holiday parties may not be easily determined in other
ways.
[0060] One way to compare the seasonal pattern of sales for a
subject restaurant, and a potential competitor restaurant would be
to calculate the total sales for each on a monthly basis over the
period of, for example, five years. An average monthly sales number
can then be computed, and the standard deviation calculated as
discussed previously. Each month can then be compared to the
average and the standard deviation, and, months that vary from the
standard deviation by more than some particular value can be
computed. The month-to-month variation of the subject restaurant
can then be correlated with the month-to-month variation of the
potential competitor restaurant using, for example, a Pearson
correlation analysis. The correlation analysis will return a value
between 0 and 1, which can be used as a seasonal pattern score that
is indicative of the level of competition between the two
restaurants.
[0061] One issue with computing a seasonal pattern is determining
if a trend is present in the seasonal data, such as would be
present for a rapidly growing (or shrinking) restaurant. However,
there are numerous methods well-known in the art to detrend data.
For example, the use of detrended fluctuation analysis can be used
to remove the trend component of the analyzed order data.
[0062] Another improvement that can be made is to more accurately
model the radius within which diners search for pickup and delivery
restaurants. One way that this can be done is to acknowledge that
diners will have variable tolerances for the distance that they
will look for restaurants. While one diner may be willing to
patronize only restaurants within 8 blocks of his residence,
another diner may be willing to patronize restaurants as far away
as 5 miles from her residence. The preferences of diners as to a
maximum radius they are willing to travel to patronize a pickup or
delivery restaurant is likely to vary with a number of factors. For
example, diners in New York, who usually walk, may uniformly have a
lower maximum radius than diners in Los Angeles, who usually drive.
However, some variance among the diners in each market is likely.
Accordingly, one way to model diner preferences for their maximum
restaurant patronizing distance would be conduct market surveys to
determine a distribution function for each market area, such as a
particular city, or a particular neighborhood within a city.
Alternatively, a restaurant service could actually access data
regarding diners ordering habits and determine for a particular
market the distribution of distances that diners place orders with
restaurants. Assuming a more or less normal distribution of
preferences among diners, a distribution function can be modeled
with a mean maximum restaurant patronizing distance, and a standard
deviation.
[0063] To make effective use of a distribution function for the
maximum restaurant patronizing distance, a modification to the
process of FIG. 5 must be made, as is reflected in FIG. 8. In step
302, the record for the subject restaurant is retrieved from the
database. In step 304, a maximum radius is determined. One way of
doing this would be to use a distance 3 standard deviations greater
than the mean maximum restaurant patronizing distance, which should
account for approximately 99.7% of diners' preferences.
[0064] In step 306, restaurants within the "maximum radius" are
retrieved from the database, and are assigned a distance value. One
way that this can be done would be to linearly interpolate based on
distance, so those competitor restaurants that are very close to
the subject restaurant are assigned a distance score close to 1,
while those that are far away, e.g., close to a 3 standard
deviations of the maximum restaurant patronizing distance
distribution function away, would be assigned a distance value
close to 0.
[0065] In step 308, the subject restaurant's menu is compared with
the competitor restaurant menus, and each competitor restaurant is
assigned a menu score. The comparison process can, for example,
follow the process outlined in FIG. 3. Execution then transitions
to step 310, where the order history of the subject restaurant and
the competitor restaurants are compared, using, for example, the
process outlined in FIG. 4. In step 312, the distance value, the
menu value and the order history values are combined, and a set of
competitors, each with a competition score, is assembled and
output.
[0066] FIGS. 9a and 9b comprise a flow chart depicting a third
process by which software with access to database 14 can assemble a
list of most important competitors for a subject restaurant. In a
first step 402, a record corresponding to the subject restaurant is
retrieved from the database 14. In the next step 404, a maximum
radius to search for competitor restaurants is determined, and, in
step 406, a database query is made to determine those restaurants
within the maximum search radius. In step 408, the menus of the
remaining competitor restaurants are compared with the menu of the
subject restaurant. Similarly, in step 410, the order histories of
the remaining competitor restaurants are compared with the order
history of the subject restaurant. Unlike the process of FIG. 8,
however, this process adds a number of additional steps to further
improve competitor comparisons.
[0067] In step 412, the hours of operation of the subject
restaurant are compared with the hours of operation of the
competitor restaurants and an hours of operation score for each
potential competitor is developed. In step 414, diner ratings for
the subject restaurant are compared with the diner ratings of the
competitor restaurants, and a diner rating score for each potential
competitor is developed. In step 416, the delivery radius of the
subject restaurant is compared with the delivery radius of the
competitor restaurants, and a delivery radius score for each
potential competitor is developed. In step 418, delivery fees
charged by the subject restaurant are compared with delivery fees
charged by competitor restaurants, and a delivery fee score for
each potential competitor is developed. In step 420, order minimums
for the subject restaurant are compared with order minimums for the
competitor restaurants, and an order minimum score for each
potential competitor is developed.
[0068] FIG. 10 is a flow chart that illustrates the process by
which the hours of operation for a subject restaurant can be
compared with the hours of operation of its competitors, and an
hours of operation score can be programmatically computed. In step
502, the database record for the subject restaurant is retrieved
from the database. In step 504, a check is made to determine if
there are more competitor restaurants to compare hours of operation
with. If there are not, the process exits in step 512. However, if
there are more competitor restaurants, execution transitions to
step 506, where the next competitor restaurant is retrieved. In
step 508, the hours of operation of the subject restaurant and the
present competitor restaurant are compared and an hours of
operation score is computed. In step 510, the hours of operation
score for the present competitor is saved for future use. Execution
then returns to step 504.
[0069] An hours of operation score that is indicative of the degree
of competition between a subject restaurant and a potential
competitor can be developed by comparing the degree of overlap of
operating hours between the subject restaurant and the potential
competitor. For example, if the subject restaurant is open from
6:30 AM through 2:00 PM, a total of 7.5 hours, and a competitor is
open from 11 AM through 9 PM, the competitor's hours of operation
match a total of three hours of the subject restaurant, which would
give a score of 3/7.5, or 0.4.
[0070] FIG. 11 is a flow chart that illustrates the process by
which diner ratings for a subject restaurant can be compared with
its competitors' diner ratings, and a diner ratings score can be
programmatically computed. In step 602, the database record for the
subject restaurant is retrieved from the database. In step 604, a
check is made to determine if there are more competitor restaurants
to diner ratings with. If there are not, the process exits in step
612. However, if there are more competitor restaurants, execution
transitions to step 606, where the next competitor restaurant is
retrieved. In step 608, the diner ratings of the subject restaurant
and the present competitor restaurant are compared and a diner
ratings score is computed. In step 610, the diner ratings score for
the present competitor is saved for future use. Execution then
returns to step 604.
[0071] Assuming that diners are required to assign a numeric value
to a particular restaurant, then a diner ratings score that is
indicative of the degree of competition between a subject
restaurant and a potential competitor can be developed by computing
the average value of the subject restaurant's diner ratings, and
comparing that with the average value of a competitor's diner
ratings. One way to compute a diner ratings score indicative of the
degree of competition between the restaurants would be to use the
following formula:
S = S Max - R AS - R AC S Max ##EQU00003##
[0072] Where, S is the computed diner rating score, SMax is the
maximum possible diner rating score, R.sub.AS is the average rating
of the subject restaurant, and R.sub.AC is the average rating of
the competitor restaurant.
[0073] For example, if the diner ratings of the subject restaurant
have an average value of 4.0 (out of 5) and the diner ratings of a
competitor have an average value of 3.2 (out of 5), then, using the
formula above, the diner rating score would be (5-0.8) /
5=0.84.
[0074] FIG. 12 is a flow chart that illustrates the process by
which the delivery radius of a subject restaurant can be compared
with its competitors' delivery radii, and a delivery radius score
can be programmatically computed. In step 702, the database record
for the subject restaurant is retrieved from the database. In step
704, a check is made to determine if there are more competitor
restaurants to compare delivery radii with. If there are not, the
process exits in step 712. However, if there are more competitor
restaurants, execution transitions to step 706, where the next
competitor restaurant is retrieved. In step 708, the delivery
radius of the subject restaurant and the present competitor
restaurant are compared and a delivery radius score is computed. In
step 710, the delivery radius score for the present competitor is
saved for future use. Execution then returns to step 704.
[0075] Obviously, many additional modifications and variations of
the present invention are possible in light of the above teachings.
Thus, it is to be understood that, within the scope of the appended
claims, the invention may be practiced otherwise than is
specifically described above.
[0076] The foregoing description of the invention has been
presented for purposes of illustration and description, and is not
intended to be exhaustive or to limit the invention to the precise
form disclosed. The description was selected to best explain the
principles of the invention and practical application of these
principles to enable others skilled in the art to best utilize the
invention in various embodiments and various modifications as are
suited to the particular use contemplated. It is intended that the
scope of the invention not be limited by the specification, but be
defined by the claims set forth below.
* * * * *