InformationTitleRouting - LeanData Round Robin Distribution GuideURL NameRoutingLeanDataRoundRobinDistributionGuide690200e32b7b4Step-by-StepContents: OverviewHow it worksAssignment ScenariosMembers Returning from Unavailability All Members are Unavailable SimultaneouslyHow to Reset PointersScenario Overview LeanData’s Round Robin feature includes distribution of records to a group of Users or Queues within a given pool. This guide will provide an overview on how LeanData’s Round Robin functionality works to assign records and how the product determines assignment order for different scenarios. Note: This guide only describes the behavior of LeanData's Round Robin distribution for weighted pools. Unweighted pools will assign records to the next available User in sequence.. How it works LeanData’s weighted Round Robin assignment does not necessarily distribute in the chronological order of the pool, but is configured to prioritize predictability while subject to weightings or other restrictions on the distribution of records (schedules, capping, pausing, etc) . LeanData’s Round Robin distribution functionality utilizes pointer values to determine which member is up next for assignment in the Round Robin pool. A pointer value is a numerical value that is associated with each round robin member, to help keep track of who should receive the next record. Whichever available User has the lowest pointer value at the time of assignment will receive the record. While these pointer values are not visible on the Round Robin page itself, LeanData will keep track of them implicitly. After a record is assigned to a Round Robin member, their pointer value will increase to reflect that assignment. The amount that a pointer value increases will depend on that member's weighting within the pool. A higher weight would correspond to a smaller increase in their pointer value, such that they will receive records more frequently over time. When multiple available pool members have the lowest pointer value, LeanData will select the pool member who appears first in the pool (from top to bottom). When a new pool is created, all members in a given pool will have no pointer value. In this case, LeanData will start the Round Robin distribution from the top of the list and work its way down the list of members in the given pool, as all members start with an equal pointer value. If a new User is added into an existing pool, LeanData will continue normal distribution until their turn arrives, at which point, their pointer value will be set equal to the lowest pointer value available in the pool. Assignment scenarios Members Returning from Unavailability Since we use the pointers method, when a User becomes unavailable (Working Hours, Vacations, etc) and then returns to availability, certain reset behavior needs to occur to ensure that subsequent assignments are not skewed disproportionately. When a User returns to availability in the pool, LeanData will continue to assign records normally until the returning User’s turn arrives in the pool. They will receive the record when their turn arrives, and then their pointer value will reset. If their turn occurs before the member with the lowest pointer value, their pointer value will reset to the lowest pointer value and also increment up for the latest assignment. If their turn occurs after the member with the lowest pointer value, their pointer value will be reset to match the lowest pointer value. Note: A User’s pointer value will only be considered as the lowest pointer value if they are available and their pointer value has already been reset after their latest return to the pool. Example There are 3 Round Robin pool members: Alex, Christina, and Stephen. Alex goes on vacation and is skipped in the Round Robin distribution for a week. When he returns, assignments will continue sequentially in the pool until his next turn arrives in the pool, upon which his pointer value will be reset based on the lowest pointer value in the pool. Member Pointer Values when Alex goes on Vacation Alex returns but will wait until his turn arrives in the poolAfter Alex receives his first Lead after returningAlex3311 (Min PV +1)Christina39 (Next Up)10 (Next Up)Stephen3910 PV=Pointer Value. Please note that pointer values are simplified for the purpose of illustration. All Members are Unavailable Simultaneously If all members of the Round Robin pools are unavailable simultaneously, such as a company holiday where everyone is unavailable, once everyone returns, the pool will assign the next record to whomever was due to receive the next record before the unavailability. Subsequent assignments will then reset based on the pointer value of the first pool member to get an assignment. How to Reset Pointers Resetting the weighting within the pool will result in resetting the pointer values as well. Scenario In the following example, we have a RR Pool with four members. We will move progressively through each scene to explain how events like assignment or becoming unavailable through some mechanism (like Working Hours, Vacation, or Pausing) Scene 1MemberStatus Pointer Value NotesAUnavailable2← User A becomes unavailableBAvailable3 CAvailable8 DAvailable2 Scene 2MemberStatus Pointer Value NotesA Available (PV Pending Reset) 2← User A becomes available (PV not reset yet)BAvailable3 CUnavailable8← User C becomes unavailableDUnavailable2← User D becomes unavailable Scene 3*MemberStatus Pointer Value NotesAAvailable3+1 = 4← Lead gets assigned to User A as the next up. PV is reset to Min PV + 1BAvailable3← 3 is the Min PV (User D is not available)CUnavailable8 DUnavailable2 Scene 4MemberStatus Pointer Value NotesAAvailable4 BAvailable3← since A was assigned the previous Lead, B is up nextCUnavailable8 DUnavailable2 Scene 5**MemberStatus Pointer Value NotesAAvailable4 BAvailable3 + 1 = 4← B is assigned next Lead, and PV increases by 1C Available (PV Pending Reset) 8← User A becomes available (PV not reset yet)D Available (PV Pending Reset) 2← User D becomes available (PV not reset yet) Scene 6***MemberStatus Pointer Value NotesAAvailable4 BAvailable4 CAvailable+1 Lead → PV reset to 4← Lead gets assigned to User C as the next up. PV is reset to Min PV (min PV is 4 as User D's PV has not yet been reset)D Available (PV Pending Reset) 2 Scene 7***MemberStatus Pointer Value NotesAAvailable4 BAvailable4 CAvailable4 DAvailable+1 Lead → PV reset to 4← Lead gets assigned to User D as the next up. PV is reset to Min PV * We take the minimum pointer value of available Pool Members and add 1 to it ** We did not skip to D even though he has the lowest pointer. We respect the order of the Pool. *** We reset to the Min Pointer Value (PV) if the User is after the minimum PV member of the Pool. If before, we reset to the Min PV + 1. Users that just became available are not eligible for consideration as min PV.