US 11,936,815 B2
System and method for enhanced virtual queuing
Daniel Bohannon, Livermore, CA (US); Richard Daniel Siebert, Franklin, TN (US); Jay Power, Franklin, TN (US); Matthew DiMaria, Brentwood, TN (US); Matthew Donaldson Moller, Petaluma, CA (US); and Shannon Lekas, Cushing, TX (US)
Assigned to Virtual Hold Technology Solutions, LLC, Akron, OH (US)
Filed by Virtual Hold Technology Solutions, LLC, Akron, OH (US)
Filed on Dec. 29, 2022, as Appl. No. 18/147,710.
Application 18/147,710 is a continuation of application No. 17/667,910, filed on Feb. 9, 2022, granted, now 11,601,553.
Application 17/667,910 is a continuation in part of application No. 17/667,855, filed on Feb. 9, 2022, granted, now 11,522,998, issued on Dec. 6, 2022.
Application 17/667,855 is a continuation in part of application No. 17/667,034, filed on Feb. 8, 2022, granted, now 11,528,363, issued on Dec. 13, 2022.
Application 17/667,034 is a continuation in part of application No. 17/389,837, filed on Jul. 30, 2021, granted, now 11,223,725, issued on Jan. 11, 2022.
Application 17/667,034 is a continuation in part of application No. 17/235,408, filed on Apr. 20, 2021, granted, now 11,489,964, issued on Nov. 1, 2022.
Application 17/389,837 is a continuation of application No. 16/985,093, filed on Aug. 4, 2020, granted, now 11,503,160, issued on Nov. 15, 2022.
Application 17/235,408 is a continuation of application No. 16/836,798, filed on Mar. 31, 2020, granted, now 10,992,811, issued on Apr. 27, 2021.
Application 16/985,093 is a continuation in part of application No. 16/583,967, filed on Sep. 26, 2019, granted, now 10,735,589, issued on Aug. 4, 2020.
Application 16/583,967 is a continuation in part of application No. 16/542,577, filed on Aug. 16, 2019, granted, now 10,609,218, issued on Mar. 31, 2020.
Application 16/836,798 is a continuation of application No. 16/542,577, filed on Aug. 16, 2019, granted, now 10,609,218, issued on Mar. 31, 2020.
Application 17/389,837 is a continuation of application No. 16/523,501, filed on Jul. 26, 2019, granted, now 11,146,517, issued on Oct. 12, 2021.
Application 16/523,501 is a continuation of application No. 15/411,424, filed on Jan. 20, 2017, granted, now 10,367,766, issued on Jul. 30, 2019.
Claims priority of provisional application 62/828,133, filed on Apr. 2, 2019.
Claims priority of provisional application 62/820,190, filed on Mar. 18, 2019.
Prior Publication US 2023/0216960 A1, Jul. 6, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. H04M 3/523 (2006.01); G06Q 10/047 (2023.01); G06Q 10/0631 (2023.01); G06Q 10/0637 (2023.01); G07C 11/00 (2006.01); H04L 67/306 (2022.01); H04M 3/51 (2006.01)
CPC H04M 3/5231 (2013.01) [G06Q 10/047 (2013.01); G06Q 10/06312 (2013.01); G06Q 10/06375 (2013.01); H04L 67/306 (2013.01); H04M 3/5183 (2013.01)] 25 Claims
OG exemplary drawing
 
1. A system for enhanced virtual queuing, comprising:
a computing device comprising a memory, a processor, and a non-volatile data storage device;
a machine learning algorithm operating on the computing device, the machine learning algorithm configured to predict wait times and low throughput times for a plurality of times within a time period for a plurality of virtual queues;
a queue manager comprising a first plurality of programming instructions stored in the memory which, when operating on the processor, causes the processor to:
request and receive predicted wait times and predicted low throughput times from a prediction module for each of the plurality of virtual queues;
receive requests to join a queue, each request comprising a requestor and contact information for the requestor;
assign each requestor to one of the plurality of virtual queues using the based in part on the predicted wait times;
send an initial update notification indicating the virtual queue assignment to the requestor using the contact information;
during each period of predicted low throughput times, request and receive queue load balancing from a queue load balancer module;
send periodic update notifications to each requestor based on reassignment of requestors among the plurality of virtual queues by the queue load balancer; and
the queue load balancer module comprising a second plurality of programming instructions stored in the memory which, when operating on the processor, causes the processor to:
continuously measure actual wait times across the plurality of virtual queues;
receive the request for queue load balancing from the queue manager;
calculate a current queue throughput for each of the plurality of virtual queues;
for each of the plurality of virtual queues, compare the current queue throughput to the predicted low throughput time to confirm that the current queue throughput is a low throughput time;
process the actual wait times for each of the plurality of virtual queues through the machine learning algorithm to predict revised wait times and low throughput times for a plurality of times within a time period for each of the plurality of virtual queues; and
reassign requestors among the plurality of virtual queues to minimize wait times across the plurality of virtual queues; and
the prediction module comprising a third plurality of programming instructions stored in the memory which, when operating on the processor, causes the processor to:
retrieve historical data for each of the plurality of virtual queues;
process the historical data for each of the plurality of virtual queues through the machine learning algorithm to predict wait times and low throughput times for a plurality of times within a time period for each of the plurality of virtual queues; and
send the predicted wait times to the queue manager.