CSD ERP Demo - Payroll Test Checklist

City Schools of Decatur • RFP 26-001 • Payroll Module

0 of 5 tested
1
Demonstrate the ability to complete a gross up for all payroll
Untested
Open Gross-Up Calculator View All Calculations Payroll Dashboard
  1. Go to Payroll → Compensation → Gross-Up Calculator in sidebar, click "New Gross-Up"
  2. Select any employee (e.g. Samantha Lowell or Bri Matthew)
  3. Enter desired net amount (e.g. $200.00 or $500.00)
  4. Select payment type: Bonus (or Stipend, Relocation, Award, Supplement)
  5. Select tax method: Supplemental Flat Rate (22% Fed)
  6. Click "Calculate" — the right panel shows Calculation Results with full tax breakdown
  7. Verify the numbers match the formula: Gross = Net ÷ (1 - 0.3514)
  8. Click "Save" — redirects to Gross-Up Detail page with status DRAFT
  9. Click "Approve" — status changes to APPROVED
  10. Click "Submit to Gusto" — status changes to SUBMITTED
  11. Go to Payroll Dashboard → Recent Runs → Off-Cycle tab — verify the off-cycle run appears with correct Gross Pay and Net Pay
  12. Click the eye icon to view the Payroll Run Detail — verify summary cards show correct Gross, Taxes, Net, and Employer Cost
Desired Net Pay$500.00
Calculated Gross$770.89
Federal Tax (Supplemental 22%)$169.60
State Tax (Georgia 5.49%)$42.32
Social Security (6.2%)$47.80
Medicare (1.45%)$11.18
Total Employee Taxes$270.90
Employer Costs
Employer FICA (6.2%)$47.80
Employer Medicare (1.45%)$11.18
Total Employer Cost$829.87
2
Demonstrate the ability to load payroll data from a list or Excel template (e.g., one-time payments, stipends, benefit deductions)
Untested
Upload Import View All Imports Additional Payments
  1. Go to Payroll → Payroll Processing → Import Data, click "Upload Import"
  2. Select import type: One-Time Payments
  3. Click "Download Template" — a CSV file downloads with the correct column headers
  4. Open the template and fill in rows (see sample data below), save as CSV
  5. Upload the filled CSV file and click "Upload & Validate"
  6. System validates the file — review the detail page showing Total Rows, Successful, Errors
  7. If validated, click "Process Import" to create the payment records
  8. Go to Additional Payments page — verify the imported records appear with status Pending
employee_id, email, amount, description, fund_code, account_code
[employee_id], samantha.lowell@csd.edu, 500.00, Year-End Bonus, 100, 6110
[employee_id], patricia.moore@csd.edu, 250.00, Stipend Q2, 100, 6110

Use actual employee IDs or emails from your system. Employee can be matched by employee_id, email, or employee_number.

  1. Go back to Import Data → Upload Import
  2. Select import type: Stipends
  3. Click "Download Template" — note the extra columns (frequency, effective_date, end_date)
  4. Fill the template with stipend data, including frequency (per_pay_period, monthly, annual)
  5. Upload, validate, and process
  6. Verify stipend records appear in Additional Payments with correct frequency
employee_id, email, amount, description, frequency, fund_code, account_code, effective_date, end_date
[employee_id], samantha.lowell@csd.edu, 200.00, Media Specialist Stipend, per_pay_period, 100, 6110, 2026-01-01, 2026-06-30
  1. Go to Payroll → Compensation → Additional Payments, click "Add Payment"
  2. Select employee, payment type (Bonus), enter amount ($300), frequency (One-Time)
  3. Add description, fund code, and account code
  4. Click Save — payment created with status Pending
  5. Click "Approve" on the row — status changes to Approved
  6. Test "Bulk Approve" by selecting multiple pending payments and clicking Bulk Approve

CSV templates can be downloaded for each import type with correct headers. Uploaded files are validated (employee matching, numeric amounts) with row-level error reporting. Processed imports create Additional Payment records. Payments can also be created manually. Approval workflow: Pending → Approved → Included (in payroll). Approved payments are automatically picked up by the next payroll run.

One-Time PaymentsColumns: employee_id, email, amount, description, fund_code, account_code
StipendsColumns: + frequency, effective_date, end_date
DeductionsColumns: employee_id, deduction_code, amount, email, effective_date, end_date
YTD AdjustmentsColumns: employee_id, adjustment_type, amount, email, description
Template downloadEach import type generates a different CSV template with correct headers
Validation errorsUpload a file with bad data (missing employee, negative amount) — errors shown per row
Employee matchingEmployees can be matched by ID, email, or employee number
Import historyAll imports listed on the Import Data index page with status and row counts
Payment typesManual form supports: Stipend, Bonus, Allowance, Supplement, One-Time, Semi-Annual
FrequenciesOne-Time, Per Pay Period, Monthly, Semi-Annual, Annual
3
Demonstrate the ability to process additional pay or allowances
Untested
Add Payment View All Payments
  1. Go to Payroll → Compensation → Additional Payments, click "+ Add Payment"
  2. Select employee: Samantha Lowell
  3. Payment type: Stipend
  4. Amount: $150.00
  5. Frequency: Per Pay Period (recurring each payroll)
  6. Description: Media Specialist Stipend
  7. Set effective date: 2026-01-01, end date: 2026-06-30
  8. Add fund code: 100, account code: 6110
  9. Click Save — payment created with status Pending
  1. Create a Bonus for Bri Matthew — $500, One-Time frequency
  2. Create an Allowance for Lauren David — $75/month, Monthly frequency
  3. Create a Supplement for Marcus Thompson — $200, Per Pay Period
  4. Verify all 4 new payments appear in the list with correct types and status Pending
  1. On the Additional Payments list, click the action menu (⋮) on Samantha's stipend and select Approve
  2. Status changes from Pending to Approved
  3. Select checkboxes on the remaining 3 pending payments
  4. Click "Bulk Approve Selected" — all selected change to Approved
  1. Click edit on any payment — change the amount, verify it saves correctly
  2. Create a test payment, then delete it — verify it's removed from the list

System supports creating additional payments (stipends, bonuses, allowances, supplements) with different frequencies (one-time, per pay period, monthly, semi-annual, annual). Each payment goes through an approval workflow: Pending → Approved. Approved payments are automatically included in the next payroll run. Supports individual and bulk approval, editing, and deletion. Fund codes and GL accounts can be assigned for proper accounting.

StipendRegular supplemental pay (e.g., department lead, media specialist)
BonusOne-time or recurring bonus payment
AllowanceOngoing allowance (e.g., car allowance, phone allowance)
SupplementSupplemental pay for extra duties
One-Time PaymentSingle occurrence payment tied to a specific pay period
Semi-AnnualPayment processed every 6 months
One-TimeSingle payment in a specific pay period
Per Pay PeriodEvery payroll run (biweekly/semi-monthly)
MonthlyOnce per month
Semi-AnnualEvery 6 months
AnnualOnce per year
Filter by typeUse the "All Types" dropdown to filter by Stipend, Bonus, etc.
Filter by statusUse the "All Statuses" dropdown to filter Pending vs Approved
Fund/GL codesFund Code, Account Code, GL Debit, GL Credit fields save and display correctly
Date rangeEffective and end dates control when recurring payments are active
4
Demonstrate how the system vendor maintains all tax and legislative requirements, tables and payroll functionality
Untested
Compliance Dashboard Tax Overrides FLSA Calculator W-2 Forms Quarterly Reports
  1. Go to Payroll → Compliance & Tax in the sidebar
  2. Verify the dashboard shows: active SUI rate, active override count, current tax year, current quarter
  3. Review the quick-link cards to W-2, 1095, Tax Overrides, FLSA, Quarterly Reports
  1. Click Tax Overrides (or navigate via sidebar)
  2. Click "New Override"
  3. Select tax type: SUI (State Unemployment Insurance)
  4. Enter new rate: 2.70% (Georgia SUI), effective date: 2026-01-01
  5. Click Save — system calculates retroactive adjustment if previous rate exists
  6. View the override detail — shows rate, effective/expiration dates, retroactive amount, status
  7. Try creating overrides for other types: FUTA, Workers Comp, Local Tax
  1. Go to Gross-Up Calculator → New Calculation
  2. After calculating, scroll to Applied Rates section to see all maintained rates
  3. Verify the system maintains current federal, state, and FICA rates (see table below)
  1. Click FLSA Calculator link
  2. Select an employee and pay period
  3. System calculates the blended overtime rate (regular rate × 1.5) across all compensation types
  4. Verify the calculation accounts for salary + any additional payments
  1. Click W-2 Forms — shows employee W-2s by year with wages, federal/state tax
  2. Click 1095 Forms — shows ACA compliance forms (1095-B/C) with coverage months
  3. Click Quarterly Reports — shows federal, state, and FICA tax liability by quarter
Federal Supplemental Rate22% (IRS flat rate for supplemental payments under $1M)
Georgia State Tax5.49% (GA flat rate, effective 2024)
Social Security (Employee)6.2% — wage base cap: $168,600
Medicare (Employee)1.45% + additional 0.9% above $200,000
Georgia TRS (Employee)6.0% (Teachers Retirement System)
Georgia TRS (Employer)19.81%
GA SUI Wage Base$9,500
SUIState Unemployment Insurance — company-specific rate with retroactive adjustment
FUTAFederal Unemployment Tax Act
LocalLocal/Municipal taxes by jurisdiction
SupplementalSupplemental withholding rate overrides
Workers CompWorkers' compensation rates

The system maintains all current federal, Georgia state, FICA, Medicare, and TRS tax rates as built-in constants, automatically applied during payroll calculations and gross-up processing. Tax overrides allow administrators to set company-specific or employee-specific rates for SUI, FUTA, local taxes, workers comp, and supplemental withholding — with retroactive adjustment calculations. Compliance features include W-2/W-2C generation, 1095-B/C ACA forms, FLSA blended overtime rate calculator, and quarterly tax liability reporting. The Gusto payroll integration ensures tax tables stay current with IRS and state updates.

SS wage base capGross-up calculator sets SS to 0% if employee YTD exceeds $168,600
Additional MedicareExtra 0.9% Medicare kicks in above $200,000 YTD
Retroactive SUIWhen SUI rate changes, system calculates retroactive adjustment amount
Override scopeOverrides can be company-wide or specific to one employee
Gusto syncTax tables updated via Gusto integration — federal/state rates maintained by payroll provider
5
Demonstrate the ability to restrict access during payroll blackout (e.g., what is not able to be accessed / updated while payroll is processing)
Untested
Audit & Controls Dashboard Blackout Periods Salary Changes Deduction Codes
  1. Go to Payroll → Adjustments & Corrections → Audit & Controls
  2. Click "Activate Blackout" button
  3. Enter a reason: "Biweekly payroll processing in progress"
  4. Confirm activation — dashboard shows red "PAYROLL BLACKOUT ACTIVE" banner
  5. Note the start time and reason displayed
  1. Navigate to Salary Changes — try to create a new salary change → should be BLOCKED with error message
  2. Navigate to Deduction Codes — try to create or edit a deduction code → should be BLOCKED
  3. Verify you can still view/read salary changes and deduction codes (GET requests are allowed)
  4. The error message should say: "This action is blocked during payroll processing. Reason: Biweekly payroll processing in progress"
  1. Go to Blackout Periods page
  2. Verify the active blackout appears with status, start time, reason, and who activated it
  1. Go back to Audit & Controls dashboard
  2. Click "Deactivate Blackout" on the active blackout banner
  3. Dashboard changes to "OPEN" status
  4. Now retry the salary change or deduction edit — should be ALLOWED again
  5. Check Blackout Periods page — the deactivated blackout shows end time and who deactivated it

When a payroll blackout is activated, the system blocks all write operations on sensitive payroll data (salary changes, deduction modifications, benefit changes) while still allowing read-only access. Users see a clear error message explaining why the action is blocked. The blackout can be activated with a reason, tracks who activated/deactivated it, and maintains a full history. Once deactivated, all operations are restored immediately.

Salary ChangesCreate, approve, apply, reject, and mass step increments are blocked
Deduction EditsCreate, update, and delete deduction codes are blocked
Benefit ChangesCreate and update benefits and benefit enrollment events are blocked
New Hire SetupNew hire onboarding can be restricted during blackout
Viewing salary schedules and changesGET requests are never blocked
Viewing deduction codesList and detail views remain accessible
Payroll dashboard and reportsFull read access maintained
Employee directoryView-only access continues
Error messageIncludes the blackout reason in the error response
HTTP 423AJAX requests return HTTP 423 (Locked) status code
Audit trailBlackout history shows activated_by, deactivated_by, timestamps
Immediate effectBlackout takes effect instantly — no page refresh needed for enforcement
6
Demonstrate how changes to salaries are documented and processed using effective dating and change documentation attachments
Untested
New Salary Change All Salary Changes Salary Schedules
  1. Go to Payroll → Compensation → Salary Changes, click "+ New Salary Change"
  2. Select employee: Samantha Lowell
  3. Current salary displays automatically
  4. Enter new annual salary: $62,000
  5. Change reason: Annual Step Increment
  6. Set effective date: 07/01/2026 (future-dated)
  7. Set board approval date: 06/15/2026
  8. Select schedule, enter new step & lane if applicable
  9. Add fund code: 100, account code: 6110
  10. Add notes: "Annual step increment per CBA schedule"
  11. Click Create Request — status should be Pending
  1. Create another salary change for Marcus Thompson
  2. New salary: $58,000, effective date: 03/01/2026 (past date)
  3. Check "Calculate Retro Pay" checkbox
  4. System should calculate retro pay owed since effective date
  5. Review the retro pay amount shown before submitting
  6. Click Create Request
  1. On the Salary Changes list, find Samantha's pending request
  2. Click Approve — status changes to Approved
  3. Click Apply — status changes to Applied and employee's salary is updated
  4. Navigate to the employee's profile and verify salary reflects $62,000 (or will on effective date)
  1. On the Salary Changes page, click "Mass Step Increment"
  2. Select a salary schedule and effective date
  3. System generates salary change requests for all employees on that schedule
  4. Review and bulk approve the generated requests
  1. View any salary change detail — verify it shows: old salary, new salary, % change, effective date, board approval date, reason, notes, who requested, who approved
  2. Check that the change history is maintained as an audit trail
  3. Verify rejected changes also remain in history with rejection reason

Salary changes support effective dating (future or past), retro pay calculation for backdated changes, board approval tracking, fund/GL accounting, and a full approval workflow (Pending → Approved → Applied). Mass step increments allow bulk salary adjustments by schedule. Every change is documented with old/new values, reason, dates, and approver for complete audit trail.

Annual Step IncrementStep advancement per salary schedule
Lane ChangeEducation/certification-based lane move
PromotionPosition-based salary increase
Market AdjustmentCompetitive market rate alignment
ReclassificationJob reclassification to different pay grade
Board Approved RaiseBoard-approved compensation change
CorrectionSalary correction/error fix
Effective datingFuture-dated changes are stored but not applied until effective date
Retro payBackdated changes auto-calculate retro pay owed
Board approval dateSeparate field tracks when board approved the change
Reject workflowRejected changes saved with rejection reason, remain in history
Fund accountingFund code and account code assigned to the salary change
7
Demonstrate the ability to pay an employee across multiple process levels (e.g., departments, cost centers)
Untested
Fund Allocations Position Control Payroll Reports
  1. Go to Payroll → Payroll Processing → Fund Allocations
  2. Find an employee who works across multiple departments (e.g., a teacher who also coaches)
  3. Verify the allocation shows multiple fund codes / cost centers with percentage splits
  4. Example: 60% General Fund (100) + 40% Title I Grant (220)
  1. Click "Add Allocation" or edit an existing employee's allocation
  2. Select employee: Lauren David
  3. Add allocation line 1: Fund 100 (General), Account 6110, 70%
  4. Add allocation line 2: Fund 220 (Title I), Account 6110, 30%
  5. Verify total = 100% — system should enforce this
  6. Click Save
  1. Go to Payroll Dashboard and view a completed payroll run
  2. Check the employee's paycheck detail or Journal Entries
  3. Verify the salary was split across the allocated cost centers (70/30)
  4. Each allocation line should appear as a separate GL journal entry
  1. Go to Reports → Payroll Reports → Labor by Category
  2. Verify the report shows labor cost broken down by fund code / department
  3. Confirm split-funded employees appear correctly in each department's total

The system supports paying an employee across multiple departments, cost centers, or fund sources via fund allocations. Each employee can have percentage-based splits (must total 100%) across different fund codes and GL accounts. During payroll processing, the salary is automatically distributed per the allocation. Journal entries and labor reports reflect the multi-department split accurately.

EmployeeLauren David — $55,000/year
Fund 100 (General)70% = $38,500 — GL 6110
Fund 220 (Title I)30% = $16,500 — GL 6110
Per Paycheck (biweekly)$1,480.77 from Fund 100 + $634.62 from Fund 220
100% validationSystem rejects allocations that don't total 100%
Multiple cost centersSupport 2+ fund codes per employee
GL journal entriesEach fund allocation generates a separate journal entry line
ReportingLabor by Category report shows correct split across departments
Position controlPositions can be linked to specific fund/department combos
8
Demonstrate how payroll process handles employee salary splits / labor cost allocations (e.g., grant vs. other funding source)
Untested
Fund Allocations Journal Entries Labor by Fund Report
  1. Go to Fund Allocations
  2. Select or add employee: Marcus Thompson
  3. Create a split allocation:
  4.    Line 1: Fund 100 (General Fund), Account 6110, 50%
  5.    Line 2: Fund 330 (Title III Grant), Account 6110, 30%
  6.    Line 3: Fund 450 (ESSER Grant), Account 6110, 20%
  7. Verify the total equals 100% and click Save
  1. Run or view a payroll that includes Marcus Thompson
  2. Open his paycheck detail
  3. Verify the gross pay is distributed:
       50% charged to Fund 100
       30% charged to Fund 330
       20% charged to Fund 450
  4. Employer taxes and benefits should also be split proportionally
  1. Go to GL & Accruals → Journal Entries
  2. Find the payroll journal entry for the run
  3. Verify 3 separate debit lines for Marcus — one per fund code
  4. Each line should show the correct amount (50/30/20 of gross)
  1. Go to Payroll Reports → Labor by Category
  2. Verify Marcus appears in all 3 funds with correct proportional amounts
  3. Verify fund totals aggregate correctly across all employees

Employee salary splits allow distributing pay across multiple funding sources (general fund, grants, federal programs). The allocation is percentage-based and must total 100%. During payroll, gross pay, employer taxes, and benefits are all split proportionally. GL journal entries show separate debit lines per fund. The Labor by Fund report accurately reflects multi-source funding. This is critical for Title I, Title III, ESSER, and other grant-funded positions.

Fund 100 (General)50% = $28,000/yr — $1,076.92/pay period
Fund 330 (Title III)30% = $16,800/yr — $646.15/pay period
Fund 450 (ESSER)20% = $11,200/yr — $430.77/pay period
Employer TRS (19.81%)Also split: $5,546.80 / $3,328.08 / $2,218.72
3+ fund splitsSystem supports more than 2 allocation lines
Tax proportionalityEmployer taxes (SS, Medicare, TRS) split same as salary
Mid-period changesAllocation changes during a pay period handled correctly
Grant reportingReports can filter labor costs by specific grant/fund code
Audit trailAllocation changes are logged with who changed and when
9
Demonstrate the ability to set up new garnishments and to allow multiple garnishments with all garnishments interfaced to Finance
Untested
Garnishments Journal Entries
  1. Go to Payroll → Deductions → Garnishments
  2. Click "+ Add Garnishment"
  3. Select employee: Marcus Thompson
  4. Garnishment type: Child Support
  5. Amount: $350.00 per pay period
  6. Case number: CS-2026-1234
  7. Payee: DeKalb County CSEA
  8. Enter effective date: 01/01/2026
  9. Set max disposable earnings cap: 50% (federal limit for child support)
  10. Add fund code / GL account for the liability
  11. Click Save
  1. Still on Marcus Thompson, click "+ Add Garnishment" again
  2. Type: Tax Levy (IRS)
  3. Amount: $200.00 per pay period
  4. Case/reference: IRS-2026-5678
  5. Priority: 2 (child support takes priority = 1)
  6. Click Save
  7. Verify both garnishments appear on Marcus's profile with correct priority order
  1. Create a Student Loan garnishment for Samantha Lowell — $150/pay period
  2. Create a Creditor/Judgment garnishment for Bri Matthew — 25% of disposable income
  3. Verify each shows correct type, amount/percentage, and status Active
  1. View Marcus's garnishment summary — child support at priority 1, tax levy at priority 2
  2. Verify the system respects the disposable earnings cap:
       Child support: up to 50-65% of disposable
       Tax levy: remaining after child support
       Total cannot exceed legal maximum
  1. View a payroll run that includes garnished employees
  2. Go to GL & Accruals → Journal Entries
  3. Verify garnishment deductions appear as liability entries (credit to garnishment payable)
  4. Each garnishment type should map to a separate GL account
  5. Verify the disbursement side: when garnishment is remitted to payee, a debit clears the liability

The system supports creating multiple garnishments per employee with different types (child support, tax levy, student loan, creditor judgment). Each garnishment has a priority order, amount or percentage, case number, payee, effective/end dates, and disposable earnings cap. Multiple garnishments are processed in priority order respecting federal/state limits. All garnishments interface to Finance via GL journal entries — deductions create liability entries, and remittances clear them.

Child SupportPriority 1 — up to 50-65% disposable income
Tax Levy (IRS/State)Priority 2 — per IRS Form 668-W calculation
Student LoanPriority 3 — up to 15% disposable income
Creditor/JudgmentPriority 4 — up to 25% disposable income
BankruptcyPer court order amount
Multiple garnishmentsSystem handles 2+ active garnishments with priority ordering
Disposable income capTotal garnishments cannot exceed legal limits on disposable earnings
GL interfaceEach garnishment creates a liability entry in the general ledger
Payee trackingGarnishment payee (court, agency) is tracked for disbursement
End date / total capGarnishments auto-stop when end date or total amount reached
Audit trailAll garnishment setup, changes, and payments are logged
10
Demonstrate the employee deduction set up process including how multiple deduction types (e.g., descending balance, flat, one-time) are maintained
Untested
Deduction Codes Employee Benefits
  1. Go to Payroll → Deductions → Deduction Codes
  2. Click "+ Add Deduction Code"
  3. Name: Health Insurance - Employee
  4. Code: HLTH-EE
  5. Category: Benefits - Health
  6. Calculation type: Flat Amount
  7. Default amount: $275.00 per pay period
  8. Pre-tax: Yes (Section 125 / Cafeteria Plan)
  9. GL Debit: 6210 (Benefits Expense), GL Credit: 2110 (Benefits Payable)
  10. Click Save
  1. Click "+ Add Deduction Code"
  2. Name: 403(b) Retirement
  3. Code: RET-403B
  4. Category: Retirement
  5. Calculation type: Percentage of Gross
  6. Rate: 6%
  7. Pre-tax: Yes
  8. Annual max: $23,500 (IRS 403b limit 2025)
  9. Click Save
  1. Click "+ Add Deduction Code"
  2. Name: Laptop Payback
  3. Code: EQUIP-LAPTOP
  4. Category: Other - Post Tax
  5. Calculation type: Descending Balance
  6. Amount per period: $50.00
  7. Total balance: $1,200.00
  8. Pre-tax: No
  9. Click Save
  10. Verify the system shows remaining balance = $1,200 and calculates stop date (~24 pay periods)
  1. Click "+ Add Deduction Code"
  2. Name: Uniform Purchase
  3. Code: UNIFORM-1X
  4. Category: Other - Post Tax
  5. Calculation type: One-Time
  6. Amount: $85.00
  7. Pre-tax: No
  8. Click Save
  9. Verify the deduction is set to process only once then auto-deactivate
  1. Navigate to an employee's benefit/deduction profile (or Employee Benefits page)
  2. Assign HLTH-EE (health) and RET-403B (retirement) to Samantha Lowell
  3. Assign EQUIP-LAPTOP (descending balance) to Marcus Thompson
  4. Assign UNIFORM-1X (one-time) to Lauren David
  5. Verify each employee's deduction summary shows the correct type, amount, and remaining balance (for descending)
  1. View a payroll run / paycheck that includes these employees
  2. Verify:
       Samantha: $275 health + 6% of gross for 403(b) deducted pre-tax
       Marcus: $50 laptop deducted post-tax, remaining balance decremented
       Lauren: $85 uniform deducted once, deduction auto-completed

The system supports multiple deduction calculation types: Flat Amount (fixed $ per period), Percentage of Gross (% with optional annual cap), Descending Balance (fixed $ per period against a total balance that decrements to zero), and One-Time (single deduction then auto-stops). Each deduction code includes pre/post-tax classification, GL account mapping, category, and can be assigned to individual employees. Descending balance deductions track remaining balance and auto-stop when paid in full. One-time deductions process once and deactivate.

Flat AmountFixed dollar amount per pay period (e.g., $275/period for health insurance)
Percentage of GrossPercentage of gross pay (e.g., 6% for 403b), with optional annual maximum
Descending BalanceFixed amount deducted each period against a total balance (e.g., $50/period against $1,200 laptop)
One-TimeSingle deduction processed once then auto-deactivated
Benefits - HealthMedical, dental, vision (typically pre-tax Sec. 125)
Benefits - LifeLife insurance, AD&D
Retirement403(b), 457, TRS (pre-tax)
HSA/FSAHealth savings / flexible spending (pre-tax)
Other - Pre TaxParking, transit (pre-tax)
Other - Post TaxEquipment payback, uniforms, union dues
Pre-tax vs Post-taxPre-tax deductions reduce taxable income; post-tax do not
Annual maxPercentage deductions respect annual maximum (e.g., $23,500 for 403b)
Descending balanceRemaining balance decrements each period, stops at $0
One-time auto-stopOne-time deductions process once then status changes to Completed
GL mappingEach deduction code maps to GL debit (expense) and credit (payable) accounts
Multiple deductionsEmployees can have multiple active deductions of different types simultaneously
11
Demonstrate the ability to process substitute payroll sourced from a third-party substitute system (e.g., AESOP / Frontline)
Untested
Substitute Payroll Import Data
  1. Go to Payroll → Payroll Processing → Substitute Payroll
  2. Verify the page shows integration options for Frontline (AESOP)
  3. Review the import format: employee ID, absence date, hours, daily rate, school/location
  1. Click "Import Substitute Data" or go to Import Data
  2. Download the substitute payroll template
  3. Fill in sample data: substitute name/ID, absent teacher, date, hours worked, daily rate
  4. Upload the CSV — system validates employee matching and calculates pay
  5. Review the imported records — each shows substitute, school, hours, and calculated pay
  1. Select imported substitute records for a pay period
  2. Verify each record shows: substitute name, absent teacher, date, hours, rate, total pay
  3. Approve the batch — records are included in the next payroll run
  4. Check that substitute pay appears on the payroll run as separate line items

The system accepts substitute payroll data from third-party systems (Frontline/AESOP) via CSV import. Each record captures the substitute, absent employee, date, hours, and daily rate. Imported records are validated, reviewed, and then included in payroll processing. Substitute pay is tracked separately with its own fund code/GL accounting.

substitute_idEmployee ID or email of the substitute
absent_employee_idEmployee who was absent
absence_dateDate of the absence
hoursHours worked by substitute
daily_ratePay rate for the substitute
locationSchool or cost center
fund_codeFund to charge for substitute pay
12
Demonstrate the ability to process semi-annual payroll (e.g., athletic supplements paid twice a year)
Untested
Add Payment All Payments
  1. Go to Payroll → Compensation → Additional Payments, click "+ Add Payment"
  2. Select employee: Marcus Thompson (Football Coach)
  3. Payment type: Supplement
  4. Amount: $3,000.00 (per payment)
  5. Frequency: Semi-Annual
  6. Description: "Head Football Coach Supplement - FY26"
  7. Effective date: 07/01/2025, End date: 06/30/2026
  8. Fund code: 100, Account: 6150
  9. Click Save
  1. View the payment in the list — frequency shows Semi-Annual
  2. Verify the system will process this payment twice per year (e.g., December and June)
  3. Check that the total annual amount = $3,000 × 2 = $6,000

The system supports semi-annual payment frequency for athletic and academic supplements. Payments are configured with a per-payment amount and semi-annual frequency, processing twice per year. Each supplement can have its own fund code and GL account for proper cost center tracking. The approval workflow (Pending → Approved) ensures oversight before payments process.

Head Football Coach$3,000 × 2 = $6,000/yr
Band Director$2,500 × 2 = $5,000/yr
Department Chair$1,500 × 2 = $3,000/yr
Assistant Coach$1,000 × 2 = $2,000/yr
13
Demonstrate ability to handle retro pay by date entry to calculate correct pay amounts
Untested
Retro Pay New Salary Change
  1. Go to Salary Changes → New Salary Change
  2. Select employee: Lauren David
  3. New salary: $58,000 (increase from current)
  4. Reason: Promotion
  5. Effective date: 01/01/2026 (backdated ~3 months)
  6. Check "Calculate Retro Pay" checkbox
  7. System auto-calculates the retro amount owed from effective date to today
  8. Click Create Request
  1. View the salary change detail
  2. Verify the retro pay section shows:
       Old per-period amount vs. new per-period amount
       Number of pay periods since effective date
       Total retro pay owed = (new - old) × # periods
  3. Approve and apply the change
  1. Go to Payroll → Adjustments & Corrections → Retro Pay
  2. Verify the retro pay record appears with correct employee, amount, and source salary change
  3. Status should be Pending — waiting to be included in next payroll run

When a salary change has a past effective date and "Calculate Retro Pay" is checked, the system automatically calculates the difference between old and new pay rates for all pay periods between the effective date and today. The retro amount is created as a separate retro pay record that gets included in the next payroll run as a one-time adjustment.

Old Salary$52,000/yr = $2,000/biweekly
New Salary$58,000/yr = $2,230.77/biweekly
Difference$230.77 per pay period
Periods (Jan 1 → Apr 10)~7 biweekly periods
Total Retro$230.77 × 7 = ~$1,615.39
14
Demonstrate ability for automatic retro calculations on effective-dated transactions
Untested
New Salary Change Retro Pay
  1. Go to Salary Changes and click "Mass Step Increment"
  2. Select a schedule and set effective date to a past date (e.g., 01/01/2026)
  3. Click Generate Requests
  4. Verify each generated request automatically has retro pay calculated
  5. The retro column in the table should show the calculated retro amount
  1. Create a new salary change with effective date in the past
  2. Check "Calculate Retro Pay"
  3. System should automatically calculate the retro amount without manual entry
  4. Verify the calculation: (new biweekly - old biweekly) × number of elapsed pay periods
  1. After approving and applying a retro salary change, go to Retro Pay
  2. Verify a retro pay record was automatically created (no manual entry needed)
  3. The record links back to the originating salary change
  4. Status is Pending — ready for inclusion in next payroll run

When any effective-dated transaction (salary change, step increment, COLA) has a past effective date, the system automatically calculates retro pay without manual intervention. The retro amount is based on the difference between old and new rates multiplied by elapsed pay periods. A retro pay record is auto-created and queued for the next payroll run. This works for both individual changes and mass step increments.

15
Demonstrate ability to support US / Georgia SUI state override options with retroactive tax calculation
Untested
Compliance Dashboard Tax Overrides
  1. Go to Finance → Other → Compliance & Tax
  2. Verify the dashboard shows the current Georgia SUI rate
  3. Note the current rate (e.g., 2.64%) and wage base ($9,500)
  1. Go to Tax Overrides, click "New Override"
  2. Tax type: SUI (State Unemployment Insurance)
  3. New rate: 2.70%
  4. Effective date: 01/01/2026 (backdated to start of year)
  5. Click Save
  1. After saving the override, check the detail page
  2. System should show a retroactive adjustment amount
  3. Calculation: for each employee who earned below the $9,500 wage base since Jan 1, compute (new rate - old rate) × taxable wages
  4. The adjustment should appear as a pending tax correction

The system supports Georgia SUI rate overrides with retroactive calculation. When a new SUI rate is entered with a past effective date, the system automatically calculates the tax difference for all affected payroll periods. The retroactive amount accounts for the $9,500 wage base cap and only adjusts employees who had taxable SUI wages during the affected period.

Wage Base$9,500 (2025-2026)
Rate Range0.04% to 8.10% (experience-rated)
New Employer Rate2.64%
Override ScopeCompany-wide — applies to all employees
Retro Calc(New Rate - Old Rate) × taxable wages per employee since effective date
16
Demonstrate the ability to integrate PTO accrual within HR with automated PTO journal entries within the ledger for each cost center
Untested
PTO Accrual Policies Accrual Entries PTO Liability Journal Entries
  1. Go to HR → Time Management → PTO Accrual Policies
  2. Verify policies exist (e.g., Vacation, Sick Leave, Personal Days)
  3. Check each policy shows: accrual rate, frequency, max balance, carryover limit
  1. Click Accrual Entries
  2. Verify entries show: employee name, accrual type, hours accrued, date, running balance
  3. Check that accruals happen automatically per pay period
  1. Go to GL & Accruals → PTO Liability
  2. Verify the report shows total PTO liability in dollars (hours × hourly rate) by employee
  3. Check that liability is broken down by cost center / fund code
  1. Go to GL & Accruals → Journal Entries
  2. Filter for PTO-related entries
  3. Verify each accrual creates a journal entry:
       Debit: PTO Expense (by cost center)
       Credit: PTO Liability (accrued vacation payable)
  4. For split-funded employees, verify the entry is distributed across cost centers

PTO accruals are integrated within HR and automatically generate GL journal entries. Each accrual policy defines the rate, frequency, and limits. When PTO accrues each pay period, the system creates journal entries debiting PTO expense and crediting PTO liability, split by cost center for multi-funded employees. The PTO Liability report shows the total dollar value of accrued PTO across the organization.

17
Demonstrate the ability to mass load information from Excel templates (pay, deductions, employee data, direct deposit, YTD adjustments)
Untested
Import Data New Import
  1. Go to Payroll → Payroll Processing → Import Data, click "New Import"
  2. Select import type: One-Time Payments — click Download Template
  3. Switch to Stipends — click Download Template
  4. Switch to Deductions — click Download Template
  5. Switch to YTD Adjustments — click Download Template
  6. Verify each template has correct headers and pre-filled sample employee data
  1. Fill in the One-Time Payments template with 5+ rows of test data
  2. Upload the CSV — system validates each row
  3. Review validation results: green rows = valid, red = errors
  4. Click Process — records created as Additional Payments
  1. Fill in the Deductions template: employee_id, deduction_code, amount
  2. Upload and validate
  3. Process — deductions assigned to employees
  1. Fill in the YTD Adjustments template: employee_id, adjustment_type, amount
  2. Upload and validate — useful for mid-year system transitions
  3. Process — YTD balances updated for each employee

The system supports mass loading data from CSV/Excel templates for multiple data types: one-time payments, stipends, deductions, and YTD adjustments. Each type has a downloadable template pre-populated with company employee data. Upload validates each row (employee matching, data types, required fields) with per-row error reporting. Processed imports create the appropriate records and appear in import history.

One-Time Paymentsemployee_id, email, amount, description, fund_code, account_code
Stipends+ frequency, effective_date, end_date
Deductionsemployee_id, deduction_code, amount, effective_date, end_date
YTD Adjustmentsemployee_id, adjustment_type, amount, description
18
Demonstrate the ability to ensure withholding allowances cannot be changed by an employee with a garnishment that would be affected
Untested
Garnishments
  1. Go to Garnishments — find an employee with an active Tax Levy garnishment
  2. Note the "Withholding Locked" flag is set to Yes
  3. This prevents the employee from modifying their W-4 withholding allowances
  1. Log in as the garnished employee (or simulate their view)
  2. Navigate to tax withholding / W-4 settings
  3. The form should be locked / read-only with a message explaining why
  4. Expected message: "Your withholding settings are locked due to an active garnishment. Contact payroll for changes."
  1. As an admin, view the garnishment detail
  2. Verify the "Withholding Locked" toggle is visible
  3. Admin can unlock if needed (e.g., after garnishment ends)
  4. When garnishment status changes to Completed, lock should auto-release

When an employee has an active garnishment (especially tax levies), the system automatically locks their withholding allowances to prevent manipulation that could reduce the garnishment amount. The "Withholding Locked" flag is set on the garnishment record. Employees see a read-only view of their W-4 settings with an explanation. Admins can manually override the lock, and it auto-releases when the garnishment is completed.

Tax Levy (IRS)Withholding always locked — per IRS rules
Child SupportWithholding locked by default (admin can override)
Student Loan / CreditorWithholding not locked unless admin enables
19
Demonstrate the ability for managers to view labor costs in aggregate, by pay component
Untested
Labor Costs Report Labor by Category Report Center
  1. Go to Reports → Payroll Reports (or use link above)
  2. Click Labor Costs report
  3. Verify the report shows total labor costs for the selected period
  4. Check the aggregate breakdown by pay component:
       Base Salary / Regular Pay
       Employer Taxes (SS, Medicare, SUI, FUTA)
       Employer Benefits (Health, Retirement, TRS)
       Supplements & Stipends
       Overtime
  1. Use the department or fund code filter
  2. Verify labor costs update to show only the selected department
  3. Compare totals across departments
  1. Click Labor by Category
  2. Verify the report breaks down labor costs by fund code (General, Title I, ESSER, etc.)
  3. Split-funded employees should appear proportionally in each fund

Managers can view labor costs in aggregate with breakdowns by pay component (salary, taxes, benefits, supplements, overtime). Reports can be filtered by department, fund code, or cost center. The Labor by Category report shows costs distributed across funding sources. Split-funded employees appear proportionally in each fund's total.

20
Demonstrate the ability for managers to view overtime worked, shift differential paid, etc. by employee
Untested
Overtime Report Hours & Wages FLSA Calculator
  1. Go to Payroll Reports → Overtime
  2. Verify the report shows overtime by employee:
       Employee name, department
       Regular hours, overtime hours
       OT rate (1.5×), OT pay amount
       Total compensation
  3. Check that the report can be filtered by date range and department
  1. Click Hours & Wages report
  2. Verify it shows per-employee: regular hours, OT hours, total hours, regular pay, OT pay, shift differential, total gross
  3. Filter by pay period to see specific payroll run data
  1. Click FLSA Calculator
  2. Select an employee who receives both salary and supplements
  3. System calculates the blended regular rate = (total compensation) / (total hours)
  4. OT rate = blended rate × 1.5
  5. This is important for employees with multiple pay types (salary + stipend + supplement)

Managers can view detailed overtime and compensation reports by employee. The Overtime report shows regular vs. OT hours and pay. Hours & Wages Alignment shows the full compensation breakdown including shift differentials. The FLSA Calculator computes the correct blended overtime rate for employees with multiple compensation types, ensuring compliance with federal overtime rules.

Regular PayBase salary or hourly rate × regular hours
Overtime PayOT hours × 1.5 × blended rate
Shift DifferentialExtra pay for non-standard shifts (evening, weekend)
SupplementsAthletic, academic, duty supplements
FLSA Blended Rate(Salary + Supplements + Other) / Total Hours = Regular Rate for OT
21
Direct Deposit Setup & Maintenance
Untested
/account/direct-deposit
  1. Go to Payroll → Disbursements → Direct Deposit (list of all employees)
  2. Click on an employee (e.g., Samantha Lowell) to open their DD detail page
  3. View Current Payment Method — shows type (Direct Deposit / Check), bank accounts, last 4 digits
  4. In Update Payment Method section, select Direct Deposit
  5. Enter bank details: bank name Bank of America, routing 061000104, account 123456789, type Checking
  6. Click Update Payment Method and verify it saves
  7. Verify the current payment method section refreshes showing the new DD account

Direct deposit page lists all employees with current payment method. Individual employee DD can be viewed and updated (Direct Deposit or Check). Bank account details saved securely.

List Page/account/direct-deposit
Employee Detail/account/direct-deposit/{userId}
Routing #061000104 (Bank of America - GA)
Account #123456789 (Checking)
Payment TypesDirect Deposit or Check
22
Corrections / Changes to Employee Record
Untested
/account/employees/{id} → Profile / Details
  1. Open an employee record (e.g., Marcus Thompson)
  2. Click Edit on the profile section
  3. Change the address to: 123 College Ave, Decatur, GA 30030
  4. Save the change
  5. Navigate to Employee Details tab, change department from Decatur High School to Renfroe Middle School
  6. Save and verify the change is reflected
  7. Check the Activity Log / History to confirm both changes are tracked with timestamps

Employee record fields (address, department, designation, etc.) can be edited with all changes logged in the audit trail showing who changed what and when.

23
Pay & Deduction Codes, Taxation, GL Account Mapping
Untested
/account/payroll-settings
  1. Navigate to Payroll → Payroll Settings
  2. On the Earning Codes tab, verify codes: REG, OT (1.5x), STIP, SUPP, BONUS, RETRO
  3. Check each earning code has GL Debit Account, tax treatment (Taxable, FICA, Retirement), and OT eligibility
  4. Click Add Earning Code to show the create form with all configuration options
  5. Switch to the Deduction Codes tab — verify codes: FIT, SIT, FICA-SS, FICA-MED, TRS, HLTH, DNTL, FSA, 403B, GARN
  6. Check each deduction has GL Debit/Credit, pre-tax vs post-tax, category, and calculation method
  7. Note TRS shows employer match 20.29% — employer portion auto-calculated

Pay and deduction codes are configurable with tax treatment flags and GL account mappings. Codes appear on check stubs and flow correctly to journal entries.

Salary Expense (Fund 100)6100-100 (Debit)
Salary Expense (Fund 262)6100-262 (Debit)
Federal Tax Payable2110 (Credit)
State Tax Payable2120 (Credit)
FICA Payable2130 (Credit)
Benefits Payable2200 (Credit)
Payroll Cash1010 (Credit)
24
Corrections to Employee Record (duplicate of #22)
Untested
/account/employees/{id}
  1. This is the same RFP requirement as #22. Use a different employee for variety.
  2. Open Jessica Chen's record
  3. Change pay type from salary to hourly (or vice versa) — verify system prompts for effective date
  4. Change tax filing status (e.g., Single → Married)
  5. Save and verify audit log captures both changes

Payroll-sensitive changes (pay type, tax status) are tracked with effective dates and audit trail. Same capability as #22 demonstrated on different fields.

25
Process Special Payments (Staff Development Stipends)
Untested
/account/additional-payments
  1. Go to Payroll → Compensation → Additional Payments
  2. Click Add Payment
  3. Select employee: Samantha Lowell
  4. Set type: Stipend, description: Staff Development Stipend - Fall 2026
  5. Enter amount: $500.00, fund code: 100
  6. Set frequency: One-time, effective date: next pay period
  7. Save and verify it appears in the payments list with status Pending
  8. Verify the payment would be included in the next payroll run

Special payment (stipend) is created with correct type, amount, and fund code. It appears in the additional payments list and will flow into the next payroll run.

EmployeeSamantha Lowell (CSD-1001)
Payment TypeStipend
Amount$500.00
Fund Code100 (General Fund)
Samantha's Existing Stipend$500 Staff Development (already in paycheck)
26
Arrears Deductions Management
Untested
/account/employees/{id} → Deductions tab
  1. Open an employee with deductions (e.g., Samantha Lowell)
  2. Navigate to the Deductions tab
  3. Observe existing deductions: TRS 6%, Health Insurance, Dental, FSA, 403(b)
  4. Look for the Arrears column or section — this tracks when a deduction couldn't be fully taken (e.g., employee on unpaid leave)
  5. Verify the system shows arrears balance for any undercollected deductions
  6. Verify that on the next payroll, the system would attempt to catch up arrears (collect missed amount + current)
  7. Check that arrears amounts are visible on the paycheck detail / deductions breakdown

When a deduction cannot be fully collected (insufficient net pay), the remainder goes into arrears. The system tracks the arrears balance and attempts catch-up collection on subsequent payrolls.

ExampleEmployee on unpaid leave → health insurance still due
DeductionHealth Insurance: $163.58/semi-monthly
If Net Pay < DeductionsShortfall tracked as arrears balance
Next PeriodSystem collects current + arrears (up to configurable max)
27
Trial Payroll Run (Pre-list) — Gross/Net Calc, Reconciliation, Warnings
Untested
/account/payroll/dashboard → Create/Open Payroll Run
  1. Go to Payroll Dashboard, open or create a payroll run for the current pay period
  2. Click Run Trial / Calculate (pre-list)
  3. Verify the system calculates gross pay for each employee based on salary/hours
  4. Verify deductions (taxes, benefits, retirement) are correctly applied
  5. Verify net pay = gross - taxes - deductions
  6. Check for any warnings/messages (e.g., missing time entries, deduction exceeds net, new hire without DD)
  7. Review the reconciliation summary: total gross, total taxes, total deductions, total net, total employer cost
  8. Verify the run status is draft/pending_review (not yet submitted)

Trial payroll calculates all pay components, flags warnings, and presents a reconciliation summary. No money moves until approved and submitted.

Total Gross (approx)~$24,500/semi-monthly (sum of all salaries / 24)
Federal Tax Rate~12% of gross
GA State Tax~4.75% of gross
FICA (SS + Medicare)7.65% employee + 7.65% employer
TRS Retirement6% employee + 20.29% employer
28
Current vs Previous Payroll Comparison (Pre-list)
Untested
/account/payroll-audit → Compare button
  1. Open a payroll run that has been calculated (trial run from #27 or any existing run)
  2. Look for a Compare / Variance section or tab
  3. Verify it shows current period amounts side-by-side with previous period
  4. Check that differences are highlighted (e.g., new hires, salary changes, missing employees)
  5. Verify variance amounts and percentages are calculated correctly
  6. Confirm this helps catch overpayments or underpayments before finalizing

Pre-list comparison shows current vs previous payroll side-by-side with variances highlighted. Discrepancies flagged for review before submission.

New EmployeeShows as "New" (no previous amount)
Salary ChangeVariance shown with $ and % difference
Missing EmployeeFlagged as warning (was in last run but not this one)
OT VarianceHigher gross due to overtime highlighted
29
Trial Payroll Adjustments
Untested
/account/payroll-audit → Trial button
  1. Open a payroll run in draft or pending_review status
  2. Click on an employee's paycheck to view details
  3. Make an adjustment: add 2 overtime hours for Robert Jenkins
  4. Verify the system recalculates gross pay, taxes, and net pay
  5. Make another adjustment: add a one-time $100 bonus for Patricia Moore
  6. Click Recalculate to rerun the trial with adjustments
  7. Verify totals update and the adjustment is captured in the run log

Adjustments can be made to individual paychecks during the trial phase. System recalculates all amounts and logs changes. No adjustments allowed after payroll is submitted.

Robert Jenkins OT+2 hours × $19.00 × 1.5 = +$57.00 gross
Patricia Moore Bonus+$100.00 one-time bonus
Expected ImpactRun totals increase, taxes recalculated
30
Post Payroll Audit Reports
Untested
/account/payroll-audit → Audit Logs & Post-Audit
  1. Open a completed payroll run (e.g., Aug 16-31 Period #4)
  2. Look for the Audit Report or Post-Payroll Summary section
  3. Verify it shows: employee count, total gross, total deductions, total taxes, total net, total employer cost
  4. Check for per-employee breakdown with all pay components
  5. Verify journal entries are linked and balanced (debits = credits)
  6. Look for an Export / Download option (PDF or Excel)
  7. Verify the report includes any adjustments or exceptions that occurred during processing

Completed payroll runs have a comprehensive audit report showing all pay components, deductions, taxes, employer costs, and journal entries. Report is exportable for record-keeping.

Summary TotalsGross, Taxes, Deductions, Net, Employer Cost
Employee DetailPer-employee breakdown of all components
Journal EntriesDebit/credit by fund code and GL account
Variance FlagsAny adjustments made during trial
Export FormatPDF and/or Excel download
31
Off-Cycle Payroll Checks with Direct Deposit
Untested
/account/payroll/dashboard → Initiate Off-Cycle
  1. Navigate to Payroll Dashboard
  2. Click Initiate Off-Cycle button
  3. Select a check date and reason (e.g., "Missed stipend payment")
  4. Add one or more employees to the off-cycle run
  5. Enter payroll data (earnings, hours) for added employees
  6. Verify the off-cycle run is created with type off_cycle
  7. Process through approval workflow (submit → approve)
  8. Confirm direct deposit is available for off-cycle checks (payment method from employee record)
  9. Verify the off-cycle run appears separately from regular runs in the payroll list
Off-cycle payroll can be initiated, employees added/removed, data entered, and processed through the standard workflow. Direct deposit applies based on employee payment method settings.
32
Identify Underpayments & Process Retroactive Payments
Untested
/account/retro-pay
  1. Navigate to Retro Pay page
  2. Click Underpayments to view the system-detected underpayment scan
  3. Verify the system identifies employees who were underpaid (e.g., salary change applied late)
  4. Create a new retro pay request — select employee, original vs corrected amount, affected periods
  5. Submit the retro pay for approval
  6. Approve the retro pay request
  7. Verify the retro amount is calculated correctly (difference × number of periods)
  8. Confirm retro pay can be included in the next regular or off-cycle payroll run
System identifies underpayments, calculates retroactive amounts, and supports approval workflow. Retro pay is processed as a separate earning line on the next payroll.
33
Identify & Track Overpayments (incl. DD Reversals)
Untested
/account/payroll-adjustments
  1. Navigate to Payroll Adjustments
  2. Create an overpayment adjustment — select employee, type = overpayment, enter amount
  3. Verify the system records the overpayment with details (pay period, reason)
  4. Set up a recovery plan (e.g., deduct $X per pay period until recovered)
  5. Record a manual payment if employee repays directly
  6. Use Pre-list Comparison (point #28) to show how overpayments are initially caught
  7. Check that overpayment balance tracks remaining amount owed
Current ProcessHR maintains a list; reaches out to employees for repayment
DetectionUsually caught via pre-list comparison (current vs previous payroll)
VolumeNot a big problem — low frequency of overpayments
DD ReversalIf caught early, direct deposit reversal may be possible before settlement
Overpayments can be recorded, tracked, and recovered through payroll deductions or manual payments. DD reversal option available if caught before ACH settlement.
34
YTD, QTD, and MTD Accumulators
Untested
/account/payroll-reports/ytd-summary
  1. Navigate to Payroll Reports → YTD Summary
  2. Verify the report shows Fiscal Year-To-Date totals per employee (gross, taxes, deductions, net)
  3. Check for Quarter-To-Date (QTD) breakdowns
  4. Check for Month-To-Date (MTD) breakdowns
  5. Verify accumulators roll up correctly across pay periods
  6. Confirm totals match individual paycheck details when drilled into
  7. Check that FICA (SS + Medicare) YTD tracks against annual limits ($168,600 SS wage base)
System maintains accurate YTD, QTD, and MTD accumulators for all pay components. Reports can be generated and exported for any period.
35
FLSA Rate Calculation (Varying Pay / Stipends)
Untested
/account/payroll-compliance/flsa
  1. Navigate to Payroll Compliance → FLSA Calculator
  2. Select an employee with varying pay (e.g., regular pay + stipend)
  3. Verify the system calculates the regular rate by combining all earnings types
  4. Check that stipends are included in the FLSA regular rate calculation
  5. Verify overtime premium is calculated on the blended rate, not just base rate
  6. Example: Employee earning $20/hr base + $200 stipend for 45-hour week → regular rate = (800+200)/45 = $22.22/hr, OT premium = $11.11 × 5 hrs
  7. Confirm FLSA compliance flag for employees with multiple pay types
FLSA regular rate calculation correctly incorporates all non-excludable earnings (stipends, supplements) when computing overtime premium for employees with varying pay.
36
Create Paychecks, ACH File & Garnishment File
Untested
/account/payroll-disbursements
  1. Navigate to Payroll Disbursements
  2. Select a completed payroll run
  3. Click Generate ACH File — verify NACHA-format file is produced for DD employees
  4. Click Print Checks — verify check stubs are generated for non-DD employees
  5. Verify garnishment amounts are separated into a garnishment file for bank upload
  6. Check that ACH file contains correct routing numbers, account numbers, and amounts
  7. Verify check numbers are assigned sequentially
System generates downloadable ACH file (NACHA format), printable check stubs, and garnishment file for bank upload from a completed payroll run.
37
Month-End Payroll Accrual Calculation
Untested
/account/payroll-accruals
  1. Navigate to Payroll Accruals
  2. Click Calculate for the current month
  3. Verify the system calculates accrued salary expense for days between last pay date and month-end
  4. Check that the accrual entry includes: salary expense, employer FICA, employer retirement match
  5. Verify GL journal entries are generated with correct debit/credit accounts by fund code
  6. Click Post to post the accrual to GL
  7. Verify the accrual is automatically reversed on the first day of the next month
Month-end accrual correctly prorates salary and employer costs for the stub period. Accrual journal entries are generated and auto-reversed.
38
Hours/Wages Alignment — HR ↔ Finance / GL
Untested
/account/payroll-reports/hours-wages
  1. Navigate to Payroll Reports → Hours & Wages Alignment
  2. Verify the report shows hours classified by pay code (REG, OT, STIP, etc.)
  3. Verify wages are classified by GL account and fund code
  4. Compare payroll hours/wages with HR records to confirm alignment
  5. Check that overtime hours and wages are tracked separately
  6. Verify fund allocations match between payroll and GL posting
  7. Confirm the report can be filtered by department, fund, and date range
Single source of truth for hours and wages across HR and Finance. Hours classified by pay code and wages by GL account/fund, with overtime tracked separately.
39
Annual Payroll Reporting (W-2s, W-2Cs)
Untested
/account/payroll-compliance/w2s
  1. Navigate to Payroll Compliance → W-2s
  2. Verify W-2 data is populated from YTD accumulators (Box 1: wages, Box 2: fed tax, etc.)
  3. Check that GA state wages (Box 16) and state tax (Box 17) are correct
  4. Verify pre-tax deductions (TRS, health, FSA) correctly reduce Box 1 wages
  5. Test W-2C (correction) workflow for a corrected employee record
  6. Confirm W-2s can be exported / printed in IRS-compliant format
W-2 forms are generated with accurate wage, tax, and benefit data. W-2C corrections can be requested for amendments. Export in IRS format available.
40
Month-End PTO Liability Accrual to GL
Untested
/account/payroll-accruals/pto-liability
  1. Navigate to Payroll Accruals → PTO Liability
  2. Verify the system calculates PTO liability = accrued hours × employee hourly rate
  3. Check employees with multiple positions — liability split across departments/cost centers
  4. Verify fund allocation percentages are applied correctly to the PTO liability
  5. Confirm GL journal entries: debit PTO expense, credit PTO liability by fund
  6. Verify month-over-month change is posted (not cumulative re-posting)
PTO liability is calculated per employee, allocated across positions/funds, and posted as a GL journal entry. Multi-position employees have liability split by department allocation.
41
Quarter-End & Year-End Reporting (FICA, 1095, Multi-Worksite)
Untested
/account/payroll-compliance
  1. Navigate to Payroll Compliance hub
  2. Check Quarterly Report — verify FICA/GA tax totals for the quarter
  3. Check 1095 Forms — verify ACA reporting with employee benefit enrollment data
  4. Verify multi-worksite reporting (employees assigned to different school locations)
  5. Confirm all reports can be exported for filing
  6. Verify year-end close process resets appropriate accumulators
Quarterly and annual compliance reports (941, 1095, state filings) are generated with accurate data. Multi-worksite allocation supported for BLS reporting.
42
Check Printing for Non-Direct Deposit Payments
Untested
/account/payroll-disbursements → Print Checks
  1. Navigate to Payroll Disbursements
  2. Select a completed payroll run
  3. Click Print Checks — filter to employees with payment method = Check
  4. Verify check stub includes: employee name, pay period, earnings detail, deductions detail, net pay
  5. Verify check numbers are assigned and tracked
  6. Confirm checks can be voided and replacements issued
Physical checks can be printed for non-DD employees with full earning/deduction detail on the stub. Check numbering and void/replace workflow supported.
43
Labor Reporting by Category (Certified vs Classified)
Untested
/account/payroll-reports/labor-by-fund
  1. Navigate to Payroll Reports → Labor by Category
  2. Verify report breaks down labor costs by Certificated Employees vs Classified Employees
  3. Check that salary, PTO accruals, stipends, supplements are reported per category
  4. Verify totals by fund code (General Fund 100, Title I, etc.)
  5. Confirm overtime costs are reported separately within each category
  6. Verify report can be filtered by date range and exported
Labor costs reported by employee classification (certified/classified) with breakdowns by pay type, fund, and department. Supports budget-to-actual analysis.
44
Retroactive Labor Distribution Redistribution
Untested
/account/fund-allocations
  1. Navigate to Fund Allocations for an employee
  2. Change the labor distribution (e.g., move from 100% Fund 100 to 80% Fund 100 / 20% Fund 301)
  3. Set the effective date retroactively (e.g., back to start of month)
  4. Verify the system generates a redistribution journal entry to move already-posted labor costs
  5. Check the GL entries: debit new fund, credit old fund for the retroactive period
  6. Confirm future payrolls use the updated allocation going forward
Labor distribution can be changed retroactively. System generates correcting journal entries to redistribute prior-period costs to the new fund/account allocation.
45
PTO Balance Payout on Employee Termination
Untested
/account/pto-accruals → Termination Payout
  1. Navigate to HR → Time Management → PTO Accrual Policies
  2. Select an employee eligible for PTO payout on termination
  3. Initiate a Termination Payout
  4. Verify the system calculates payout = accrued balance × hourly rate
  5. Check that the PTO plan's payout eligibility rules are enforced
  6. Verify the payout amount is added as a final check or off-cycle payment
  7. Confirm PTO balance is zeroed out after payout
System calculates PTO payout based on accrued balance and rate, respects plan eligibility rules, and processes as part of final pay.
46
Payroll Accruals (GL Liability)
Untested
/account/payroll-accruals
  1. Navigate to Payroll Accruals
  2. Review existing accrual entries (calculate, post, reverse cycle)
  3. Verify accrual calculation includes: salary, employer FICA, employer retirement, employer benefits
  4. Check GL entries have correct liability accounts (21xx series)
  5. Verify posted accruals can be reversed
  6. Confirm accrual history is maintained for audit trail
Payroll accruals are calculated for all employer cost components, posted as GL journal entries, and reversible. Full audit trail maintained.
47
YTD Adjustments to Employee Wages
Untested
/account/payroll-adjustments/create
  1. Navigate to Payroll Adjustments → Create
  2. Select an employee and choose adjustment type = YTD Adjustment
  3. Enter wage adjustment amounts (gross, federal tax, state tax, FICA, etc.)
  4. Provide a reason (e.g., "Mid-year transfer from another district")
  5. Submit for approval
  6. After approval, verify the adjustment updates YTD accumulators
  7. Confirm the adjustment appears on the employee's pay history and W-2 data
YTD adjustments can be entered for employees (e.g., mid-year hires from other employers). Adjustments update accumulators and flow through to W-2 reporting.
48
New Hire Record from Talent Acquisition
Untested
/account/new-hire-onboarding
  1. Navigate to HR → New Hire Onboarding
  2. Show an employee record that was created from the recruitment/talent acquisition module
  3. Verify employee data flows from hiring: name, position, department, salary, start date
  4. Check that payroll-specific fields are populated: pay type, pay schedule, tax filing status
  5. Verify direct deposit information can be entered during onboarding
  6. Confirm benefit enrollment is triggered for the new hire
  7. Check that the employee appears in the next payroll run after their start date
Employee records created in Talent Acquisition flow seamlessly into payroll onboarding with pre-populated data. New hire is payroll-ready after completing onboarding steps.
49
Employee History Drill-Down
Untested
/account/employees/{id} → Activity tab + Payroll timeline
  1. Open an employee profile (e.g., Samantha Lowell)
  2. Navigate to the Activity tab — see audit log of all changes
  3. Navigate to Payroll Reports → Employee Timeline for the same employee
  4. Verify pay history is visible: each paycheck with gross, deductions, net
  5. Drill into a specific paycheck to see full earnings and deductions breakdown
  6. Check salary change history (if any step/lane changes occurred)
  7. Verify position history is tracked (transfers, promotions)
  8. Confirm deductions history shows start/stop dates and amounts
Complete employee history is accessible: activity audit log, paycheck history with drill-down, salary changes, position history, and deduction history. All changes timestamped.
50
Online Lost Check Replacement Request
Untested
/account/payroll-disbursements → Void & Replace
  1. Navigate to Payroll Disbursements
  2. Find a check-type disbursement for an employee
  3. Click Void on the original check
  4. Verify the system prompts for a reason (e.g., "Lost check")
  5. Confirm a disclaimer/acknowledgment is required before voiding
  6. Verify a replacement check is automatically generated with a new check number
  7. Check that the original check is marked as void in the register
  8. Verify the replacement check can be printed or converted to direct deposit
Employee AcknowledgmentEmployee must confirm the original check is lost/destroyed
Stop PaymentOriginal check stop payment is initiated with the bank
Audit TrailVoid reason, voided-by user, and timestamp are recorded
Lost check replacement workflow: void original (with disclaimer), issue replacement with new check number, maintain audit trail. Stop payment coordination supported.