US EEO Pay Category Analysis

Ad Hoc Reporting Guide

Version
R2025.2.1
ft:lastEdition
2025-12-01
US EEO Pay Category Analysis

The US EEO Pay Category Analysis report uses the HR Compliance topic to show employee data such as age, gender, job, and earnings information. You can use this report to identify and analyze the causes of any pay disparities in the workplace for employees in the United States.

Fields

Fields included in the report template
Field Name Group by Sort Order Totals
Employee   A to Z  
Location   Ascending  
Hire Date      
Length of Service      
Gender      
Age      
Ethnicity      
State      
Job Assignment      
Pay Grade      
EEO Job Title      
Manager      
Status      
Pay Class      
Pay Type      
Pay Policy      
Base Salary      
Earning Type      
Amount      

Custom Fields

Age

The Age field shows the employee’s age. It uses the following expression:

DATEDIFF(year, PRPayRunRegister.EmployeeBirthDate, GETDATE())

Amount

The Amount field shows the amount for that employee. It uses the following expression:

SUM(CASE
        WHEN PRPayRunRegister.RecordType = 'EarningGrouping'
             AND PRPayRunRegister.IsLastCheck = 'True' THEN PRPayRunRegister.Amount
        ELSE 0.00
    END)

Ethnicity

The Ethnicity field shows the employee’s ethnicity. It uses the following expression:

ISNULL(EnteredEthnicityCustom.EmployeeEnteredEthnicity, EnteredEthnicityCustom.ManagerEnteredEthnicity) 

Gender

The Gender field shows the employee’s gender. It uses the following expression:

CASE                  WHEN EmployeeGenderIdentity.ReferenceCode LIKE '%(___: __)%' THEN                   CASE                    WHEN EmployeeGenderIdentity.ReferenceCode IS NULL THEN 'Gender Unassigned'                    WHEN EmployeeGenderIdentity.ReferenceCode LIKE '%FEMALE (___: __)%' THEN 'Female'                    WHEN EmployeeGenderIdentity.ReferenceCode LIKE '%MALE (___: __)%' THEN 'Male'                    ELSE 'Non-Binary'                   END                  WHEN EmployeeAssignedSex.ReferenceCode LIKE '%(___: __)%' THEN                   CASE                    WHEN EmployeeAssignedSex.ReferenceCode IS NULL THEN 'Gender Unassigned'                    WHEN EmployeeAssignedSex.ReferenceCode LIKE '%F (___: __)%' THEN 'Female'                    WHEN EmployeeAssignedSex.ReferenceCode LIKE '%M (___: __)%' THEN 'Male'                    ELSE 'Non-Binary'                   END                  ELSE                   CASE                    WHEN EmployeeAssignedSex.ReferenceCode IS NULL THEN 'Gender Unassigned'                    WHEN EmployeeAssignedSex.ReferenceCode LIKE '%F (%' THEN 'Female'                    WHEN EmployeeAssignedSex.ReferenceCode LIKE '%M (%' THEN 'Male'                    ELSE 'Non-Binary'                   END                 END

Length of Service

The Length of Service field shows the employee’s length of service. It uses the following expression:

CASE WHEN PRPayRunRegister.EmployeeHireDate < GETDATE() THEN CASE WHEN PRPayRunRegister.EmployeeHireDate < PRPayRunRegister.EmployeeTerminationDate THEN CONVERT(NVARCHAR(10), FLOOR((DATEDIFF(DAY, PRPayRunRegister.EmployeeHireDate, PRPayRunRegister.EmployeeTerminationDate) / 365.0))) + ' Years ' + CONVERT(NVARCHAR(10), CASE WHEN CASE WHEN DATEPART(dd, PRPayRunRegister.EmployeeHireDate) <= DATEPART(dd, PRPayRunRegister.EmployeeTerminationDate) THEN DATEDIFF(MONTH, DATEADD(YEAR, FLOOR(DATEDIFF(DAY, PRPayRunRegister.EmployeeHireDate, PRPayRunRegister.EmployeeTerminationDate) / 365.0),  PRPayRunRegister.EmployeeHireDate), PRPayRunRegister.EmployeeTerminationDate) ELSE DATEDIFF(MONTH, DATEADD(YEAR, FLOOR(DATEDIFF(DAY, PRPayRunRegister.EmployeeHireDate, PRPayRunRegister.EmployeeTerminationDate) / 365.0),  PRPayRunRegister.EmployeeHireDate), PRPayRunRegister.EmployeeTerminationDate) - 1 END = -1 THEN 0 ELSE CASE WHEN DATEPART(dd, PRPayRunRegister.EmployeeHireDate) <= DATEPART(dd, PRPayRunRegister.EmployeeTerminationDate) THEN DATEDIFF(MONTH, DATEADD(YEAR, FLOOR(DATEDIFF(DAY, PRPayRunRegister.EmployeeHireDate, PRPayRunRegister.EmployeeTerminationDate) / 365.0), PRPayRunRegister.EmployeeHireDate), PRPayRunRegister.EmployeeTerminationDate) ELSE DATEDIFF(MONTH, DATEADD(YEAR, FLOOR(DATEDIFF(DAY, PRPayRunRegister.EmployeeHireDate, PRPayRunRegister.EmployeeTerminationDate) / 365.0), PRPayRunRegister.EmployeeHireDate), PRPayRunRegister.EmployeeTerminationDate) - 1 END END) ELSE CONVERT(NVARCHAR(10), FLOOR(DATEDIFF(DAY, PRPayRunRegister.EmployeeHireDate ,GETDATE()) / 365.0)) + ' Years ' + CONVERT(NVARCHAR(10), CASE WHEN CASE WHEN DATEPART(dd, PRPayRunRegister.EmployeeHireDate) <= DATEPART(dd, GETDATE()) THEN DATEDIFF(MONTH, DATEADD(YEAR, FLOOR(DATEDIFF(DAY, PRPayRunRegister.EmployeeHireDate, GETDATE()) / 365.0), PRPayRunRegister.EmployeeHireDate), GETDATE()) ELSE DATEDIFF(MONTH, DATEADD(YEAR, FLOOR(DATEDIFF(DAY, PRPayRunRegister.EmployeeHireDate, GETDATE()) / 365.0), PRPayRunRegister.EmployeeHireDate), GETDATE()) - 1 END = -1 THEN 0 ELSE CASE WHEN DATEPART(dd, PRPayRunRegister.EmployeeHireDate) <= DATEPART(dd, GETDATE()) THEN DATEDIFF(MONTH, DATEADD(YEAR, FLOOR(DATEDIFF(DAY, PRPayRunRegister.EmployeeHireDate, GETDATE()) / 365.0), PRPayRunRegister.EmployeeHireDate), GETDATE()) ELSE DATEDIFF(MONTH, DATEADD(YEAR, FLOOR(DATEDIFF(DAY, PRPayRunRegister.EmployeeHireDate, GETDATE()) / 365.0), PRPayRunRegister.EmployeeHireDate), GETDATE()) - 1 END END) END + ' Months' ELSE '' END

Filters

The template includes the following filters:

Filters available for the report.