Employee Compliance
Employee Compliance
Employee Compliance tracks mandatory regulatory and policy obligations for each Employee: I-9 employment eligibility, EEO voluntary self-identification, safety and harassment training, background checks, work authorization renewals, and custom items defined in Compliance Type.
Unlike Employee Document—which stores files—Employee Compliance records status, completion dates, renewal schedules, structured I-9/EEO fields, and optional verification attachments. Scheduled jobs warn HR before expiry and mark stale records Expired.
Help URL: smoothhiring.com/help/hrms/documents-compliance/employee-compliance
Table of Contents
- Overview
- Who this is for
- Compliance Type setup
- Desk paths
- Step-by-step: create compliance record
- Step-by-step: I-9 tracking
- Step-by-step: EEO voluntary data
- Step-by-step: renewals and expiry
- Status lifecycle
- Key fields
- Scheduled jobs
- Tips
- Troubleshooting
- Related guides
Overview
| Capability | Description |
|---|---|
| Typed obligations | Compliance Type defines category, mandatory flag, renewal rules |
| Status tracking | Pending → In Progress → Complete (or Expired / Non-Compliant) |
| I-9 sections | Section 1/2/3 completion checkboxes; List A/B/C document fields |
| EEO fields | Voluntary race, gender, veteran, disability self-ID |
| Verification | Attach proof document; Verified By / Verified On on Complete |
| Auto renewal date | Next Renewal Date from Compliance Type renewal period |
| Scheduler alerts | HR emailed 30 days before expiry on Complete records |
| Naming | Auto: COMP-{employee}-{compliance_type}-{####} |
Employee Compliance complements e-signatures: a signed I-9 PDF may live in Employee Document while the structured I-9 workflow lives here.
Who this is for
| Role | How they use Employee Compliance |
|---|---|
| HR Manager | Configure types; create records; verify completion; monitor expiry |
| HR User | Update status; enter I-9/EEO data; attach verification docs |
| Compliance officer | List views filtered by status/category; audit renewals |
| Payroll / legal | Confirm work authorization and tax compliance before start date |
Employee Self Service typically does not edit compliance records—employees provide data through onboarding portal sections instead.
Compliance Type setup
Configure master data at /app/compliance-type before creating employee records:
| Field | Purpose |
|---|---|
| Compliance Name | Unique name (for example "I-9 Form", "Harassment Training 2026") |
| Category | Work Authorization, Tax Compliance, Background Check, Safety Training, Harassment Training, Data Privacy, EEO Reporting, Other |
| Is Mandatory | Default flag for new hires |
| Requires Renewal | Enable for recurring training or reverification |
| Renewal Period (Months) | Used to calculate Next Renewal Date from completion |
| Description | Rich text instructions for HR |
| Applicable Countries / States | Optional geographic scope notes |
Create types that mirror your handbook: annual harassment training, OSHA safety orientation, background check clearance, I-9, EEO survey, etc.
Desk paths
| Action | Desk path |
|---|---|
| Employee Compliance list | /app/employee-compliance |
| New record | /app/employee-compliance/new-employee-compliance |
| Open record | /app/employee-compliance/{record-id} |
| Compliance Type list | /app/compliance-type |
| Filter by status | List view → Status filter |
| Employee context | /app/employee/{employee-id} |
Step-by-step: create compliance record
- Navigate to
/app/employee-compliance→ Add Employee Compliance. - Employee (required) — select worker.
- Compliance Type (required) — pick configured type; Category fetches automatically.
- Status — start at Pending or In Progress.
- As work progresses:
- Set Completion Date when requirement satisfied.
- Attach Verification Document (certificate PDF, background report).
- Enter Document Reference Number if external ID exists.
- When fully satisfied, set Status = Complete.
- Verified By and Verified On auto-populate on save if empty.
- Set Expiry Date when compliance time-limits apply (work authorization end date, training validity).
- Next Renewal Date may auto-calculate when Requires Renewal is set on Compliance Type and Completion Date is entered.
Step-by-step: I-9 tracking
For Compliance Type names containing "I-9", the form reveals I-9 Form Details:
Section 1 — Employee completes
- Employee completes Section 1 on paper, PDF, or e-sign outside this form.
- HR checks Section 1 Complete (Employee) when attestation received.
- Record List A document or List B + List C combinations in text fields:
- List A Document — single document proving identity and authorization
- List B Document — identity document
- List C Document — employment authorization document
Section 2 — Employer completes within 3 business days
- HR physically examines documents (or uses authorized remote procedure per your policy).
- Check Section 2 Complete (Employer).
- Attach copy of completed I-9 as Verification Document if stored digitally.
- Set Status = Complete with Completion Date.
Section 3 — Reverification
When work authorization expires:
- Check Section 3 Complete (Reverification) after new documents examined.
- Update Expiry Date and List A/B/C fields.
- Create follow-up Employee Compliance or renew same record per your SOP.
Pair with Employee Document rows for scanned List A/B/C images.
Step-by-step: EEO voluntary data
For EEO-related Compliance Types, the EEO Information (Voluntary) section appears:
| Field | Options include |
|---|---|
| Race/Ethnicity | Hispanic or Latino, White, Black or African American, Asian, etc.; Decline to Self-Identify |
| Gender | Male, Female, Non-Binary, Decline to Self-Identify |
| Veteran Status | Protected veteran, Not protected veteran, Decline |
| Disability Status | Yes, No, Decline |
Data is voluntary under federal EEO guidelines. Store only what employees provide through onboarding or HR intake. Use Notes for collection method (portal section, paper form date).
Set Status = Complete when survey recorded. EEO data typically has no expiry unless your reporting cycle requires annual re-collection—configure Compliance Type renewal if needed.
Step-by-step: renewals and expiry
- On Complete records with Expiry Date, monitor list view sorted by expiry.
- Scheduler
check_expiring_complianceemails HR Managers when expiry is within 30 days (Complete status only). - Scheduler
mark_expired_compliancedaily sets Expired when Expiry Date < today and status was Complete. - To renew:
- Create new Employee Compliance or revert status to In Progress
- Complete training / reverification
- Update Completion Date; system recalculates Next Renewal Date from Compliance Type Renewal Period (Months)
- Set new Expiry Date
Status lifecycle
| Status | When to use |
|---|---|
| Pending | Requirement identified; no work started |
| In Progress | Collection or verification underway |
| Complete | Obligation satisfied; dates and verification captured |
| Expired | Past expiry (auto or manual) |
| Non-Compliant | Failed or missing mandatory item |
Validation on save:
- Past Expiry Date forces Expired status via
check_expiry. - Complete without verified user auto-fills Verified By / Verified On.
Key fields
| Field | Description |
|---|---|
| Employee / Employee Name | Worker link and display name |
| Compliance Type / Category | Obligation type and fetched category |
| Status | Pending / In Progress / Complete / Expired / Non-Compliant |
| Completion Date | When requirement was met |
| Expiry Date | When compliance validity ends |
| Next Renewal Date | Auto from type renewal period + completion |
| Document Reference Number | External ID (case number, certificate ID) |
| Verification Document | Proof attachment |
| Verified By / Verified On | HR attestation |
| I-9 section checkboxes | Sections 1, 2, 3 completion |
| List A / B / C Document | I-9 document description text |
| EEO fields | Voluntary demographic self-ID |
| Notes | Free-text HR notes |
Scheduled jobs
Registered in hrms/hooks.py:
| Method | Schedule | Action |
|---|---|---|
check_expiring_compliance |
Daily | Email HR Managers 30 days before expiry (Complete records) |
mark_expired_compliance |
Daily | SQL update: Complete + past expiry → Expired |
Ensure HR Manager role users have valid email addresses to receive alerts.
Tips
- Create Compliance Types before hire batch so HR uses consistent names in reports.
- Use In Progress during background check pending—avoid marking Complete until clear.
- Separate I-9 document scans from I-9 compliance record—file scans in Employee Document; track sections here.
- Set Expiry Date on work authorization compliance even when Employee Document also tracks visa PDF.
- Requires Renewal + Renewal Period automates Next Renewal Date—reduces manual calendar tracking.
- Non-Compliant status flags exceptions for management review without deleting history.
- Notes field documents who collected EEO data and when—for audit responses.
Troubleshooting
| Issue | What to do |
|---|---|
| I-9 section not visible | Compliance Type name should include "I-9" |
| EEO section not visible | Compliance Type name should include "EEO" |
| Next Renewal Date blank | Set Completion Date; enable Requires Renewal on type |
| Status flipped to Expired | Expiry Date in past; update date or renew |
| No expiry email to HR | Record must be Complete; expiry within 30 days |
| Verified By empty on Complete | Re-save with Complete status; auto-fills current user |
| Duplicate compliance rows | Filter by employee + type; merge manually if needed |
| Category wrong | Category fetches from Compliance Type—edit type master |
Related guides
- Documents & Compliance Overview
- Employee Documents
- Signature Templates
- Employee Onboarding
- Employee Records
- Company Setup
Last updated: May 2026
Smooth LMS (training)
| Guide | Link |
|---|---|
| LMS help home | smoothhiring.com/help/lms |
| HRMS + LMS overview | lms/hrms-integration/overview |
| Auto-provision LMS access | lms/hrms-integration/employee-auto-provisioning |
| Onboarding mandatory training | lms/hrms-integration/onboarding-mandatory-training |
| Compliance vs certificates | lms/hrms-integration/compliance-vs-lms-certificates |
| Mandatory courses | lms/courses/mandatory-training-and-validity |
| Course categories (folders) | lms/courses/categories-and-tags |