Restaurant Listing Guide

For the vast majority of our customers, exploring food options on HungerBay starts at what we call the Listing page. One of the core tenets of the Listing team is to present our current customers with the most relevant feed of restaurants and help with discovery for our potential customers.

Additionally, we also strive to optimize for other business metrics that help in better restaurant-partner retention, lower delivery costs while not compromising on customer experience (CX) and lower number of orders needing Customer Service interventions.

Our journey in feed ranking

Utility function based rankers

Outside of the very first algorithms that were variations on popularity, the first major breakthrough came for us in formulating a multi-attribute utility function as the ranker.

Formalizing this, let’s say the utility f(.) is a function of attributes x1, x2, x3,…, xn. A customer prefers restaurant A over restaurant B if the expected utility of A is higher than that of B. How the final utility f(.) is arrived at depends on if the attributes (x’s) are independent or not. If we believe the attributes are independent, then the final utility becomes a summation. In our case, the attributes are correlated to varying degrees resulting in a multiplicative model.

More specifically, our utility is a function of 10 attributes:

Mathematically:


For a given restaurant-customer tuple, the above score is what ranks the list of restaurants the customer sees. Depending on the use-case and/or experiment, we further modify this score to, for example, reflect real-time conditions (like SLAs, whether the systems are under stress due to inclement weather, etc.), and/or add additional constraints like diversity.