Systems and methods for load balancing among agents
Patent Information
- Application Number
- PCT/US2026/023643
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-04-15
- Filing Date
- 2026-04-14
- Publication Date
- 2026-10-22
Smart Images

Figure US2026023643_22102026_PF_FP_ABST
Abstract
Description
Attorney Docket No. 398612000640SYSTEMS AND METHODS FOR LOAD BALANCING AMONG AGENTSCROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No.63 / 789,292, filed April 15, 2025, the entirety of which is hereby incorporated by reference herein.FIELD
[0002] The present disclosure relates generally to load balancing, and more specifically to systems and methods for allocating a resource load among agents.BACKGROUND
[0003] The manner in which a resource is allocated (e.g., within an organization) can be critical to the organization’s success. Proper resource allocation is important because it ensures that the organization runs efficiently and effectively. Allocating resources in a strategic manner (e.g., based on characteristics of the organization) helps the organization maximize productivity. For example, in an organization including multiple agents, prudent allocation of a resource among the agents can ensure that the agents do not experience any resource shortages that prevent the agents from performing necessary tasks. This can also ensure that individual agents are not overused or underused, both of which can hamper productivity of the organization as a whole. Strategically allocating resources within the organization can also ensure that the organization operates fairly.
[0004] Conventional approaches to resource allocation suffer from a number of technical shortcomings. For example, organizations that seek to analyze disparities in how resources are distributed among agents often rely on manual, spreadsheet-based processes that are time-consuming, error-prone, and lack the scalability needed to handle large datasets encompassing large numbers of agents. Further, existing tools allocate resources and generate corresponding reports using static, one-size-fits-all analyses that do not account for all of the factors that influence how resources should be distributed. Existing tools also often fail to detect or account for collinearity among factors that1MF-368938933Attorney Docket No. 398612000640influence resource distribution, which can destabilize predictive models and produce unreliable results. Moreover, existing tools also lack the ability to translate the results of complex data analysis into plain-language explanations that are understandable to nontechnical users, resulting in misinterpretation of analysis outcomes and suboptimal decision-making.SUMMARY
[0005] Disclosed herein are systems and methods for allocating resources among agents. As discussed above, imbalances in resource distribution can reduce efficiency, stability, and overall performance of a system or organization. However, identifying and correcting such disparities can be technically challenging, especially in systems with large datasets and multiple influencing variables. Existing approaches often rely on manual, non-scalable processes or static analyses that fail to account for complex relationships or provide understandable outputs.
[0006] The disclosed techniques address these challenges by receiving data describing resource allocation among agents, automatically generating data models that account for factors influencing resource allocation, identifying disparities, and determining optimized reallocation schemes. The system may iteratively adjust resource allocations to determine optimized reallocation schemes in which disparities are reduced and specified criteria are met. The system may provide user interfaces and / or reports that present the analysis results to a user, including identified disparities, recommended adjustments, and / or natural language explanations of the analysis results.
[0007] A system for load balancing among a plurality of agents includes one or more processors and memory storing one or more programs for execution by the one or more processors, the one or more programs including instructions that, when executed by the one or more processors, cause the system to: receive data comprising an initial allocation of a resource load among the plurality of agents; generate a first data model that represents the initial allocation of the resource load based on the received data, wherein the first data model comprises a variable representing an attribute of an agent of the plurality of agents and a weight corresponding to the attribute; and if the weight exceeds a load balancing threshold, determine a reallocation of the resource load among the plurality of agents; based on the determined reallocation of the resource load among theMF-368938933Attorney Docket No. 398612000640plurality of agents, generate a second data model, wherein the second data model comprises the variable representing the attribute and an adjusted weight corresponding to the attribute; and reallocate the resource load among the plurality of agents based on the adjusted weight.
[0008] The load balancing threshold may be a value at which the weight is statistically significant. The load balancing threshold may be 0.05.
[0009] Determining a reallocation of the resource load among the plurality of agents may include providing at least a portion of the received data to a machine learning model trained to determine the reallocation of the resource load among the plurality of agents. The one or more programs may include instructions that, when executed by the one or more processors, cause the system to: if the weight does not exceed the load balancing threshold, maintain the initial allocation of the resource load among the plurality of agents.
[0010] A magnitude of the adjusted weight may be less than a magnitude of the weight. The adjusted weight may be zero. The one or more programs may include instructions that, when executed by the one or more processors, cause the system to: prior to reallocating the resource load among the plurality of agents, determine if the adjusted weight exceeds the load balancing threshold.
[0011] The one or more programs may include instructions that, when executed by the one or more processors, cause the system to: based on a determination that the adjusted weight does not exceed the load balancing threshold, reallocate the resource load among the plurality of agents; and based on a determination that the adjusted weight exceeds the load balancing threshold, determine an updated reallocation of the resource load among the plurality of agents.
[0012] The one or more programs may include instructions that, when executed by the one or more processors, cause the system to: generate, using a machine learning model, a plan for future allocation of the resource load among the plurality of agents. The plan for future allocation of the resource load among the plurality of agents may be generated based on the second data model. The plan for future allocation of the resource load among the plurality of agents may be generated based on a performance of the plurality of agents. The plan for future allocation of the resource load among the plurality of agents may be generated based on demand from the plurality of agents.
[0013] The variable may be a binary variable. The first data model and the second data model may be regression models. The regression models may be multiple regression 3MF-368938933Attorney Docket No. 398612000640models. The resource load may be a financial resource. The plurality of agents may be a plurality of human agents.
[0014] The one or more programs may include instructions that, when executed by the one or more processors, cause the system to: generate a report based on at least one of the first data model and the second data model. The report may be generated based on one or more user preferences. The one or more user preferences may include an intended audience for the report.
[0015] The one or more programs may include instructions that, when executed by the one or more processors, cause the system to: generate, using a language model, a natural language narrative based on at least one of the first data model and the second data model. The one or more programs may include instructions that, when executed by the one or more processors, cause the system to: display a graphical user interface comprising an indication of at least one resource allocation disparity. The graphical user interface may include an indication of one or more adjustments to reduce the resource allocation disparity.
[0016] A method for load balancing among a plurality of agents includes: receiving data comprising an initial allocation of a resource load among the plurality of agents; generating a first data model that represents the initial allocation of the resource load based on the received data, wherein the first data model comprises a variable representing an attribute of an agent of the plurality of agents and a weight corresponding to the attribute; and if the weight exceeds a load balancing threshold, determining a reallocation of the resource load among the plurality of agents; based on the determined reallocation of the resource load among the plurality of agents, generating a second data model, wherein the second data model comprises the variable representing the attribute and an adjusted weight corresponding to the attribute; and reallocating the resource load among the plurality of agents based on the adjusted weight.
[0017] A non-transitory computer-readable storage medium includes one or more programs for load balancing among a plurality of agents, wherein the one or more programs, when executed by one or more processors, cause the one or more processors to perform a method comprising: receiving data comprising an initial allocation of a resource load among the plurality of agents; generating a first data model that represents the initial allocation of the resource load based on the received data, wherein the first data model comprises a variable representing an attribute of an agent of the plurality of agents and a weight corresponding to the attribute; and if the weight exceeds a load balancing 4MF-368938933Attorney Docket No. 398612000640threshold, determining a reallocation of the resource load among the plurality of agents; based on the determined reallocation of the resource load among the plurality of agents, generating a second data model, wherein the second data model comprises the variable representing the attribute and an adjusted weight corresponding to the attribute; and reallocating the resource load among the plurality of agents based on the adjusted weight.
[0018] It will be appreciated that any of the variations, aspects, features, and options described in view of the systems apply equally to the methods and vice versa. It will also be clear that any one or more of the above variations, aspects, features, and options can be combined.BRIEF DESCRIPTION OF THE FIGURES
[0019] The invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
[0020] FIG. 1 illustrates an exemplary method 100 for load balancing among a plurality of agents, in accordance with some embodiments.
[0021] FIG. 2 illustrates a first tab of an exemplary graphical user interface displaying results of a resource allocation analysis, in accordance with some embodiments.
[0022] FIG. 3 illustrates a second tab of the exemplary graphical user interface displaying results of the resource allocation analysis, in accordance with some embodiments.
[0023] FIG. 4 illustrates an example of using method 100 to allocate a financial resource among a plurality of human agents, in accordance with some embodiments.
[0024] FIG. 5 illustrates a first configuration screen for configuring a resource allocation analysis, in accordance with some embodiments.
[0025] FIG. 6 illustrates a second configuration screen for configuring a resource allocation analysis, in accordance with some embodiments.
[0026] FIG. 7 illustrates a third configuration screen for configuring a resource allocation analysis, in accordance with some embodiments.
[0027] FIG. 8 illustrates a fourth configuration screen for configuring a resource allocation analysis, in accordance with some embodiments.
[0028] FIG. 9 illustrates a fifth configuration screen for configuring a resource allocation analysis, in accordance with some embodiments.5MF-368938933Attorney Docket No. 398612000640
[0029] FIG. 10 illustrates a sixth configuration screen for configuring a resource allocation analysis, in accordance with some embodiments.
[0030] FIG. 11 illustrates a first overview screen for a resource allocation analysis, in accordance with some embodiments,
[0031] FIG. 12 illustrates a second overview screen for a resource allocation analysis, in accordance with some embodiments.
[0032] FIG. 13 illustrates a comprehensive pay disparity screen, in accordance with some embodiments.
[0033] FIG. 14 illustrates a department-specific gender pay disparity screen, in accordance with some embodiments.
[0034] FIG. 15 illustrates a department- specific race pay disparity screen, in accordance with some embodiments.
[0035] FIG. 16 illustrates a remediation planning screen for generating a remediation plan to address a resource disparity in an organization, in accordance with some embodiments.
[0036] FIG. 17 illustrates a first remediation screen displaying a remediation plan to address a resource disparity in an organization, in accordance with some embodiments.
[0037] FIG. 18 illustrates a second remediation screen displaying a remediation plan to address a resource disparity in an organization, in accordance with some embodiments.
[0038] FIG. 19 illustrates a third remediation screen displaying a remediation plan to address a resource disparity in an organization, in accordance with some embodiments.
[0039] FIG. 20 illustrates a fourth remediation screen displaying a remediation plan to address a resource disparity in an organization, in accordance with some embodiments.
[0040] FIG. 21 illustrates a report generation screen, in accordance with some embodiments.
[0041] FIG. 22 illustrates an exemplary prompt template for a language model, in accordance with some embodiments.
[0042] FIG. 23 illustrates a data insights screen including natural language insights into a resource allocation analysis, in accordance with some embodiments.
[0043] FIG. 24 illustrates an exemplary computing system, in accordance with some embodiments.6MF-368938933Attorney Docket No. 398612000640DETAILED DESCRIPTION
[0044] Disclosed herein are systems and methods for allocating resources among agents. As discussed above, the manner in which a resource is allocated within an organization or system can be critical to the organization or system's success. Disparities in resource allocation can degrade performance of the organization or system by preventing resources from being directed to areas of greatest need, leading to inefficiency and underperformance. When certain agents within the organization or system are underresourced while others maintain excess capacity, overall performance may suffer. These imbalances can compound over time, which can adversely affect reliability, stability, and long-term effectiveness of the organization or system.
[0045] In view of the above, identifying, analyzing, and remediating resource allocation disparities is critically important. However, doing so remains a significant technical challenge, particularly for organizations or systems with large numbers of agents and numerous variables that influence resource allocation. For example, entities seeking to analyze disparities in resource allocation often rely on time-consuming and error-prone manual processes that lack the scalability needed to handle large datasets encompassing large numbers of agents. Existing tools also allocate resources and generate corresponding reports using static, one-size-fits-all analyses that do not account for all of the factors that influence how resources should be distributed. For example, existing tools often fail to detect or account for collinearity among factors that influence resource distribution, which can destabilize predictive models and produce unreliable results. Further, existing tools also lack the ability to translate the results of complex data analysis into plain-language explanations that are understandable to non-technical users, resulting in misinterpretation of analysis outcomes and suboptimal decision-making.
[0046] The techniques disclosed herein address these technical challenges by providing systems and methods that can receive large datasets describing the current allocation of resources, generate customized data models that account for how various factors impact resource allocation, identify disparities between agents, and determine fair and efficient reallocation schemes. The systems and methods disclosed herein may further provide graphical user interfaces that guide a user through the end-to-end process of configuring an analysis, reviewing disparity results, planning remediation adjustments, and generating comprehensive reports understandable to a lay audience, all within a single integrated platform.7MF-368938933Attorney Docket No. 398612000640
[0047] An exemplary system is configured to receive data that includes an initial allocation of a resource load among agents. The data can indicate an amount of the resource load that is allocated to each agent of a plurality of agents as well as information about the agents. For instance, in an example in which the agents are electronic devices and the resource is memory, the data can indicate how the memory is allocated amongst the electronic devices. In an example in which the agents are employees and the resource load is money, the data can indicate how the money is allocated amongst the employees. The data can also include demographic information about the employees, such as race, gender, job level, tenure, performance rating, age, location, and the like.
[0048] The system then generates a data model that represents the initial allocation of the resource load based on the received data. The data model includes a variable representing an attribute of an agent and a weight corresponding to the attribute. The weight corresponding to the attribute may be used to determine whether the attribute has a statistically significant contribution to any disparities in the initial allocation of the resource load. If the weight exceeds a load balancing threshold (e.g., a p value of 0.05), the system determines a reallocation of the resource load among the agents. Based on the reallocation of the resource load, the system generates a new data model that includes the variable representing the attribute and an adjusted weight corresponding to the attribute. The system can then reallocate the resource load among the agents based on the adjusted weight.
[0049] The system can provide the results of the resource allocation analysis to a user. The results can be provided via a graphical user interface or via a report. The results provided to the user may include any disparities identified during the analysis as well as any recommended or executed resource allocation adjustments. The results can include natural language explanations of any disparities and remedial measures, which can be generated using one or more large language models trained to translate complex statistical outputs into plain-language explanations. A user can configure the format and contents of the displayed results based on the intended audience (e.g., a regulator or an individual agent), thus ensuring that the results of the analysis can be understood and utilized by a variety of users.
[0050] The systems and methods disclosed herein provide numerous technical improvements over conventional load balancing systems. For example, there is currently a lack of integrated systems that combine resource allocation disparity modeling, optimization, and explainability in a single computational pipeline. The systems and 8MF-368938933Attorney Docket No. 398612000640methods described herein provide a unified platform for identifying disparities in resource allocation, determining adjustments to remedy the discrepancies, and generating corresponding reports. Advantageously, the disclosed techniques can distinguish between resource allocation disparities that are attributable to legitimate factors and those that may represent unwarranted or unfair disparities. This approach enables organizations to focus remediation efforts on genuine resource allocation gaps while avoiding unnecessary adjustments that could disrupt organizational operations. The techniques disclosed herein can determine recommended adjustments to resource reallocation using an iterative approach, which can help to minimize the total cost of reallocation while ensuring that the allocation meets specified criteria, such as eliminating statistical significance in allocation disparities and ensuring that any recommended adjustments are within predetermined constraints.
[0051] Moreover, the disclosed systems can rapidly and accurately analyze large datasets. This can drastically reduce the need for the time-consuming manual analysis required by existing systems and improve computational efficiency. The disclosed systems and methods can also detect collinearity among input variables and present actionable information to users. Existing systems that employ multi-dimensional statistical models often suffer from instability and inaccuracy due to collinearity between variables. By detecting and accounting for (e.g., reducing or eliminating) collinearity, the claimed techniques can significantly improve the stability and reliability of the data models underlying the analysis.
[0052] The disclosed systems and methods can also provide specific improvements to the functioning of computer systems. For example, the systems described herein can process large, high-dimensional datasets using dynamically selected computational techniques. The system may additionally or alternatively employ parallelized processing and data partitioning or compression techniques to improve processing speed and scalability. These improvements enable the computing system to perform more efficiently and to perform analyses that would otherwise be impractical or infeasible using conventional approaches. The iterative approach to model refinement can also improve the functioning of a computer. By selectively generating and updating data models based on statistically significant attributes, and by iteratively adjusting allocations using constrained optimization techniques, the system avoids unnecessary computation on irrelevant variables and reduces the volume of intermediate data that must be stored and processed.9MF-368938933Attorney Docket No. 398612000640
[0053] Moreover, the techniques described herein provide technical improvements in the form of enhanced explainability and transparency. The system may employ artificial intelligence and machine learning techniques, including large language models, to generate natural language explanations of complex statistical results that are tailored to a user’s expertise level. This enables a wide array of users to understand the significance of the analytical results and make informed decisions based on those results. The system may also provide detailed information about model performance, including metrics such as R-squared values, sample sizes, and prediction accuracy, enabling users to assess the reliability of the analytical results.
[0054] Reference will now be made in detail to implementations and embodiments of various aspects and variations of systems and methods described herein. Although several exemplary variations of the systems and methods are described herein, other variations of the systems and methods may include aspects of the systems and methods described herein combined in any suitable manner having combinations of all or some of the aspects described.
[0055] In the following description of the various embodiments, it is to be understood that the singular forms “a,” “an,” and “the” used in the following description are intended to include the plural forms as well, unless the context clearly indicates otherwise. It is also to be understood that the term “and / or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed terms. It is further to be understood that the terms “includes,” “including,” “comprises,” and / or “comprising,” when used herein, specify the presence of stated features, integers, steps, operations, elements, components, and / or units but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, units, and / or groups thereof.
[0056] Certain aspects of the present disclosure include process steps and instructions described herein in the form of an algorithm. It should be noted that the process steps and instructions of the present disclosure could be embodied in software, firmware, or hardware and, when embodied in software, could be downloaded to reside on and be operated from different platforms used by a variety of operating systems. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that, throughout the description, discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” “displaying,” “generating” or the like, refer to the action and processes of a computer system, or similar electronic computing device,10MF-368938933Attorney Docket No. 398612000640that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission, or display devices.
[0057] The present disclosure in some embodiments also relates to a device for performing the operations herein. This device may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a non-transitory, storage medium, such as, but not limited to, any type of disk, including floppy disks, USB flash drives, external hard drives, optical disks, CD-ROMs, magneto-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMS, EEPROMs, magnetic or optical cards, application-specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each connected to a computer system bus. Furthermore, the computing systems referred to in the specification may include a single processor or may be architectures employing multiple processor designs, such as for performing different functions or for increased computing capability. Suitable processors include central processing units (CPUs), graphical processing units (GPUs), field programmable gate arrays (FPGAs), and ASICs.
[0058] The methods, devices, and systems described herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the required method steps. The structure for a variety of these systems will appear in the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the present disclosure as described herein.
[0059] As discussed above, the systems and methods disclosed herein can be used for load balancing (e.g., resource allocation) among a plurality of agents. An exemplary method 100 for load balancing among a plurality of agents is illustrated in FIG. 1. The method illustrated in FIG, 1 can be performed by the systems disclosed herein, such as computing system 2400. In some embodiments, method 100 can be performed using a client-server system, and the steps of method 100 may be divided up in any manner between the server and one or more client devices. Thus, while portions of method 100 may be described herein as being performed by particular devices, it should be appreciated that method 100 is not so limited. In some embodiments, one or more steps 11MF-368938933Attorney Docket No. 398612000640of method 100 may be omitted, and / or the order of one or more steps may be changed. In some embodiments, additional steps may be performed in addition to method 100.Accordingly, the operations as illustrated and described herein are exemplary by nature and, as such, should not be viewed as limiting.
[0060] At step 102, data including an initial allocation of a resource load among a plurality of agents is received. For example, the data may include records for each of the plurality of agents in which each record includes an identifier of the agent, a current amount of the resource allocated to the agent, and one or more attributes of the agent. The data may include data corresponding to an entire organization or entity or to a subset thereof.
[0061] The plurality of agents about which data is received may be vehicles, electronic devices, software, robots, human agents, or any combination thereof. The resource may be a battery resource, a networking resource, a processing power resource, a memory' resource, a financial resource, or any combination thereof.?\s an illustrative example, the plurality of agents may be electronic devices, the resource may be a battery resource, and the initial allocation of the resource load among the plurality of agents may indicate how battery power is distributed amongst the electronic devices. As another example, the plurality of agents may be electronic devices, the resource may be a memory resource, and the initial allocation of the resource load among the plurality of agents may indicate how memory capacity is distributed amongst the electronic devices. As another example the plurality of agents may be a plurality of human employees, the resource may be money, and the initial allocation of the resource load among the plurality of agents may indicate how compensation is distributed amongst the employees.
[0062] The data including the initial allocation of the resource load among the plurality of agents may include information about each agent's current resource allocation. For example, the data may include the amount of the resource possessed by each agent and / or a proportion of a total amount of the resource possessed by each agent. The data may also include information about each agent. The information about each agent may include attributes that may influence resource allocation. For instance, if the agents are electronic devices, the information about each agent may include identifying information about the electronic devices (e.g., model, type, capabilities, primary function, etc.).Similarly, if the agents are human agents, the data may include demographic information (e.g., gender, race, job level, performance rating, age, location, tenure, etc.) about each agent.12MF-368938933Attorney Docket No. 398612000640
[0063] The data including the initial allocation of the resource load may be received from various sources. For example, the system executing method 100 may be integrated with one or more data repositories such as payroll systems or human capital management systems. The system may be configured to pull data from the one or more data repositories on a continuous or periodic basis. Alternatively or additionally, the data may be received via a direct user upload. The data may be received in various formats, such as a CSV file, an XML file, an Excel file, a SQL file, an ASCII file, a PDF file, a TXT file, a Word file, or any other suitable file format.
[0064] Optionally, a user may validate the data including the initial allocation of the resource load. Validating the received data prior to analyzing the resource allocation may help ensure the reliability and accuracy of the analysis. In some examples, the user may validate the data using a graphical user interface that displays the data. The graphical user interface may identify data quality issues such as missing values, duplicate records, or inconsistent formats. Optionally, the graphical user interface may flag specific items in the data that are missing or suspected or known to be incorrect. The graphical user interface may allow the user to correct the identified issues directly via the graphical user interface or may enable the user to download the data for offline correction.
[0065] At step 104, a first data model that represents the initial allocation of the resource load is generated based on the received data. The first data model includes a variable representing an atribute of an agent of the plurality of agents and a weight corresponding to the attribute. The variable representing the attribute may optionally be a binary variable (e.g., a variable that can have two mutually exclusive values). Generating the first data model allows the system to determine whether the initial allocation of the resource load includes any disparities. For example, the system can analyze the first data model in order to isolate the effect of various attributes on the initial allocation of the resource load and determine whether any attributes impact resource load allocation in an unacceptable manner.
[0066] In some examples, the first data model may be a regression model. For example, the first data model may be an ordinary least squares (OLS) regression model in which resource allocation is the dependent variable and the variable representing the attribute of an agent is the independent variable. Optionally, the first data model may be a multiple regression model that includes multiple independent variables representing multiple different agent attributes. For example, when the agents are human agents, variables representing attributes of the agents can include variables representing demographic 13MF-368938933Attorney Docket No. 398612000640characteristics such as gender, race ob title or seniority, etc. Alternatively, separate data models may be generated for each variable representing an attribute. In some examples, the system may apply a logarithmic transformation to the data corresponding to the dependent variable (representing resource allocation) before fitting the first data model in order to normalize the data.
[0067] In some examples, the first data model may include a coefficient (referred to herein as a weight) corresponding to a variable representing an attribute. In examples in which the first data model includes multiple independent variables representing multiple attributes, the first data model may include multiple coefficients (weights). The weight(s) may indicate the relative contribution of a given attribute to the initial allocation of the resource load.
[0068] In some examples, the first data model may be generated based on one or more configuration parameters set by a user prior to generating the first data model. For example, a user may select one or more agent attributes to be used in the first data model via a graphical user interface, as described in greater detail herein. Additionally or alternatively, the user may select a subset of the plurality of agents to be represented in the first data model. For example, the user may select only agents who meet predetermined criteria (e.g., employees who are female) to be represented in the first data model. Additionally or alternatively, the user may specify one or more preferences regarding the way in which the first data model is presented. For instance, the user may specify the manner in which the first data model should be displayed on a graphical user interface (e.g., where graphs and / or text should be displayed), whether a written narrative containing insights into the data should be provided with the first data model, and the like.
[0069] At step 106, if the weight exceeds a load balancing threshold, a reallocation of the resource load among the plurality of agents is determined. The load balancing threshold may be a statistical significance threshold. For example, the load balancing threshold may be a p-value of 0.05. In some examples, if the weight corresponding to a particular attribute exceeds the load balancing threshold, it may indicate that a statistically significant disparity in resource allocation exists with respect to the attribute to which the weight corresponds. This may indicate that remediation (e.g., reallocation of the resource load) is warranted. Thus, if the weight exceeds the load balancing threshold, a reallocation of the resource load may be determined. If the weight does not exceed the14MF-368938933Attorney Docket No. 398612000640load balancing threshold, the system may maintain the initial allocation of the resource load.
[0070] In some examples, the reallocation of the resource load among the plurality' of agents may be determined by iteratively adjusting the allocation of the resource load. For example, as described in greater detail herein with respect to FIG. 2, the reallocation of the resource load may be determined by iteratively applying incremental adjustments to the data model until the load balancing threshold is no longer exceeded. Alternatively or additionally, the reallocation of the resource load among the plurality of agents may be determined using one or more machine learning models trained to determine a fair resource allocation scheme.
[0071] In some examples, the computational methods used to determine the reallocation of the resource load may be selected dynamically based on the characteristics of the input data in order to optimize processing time. For example, if the input data (e.g., the data received at step 102) includes a large number of agents and / or variables representing attributes, conventional regression techniques may require a lengthy compute time. The system may be configured to reduce the compute time by automatically selecting a regression or other statistical technique from a plurality of possible techniques that requires less compute time or resources. Additionally or alternatively, the system may parallelize computations across multiple processors or computing resources to perform the computations more efficiently. Additionally or alternatively, the system may employ memory optimization techniques (e.g., compression or partitioning techniques) that reduce the size of the dataset and make it easier for the system to process. These techniques may ensure that the reallocation of the resource load can be determined within an expected time frame (e.g., a matter of minutes as opposed to hours).
[0072] At step 108, a second data model is generated based on the determined reallocation of the resource load among the plurality of agents. The second data model includes the variable representing the attribute and an adjusted weight corresponding to the attribute. The second data model may reflect the determined reallocated resource amounts. The magnitude of the adjusted weight in the second data model may be less than the magnitude of the original weight. In some examples, the adjusted weight may be zero. In other examples, the magnitude of the adjusted weight may be a nonzero number that is less than the original weight. In some examples, the system may determine whether the adjusted weight exceeds the load balancing threshold. The adjusted weight may not exceed the load balancing threshold, which may indicate that a resource15MF-368938933Attorney Docket No. 398612000640allocation disparity based on the attribute to which the weight corresponds is no longer statistically significant. The resource load may then be reallocated accordingly.Alternatively, the adjusted weight may still exceed the load balancing threshold, in which case the system may update the determined reallocation of the resource load and generate one or more additional data models that reflect the updates.
[0073] At step 110, the resource load is reallocated among the plurality of agents based on the adjusted weight. Reallocating the resource load may include implementing the proposed adjustments indicated by the second data model. In some examples, reallocating the resource load may include generating a plan for future allocation of the resource load among the plurality of agents. The plan for future reallocation may be generated using a machine learning model. The plan for future reallocation may be based on the second data model, the performance of the plurality of agents, and / or demand from the plurality of agents.
[0074] In some examples, the system may provide a graphical user interface that includes the results of the resource allocation analysis prior to, simultaneously with, after, or instead of reallocating the resource load among the plurality of agents. The system may additionally or alternatively produce one or more reports based on the results, such as reports that are responsive to jurisdiction-specific regulatory requirements, reports for internal use within an organization, and / or reports to be provided to individual agents (e.g., for transparency purposes). In some examples, a user may configure the content and / or format of the report. For example, the user may specify, via a graphical user interface, the purpose or audience of the report, the type of data to be included in the report, whether a natural language explanation of the data should be included in the report, and the like.
[0075] In some examples, the results provided to the user (via a graphical user interface or report) may include raw numerical data from the first and / or second data model. The raw numerical outputs may include one or more statistical quantities associated with the raw numerical data (e.g., coefficients, p-values, R squared values, sample sizes, residuals, etc.). The results provided to the user may also include the results of one or more additional computations performed on the raw numerical data to derive meaningful insights into the raw numerical data. For example, the results may indicate resource allocation disparities between agents or groups of agents, an indication of model performance, and / or an indication of the relative importance of various attributes to any resource allocation disparities.16MF-368938933Attorney Docket No. 398612000640
[0076] In some examples, the results provided to the user may further include one or more natural language explanations associated with the analysis results. The natural language explanation(s) may be generated by one or more machine learning models (e.g., one or more large language models). The one or more machine learning models may be configured to receive data (e.g., the second data model) and generate a narrative explaining the analysis results in plain language that is tailored to a user’s expertise level. The narrative may be generated based on prompt templates containing specific instructions regarding the content and tone of the narrative. In some examples, the narrative may describe one or more of: model performance (e.g., how well the data model fits the data), factors contributing to any discrepancies in the data and their relative importance, group disparity evidence (e.g., of the nature and / or magnitude of the disparity), and / or a remediation plan and explanation of why certain adjustments are recommended for certain agents. Optionally, a user may be able to set a voice or audience level for the narrative (e.g., via a graphical user interface displaying the results). For example, the narrative may use more conversational and plain language when the audience is human resources professionals or employees but may use more technical jargon when the audience is data scientists. Optionally, the graphical user interface may provide an interactive chat functionality that allows a user to ask follow-up questions about the results. One or more large language models (which may be the same or different large language models than those used to generate natural language explanations of the results) may be configured to generate answers to the follow-up questions in real¬ time and provide the answers to the user via the graphical user interface.
[0077] In some embodiments, the systems disclosed herein may support multiple languages for the graphical user interface (and the chat interface thereof) and / or reports. This may enable organizations operating in multiple countries to use the system in their local languages and to generate reports that can be understood by employees or other stakeholders who may not be fluent in English,
[0078] An exemplary graphical user interface 200 displaying the results of a resource allocation analysis is illustrated in FIGS. 2-3. Graphical user interface 200 may display the results of a resource allocation analysis. As shown in FIG. 2, graphical user interface 200 may include a first tab 202 providing an overview of resource allocation within an organization. First tab 202 may include information about the resource allocation across groups of agents within the organization. For example, first tab 202 may include a pie chart 204 indicating the distribution of agents across groups (e.g., agents belonging to a 17MF-368938933Attorney Docket No. 398612000640first group, agents belonging to a second group, and agents belonging to other groups). The different groups may correspond to an agent attribute. For example, in an example in which the agents are human employees, Group 1 may be male employees, and Group 2 may be female employees. In the example shown in FIG. 2, pie chart 204 indicates that the organization includes 13,286 total agents, 60% of which belong to Group 1, 38% of which belong to Group 2, and 2% of which belong to another group.
[0079] First tab 202 may also include an indication of resource allocation disparities between groups of agents. For example, first tab 202 may include a panel 206 that indicates the percentage difference in resource allocation between groups. In the example of FIG. 2, panel 206 indicates that agents in Group 2 receive approximately 13% less resources than agents in Group 1 on an unadjusted basis, and approximately 9% less than agents in Group 1 on an adjusted basis that accounts for factors that legitimately influence resource allocation. For example, continuing with the example in which the agents are human employees, factors that legitimately influence resource allocation may include job level, experience, performance, etc. By providing both the unadjusted disparity (the raw difference in allocation) with the adjusted disparity (the difference after accounting for legitimate factors), a user can identify whether allocation differences are attributable to legitimate factors or may represent unwarranted disparities. Optionally, first tab 202 may indicate which disparities are statistically significant, such as by displaying an asterisk or other indicator as shown in panel 208.
[0080] First tab 202 may also include a panel 210 displaying an average resource allocation by group and / or a panel 212 that includes written insights about the data provided to the user. For example, in FIG. 2, the insights panel 212 states that for every 1.00 units of a resource received by a Group 1 agent, a Group 2 agent receives 0.87 units, or 0.91 units on an adjusted basis. The insights panel 212 indicates that this difference is statistically significant. In some examples, graphical user interface 200 may also include configuration options, such that a user can adjust the content and / or format of the displayed results. For example, first tab 202 may include one or more graphical user interface elements 214 (e.g., dropdown menus, sliders, checkboxes, or the like) that allow a user to filter the display by group, view median or average statistics, and download reports. In some examples, interactive filtering using the one or more graphical user interface elements 214 may trigger re-computation of one or more data models in real¬ time.18MF-368938933Attorney Docket No. 398612000640
[0081] Graphical user interface 200 may also include a second tab 216, as shown in FIG.3, that includes detailed information about all resource allocation disparities that exist within an organization. For example, second tab 216 may include a panel 218 that displays all disparities on a single chart, with each group represented as a point or bar on the chart. Positive disparities (indicating that a group receives more of a resource than average) may be shown on one side of the chart, while negative disparities (indicating that a group receives less of the resource than average) may be shown on the opposite side of the chart. Statistically significant disparities may be highlighted or marked with a special indicator. Second tab 216 may also include a panel 220 that shows average allocation of the resource for each group (e.g., as a bar chart).
[0082] Second tab 216 may further include a table 222 that includes a detailed breakdown of the resource allocation across each group in the organization. Table 222 may include, for example, the total number of agents in each group, the unadjusted disparity percentage for each group, the adjusted disparity percentage for each group, and the average allocation for each group. Table 222 may enable a user to quickly compare disparities across all groups and identify which groups are most significantly affected.
[0083] As noted above, the techniques of method 100 may be used to analyze how multiple different types of resources are distributed amongst multiple different types of agents. For example, the techniques can be used to analyze battery distribution among a plurality of electronic devices, processing power distribution among a plurality of networked devices, memory distribution among a plurality of electronic devices, and the like. In some examples, the plurality of agents may be a plurality of human employees, and the resource load may be a financial resource. In that case, the techniques of method 100 may be used to identify and remedy compensation discrepancies between employees or groups thereof. Ensuring that compensation is distributed fairly among human agents in an organization can ensure that the human agents are satisfied with their compensation and that the organization complies with expectations or legal requirements surrounding equitable compensation. FIG. 4 illustrates an exemplary method 400 for remedying compensation discrepancies between employees based on the techniques described above with respect to method 100. Method 400 may be performed by the system described herein, such as computing system 2400. In some embodiments, method 400 may be used in combination with method 100. It should be understood that the application of method 400 to analyzing compensation discrepancies between human employees is merely exemplary, and the techniques of method 400 may be applied to non-human agents (e.g.,19MF-368938933Attorney Docket No. 398612000640software, electronic devices, robots, vehicles, etc.) and other types of resources (e.g., battery, memory, etc.).
[0084] At step 402, the analysis is initialized. Initializing the analysis may include receiving data indicating an initial resource allocation among a plurality of employees. The data may be received from various sources, such as databases, user uploads, payroll systems, human capital management systems, or other data repositories. In the example in which method 400 is used to analyze compensation disparities, the data may include information about each employee, such as the employee’s current compensation and attributes of the employee that may influence their compensation. For example, the attributes may include race, gender, job level, performance rating, tenure, department, location, or any other factors that could impact compensation. In this respect, step 402 may share one or more similarities with step 102 discussed above with respect to FIG. 1.
[0085] Initializing the analysis may also include receiving configuration parameters for the analysis. For example, the system may provide a configuration interface that enables a user to specify which data sources to use, which attributes to include in the analysis, and the like. FIGS. 5-10 illustrate screens of an exemplary configuration interface that can be used to initialize a resource allocation disparity analysis. FIG. 5 illustrates a first configuration screen 500 that provides a user with options for initiating a new resource allocation analysis. The first configuration screen 500 may include a welcome message and options to start a new report (analysis) or open a saved report (analysis). The first configuration screen 500 may display a list of recent reports, showing information such as the report name, upload date, date created, last update date, status (e.g., cost planning complete, analysis complete, configuration in-progress, pending permission), and available actions. This interface may enable users to manage multiple analyses and quickly access their most recent work.
[0086] If the user selects the option to start a new report, the system may display a second configuration screen 600, as illustrated in FIG, 6. The second configuration screen 600 may guide the user through the initial setup of a resource allocation analysis. The second configuration screen 600 may include a progress indicator 602 showing the steps in the configuration process, such as getting started, configuring base elements, configuring demographic groups, selecting factors, validating data, and reviewing and running the report. The second configuration screen 600 may provide options for specifying the report name, selecting a country' or region for the analysis, and selecting how to add the20MF-368938933Attorney Docket No. 398612000640organization's data (e.g., use previously provided data, connect to an HCM system, or upload a new data file).
[0087] Once the user has made these initial selections, a third configuration screen 700 may be displayed, as illustrated in FIG. 7. The third configuration screen 700 may enable the user to configure the “base elements” of the analysis, such as compensation type to be analyzed, demographic attributes to be analyzed, and how the data should be grouped. For example, the third configuration screen 700 may enable the user to select the compensation type to analyze. Options may include base salary (the fixed amount of money an employee receives before any bonuses or other compensation), total cash (the sum of base salary plus bonuses, commissions, and other cash-based incentives), and total direct compensation (the sum of base salary plus any bonuses, commissions, and other cash-based short-term and long-term incentives). The third configuration screen 700 may also enable the user to select which demographic groups to analyze (such as gender and race / ethnicity). Optionally, the third configuration screen 700 may include the option to create custom data groupings. The user may define custom groups of employees based on job level, department, location, age, or other fields. Grouping the data can enhance the accuracy and relevance of the analysis by separating agents with different compensation structures (such as executives versus individual contributors). This can help to avoid distorting the analysis with compensation patterns that may not be comparable across different employee types.
[0088] After the user has completed configuration of the base elements, the system may provide a fourth configuration screen 800, as illustrated in FIG. 8, The fourth configuration screen 800 may enable the user to select which factors to include in the analysis as resource allocation influence factors. These are factors that legitimately and reasonably impact resource allocation at the organization. In the example in which method 400 is used to analyze compensation disparities amongst employees, examples of factors may include function / department, subfunction, job level / grade, job evaluation / points, age, performance rating, market premium identifier, salary range midpoint, time in job, and time with organization. In other examples (e.g., when the techniques of method 400 are used to analyze processing power distribution among electronic devices), examples of factors may include function, location, memory constraints, and the like. The selected factors may be used as independent variables in the resource allocation analysis, and any remaining differences in allocation that are not explained by these factors may be attributable to allocation disparities.21MF-368938933Attorney Docket No. 398612000640
[0089] In some examples, two or more of the factors selected by the user may be collinear. Collinearity occurs when factors are highly correlated with one another and can negatively impact the stability of the model(s) used in the resource allocation analysis and the reliability of the coefficient estimates. If the system detects that two or more factors selected by the user via fourth configuration screen 800 are collinear, the system may alert the user to the collinearity issue prior to concluding the initialization process, as described in greater detail herein with respect to FIG. 10.
[0090] Once the user has selected the factors to be used in the resource allocation analysis, the system may provide a fifth configuration screen 900, as illustrated in FIG. 9. The fifth configuration screen 900 may enable the user to review and validate the raw data before running the analysis. The fifth configuration screen 900 may display a data quality summary identifying any issues with the uploaded data, such as missing identifying information, missing demographic information, or other data quality problems. The fifth configuration screen 900 may display a table showing individual employee records with their current resource allocation, function, job title, demographic attributes, level, performance rating, age, and an action column for addressing data issues. In some examples, the user may fix any data quality issues directly in the application. Alternatively, the user may choose to fix data quality issues offline and upload a new data file. Ensuring completeness and accuracy of the at this stage may help to ensure accuracy of the analysis.
[0091] Once the input data has been validated, the system may provide a sixth configuration screen 1000, as illustrated in FIG. 10. The sixth configuration screen 1000 may display a summary of the configuration parameters selected by the user, such as the compensation elements, demographic groups, custom groups, and pay factors selected by the user. Optionally, the sixth configuration screen 1000 may display error messages or warnings associated with the user selections. As noted above, two or more factors selected by a user during configuration of the analysis may be collinear, meaning that the factors are highly correlated with each other and may skew the results of the analysis. For example, variables such as time in company, time in organization, levels, and performance rating may be correlated with one another because agents who have been with the organization longer tend to have higher levels and may have accumulated better performance ratings due to their experience. If all of these variables are included in the resource allocation analysis, the collinearity may reduce the reliability of the results.22MF-368938933Attorney Docket No. 398612000640
[0092] Collinearity issues may be detected using statistical metrics such as variance inflation factor (VIF), which measures how much the variance of a coefficient estimate is inflated due to collinearity with other variables. A higher VIF value indicates higher correlation with other variables. When the system detects high VIF values indicating collinearity, it may present this information to the user as a warning. For instance, in the example of FIG. 10, the warning indicates that the selection of both job level / grade and salary range midpoint may undermine the validity of the results of the analysis, and that selection of only one of these factors is recommended. The user can choose to take action based on the warning (e.g., to return to factor selection and deselect one or more of the collinear factors) or to ignore the warning and proceed with the analysis. Optionally, potential collinearity issues may be presented to the user using visualization tools such as heat maps in addition to or instead of the written warning illustrated in FIG. 10. For example, a heat map may display the correlation between each pair of variables, enabling users to see which variables are highly correlated with one another. This can help the user select variables for the analysis that are not highly correlated, thus improving model stability.
[0093] Returning to FIG. 4, at step 404, the system may start the process of analyzing resource allocation. At step 406, the system determines whether a maximum number of iterations has been reached. If method 400 is just beginning, then the system may determine that the maximum number of iterations is not reached, and the method may proceed to step 408. In other examples, iterative adjustments may have been performed already, and the method may have returned to step 406. In some instances, the system may determine that the maximum number of iterations has been reached. If the maximum number of iterations has been reached, the method may proceed to step 420, at which the system stops iterating. In other instances, the system may determine that the maximum number of iterations has not yet been reached. In that case, the method may proceed to step 408.
[0094] At step 408, the system runs a regression and computes a p-value with updated adjustments. Step 408 may share one or more similarities with step 104 of method 100, where the regression run in step 408 is an example of the “first data model” of step 104 and the p-value in step 408 is an example of the “weight” of step 104.
[0095] The regression run in step 408 may be data model that represents the initial or existing allocation of the resource load. The regression may be generated based on the data received at step 402 during the system initialization (and, if method 400 is being 23MF-368938933Attorney Docket No. 398612000640repeated, any previously determined incremental adjustments). In some examples, the regression may be an ordinary least squares (OLS) regression model or a multiple regression model. In the example in which method 400 is used to analyze compensation disparities amongst employees, the regression model may use compensation as the dependent variable and employee attributes as independent variables. In some examples, to account for the typically skewed distribution of compensation data, the system may apply a logarithmic transformation to the compensation variable before fitting the regression model. After logging the compensation variable and fitting the regression model to the dataset, the regression model can be used to predict the logged compensation for each agent and then convert the logged compensation back to actual compensation using an exponential transformation.
[0096] The regression model may include a coefficient corresponding to each employee attribute. The coefficient may indicate the relative contribution of the attribute to the employee’s compensation. In some examples, the coefficient may be a p-value. The p-value may indicate whether the attribute has a statistically significant impact on the employee’s compensation. For example, the attribute may be gender, and the p-value may indicate whether gender has a statistically significant impact on an employee’s compensation. In that example, the goal of the resource allocation analysis may be to determine adjustments to compensation across the organization that minimize the p-value associated with the variable representing gender, so as to reduce or remove its statistically significant contribution to compensation (e.g., by reducing the p-value to zero or to a value below a predetermined threshold).
[0097] In some examples, the p-value may be used to quantify an adjusted resource allocation disparity between groups. The resource allocation disparity is ‘"adjusted” in that it accounts for attributes that may legitimately influence resource allocation. In the example in which method 400 is used to analyze compensation disparities amongst employees, attributes legitimately influencing resource allocation may include job level or performance rating. To determine the adjusted resource allocation disparity between groups, the p-value of the term corresponding to the attribute variable may be converted into a percentage using the following formula: ((10^coeff_value) - 1) * 100. This conversion may transform the p-value into a percentage representing the adjusted resource allocation disparity.
[0098] In some examples, other resource allocation disparity statistics may be determined based on the regression model in addition to the p-value. For example, an unadjusted 24MF-368938933Attorney Docket No. 398612000640resource allocation disparity between groups may be determined by computing the mean allocation (e.g., mean compensation) for each group and then calculating the difference between the mean allocation values. The unadjusted resource allocation disparity may be expressed as a percentage difference, such as the percentage by which the average allocation for one group differs from the average allocation for another group. The resource allocation disparity may also be expressed as a ratio. In the example in which method 400 is used to analyze compensation disparities amongst employees, the ratio may be the dollar-to-dollar comparison indicating how much money one group receives for every dollar that another group receives. As another example, a resource allocation disparity for an individual agent may be determined by computing an expected allocation based on the attributes of the agent and then calculating the difference between the agent's actual allocation and expected allocation. Agents with negative individual resource allocation disparity values may be determined to be under-resourced relative to their expected allocation based on the regression model.
[0099] At step 410, the system determines whether the p-value is greater than a predetermined threshold (which may be referred to as alpha) within a predetermined tolerance. For example, the predetermined threshold may be a statistical significance threshold at which the attribute corresponding to the p-value is statistically significant. The predetermined threshold may be, for example, p=0.05. In some examples, the p- value may be statistically significant when the p-value is less than alpha and may not be statistically significant when the p-value is greater than alpha. In other examples, the system may determine whether the p-value is less than a predetermined threshold, rather than whether the p-value is greater than the predetermined threshold, at step 410, for example as discussed above with respect to FIG. 1.
[0100] In some examples, the predetermined threshold may be set by a user. For instance, the user may set the predetermined threshold to zero. Alternatively, the user may set the predetermined threshold to a nonzero value, such as a value corresponding to a legal requirement (e.g., in the example in which method 400 is used to analyze compensation disparities amongst employees, a jurisdiction may require that a compensation disparity between male and female employees is no greater than 5%).
[0101] If the p-value exceeds the predetermined threshold, the system may proceed to step 422, at which point the iterative process ends, and a log of the analysis and its final results are produced. If the p-value does not exceed the predetermined threshold, the system may proceed to step 412, and method 400 may be used to compute adjustments to 25MF-368938933Attorney Docket No. 398612000640the organization’s resource allocation scheme to reduce the p-value below the predetermined threshold. Step 410 may share one or more similarities with step 106 of method 100.
[0102] At step 412, the system may proceed with resource allocation adjustments to address any resource allocation disparities identified based on the regression model. The determination of resource allocation adjustments may involve identifying which agents are receiving fewer resources than expected and calculating the magnitude of the disparity for each such agent. In some examples, resource allocation adjustments may be made incrementally rather than by making a single large adjustment. This iterative approach is based on gradient descent optimization techniques and may allow the system to minimize the total cost of resource allocation adjustments to the organization while still achieving the organization’s desired objectives. In some examples, the incremental adjustments may be proportional to the magnitude of the individual disparities of the various agents. For instance, in the example in which method 400 is used to analyze compensation disparities amongst employees, employees with larger individual compensation disparities may receive larger compensation adjustments during the adjustment process than those with smaller individual compensation disparities. This proportional approach may ensure that remediation efforts are targeted to the employees who are most significantly affected by compensation disparities.
[0103] At step 414, the system computes residuals based on the adjusted resource allocations. Residuals may represent the difference between an agent’s actual resource allocation (e.g., actual compensation) and predicted resource allocation (e.g., predicted compensation). If a residual is negative, the agent may be considered under-resourced (e.g., underpaid). If a residual is positive, the agent may be considered over-resourced (e.g., overpaid). Optionally, the residuals may be expressed as percentages.
[0104] In some examples, computing residuals based on the adjusted resource allocations may involve generating an updated regression model. In this regard, step 414 may share one or more similarities with step 108 of method 100. After computing the residuals, the residuals may be filtered to identify the highest negative percentages, which may correspond to the agents that are most significantly under-resourced.
[0105] At step 416, the system may compute one or more additional resource allocation adjustments based on the residuals computed at step 414. In some examples, the system may apply constraints to the adjustments, such as a minimum adjustment amount and / or a maximum adjustment amount for any individual agent. The minimum and maximum 26MF-368938933Attorney Docket No. 398612000640adjustment amounts may ensure that no agent receives an adjustment that is too small to be meaningful or too large to be practical. In the example in which method 400 is used to analyze compensation disparities amongst employees, the constraints may be specified as percentages of the employee’s current compensation (e.g., no adjustment should be less than 3% of the employee’s current compensation and no adjustment should be greater than 15% of the employee’s current compensation). The constraints may be configurable by the user to accommodate different organizational policies and budgetary considerations. Updated resource allocations for the organization may then be computed based on the additional resource allocation adjustments.
[0106] At step 418, the system may determine whether a rate at which resource allocation adjustments are being made is less than a predetermined minimum rate for continuing the iterative adjustment process. If the resource allocation adjustment rate is less than the predetermined minimum rate, method 400 may proceed to step 424, and the iterative adjustments may conclude. A log of the iterative adjustments and the final results may then be produced at step 428. If the resource allocation adjustment rate is greater than or equal to the predetermined minimum rate, method 400 may proceed to step 426, and the iterative adjustment process may continue by looping back to step 404.
[0107] Following the conclusion of method 400, the system may perform various downstream steps. For example, the system may reallocate the resource load (e.g., a salary pool) amongst the agents based on the results of the analysis. Additionally or alternatively, the system may display a graphical user interface that includes the results of the analysis. The results of the analysis may include one or more graphs, tables, and / or written narratives associated with existing resource allocation disparities and / or recommended adjustments to address the resource allocation disparities, as will be discussed in greater detail below. Additionally or alternatively, the system may generate a report that summarizes any existing resource allocation disparities, proposed adjustments for remedying the disparities, justifications for the proposed adjustments, and / or any other information about the analysis. The report may be generated in various formats, including as a PDF document, a text document (e g., a Word or. txt file) a spreadsheet file (e.g., Excel), or a presentation file. The report may be generated in accordance with user specifications regarding information to include and a target audience for the report, such that a maximally useful version of the report can be shared with relevant stakeholders.
[0108] As noted above, the system may display a graphical user interface that includes the results of the resource allocation analysis. FIGS. 11-22 illustrate exemplary screens 27MF-368938933Attorney Docket No. 398612000640of a graphical user interface that can be displayed to a user to communicate the results of the analysis. FIGS. 11-22 are discussed with respect to an example in which the resource allocation analysis is used to analyze compensation disparities amongst employees, but it should be understood that this example is merely illustrative, and similar graphical user interface screens can be used to communicate the results of an analysis in which other types of resources (e.g., memory, battery, etc.) are distributed amongst non-human agents (e.g., robots, electronic devices, software, vehicles, etc.).
[0109] FIG. 11 illustrates a first overview screen 1100 that provides an overview of gender pay disparities within an organization. First overview screen 1100 may share one or more similarities with graphical user interface 200. For example, first overview screen 1100 may provide a high-level summary of pay disparities. In the exampl e of FIG. 11, the pay disparities are gender-based. The first overview screen 1100 may include a headcount distribution showing the total number of employees and the breakdown by gender as well as unadjusted and adjusted pay gaps between male, female, and non-binary employees. The first overview screen 1100 may also include written insights into gender pay disparities. For example, in FIG. 11, the written insights explain that the data reveals that female employees earn about 13% less than male employees on average, and that even after accounting for legitimate pay influencing factors, female employees earn $0.91 for every dollar earned by male employees. The written insights may be generated by one or more large language models trained to interpret the results of the resource allocation analysis.
[0110] In some examples, the results of the resource allocation analysis may include disparities other than gender disparities. For example, FIG. 12 illustrates an exemplary second overview screen 1200 displaying race-based pay disparities. Second overview screen 1200 may be similar to first overview screen 1100 but may display race-based pay disparities rather than gender-based pay disparities. For example, second overview screen 1200 may include a headcount distribution showing the total number of employees and the breakdown by race. Second overview screen 1200 may also include various visualizations illustrating adjusted and unadjusted pay disparities between racial groups as well as written insights explaining key race-based pay gap insights.
[0111] In some examples, the graphical user interface may be configured to display a comprehensive view of all pay disparities that exist within an organization. For example, FIG. 13 illustrates a comprehensive pay disparity screen 1300. Comprehensive pay disparity screen 1300 may include an indication of pay disparities across all demographic 28MF-368938933Attorney Docket No. 398612000640groups, including both gender and race. Comprehensive pay disparity screen 1300 may include one or more charts and / or tables illustrating the pay disparities. In the example of FIG. 13, comprehensive pay disparity screen 1300 includes a first chart illustrating adjusted pay disparities between all demographic groups and a second chart illustrating average pay by demographic group. Comprehensive pay disparity screen 1300 also includes a table with detailed pay information about each group, including an identifier for each group, a total headcount for each group, an unadjusted pay disparity percentage for each group, an adjusted pay disparity percentage for each group, and an average pay of each group. Comprehensive pay disparity screen 1300 may enable a user to view all pay disparities side-by-side and identify which demographic groups are most significantly affected.
[0112] Optionally, the system may be configured to determine pay disparities within each department in the organization, and the graphical user interface may be configured to display department-specific pay disparities. For example, FIG. 14 illustrates a department-specific gender pay disparity screen 1400. The department-specific gender pay disparity screen 1400 may allow a user to drill down into gender-based pay disparities within different departments in the organization (e.g., legal, marketing, sales, technology, engineering, etc.). In the example of FIG. 14, department-specific gender pay disparity screen 1400 includes a chart illustrating the distribution of male, female, and nonbinary employees by department; a chart illustrating average pay by department for male, female, and nonbinary employees; and table including detailed information about gender-based pay disparities across departments. The table includes, for each department: the headcount, the number of employees by gender, the average pay for each gender, the number of employees in the department affected by a pay disparity, and an unadjusted pay disparity. Department-specific gender pay disparity screen 1400 may enable a user to identify which departments within the organization have the largest pay disparities and may require targeted remediation efforts.
[0113] Similarly, the graphical user interface may be configured to display a screen 1500 including department-specific race-based pay disparities, as shown in FIG. 15.Department-specific race pay disparity screen 1500 may allow a user to drill down into race-based disparities within the various departments. Department-specific race pay disparity screen 1500 may include a chart indicating race distribution by department; a chart illustrating average pay by department for each racial group; and a table including detailed information about race-based pay disparities across departments.29MF-368938933Attorney Docket No. 398612000640
[0114] In some examples, the graphical user interface may enable a user to interact with the results of the resource allocation analysis, for example to develop a remediation plan for the organization. The remediation plan may be based on the salary adjustments calculated using method 400. FIG. 16 illustrates an exemplary remediation planning screen 1600. Remediation planning screen 1600 may enable a user to select which pay disparity or disparities they want to address through remediation. For example, remediation planning screen 1600 may display a table showing various identified pay disparities within the organization and the corresponding unadjusted and adjusted pay disparities. Optionally, statistically significant pay disparities may be indicated using a marker (e.g., an asterisk) or different formatting (e.g., bolded text). A user may select one or more rows corresponding to one or more of the pay disparities to generate a remediation plan for that group (e.g., female vs. non-female).
[0115] Once the user has selected a pay disparity or pay disparities to remediate, the graphical user interface may display a first remediation screen 1700, as shown in FIG. 17. First remediation screen 1700 may provide a cost planning interface for addressing the selected pay disparity. First remediation screen 1700 may display summary information about the selected pay disparity, such as an unadjusted pay disparity, an adjusted pay disparity, the number of affected employees, and a cost of adjustment (which may initially be “pending” until a remediation option is selected).
[0116] First remediation screen 1700 may include one or more suggested remediation options. For example, the remediation options may include removing all statistical significance, which may provide a remediation plan in which salaries are adjusted until the gender pay disparity is no longer statistically significant. The remediation options may also include eliminating the entire pay gap, which may provide a remediation plan in which salaries are adjusted until the gender pay disparity is zero. The remediation options may also include making custom adjustments, which may allow a user to specify their own target gender pay disparity level. This option can be advantageous in certain jurisdictions in which organizations may have a regulatory threshold that must be met (such as reducing any gender or race-based pay disparities below 5%). Allowing users to configure their own target pay disparity level thus provides flexibility to meet different regulatory and organizational requirements while minimizing the cost of remediation.
[0117] First remediation screen 1700 may also include a table showing detailed individual employee pay information. For example, for each employee, the table may show an employee ID, name, job title, gender, race, job level, current pay, predicted pay,30MF-368938933Attorney Docket No. 398612000640adjusted pay gap, standard deviation, proposed pay adjustment (which may be blank until a remediation option is selected), and a new pay (which may also be blank until a remediation option is selected).
[0118] FIG, 18 illustrates an exemplary second remediation screen 1800 in which the user has selected the remediation option of removing all statistical significance. Second remediation screen 1800 may display the results of applying the selected remediation option. For example, the second remediation screen 1800 may include the current (original) unadjusted and adjusted pay disparities alongside the new (post-remediation) unadjusted and adjusted pay disparities, enabling a user to see the impact of the proposed adjustments. The second remediation screen 1800 may also display the number of affected employees, the total adjustment cost to the organization, and the total adjustment cost as a percentage of the total payroll. The second remediation screen 1800 may further include a table showing the proposed pay adjustment and new pay for each individual employee. In some examples, the graphical user interface may allow a user to modify the proposed pay adjustment percentages or amounts for individual employees in order to customize the remediation plan.
[0119] In some examples, the graphical user interface may provide a user with the ability to customize salary adjustments. For example, the graphical user interface may enable the user to specify minimum and maximum adjustment parameters. FIG. 19 illustrates an exemplary third remediation screen 1900 in which a user can set minimum and maximum adjustment parameters for different employee demographic groups. For example, a user may specify that female employees with a pay disparity of -10% to 0% should receive a 5% raise, while female employees with a pay disparity of -20% to -10% should receive a 15% raise. The third remediation screen 1900 may also enable a user to select a custom timeframe for implementing the salary adjustments (e.g., one year). This allows organizations to phase in remediation adjustments over time rather than implementing them immediately, which may be more practical from a budgetary perspective.
[0120] FIG. 20 illustrates an exemplary fourth remediation screen 2000 that displays the results of applying customized adjustment rules. The fourth remediation screen 2000 may display summary information including the selected pay disparity, the current (original) unadjusted and adjusted pay disparities, the new (post-remediation) unadjusted and adjusted pay disparities, the number of affected employees, the total adjustment cost to the organization, and the total adjustment cost as a percentage of the total payroll. The fourth remediation screen 2000 may also include a table showing the proposed pay 31MF-368938933Attorney Docket No. 398612000640adjustment and new pay for each individual employee in accordance with the customized adjustment rules.
[0121] As discussed above, the system may be configured to generate a report summarizing the results of a resource allocation analysis instead of or in addition to displaying the results to a user via the graphical user interface described above. In some examples, the graphical user interface may provide the user with an option to generate a report. FIG. 21 illustrates an exemplary report generation screen 2100. The report generation screen 2100 may allow the user to customize aspects of the report, such as the file format (e.g., PowerPoint, PDF, or CSV), select which sections of the results to include in the report, select saved cost planning proposals to include in the report, and select employee groups to include in the report. This customization capability enables users to generate reports that are tailored to specific audiences or purposes, such as reports for senior leadership, reports for human resources professionals, reports for regulatory submission, reports for specific departments, or reports for individual employees.
[0122] In some embodiments, the system may be configured for generating employee transparency reports. Employee transparency reports are documents that can be shared with individual employees to provide them with information about their resource allocation relative to others in similar positions. These reports may be particularly important in jurisdictions with right-to-information requirements that enable employees to request information about how their compensation compares to others. In some examples, employee transparency reports may be configurable by an organization. For example, an organization may be able to determine which data points appear in the report, aspects of the calculation methodology used to generate the report, and how employees are grouped for comparison purposes. Organizations may also be able to add custom text to each report to provide context or explanations. Optionally, the system may be integrated with one or more human capital management (HCM) systems in order to allow employees to request employee transparency reports directly through an HCM system.
[0123] In some embodiments, the system may be configured for generating regulatory compliance reports. Different jurisdictions may have different requirements for reporting salary disparities based on protected classes (e.g., gender or race). The system may maintain information about the specific metrics required by each jurisdiction and enable users to generate reports that include only the metrics required for that jurisdiction. This32MF-368938933Attorney Docket No. 398612000640can simplify the process of preparing regulatory submissions and ensure that organizations meet their compliance obligations.
[0124] As discussed above with respect to method 100, one or more language models may be used to generate a natural language explanation associated with the resource allocation analysis. The natural language explanation may be provided to the user via a graphical user interface and / or may be included in a report. To generate the natural language explanation, the one or more machine learning models may receive a log of the analysis (which may include the initial resource allocation, the updated resource allocation, and any other information generated during the resource allocation analysis) and one or more prompt templates containing specific instructions for generating a natural language explanation. The one or more prompt templates may indicate the content to be included in the natural language explanation and / or a format that the natural language explanation should take. In some examples, the one or more prompt templates may indicate an expertise level of the intended audience and a target tone for the narrative.
[0125] FIG. 22 illustrates an exemplary prompt template 2200 that can be provided to the language model (s) to generate a natural language explanation associated with a resource allocation analysis. Prompt template 2200 may include parameters for generating a natural language explanation and may be populated by a user. In the example of FIG. 22, prompt template 2200 includes various parameterized input fields, such as an audience field, a format field, a data field, a narrative field, and an exclusionary field. The audience field may allow a user to specify the intended audience of the natural language explanation (e.g., a decisionmaker, an individual agent, etc ). The intended audience may influence the tone and the amount of technical jargon used in the natural language explanation. The format field may allow the user to specify the general format of the natural language explanation. For instance, in the example of FIG. 22, prompt template 2200 constrains the output to a single paragraph of a predetermined length (e.g., three to five sentences). The data field may allow a user to specify required informational elements to be incorporated into the generated narrative, including an adjusted resource allocation disparity, a confidence level, respective sizes of the targeted and reference groups, and any associated risk warnings. The narrative field may allow the user to specify narrative rules that govern content and phrasing. For example, the user may specify that the natural language explanation must include an explicit statement as to whether a targeted agent group is over-resourced or under-resourced relative to the reference group, express certainty in qualitative terms based on the confidence level,33MF-368938933Attorney Docket No. 398612000640describe group sizes in plain language, clarify that identified disparities reflect observed patterns, and explain the practical meaning of any risk warnings. The exclusionary field may allow the user to specify information or terms that should be excluded from the natural language explanation (e.g., technical statistical terminology), which may improve accessibility of the generated natural language explanation.
[0126] In some examples, the natural language explanation may include a description of model performance. For example, the natural language explanation may describe how well the data model(s) used in method 400 fit the organization’s data. The natural language explanation may also provide one or more warnings about interpreting the results of the analysis due to imperfect model fitting. In some examples, the natural language explanation may include a description of factors contributing to discrepancies in compensation and their relative importance. This may indicate which employee attributes are the biggest drivers of compensation disparities. In some examples, the natural language explanation may include group disparity evidence that describes the statistical evidence of disparities between groups. In some examples, the natural language explanation may include a remediation plan and an explanation of why certain salary adjustments are recommended for certain employees.
[0127] FIG. 23 illustrates an exemplary data insights screen 2300 that can be displayed via a graphical user interface. Data insights screen 2300 may include content generated by one or more large language models. Data insights screen 2300 includes a written summary of key data insights generated by the one or more large language learning models. In the example of FIG. 23, the written summary indicates that explanatory factors explain 88% of pay differences, but 12% of differences in pay cannot be explained by the model. The written summary also indicates that an employee’s job level / grade is the biggest driver of pay (78%), while the employee’s gender is the second biggest driver of pay (6%).
[0128] In one or more examples, the disclosed systems and methods utilize or may include a computing system. For example, method 100 and / or method 400 may be performed by a computing system. FIG. 24 illustrates an exemplary computing system according to one or more examples of the disclosure. Computing system 2400 can be a host computer connected to a network. Computing system 2400 can be a client computer or a server. As shown in FIG. 24, computing system 2400 can be any suitable type of microprocessor-based device, such as a personal computer, workstation, server, or handheld computing device, such as a phone or tablet. The computing system can 34MF-368938933Attorney Docket No. 398612000640include, for example, one or more of processor 2410, input device 2420, output device 2430, storage 2440, and communication device 2460. Input device 2420 and output device 2430 can be connectable to or integrated with the computing system.
[0129] Processor(s) 2410 can be any suitable processor or combination of processors, including any of, or any combination of, a central processing unit (CPU), field programmable gate array (FPGA), and application-specific integrated circuit (ASIC). Input device 2420 can be any suitable device that provides input, such as a touch screen or monitor, keyboard, mouse, or voice-recognition device. Output device 2430 can be any suitable device that provides an output, such as a touch screen, monitor, printer, disk drive, or speaker.
[0130] Storage 2440 can be any suitable device that provides storage, such as an electrical, magnetic, or optical memory, including a random-access memory (RAM), cache, hard drive, CD-ROM drive, tape drive, or removable storage disk. Communication device 2460 can include any suitable device capable of transmitting and receiving signals over a network, such as a network interface chip or card. The components of the computer can be connected in any suitable manner, such as via a physical bus or wirelessly. Storage 2440 can be a non-transitory computer-readable storage medium comprising one or more programs, which, when executed by one or more processors, such as processor(s) 2410, cause the one or more processors to execute methods described herein,
[0131] Software 2450, which can be stored in storage 2440 and executed by processor(s) 2410, can include, for example, the programming that embodies the functionality of the present disclosure (e.g., as embodied in the systems, computers, servers, and / or devices as described above). For instance, software 2450 can include instructions for controlling rotation of a carousel of active ingredient formulationcontaining cartridges. In one or more examples, software 2450 can include a combination of servers such as application servers and database servers.
[0132] Software 2450 can also be stored and / or transported within any computer-readable storage medium for use by or in connection with an instruction execution system, apparatus, or device, such as those detailed above, that can fetch and execute instructions associated with the software from the instruction execution system, apparatus, or device. In the context of this disclosure, a computer-readable storage medium can be any medium, such as storage 2440, that can contain or store programming for use by or in connection with an instruction execution system, apparatus, or device.35MF-368938933Attorney Docket No. 398612000640
[0133] Software 2450 can also be propagated within any transport medium for use by or in connection with an instruction execution system, apparatus, or device, such as those described above, that can fetch and execute instructions associated with the software from the instruction execution system, apparatus, or device. In the context of this disclosure, a transport medium can be any medium that can communicate, propagate, or transport programming for use by or in connection with an instruction execution system, apparatus, or device. The transport-readable medium can include but is not limited to, an electronic, magnetic, optical, electromagnetic, or infrared wired or wireless propagation medium.
[0134] Computing system 2400 may be connected to a network, which can be any suitable type of interconnected communication system. The network can implement any suitable communications protocol and can be secured by any suitable security protocol. The network can comprise network links of any suitable arrangement that can implement the transmission and reception of network signals, such as wireless network connections, T1 or T3 lines, cable networks, DSL, or telephone lines.
[0135] Computing system 2400 can implement any operating system suitable for operating on the network. Software 2450 can be written in any suitable programming language, such as C, C++, Java, or Python. In various embodiments, application software embodying the functionality of the present disclosure can be deployed in different configurations, such as in a client / server arrangement or through a Web browser as a Web-based application or Web service, for example.36MF-368938933
Claims
Attorney Docket No. 398612000640CLAIMS1. A system for load balancing among a plurality of agents, the system comprising one or more processors and memory storing one or more programs for execution by the one or more processors, the one or more programs including instructions that, when executed by the one or more processors, cause the system to:receive data comprising an initial allocation of a resource load among the plurality of agents;generate a first data model that represents the initial allocation of the resource load based on the received data, wherein the first data model comprises a variable representing an attribute of an agent of the plurality of agents and a weight corresponding to the attribute; and if the weight exceeds a load balancing threshold,determine a reallocation of the resource load among the plurality of agents; based on the determined reallocation of the resource load among the plurality of agents, generate a second data model, wherein the second data model comprises the variable representing the attribute and an adjusted weight corresponding to the attribute; and reallocate the resource load among the plurality of agents based on the adjusted weight.
2. The system of claim 1, wherein the load balancing threshold is a value at which the weight is statistically significant.
3. The system of claim 2, wherein the load balancing threshold is 0.05.
4. The system of any one of claims 1-3, wherein determining a reallocation of the resource load among the plurality of agents comprises providing at least a portion of the received data to a machine learning model trained to determine the reallocation of the resource load among the plurality of agents.
5. The system of any one of claims 1-4, wherein the one or more programs include instructions that, when executed by the one or more processors, cause the system to:if the weight does not exceed the load balancing threshold, maintain the initial allocation of the resource load among the plurality of agents.37MF-368938933Attorney Docket No. 3986120006406. The system of any one of claims 1-5, wherein a magnitude of the adjusted weight is less than a magnitude of the weight.
7. The system of any one of claims 1-6, wherein the adjusted weight is zero.
8. The system of any one of claims 1-7, wherein the one or more programs include instructions that, when executed by the one or more processors, cause the system to:prior to reallocating the resource load among the plurality of agents, determine if the adjusted weight exceeds the load balancing threshold.
9. The system of claim 8, wherein the one or more programs include instructions that, when executed by the one or more processors, cause the system to:based on a determination that the adjusted weight does not exceed the load balancing threshold, reallocate the resource load among the plurality of agents; andbased on a determination that the adjusted weight exceeds the load balancing threshold, determine an updated reallocation of the resource load among the plurality of agents.
10. The system of any one of claims 1-9, wherein the one or more programs include instructions that, when executed by the one or more processors, cause the system to:generate, using a machine learning model, a plan for future allocation of the resource load among the plurality of agents.
11. The system of claim 10, wherein the plan for future allocation of the resource load among the plurality of agents is generated based on the second data model.
12. The system of claim 10 or 11, wherein the plan for future allocation of the resource load among the plurality of agents is generated based on a performance of the plurality of agents.
13. The system of any one of claims 10-12, wherein the plan for future allocation of the resource load among the plurality of agents is generated based on demand from the plurality of agents.38MF-368938933Attorney Docket No. 39861200064014. The system of any one of claims 1-13, wherein the variable is a binary variable.
15. The system of any one of claims 1-14, wherein the first data model and the second data model are regression models.
16. The system of claim 15, wherein the regression models are multiple regression models.
17. The system of any one of claims 1-16, wherein the resource load comprises a financial resource.
18. The system of any one of claims 1-17, wherein the plurality of agents comprises a plurality of human agents.
19. The system of any one of claims 1-18, wherein the one or more programs include instructions that, when executed by the one or more processors, cause the system to:generate a report based on at least one of the first data model and the second data model.
20. The system of claim 19, wherein the report is generated based on one or more user preferences.
21. The system of claim 20, wherein the one or more user preferences comprise an intended audience for the report.
22. The system of any one of claims 1-21, wherein the one or more programs include instructions that, when executed by the one or more processors, cause the system to:generate, using a language model, a natural language narrative based on at least one of the first data model and the second data model.
23. The system of any one of claims 1-22, wherein the one or more programs include instructions that, when executed by the one or more processors, cause the system to:39MF-368938933Attorney Docket No. 398612000640display a graphical user interface comprising an indication of at least one resource allocation disparity.
24. The system of claim 23, wherein the graphical user interface comprises an indication of one or more adjustments to reduce the resource allocation disparity.
25. A method for load balancing among a plurality of agents, the method comprising:receiving data comprising an initial allocation of a resource load among the plurality of agents;generating a first data model that represents the initial allocation of the resource load based on the received data, wherein the first data model comprises a variable representing an attribute of an agent of the plurality of agents and a weight corresponding to the attribute; and if the weight exceeds a load balancing threshold,determining a reallocation of the resource load among the plurality of agents; based on the determined reallocation of the resource load among the plurality of agents, generating a second data model, wherein the second data model comprises the variable representing the attribute and an adjusted weight corresponding to the attribute; and reallocating the resource load among the plurality of agents based on the adjusted weight.
26. A non-transitory computer-readable storage medium comprising one or more program s for load balancing among a plurality of agents, wherein the one or more programs, when executed by one or more processors, cause the one or more processors to perform a method comprising:receiving data comprising an initial allocation of a resource load among the plurality of agents;generating a first data model that represents the initial allocation of the resource load based on the received data, wherein the first data model comprises a variable representing an attribute of an agent of the plurality of agents and a weight corresponding to the attribute; and if the weight exceeds a load balancing threshold,determining a reallocation of the resource load am ong the plurality of agents;40MF-368938933Attorney Docket No. 398612000640based on the determined reallocation of the resource load among the plurality of agents, generating a second data model, wherein the second data model comprises the variable representing the attribute and an adjusted weight corresponding to the attribute; and reallocating the resource load among the plurality of agents based on the adjusted weight.41MF-368938933