PayAnalytics February 2026 - Detailed release notes
Release v2026-02-26_01
| Type | Jira | Description |
|---|---|---|
| PA-7650 | Reference group eligibility thresholds (the minimum population sizes and percentages used to determine whether a group qualifies as a valid reference group in pay gap calculations) are now configurable via CLI parameters passed from the API layer to the analysis engine. Three new parameters were added: threshold as a percentage of total population, threshold as a percentage of the largest group, and minimum eligible group size. These settings are persisted to the analysis result record for audit and reproducibility purposes. | |
| PA-7767 | An issue was corrected where subgroup parent analyses crashed when the minimum demographic group size for raise suggestions was set to 0. The bug caused null reference errors in the pay gaps calculation, resulting in blank screens or TypeErrors when viewing analyses with subgroup splits. The guard condition now correctly distinguishes between 0 (a valid configuration value) and undefined, preventing crashes in the adjusted and unadjusted pay gap calculations, raise suggestions, and subgroup breakdowns. |
Release v2026-02-25_01
| Type | Jira | Description |
|---|---|---|
| PA-7727 | An issue was corrected where the task runner component computing the Estimated Adjusted Pay Gap did not respect the residual method feature flag configured for the instance. This caused the task runner to use a different calculation method than other components when the log_residual approach was enabled. The task runner now uses the method configured for the instance, ensuring consistency across all components that compute estimated adjusted pay gaps. | |
| PA-7764 | An issue was corrected where the header and side navigation disappeared on the dataset configuration page when the dataset table was wider than the viewport. This occurred because sticky positioning did not apply horizontally after a recent layout change. The main content area now correctly constrains its width, ensuring navigation elements remain visible regardless of table width. |
Release v2026-02-24_01
| Type | Jira | Description |
|---|---|---|
| PA-5574 | An issue was corrected in which the Analysis configuration wizard displayed the same generic warning message for all cases where a categorical variable contained too many distinct values, making it unclear to users what action to take. The warning messages were made context-specific: when a numerical column has more than 50 distinct values, the message now explains that it would be better suited as a numerical variable; when a column contains more than 10% of distinct values relative to the dataset size, the message now specifies the threshold breach and advises combining categories. The hard threshold of 100 values for non-numerical columns was removed as it was redundant with the 10% rule. | |
| PA-6564 | Support for specifying a significance-based pay equity target was added to the run-analysis-form POST endpoint (the API endpoint used to submit analysis configurations). Users can now set a desired significance threshold value between 0.01 and 0.1, allowing statistical pay equity targets to be configured based on custom significance levels. Values outside the permitted range return a validation error. | |
| PA-7551 | The EUPTD Report generator now produces breakdowns across three compensation components — Total compensation, Basic wage, and Variable compensation — each available at gross annual and gross hourly levels. When configuring a report, users can select the relevant dataset columns for each component and pay level, and the generated report displays gender pay gap figures, quartile pay bands, and compensation-by-category sections for each selected component. Sections based on hourly values are displayed only when the corresponding hourly column is selected during configuration. | |
| PA-7648 | Reference group eligibility thresholds (the minimum population sizes used to determine whether a group qualifies as a valid reference group in pay gap calculations) are now configurable via CLI parameters instead of hardcoded values, allowing environment-specific tuning without code changes. Default behaviour is unchanged. | |
| PA-7660 | An issue was corrected where the Analysis Overview page layout would break after interacting with the employee list headers. When users sorted columns, applied filters, or opened comment fields in the employee list, the page would appear cut in half and the vertical scrollbar would disappear, preventing navigation to the top of the page. The layout now remains stable during all employee list interactions. | |
| PA-7705 | An issue was corrected where the Results section did not appear in the Analysis Overview tab when running a subgroup analysis with a non-gender demographic (such as Race, Age, or Location) configured as the first demographic. The Results section now displays correctly with pay gap metrics for all demographic configurations in subgroup analyses. | |
| PA-7727 | An issue was corrected where the task runner that computes estimated adjusted pay gaps did not respect the configured residual method feature flag, causing it to use a different calculation approach than other components in the platform. The task runner now uses the method configured for the instance, ensuring consistent results across all components that compute estimated adjusted pay gaps. | |
| PA-7762 | An issue was corrected where the analysis configuration form allowed a budget value of 0 to be submitted. The form now requires a valid budget amount greater than zero. |
Release v2026-02-17_01
| Type | Jira | Description |
|---|---|---|
| PA-6590 | A new significance parameter was added to the pay gap analysis engine input parameters. This parameter accepts a target p-value for demographic variables (the statistical threshold used to determine whether pay differences associated with protected characteristics are statistically significant). The parameter is parsed and validated during analysis configuration, enabling environment-specific statistical rigor settings. | |
| PA-7410 | An issue was corrected where reference group members were incorrectly assigned raises when using 100% cost effectiveness in the raise suggestion computation. The underlying cause was that employees whose impact lowered the pay gap were being included in the cost effectiveness raise allocation. These employees are now treated as having no impact for the purposes of cost-effectiveness raises, ensuring that reference group members are not assigned raises. | |
| PA-7614 | The development flag that previously restricted access to new report sections was removed. All users can now view and interact with the updated report sections without requiring special configuration parameters. | |
| PA-7649 | Database fields for reference group eligibility thresholds were added to support tenant-level configuration and analysis-level snapshots. Three configurable parameters were introduced: minimum percentage of total population (default 10%), minimum percentage of largest group (default 25%), and minimum eligible group size (default 7 employees). These thresholds determine whether a group qualifies as a valid reference group in pay gap calculations and can now be configured per tenant and preserved with each analysis run. | |
| PA-7654 | An issue was corrected in the Value-based Comparison view where comments and predominant demographic values from one dataset incorrectly appeared when navigating to a different dataset, and where copied predominant demographic values required a page refresh to become visible. The component now correctly clears previous dataset information when switching between datasets and immediately displays copied values without requiring a refresh. | |
| PA-7676 | The pay gaps report section was improved with enhanced clarity and additional information. An introductory explanation was added at the top of the section, and demographic headings now clearly indicate the comparison being made (e.g. "Female compared to Male" instead of just "Female"). The section now displays the number of employees and average compensation for both the target demographic and the reference demographic, as well as before and after average compensation values and the total cost of raises for each group. All supplemental information, including headcount, average compensation (before and after), and cost of raises, is now included in the Excel export. | |
| PA-7697 | Excel file upload processing was optimized to significantly reduce ingestion time for large datasets. The optimization eliminated redundant data validation passes and adopted a more efficient parsing library (python-calamine, a Python wrapper for the Rust calamine project), resulting in approximately 6x faster upload times. For example, a dataset with 100,000 rows and 100 columns that previously took 180 seconds to process now completes in approximately 30 seconds. All existing validation rules, including the 512-character limit for cell values, continue to function as before. | |
| PA-7698 | Two columns were removed from the categorical variables table in the Pay Gaps tab: Estimated impact on compensation and Significance. These columns, which are already available in the Compensation Model tab, were removed to streamline the Pay Gaps view and make it easier to interpret at a glance. The Excel export from this tab also no longer includes these columns. | |
| PA-7715 | The Pay Equity Overview report template was updated to conditionally display raise-related sections based on whether raise suggestions have been computed. When an analysis does not include raises, the following sections are now omitted: Progress Toward Pay Equity, Pay gaps after raises, Unadjusted pay gap by group after raises, and Estimated adjusted pay gap after raises. These sections continue to appear when at least one raise is present in the analysis. | |
| PA-7720 | PowerPoint export functionality was extended to include five additional report sections: Pay Gap, Unadjusted Pay Gap, Estimated Adjusted Pay Gap, Cost of Raises, and Compensation Drivers. These sections are now included when the PPT export button is clicked, ensuring the exported presentation reflects the complete set of available report components. | |
| PA-7721 | Tooltips in the Unadjusted Pay Gap and Estimated Adjusted Pay Gap report sections were enhanced to display both the target group and reference group being compared. When hovering over a data column, the tooltip now shows the format '{Group} - {target group} compared to {reference group}' instead of displaying only the target group, providing clearer context for the comparison being presented. |
Release v2026-02-10_01
| Type | Jira | Description |
|---|---|---|
| PA-6590 | A significance parameter was added to the pa-analysis input parameters. This parameter accepts a target p-value for demographic variables (the threshold used in statistical testing to determine whether pay differences by demographic group are statistically significant). The parameter is now parsed and validated during analysis configuration, with no change to default analysis behavior. | |
| PA-6629 | An issue was corrected where users were unable to create new datasets from filtered records in the Pay Adjustments section when numerical field filters were applied (e.g., "Time in Role > 40"). The system displayed an error message and disabled the "Create Dataset from Filtered Records" button when numerical filters were active. Users can now create datasets from filtered views regardless of whether numerical, categorical, or mixed filter types are applied. | |
| PA-7649 | Database fields were added to store configurable reference group eligibility thresholds (the minimum population sizes and proportions used to determine whether a group qualifies as a valid reference group in pay gap calculations) at the tenant level and snapshot them with each analysis. Three new threshold parameters were introduced: percentage of total population (default 10%), percentage of largest group (default 25%), and minimum eligible group size (default 7 employees). This change enables future tenant-specific configuration of reference group eligibility rules. | |
| PA-7681 | The Settings: Users page now displays the number of active users alongside the existing count of inactive users. Previously, only the inactive user count was shown, requiring manual counting of active users. | |
| PA-7682 | Additional visibility controls were added to the Cost of Compensation report section. Users can now toggle on or off a dedicated graph showing only the cost of raises, a combined graph showing current cost plus raises, and the summary boxes. This change addresses scenarios where raise costs represent such a small percentage that they are difficult to see when absorbed into the total cost graph. | |
| PA-7686 | The AnalysisConfiguration dialog now displays whether the "Suggest raises that guarantee all employees receive at least the minimum compensation of their defined pay band" option was enabled when the analysis was run. This setting is also now surfaced in serializers and AdminWeb, improving visibility into analysis configuration for troubleshooting and auditing purposes. | |
| PA-7688 | An issue was corrected where employee dataset columns containing blank values could not be selected as the grouping for pay bands when editing PayBands. When users attempted to use such columns, the system would not save the changes and provided no feedback explaining why. PayBands now accepts columns with blank values as valid grouping fields, treating all empty values as a single group displayed with an "(empty)" placeholder. | |
| PA-7697 | Excel file upload processing was optimized to reduce file ingestion time by approximately 6x for large datasets. The optimization eliminated redundant file parsing passes by consolidating validation checks, introduced an intermediate storage format (msgpack) for faster repeated reads, and integrated a high-performance Excel parsing library (python-calamine, a Python wrapper for the Rust calamine project). Users uploading large Excel files through the data import feature will experience significantly faster upload times, with a 100,000 row × 100 column dataset now processing in approximately 30 seconds compared to 180 seconds previously. |
Release v2026-02-03_01
| Type | Jira | Description |
|---|---|---|
| PA-6590 | A significance parameter was added to the pa-analysis input parameters. This parameter accepts a target p-value for demographic variables (the statistical threshold used to determine whether pay differences associated with demographic factors are statistically significant). The parameter is parsed and validated during analysis configuration, enabling future support for configurable significance testing. | |
| PA-7586 | A new Managerial Report template was added to the report creation workflow. The template includes pre-built sections focused on managers, allowing organisations to generate manager-specific reports with standardised content. | |
| PA-7623 | A bulk endpoint was added to the Pay Transparency Reports API to retrieve transparency reports for all employees in a given dataset and analysis result combination. The endpoint returns paginated results using the same data model as the individual employee report endpoint, enabling efficient retrieval of large report sets. | |
| PA-7645 | An issue was corrected where the Excel export failed when a Cost of Compensation report section was included in a subgroup analysis. The export file was not downloaded when the export button was clicked. The Excel export now correctly generates and downloads the file for Cost of Compensation sections in subgroup analyses. | |
| PA-7646 | Several issues in the Cost of Compensation report section were corrected. The summary statistics now display cost of raises columns (previously only visible in Excel exports). The column ordering in the graph was reversed to match the ordering used in other report sections such as the Unadjusted and Estimated Adjusted Pay Gap components. Missing (+) indicators were added to the first and last column pills. Additionally, a dedicated raises graph was added to make raise costs more visible, as they were previously difficult to see due to typically representing a small percentage of total compensation. Users can now control the visibility of summary tiles, the raises graph, and the total cost graph through new display settings, with the system ensuring at least one element remains visible. | |
| PA-7665 | The legacy PaActionKebab component was replaced with the new PaActionMenu component across the application. This migration standardizes action menu functionality throughout the platform while preserving all existing behavior. | |
| PA-7668 | A performance optimization was applied to the Pay gap analysis and Employee Overview sections. When a dataset contains more than 50,000 employee records, the employee table is no longer rendered automatically on page load. Instead, a button is displayed that users can click to load the table on demand. This change significantly improves initial page load times for large datasets, while impact on smaller datasets remains minimal. | |
| PA-7677 | The "Pay equity overview" report template is now disabled when no analysis is selected. This prevents users from attempting to create this report type without the required analysis configuration. The template will remain unavailable until full support for this use case is implemented. |