- Go to Payroll → Compensation → Gross-Up Calculator in sidebar, click "New Gross-Up"
- Select any employee (e.g. Samantha Lowell or Bri Matthew)
- Enter desired net amount (e.g. $200.00 or $500.00)
- Select payment type: Bonus (or Stipend, Relocation, Award, Supplement)
- Select tax method: Supplemental Flat Rate (22% Fed)
- Click "Calculate" — the right panel shows Calculation Results with full tax breakdown
- Verify the numbers match the formula:
Gross = Net ÷ (1 - 0.3514) - Click "Save" — redirects to Gross-Up Detail page with status DRAFT
- Click "Approve" — status changes to APPROVED
- Click "Submit to Gusto" — status changes to SUBMITTED
- Go to Payroll Dashboard → Recent Runs → Off-Cycle tab — verify the off-cycle run appears with correct Gross Pay and Net Pay
- 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 |
- Go to Payroll → Payroll Processing → Import Data, click "Upload Import"
- Select import type: One-Time Payments
- Click "Download Template" — a CSV file downloads with the correct column headers
- Open the template and fill in rows (see sample data below), save as CSV
- Upload the filled CSV file and click "Upload & Validate"
- System validates the file — review the detail page showing Total Rows, Successful, Errors
- If validated, click "Process Import" to create the payment records
- 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.
- Go back to Import Data → Upload Import
- Select import type: Stipends
- Click "Download Template" — note the extra columns (frequency, effective_date, end_date)
- Fill the template with stipend data, including frequency (per_pay_period, monthly, annual)
- Upload, validate, and process
- 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 |
- Go to Payroll → Compensation → Additional Payments, click "Add Payment"
- Select employee, payment type (Bonus), enter amount ($300), frequency (One-Time)
- Add description, fund code, and account code
- Click Save — payment created with status Pending
- Click "Approve" on the row — status changes to Approved
- 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 Payments | Columns: employee_id, email, amount, description, fund_code, account_code |
| Stipends | Columns: + frequency, effective_date, end_date |
| Deductions | Columns: employee_id, deduction_code, amount, email, effective_date, end_date |
| YTD Adjustments | Columns: employee_id, adjustment_type, amount, email, description |
| Template download | Each import type generates a different CSV template with correct headers |
| Validation errors | Upload a file with bad data (missing employee, negative amount) — errors shown per row |
| Employee matching | Employees can be matched by ID, email, or employee number |
| Import history | All imports listed on the Import Data index page with status and row counts |
| Payment types | Manual form supports: Stipend, Bonus, Allowance, Supplement, One-Time, Semi-Annual |
| Frequencies | One-Time, Per Pay Period, Monthly, Semi-Annual, Annual |
- Go to Payroll → Compensation → Additional Payments, click "+ Add Payment"
- Select employee: Samantha Lowell
- Payment type: Stipend
- Amount: $150.00
- Frequency: Per Pay Period (recurring each payroll)
- Description: Media Specialist Stipend
- Set effective date: 2026-01-01, end date: 2026-06-30
- Add fund code: 100, account code: 6110
- Click Save — payment created with status Pending
- Create a Bonus for Bri Matthew — $500, One-Time frequency
- Create an Allowance for Lauren David — $75/month, Monthly frequency
- Create a Supplement for Marcus Thompson — $200, Per Pay Period
- Verify all 4 new payments appear in the list with correct types and status Pending
- On the Additional Payments list, click the action menu (⋮) on Samantha's stipend and select Approve
- Status changes from Pending to Approved
- Select checkboxes on the remaining 3 pending payments
- Click "Bulk Approve Selected" — all selected change to Approved
- Click edit on any payment — change the amount, verify it saves correctly
- 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.
| Stipend | Regular supplemental pay (e.g., department lead, media specialist) |
| Bonus | One-time or recurring bonus payment |
| Allowance | Ongoing allowance (e.g., car allowance, phone allowance) |
| Supplement | Supplemental pay for extra duties |
| One-Time Payment | Single occurrence payment tied to a specific pay period |
| Semi-Annual | Payment processed every 6 months |
| One-Time | Single payment in a specific pay period |
| Per Pay Period | Every payroll run (biweekly/semi-monthly) |
| Monthly | Once per month |
| Semi-Annual | Every 6 months |
| Annual | Once per year |
| Filter by type | Use the "All Types" dropdown to filter by Stipend, Bonus, etc. |
| Filter by status | Use the "All Statuses" dropdown to filter Pending vs Approved |
| Fund/GL codes | Fund Code, Account Code, GL Debit, GL Credit fields save and display correctly |
| Date range | Effective and end dates control when recurring payments are active |
- Go to Payroll → Compliance & Tax in the sidebar
- Verify the dashboard shows: active SUI rate, active override count, current tax year, current quarter
- Review the quick-link cards to W-2, 1095, Tax Overrides, FLSA, Quarterly Reports
- Click Tax Overrides (or navigate via sidebar)
- Click "New Override"
- Select tax type: SUI (State Unemployment Insurance)
- Enter new rate: 2.70% (Georgia SUI), effective date: 2026-01-01
- Click Save — system calculates retroactive adjustment if previous rate exists
- View the override detail — shows rate, effective/expiration dates, retroactive amount, status
- Try creating overrides for other types: FUTA, Workers Comp, Local Tax
- Go to Gross-Up Calculator → New Calculation
- After calculating, scroll to Applied Rates section to see all maintained rates
- Verify the system maintains current federal, state, and FICA rates (see table below)
- Click FLSA Calculator link
- Select an employee and pay period
- System calculates the blended overtime rate (regular rate × 1.5) across all compensation types
- Verify the calculation accounts for salary + any additional payments
- Click W-2 Forms — shows employee W-2s by year with wages, federal/state tax
- Click 1095 Forms — shows ACA compliance forms (1095-B/C) with coverage months
- Click Quarterly Reports — shows federal, state, and FICA tax liability by quarter
| Federal Supplemental Rate | 22% (IRS flat rate for supplemental payments under $1M) |
| Georgia State Tax | 5.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 |
| SUI | State Unemployment Insurance — company-specific rate with retroactive adjustment |
| FUTA | Federal Unemployment Tax Act |
| Local | Local/Municipal taxes by jurisdiction |
| Supplemental | Supplemental withholding rate overrides |
| Workers Comp | Workers' 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 cap | Gross-up calculator sets SS to 0% if employee YTD exceeds $168,600 |
| Additional Medicare | Extra 0.9% Medicare kicks in above $200,000 YTD |
| Retroactive SUI | When SUI rate changes, system calculates retroactive adjustment amount |
| Override scope | Overrides can be company-wide or specific to one employee |
| Gusto sync | Tax tables updated via Gusto integration — federal/state rates maintained by payroll provider |
- Go to Payroll → Adjustments & Corrections → Audit & Controls
- Click "Activate Blackout" button
- Enter a reason: "Biweekly payroll processing in progress"
- Confirm activation — dashboard shows red "PAYROLL BLACKOUT ACTIVE" banner
- Note the start time and reason displayed
- Navigate to Salary Changes — try to create a new salary change → should be BLOCKED with error message
- Navigate to Deduction Codes — try to create or edit a deduction code → should be BLOCKED
- Verify you can still view/read salary changes and deduction codes (GET requests are allowed)
- The error message should say: "This action is blocked during payroll processing. Reason: Biweekly payroll processing in progress"
- Go to Blackout Periods page
- Verify the active blackout appears with status, start time, reason, and who activated it
- Go back to Audit & Controls dashboard
- Click "Deactivate Blackout" on the active blackout banner
- Dashboard changes to "OPEN" status
- Now retry the salary change or deduction edit — should be ALLOWED again
- 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 Changes | Create, approve, apply, reject, and mass step increments are blocked |
| Deduction Edits | Create, update, and delete deduction codes are blocked |
| Benefit Changes | Create and update benefits and benefit enrollment events are blocked |
| New Hire Setup | New hire onboarding can be restricted during blackout |
| Viewing salary schedules and changes | GET requests are never blocked |
| Viewing deduction codes | List and detail views remain accessible |
| Payroll dashboard and reports | Full read access maintained |
| Employee directory | View-only access continues |
| Error message | Includes the blackout reason in the error response |
| HTTP 423 | AJAX requests return HTTP 423 (Locked) status code |
| Audit trail | Blackout history shows activated_by, deactivated_by, timestamps |
| Immediate effect | Blackout takes effect instantly — no page refresh needed for enforcement |
- Go to Payroll → Compensation → Salary Changes, click "+ New Salary Change"
- Select employee: Samantha Lowell
- Current salary displays automatically
- Enter new annual salary: $62,000
- Change reason: Annual Step Increment
- Set effective date: 07/01/2026 (future-dated)
- Set board approval date: 06/15/2026
- Select schedule, enter new step & lane if applicable
- Add fund code: 100, account code: 6110
- Add notes: "Annual step increment per CBA schedule"
- Click Create Request — status should be Pending
- Create another salary change for Marcus Thompson
- New salary: $58,000, effective date: 03/01/2026 (past date)
- Check "Calculate Retro Pay" checkbox
- System should calculate retro pay owed since effective date
- Review the retro pay amount shown before submitting
- Click Create Request
- On the Salary Changes list, find Samantha's pending request
- Click Approve — status changes to Approved
- Click Apply — status changes to Applied and employee's salary is updated
- Navigate to the employee's profile and verify salary reflects $62,000 (or will on effective date)
- On the Salary Changes page, click "Mass Step Increment"
- Select a salary schedule and effective date
- System generates salary change requests for all employees on that schedule
- Review and bulk approve the generated requests
- View any salary change detail — verify it shows: old salary, new salary, % change, effective date, board approval date, reason, notes, who requested, who approved
- Check that the change history is maintained as an audit trail
- 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 Increment | Step advancement per salary schedule |
| Lane Change | Education/certification-based lane move |
| Promotion | Position-based salary increase |
| Market Adjustment | Competitive market rate alignment |
| Reclassification | Job reclassification to different pay grade |
| Board Approved Raise | Board-approved compensation change |
| Correction | Salary correction/error fix |
| Effective dating | Future-dated changes are stored but not applied until effective date |
| Retro pay | Backdated changes auto-calculate retro pay owed |
| Board approval date | Separate field tracks when board approved the change |
| Reject workflow | Rejected changes saved with rejection reason, remain in history |
| Fund accounting | Fund code and account code assigned to the salary change |
- Go to Payroll → Payroll Processing → Fund Allocations
- Find an employee who works across multiple departments (e.g., a teacher who also coaches)
- Verify the allocation shows multiple fund codes / cost centers with percentage splits
- Example: 60% General Fund (100) + 40% Title I Grant (220)
- Click "Add Allocation" or edit an existing employee's allocation
- Select employee: Lauren David
- Add allocation line 1: Fund 100 (General), Account 6110, 70%
- Add allocation line 2: Fund 220 (Title I), Account 6110, 30%
- Verify total = 100% — system should enforce this
- Click Save
- Go to Payroll Dashboard and view a completed payroll run
- Check the employee's paycheck detail or Journal Entries
- Verify the salary was split across the allocated cost centers (70/30)
- Each allocation line should appear as a separate GL journal entry
- Go to Reports → Payroll Reports → Labor by Category
- Verify the report shows labor cost broken down by fund code / department
- 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.
| Employee | Lauren 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% validation | System rejects allocations that don't total 100% |
| Multiple cost centers | Support 2+ fund codes per employee |
| GL journal entries | Each fund allocation generates a separate journal entry line |
| Reporting | Labor by Category report shows correct split across departments |
| Position control | Positions can be linked to specific fund/department combos |
- Go to Fund Allocations
- Select or add employee: Marcus Thompson
- Create a split allocation:
- Line 1: Fund 100 (General Fund), Account 6110, 50%
- Line 2: Fund 330 (Title III Grant), Account 6110, 30%
- Line 3: Fund 450 (ESSER Grant), Account 6110, 20%
- Verify the total equals 100% and click Save
- Run or view a payroll that includes Marcus Thompson
- Open his paycheck detail
- Verify the gross pay is distributed:
50% charged to Fund 100
30% charged to Fund 330
20% charged to Fund 450 - Employer taxes and benefits should also be split proportionally
- Go to GL & Accruals → Journal Entries
- Find the payroll journal entry for the run
- Verify 3 separate debit lines for Marcus — one per fund code
- Each line should show the correct amount (50/30/20 of gross)
- Go to Payroll Reports → Labor by Category
- Verify Marcus appears in all 3 funds with correct proportional amounts
- 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 splits | System supports more than 2 allocation lines |
| Tax proportionality | Employer taxes (SS, Medicare, TRS) split same as salary |
| Mid-period changes | Allocation changes during a pay period handled correctly |
| Grant reporting | Reports can filter labor costs by specific grant/fund code |
| Audit trail | Allocation changes are logged with who changed and when |
- Go to Payroll → Deductions → Garnishments
- Click "+ Add Garnishment"
- Select employee: Marcus Thompson
- Garnishment type: Child Support
- Amount: $350.00 per pay period
- Case number: CS-2026-1234
- Payee: DeKalb County CSEA
- Enter effective date: 01/01/2026
- Set max disposable earnings cap: 50% (federal limit for child support)
- Add fund code / GL account for the liability
- Click Save
- Still on Marcus Thompson, click "+ Add Garnishment" again
- Type: Tax Levy (IRS)
- Amount: $200.00 per pay period
- Case/reference: IRS-2026-5678
- Priority: 2 (child support takes priority = 1)
- Click Save
- Verify both garnishments appear on Marcus's profile with correct priority order
- Create a Student Loan garnishment for Samantha Lowell — $150/pay period
- Create a Creditor/Judgment garnishment for Bri Matthew — 25% of disposable income
- Verify each shows correct type, amount/percentage, and status Active
- View Marcus's garnishment summary — child support at priority 1, tax levy at priority 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
- View a payroll run that includes garnished employees
- Go to GL & Accruals → Journal Entries
- Verify garnishment deductions appear as liability entries (credit to garnishment payable)
- Each garnishment type should map to a separate GL account
- 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 Support | Priority 1 — up to 50-65% disposable income |
| Tax Levy (IRS/State) | Priority 2 — per IRS Form 668-W calculation |
| Student Loan | Priority 3 — up to 15% disposable income |
| Creditor/Judgment | Priority 4 — up to 25% disposable income |
| Bankruptcy | Per court order amount |
| Multiple garnishments | System handles 2+ active garnishments with priority ordering |
| Disposable income cap | Total garnishments cannot exceed legal limits on disposable earnings |
| GL interface | Each garnishment creates a liability entry in the general ledger |
| Payee tracking | Garnishment payee (court, agency) is tracked for disbursement |
| End date / total cap | Garnishments auto-stop when end date or total amount reached |
| Audit trail | All garnishment setup, changes, and payments are logged |
- Go to Payroll → Deductions → Deduction Codes
- Click "+ Add Deduction Code"
- Name: Health Insurance - Employee
- Code: HLTH-EE
- Category: Benefits - Health
- Calculation type: Flat Amount
- Default amount: $275.00 per pay period
- Pre-tax: Yes (Section 125 / Cafeteria Plan)
- GL Debit: 6210 (Benefits Expense), GL Credit: 2110 (Benefits Payable)
- Click Save
- Click "+ Add Deduction Code"
- Name: 403(b) Retirement
- Code: RET-403B
- Category: Retirement
- Calculation type: Percentage of Gross
- Rate: 6%
- Pre-tax: Yes
- Annual max: $23,500 (IRS 403b limit 2025)
- Click Save
- Click "+ Add Deduction Code"
- Name: Laptop Payback
- Code: EQUIP-LAPTOP
- Category: Other - Post Tax
- Calculation type: Descending Balance
- Amount per period: $50.00
- Total balance: $1,200.00
- Pre-tax: No
- Click Save
- Verify the system shows remaining balance = $1,200 and calculates stop date (~24 pay periods)
- Click "+ Add Deduction Code"
- Name: Uniform Purchase
- Code: UNIFORM-1X
- Category: Other - Post Tax
- Calculation type: One-Time
- Amount: $85.00
- Pre-tax: No
- Click Save
- Verify the deduction is set to process only once then auto-deactivate
- Navigate to an employee's benefit/deduction profile (or Employee Benefits page)
- Assign HLTH-EE (health) and RET-403B (retirement) to Samantha Lowell
- Assign EQUIP-LAPTOP (descending balance) to Marcus Thompson
- Assign UNIFORM-1X (one-time) to Lauren David
- Verify each employee's deduction summary shows the correct type, amount, and remaining balance (for descending)
- View a payroll run / paycheck that includes these employees
- 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 Amount | Fixed dollar amount per pay period (e.g., $275/period for health insurance) |
| Percentage of Gross | Percentage of gross pay (e.g., 6% for 403b), with optional annual maximum |
| Descending Balance | Fixed amount deducted each period against a total balance (e.g., $50/period against $1,200 laptop) |
| One-Time | Single deduction processed once then auto-deactivated |
| Benefits - Health | Medical, dental, vision (typically pre-tax Sec. 125) |
| Benefits - Life | Life insurance, AD&D |
| Retirement | 403(b), 457, TRS (pre-tax) |
| HSA/FSA | Health savings / flexible spending (pre-tax) |
| Other - Pre Tax | Parking, transit (pre-tax) |
| Other - Post Tax | Equipment payback, uniforms, union dues |
| Pre-tax vs Post-tax | Pre-tax deductions reduce taxable income; post-tax do not |
| Annual max | Percentage deductions respect annual maximum (e.g., $23,500 for 403b) |
| Descending balance | Remaining balance decrements each period, stops at $0 |
| One-time auto-stop | One-time deductions process once then status changes to Completed |
| GL mapping | Each deduction code maps to GL debit (expense) and credit (payable) accounts |
| Multiple deductions | Employees can have multiple active deductions of different types simultaneously |
- Go to Payroll → Payroll Processing → Substitute Payroll
- Verify the page shows integration options for Frontline (AESOP)
- Review the import format: employee ID, absence date, hours, daily rate, school/location
- Click "Import Substitute Data" or go to Import Data
- Download the substitute payroll template
- Fill in sample data: substitute name/ID, absent teacher, date, hours worked, daily rate
- Upload the CSV — system validates employee matching and calculates pay
- Review the imported records — each shows substitute, school, hours, and calculated pay
- Select imported substitute records for a pay period
- Verify each record shows: substitute name, absent teacher, date, hours, rate, total pay
- Approve the batch — records are included in the next payroll run
- 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_id | Employee ID or email of the substitute |
| absent_employee_id | Employee who was absent |
| absence_date | Date of the absence |
| hours | Hours worked by substitute |
| daily_rate | Pay rate for the substitute |
| location | School or cost center |
| fund_code | Fund to charge for substitute pay |
- Go to Payroll → Compensation → Additional Payments, click "+ Add Payment"
- Select employee: Marcus Thompson (Football Coach)
- Payment type: Supplement
- Amount: $3,000.00 (per payment)
- Frequency: Semi-Annual
- Description: "Head Football Coach Supplement - FY26"
- Effective date: 07/01/2025, End date: 06/30/2026
- Fund code: 100, Account: 6150
- Click Save
- View the payment in the list — frequency shows Semi-Annual
- Verify the system will process this payment twice per year (e.g., December and June)
- 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 |
- Go to Salary Changes → New Salary Change
- Select employee: Lauren David
- New salary: $58,000 (increase from current)
- Reason: Promotion
- Effective date: 01/01/2026 (backdated ~3 months)
- Check "Calculate Retro Pay" checkbox
- System auto-calculates the retro amount owed from effective date to today
- Click Create Request
- View the salary change detail
- 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 - Approve and apply the change
- Go to Payroll → Adjustments & Corrections → Retro Pay
- Verify the retro pay record appears with correct employee, amount, and source salary change
- 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 |
- Go to Salary Changes and click "Mass Step Increment"
- Select a schedule and set effective date to a past date (e.g., 01/01/2026)
- Click Generate Requests
- Verify each generated request automatically has retro pay calculated
- The retro column in the table should show the calculated retro amount
- Create a new salary change with effective date in the past
- Check "Calculate Retro Pay"
- System should automatically calculate the retro amount without manual entry
- Verify the calculation: (new biweekly - old biweekly) × number of elapsed pay periods
- After approving and applying a retro salary change, go to Retro Pay
- Verify a retro pay record was automatically created (no manual entry needed)
- The record links back to the originating salary change
- 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.
- Go to Finance → Other → Compliance & Tax
- Verify the dashboard shows the current Georgia SUI rate
- Note the current rate (e.g., 2.64%) and wage base ($9,500)
- Go to Tax Overrides, click "New Override"
- Tax type: SUI (State Unemployment Insurance)
- New rate: 2.70%
- Effective date: 01/01/2026 (backdated to start of year)
- Click Save
- After saving the override, check the detail page
- System should show a retroactive adjustment amount
- Calculation: for each employee who earned below the $9,500 wage base since Jan 1, compute (new rate - old rate) × taxable wages
- 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 Range | 0.04% to 8.10% (experience-rated) |
| New Employer Rate | 2.64% |
| Override Scope | Company-wide — applies to all employees |
| Retro Calc | (New Rate - Old Rate) × taxable wages per employee since effective date |
- Go to HR → Time Management → PTO Accrual Policies
- Verify policies exist (e.g., Vacation, Sick Leave, Personal Days)
- Check each policy shows: accrual rate, frequency, max balance, carryover limit
- Click Accrual Entries
- Verify entries show: employee name, accrual type, hours accrued, date, running balance
- Check that accruals happen automatically per pay period
- Go to GL & Accruals → PTO Liability
- Verify the report shows total PTO liability in dollars (hours × hourly rate) by employee
- Check that liability is broken down by cost center / fund code
- Go to GL & Accruals → Journal Entries
- Filter for PTO-related entries
- Verify each accrual creates a journal entry:
Debit: PTO Expense (by cost center)
Credit: PTO Liability (accrued vacation payable) - 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.
- Go to Payroll → Payroll Processing → Import Data, click "New Import"
- Select import type: One-Time Payments — click Download Template
- Switch to Stipends — click Download Template
- Switch to Deductions — click Download Template
- Switch to YTD Adjustments — click Download Template
- Verify each template has correct headers and pre-filled sample employee data
- Fill in the One-Time Payments template with 5+ rows of test data
- Upload the CSV — system validates each row
- Review validation results: green rows = valid, red = errors
- Click Process — records created as Additional Payments
- Fill in the Deductions template: employee_id, deduction_code, amount
- Upload and validate
- Process — deductions assigned to employees
- Fill in the YTD Adjustments template: employee_id, adjustment_type, amount
- Upload and validate — useful for mid-year system transitions
- 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 Payments | employee_id, email, amount, description, fund_code, account_code |
| Stipends | + frequency, effective_date, end_date |
| Deductions | employee_id, deduction_code, amount, effective_date, end_date |
| YTD Adjustments | employee_id, adjustment_type, amount, description |
- Go to Garnishments — find an employee with an active Tax Levy garnishment
- Note the "Withholding Locked" flag is set to Yes
- This prevents the employee from modifying their W-4 withholding allowances
- Log in as the garnished employee (or simulate their view)
- Navigate to tax withholding / W-4 settings
- The form should be locked / read-only with a message explaining why
- Expected message: "Your withholding settings are locked due to an active garnishment. Contact payroll for changes."
- As an admin, view the garnishment detail
- Verify the "Withholding Locked" toggle is visible
- Admin can unlock if needed (e.g., after garnishment ends)
- 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 Support | Withholding locked by default (admin can override) |
| Student Loan / Creditor | Withholding not locked unless admin enables |
- Go to Reports → Payroll Reports (or use link above)
- Click Labor Costs report
- Verify the report shows total labor costs for the selected period
- 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
- Use the department or fund code filter
- Verify labor costs update to show only the selected department
- Compare totals across departments
- Click Labor by Category
- Verify the report breaks down labor costs by fund code (General, Title I, ESSER, etc.)
- 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.
- Go to Payroll Reports → Overtime
- Verify the report shows overtime by employee:
Employee name, department
Regular hours, overtime hours
OT rate (1.5×), OT pay amount
Total compensation - Check that the report can be filtered by date range and department
- Click Hours & Wages report
- Verify it shows per-employee: regular hours, OT hours, total hours, regular pay, OT pay, shift differential, total gross
- Filter by pay period to see specific payroll run data
- Click FLSA Calculator
- Select an employee who receives both salary and supplements
- System calculates the blended regular rate = (total compensation) / (total hours)
- OT rate = blended rate × 1.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 Pay | Base salary or hourly rate × regular hours |
| Overtime Pay | OT hours × 1.5 × blended rate |
| Shift Differential | Extra pay for non-standard shifts (evening, weekend) |
| Supplements | Athletic, academic, duty supplements |
| FLSA Blended Rate | (Salary + Supplements + Other) / Total Hours = Regular Rate for OT |
- Go to Payroll → Disbursements → Direct Deposit (list of all employees)
- Click on an employee (e.g., Samantha Lowell) to open their DD detail page
- View Current Payment Method — shows type (Direct Deposit / Check), bank accounts, last 4 digits
- In Update Payment Method section, select Direct Deposit
- Enter bank details: bank name Bank of America, routing 061000104, account 123456789, type Checking
- Click Update Payment Method and verify it saves
- 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 Types | Direct Deposit or Check |
- Open an employee record (e.g., Marcus Thompson)
- Click Edit on the profile section
- Change the address to: 123 College Ave, Decatur, GA 30030
- Save the change
- Navigate to Employee Details tab, change department from Decatur High School to Renfroe Middle School
- Save and verify the change is reflected
- 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.
- Navigate to Payroll → Payroll Settings
- On the Earning Codes tab, verify codes: REG, OT (1.5x), STIP, SUPP, BONUS, RETRO
- Check each earning code has GL Debit Account, tax treatment (Taxable, FICA, Retirement), and OT eligibility
- Click Add Earning Code to show the create form with all configuration options
- Switch to the Deduction Codes tab — verify codes: FIT, SIT, FICA-SS, FICA-MED, TRS, HLTH, DNTL, FSA, 403B, GARN
- Check each deduction has GL Debit/Credit, pre-tax vs post-tax, category, and calculation method
- 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 Payable | 2110 (Credit) |
| State Tax Payable | 2120 (Credit) |
| FICA Payable | 2130 (Credit) |
| Benefits Payable | 2200 (Credit) |
| Payroll Cash | 1010 (Credit) |
- This is the same RFP requirement as #22. Use a different employee for variety.
- Open Jessica Chen's record
- Change pay type from salary to hourly (or vice versa) — verify system prompts for effective date
- Change tax filing status (e.g., Single → Married)
- 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.
- Go to Payroll → Compensation → Additional Payments
- Click Add Payment
- Select employee: Samantha Lowell
- Set type: Stipend, description: Staff Development Stipend - Fall 2026
- Enter amount: $500.00, fund code: 100
- Set frequency: One-time, effective date: next pay period
- Save and verify it appears in the payments list with status Pending
- 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.
| Employee | Samantha Lowell (CSD-1001) |
| Payment Type | Stipend |
| Amount | $500.00 |
| Fund Code | 100 (General Fund) |
| Samantha's Existing Stipend | $500 Staff Development (already in paycheck) |
- Open an employee with deductions (e.g., Samantha Lowell)
- Navigate to the Deductions tab
- Observe existing deductions: TRS 6%, Health Insurance, Dental, FSA, 403(b)
- Look for the Arrears column or section — this tracks when a deduction couldn't be fully taken (e.g., employee on unpaid leave)
- Verify the system shows arrears balance for any undercollected deductions
- Verify that on the next payroll, the system would attempt to catch up arrears (collect missed amount + current)
- 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.
| Example | Employee on unpaid leave → health insurance still due |
| Deduction | Health Insurance: $163.58/semi-monthly |
| If Net Pay < Deductions | Shortfall tracked as arrears balance |
| Next Period | System collects current + arrears (up to configurable max) |
- Go to Payroll Dashboard, open or create a payroll run for the current pay period
- Click Run Trial / Calculate (pre-list)
- Verify the system calculates gross pay for each employee based on salary/hours
- Verify deductions (taxes, benefits, retirement) are correctly applied
- Verify net pay = gross - taxes - deductions
- Check for any warnings/messages (e.g., missing time entries, deduction exceeds net, new hire without DD)
- Review the reconciliation summary: total gross, total taxes, total deductions, total net, total employer cost
- 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 Retirement | 6% employee + 20.29% employer |
- Open a payroll run that has been calculated (trial run from #27 or any existing run)
- Look for a Compare / Variance section or tab
- Verify it shows current period amounts side-by-side with previous period
- Check that differences are highlighted (e.g., new hires, salary changes, missing employees)
- Verify variance amounts and percentages are calculated correctly
- 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 Employee | Shows as "New" (no previous amount) |
| Salary Change | Variance shown with $ and % difference |
| Missing Employee | Flagged as warning (was in last run but not this one) |
| OT Variance | Higher gross due to overtime highlighted |
- Open a payroll run in draft or pending_review status
- Click on an employee's paycheck to view details
- Make an adjustment: add 2 overtime hours for Robert Jenkins
- Verify the system recalculates gross pay, taxes, and net pay
- Make another adjustment: add a one-time $100 bonus for Patricia Moore
- Click Recalculate to rerun the trial with adjustments
- 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 Impact | Run totals increase, taxes recalculated |
- Open a completed payroll run (e.g., Aug 16-31 Period #4)
- Look for the Audit Report or Post-Payroll Summary section
- Verify it shows: employee count, total gross, total deductions, total taxes, total net, total employer cost
- Check for per-employee breakdown with all pay components
- Verify journal entries are linked and balanced (debits = credits)
- Look for an Export / Download option (PDF or Excel)
- 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 Totals | Gross, Taxes, Deductions, Net, Employer Cost |
| Employee Detail | Per-employee breakdown of all components |
| Journal Entries | Debit/credit by fund code and GL account |
| Variance Flags | Any adjustments made during trial |
| Export Format | PDF and/or Excel download |
- Navigate to Payroll Dashboard
- Click Initiate Off-Cycle button
- Select a check date and reason (e.g., "Missed stipend payment")
- Add one or more employees to the off-cycle run
- Enter payroll data (earnings, hours) for added employees
- Verify the off-cycle run is created with type off_cycle
- Process through approval workflow (submit → approve)
- Confirm direct deposit is available for off-cycle checks (payment method from employee record)
- Verify the off-cycle run appears separately from regular runs in the payroll list
- Navigate to Retro Pay page
- Click Underpayments to view the system-detected underpayment scan
- Verify the system identifies employees who were underpaid (e.g., salary change applied late)
- Create a new retro pay request — select employee, original vs corrected amount, affected periods
- Submit the retro pay for approval
- Approve the retro pay request
- Verify the retro amount is calculated correctly (difference × number of periods)
- Confirm retro pay can be included in the next regular or off-cycle payroll run
- Navigate to Payroll Adjustments
- Create an overpayment adjustment — select employee, type = overpayment, enter amount
- Verify the system records the overpayment with details (pay period, reason)
- Set up a recovery plan (e.g., deduct $X per pay period until recovered)
- Record a manual payment if employee repays directly
- Use Pre-list Comparison (point #28) to show how overpayments are initially caught
- Check that overpayment balance tracks remaining amount owed
| Current Process | HR maintains a list; reaches out to employees for repayment |
| Detection | Usually caught via pre-list comparison (current vs previous payroll) |
| Volume | Not a big problem — low frequency of overpayments |
| DD Reversal | If caught early, direct deposit reversal may be possible before settlement |
- Navigate to Payroll Reports → YTD Summary
- Verify the report shows Fiscal Year-To-Date totals per employee (gross, taxes, deductions, net)
- Check for Quarter-To-Date (QTD) breakdowns
- Check for Month-To-Date (MTD) breakdowns
- Verify accumulators roll up correctly across pay periods
- Confirm totals match individual paycheck details when drilled into
- Check that FICA (SS + Medicare) YTD tracks against annual limits ($168,600 SS wage base)
- Navigate to Payroll Compliance → FLSA Calculator
- Select an employee with varying pay (e.g., regular pay + stipend)
- Verify the system calculates the regular rate by combining all earnings types
- Check that stipends are included in the FLSA regular rate calculation
- Verify overtime premium is calculated on the blended rate, not just base rate
- 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
- Confirm FLSA compliance flag for employees with multiple pay types
- Navigate to Payroll Disbursements
- Select a completed payroll run
- Click Generate ACH File — verify NACHA-format file is produced for DD employees
- Click Print Checks — verify check stubs are generated for non-DD employees
- Verify garnishment amounts are separated into a garnishment file for bank upload
- Check that ACH file contains correct routing numbers, account numbers, and amounts
- Verify check numbers are assigned sequentially
- Navigate to Payroll Accruals
- Click Calculate for the current month
- Verify the system calculates accrued salary expense for days between last pay date and month-end
- Check that the accrual entry includes: salary expense, employer FICA, employer retirement match
- Verify GL journal entries are generated with correct debit/credit accounts by fund code
- Click Post to post the accrual to GL
- Verify the accrual is automatically reversed on the first day of the next month
- Navigate to Payroll Reports → Hours & Wages Alignment
- Verify the report shows hours classified by pay code (REG, OT, STIP, etc.)
- Verify wages are classified by GL account and fund code
- Compare payroll hours/wages with HR records to confirm alignment
- Check that overtime hours and wages are tracked separately
- Verify fund allocations match between payroll and GL posting
- Confirm the report can be filtered by department, fund, and date range
- Navigate to Payroll Compliance → W-2s
- Verify W-2 data is populated from YTD accumulators (Box 1: wages, Box 2: fed tax, etc.)
- Check that GA state wages (Box 16) and state tax (Box 17) are correct
- Verify pre-tax deductions (TRS, health, FSA) correctly reduce Box 1 wages
- Test W-2C (correction) workflow for a corrected employee record
- Confirm W-2s can be exported / printed in IRS-compliant format
- Navigate to Payroll Accruals → PTO Liability
- Verify the system calculates PTO liability = accrued hours × employee hourly rate
- Check employees with multiple positions — liability split across departments/cost centers
- Verify fund allocation percentages are applied correctly to the PTO liability
- Confirm GL journal entries: debit PTO expense, credit PTO liability by fund
- Verify month-over-month change is posted (not cumulative re-posting)
- Navigate to Payroll Compliance hub
- Check Quarterly Report — verify FICA/GA tax totals for the quarter
- Check 1095 Forms — verify ACA reporting with employee benefit enrollment data
- Verify multi-worksite reporting (employees assigned to different school locations)
- Confirm all reports can be exported for filing
- Verify year-end close process resets appropriate accumulators
- Navigate to Payroll Disbursements
- Select a completed payroll run
- Click Print Checks — filter to employees with payment method = Check
- Verify check stub includes: employee name, pay period, earnings detail, deductions detail, net pay
- Verify check numbers are assigned and tracked
- Confirm checks can be voided and replacements issued
- Navigate to Payroll Reports → Labor by Category
- Verify report breaks down labor costs by Certificated Employees vs Classified Employees
- Check that salary, PTO accruals, stipends, supplements are reported per category
- Verify totals by fund code (General Fund 100, Title I, etc.)
- Confirm overtime costs are reported separately within each category
- Verify report can be filtered by date range and exported
- Navigate to Fund Allocations for an employee
- Change the labor distribution (e.g., move from 100% Fund 100 to 80% Fund 100 / 20% Fund 301)
- Set the effective date retroactively (e.g., back to start of month)
- Verify the system generates a redistribution journal entry to move already-posted labor costs
- Check the GL entries: debit new fund, credit old fund for the retroactive period
- Confirm future payrolls use the updated allocation going forward
- Navigate to HR → Time Management → PTO Accrual Policies
- Select an employee eligible for PTO payout on termination
- Initiate a Termination Payout
- Verify the system calculates payout = accrued balance × hourly rate
- Check that the PTO plan's payout eligibility rules are enforced
- Verify the payout amount is added as a final check or off-cycle payment
- Confirm PTO balance is zeroed out after payout
- Navigate to Payroll Accruals
- Review existing accrual entries (calculate, post, reverse cycle)
- Verify accrual calculation includes: salary, employer FICA, employer retirement, employer benefits
- Check GL entries have correct liability accounts (21xx series)
- Verify posted accruals can be reversed
- Confirm accrual history is maintained for audit trail
- Navigate to Payroll Adjustments → Create
- Select an employee and choose adjustment type = YTD Adjustment
- Enter wage adjustment amounts (gross, federal tax, state tax, FICA, etc.)
- Provide a reason (e.g., "Mid-year transfer from another district")
- Submit for approval
- After approval, verify the adjustment updates YTD accumulators
- Confirm the adjustment appears on the employee's pay history and W-2 data
- Navigate to HR → New Hire Onboarding
- Show an employee record that was created from the recruitment/talent acquisition module
- Verify employee data flows from hiring: name, position, department, salary, start date
- Check that payroll-specific fields are populated: pay type, pay schedule, tax filing status
- Verify direct deposit information can be entered during onboarding
- Confirm benefit enrollment is triggered for the new hire
- Check that the employee appears in the next payroll run after their start date
- Open an employee profile (e.g., Samantha Lowell)
- Navigate to the Activity tab — see audit log of all changes
- Navigate to Payroll Reports → Employee Timeline for the same employee
- Verify pay history is visible: each paycheck with gross, deductions, net
- Drill into a specific paycheck to see full earnings and deductions breakdown
- Check salary change history (if any step/lane changes occurred)
- Verify position history is tracked (transfers, promotions)
- Confirm deductions history shows start/stop dates and amounts
- Navigate to Payroll Disbursements
- Find a check-type disbursement for an employee
- Click Void on the original check
- Verify the system prompts for a reason (e.g., "Lost check")
- Confirm a disclaimer/acknowledgment is required before voiding
- Verify a replacement check is automatically generated with a new check number
- Check that the original check is marked as void in the register
- Verify the replacement check can be printed or converted to direct deposit
| Employee Acknowledgment | Employee must confirm the original check is lost/destroyed |
| Stop Payment | Original check stop payment is initiated with the bank |
| Audit Trail | Void reason, voided-by user, and timestamp are recorded |