The one question your customers probably ask you most often is "How much longer until it's my turn?"
With Waitwhile, we make answering this question super easy for you. Directly in the interface you always see what the current wait time is and you can easily share it with your customers.
However, behind this number is a fair bit of science and mathematics. In this article we want to break down how our wait time estimation works.
In order to estimate a guests wait time we use data provided in the settings for the wait list like staff and services and statistics collected over the lifetime of the waitlist. Every time a guest is wait listed and serve we store away the actual wait time and keep an average over different dimensions like service, party size etc. What we are interested in here is the average wait for a guest to move one step in the queue. Using that information we can estimate a wait time for a guest at any position in the waitlist.
Depending on how the wait list is configured we use different methods to estimate the wait time.
Using your services
If you have added your services to your waitlist under the Services Settings we use that information as well. If a service and its duration is specified for a guest we use that instead of average wait per step.
We simply iterate over all waiting guests and keep track of the estimated wait for each guest using either the average wait per step or if a guest has a service specified, we use the sum of the durations of all services the guest has chosen.
Over time, Waitwhile will learn about the actual duration of your services and once we've accumulated enough data we can begin using our own time estimations than the provided service durations to make it even more accurate (this feature is optional).
Using your resources
If you have added your resources to your waitlist under the Resource Settings, things get a bit more interesting.
First we find out what resource is available according to their working hours, if provided.
Then we iterate over all serving guests, keeping track of what resource is serving and how long time it is left depending on services chosen or average wait per step if no services are specified.
Then we iterate over all waiting guests, again keeping track of which resource is chosen for each guest and what services are specified for each guest. If a guest has a service specified, we use the sum of the durations of all services the guest has chosen or average wait per step if no services are specified.
The end result is that we now know what the estimated wait time is for each resource.
Given this information we can see what the estimated wait time is for the first available resource, and that is the estimated wait for a new guest with no particular preference of resource.
We of course also know the estimated wait for each resource and also estimated wait for a particular service.
The best news is that the more you use Waitwhile, the better the wait times become. Our system learns about your average wait times and keeps calibrating our estimations so they get better for every guest you serve.
We hope this basic guide to our time estimations was helpful!