Starter contract

hr_employee

17 rules · plain YAML · starts in observation mode

OpenDQV Cloud starter template (v0.1) — your tenant inherits this baseline. First customer edit creates v1.0 in your audit trail; pin by yaml_hash for replay. HR employee record validation aligned with UK employment law, HMRC RTI (Real Time Information) payroll reporting requirements, and ICO guidance on employee data under UK GDPR. Enforces email format, UK National Insurance number format (HMRC prefix exclusion rules), contract type classification under the Employment Rights Act 1996, employment status values, right-to-work classification (Immigration Act 2014), salary currency, and salary anomaly detection. Prevents payroll submission failures, right-to-work compliance gaps, and HMRC RTI rejection at source.

These are starting points you own. Every rule below ships in the trial, starts in observation mode, and is yours to read, edit, or delete from day one. Rules that reference a lookup list (lookup_file) validate against reference data you control in your tenant.
Rules as at 29 August 2026 — starting points you own, not a maintained regulatory feed. We correct errors in these samples; tracking regulatory change in your active contracts is yours.
RuleFieldSeverityWhat it enforces (the message your team sees)
employee_id_requiredemployee_iderroremployee_id is required
first_name_requiredfirst_nameerrorfirst_name is required
last_name_requiredlast_nameerrorlast_name is required
email_requiredemailerroremail is required
email_formatemailerroremail must be a valid email address
ni_number_formatni_numbererrorni_number must be a valid UK National Insurance number (e.g. AB123456C) — invalid NI numbers cause HMRC RTI payroll rejection
ni_number_not_reserved_prefixni_numbererrorni_number uses an HMRC-reserved prefix (BG, GB, NK, KN, TN, NT, or ZZ) — these are never issued to real taxpayers and will be rejected by HMRC RTI
department_requireddepartmenterrordepartment is required
job_title_requiredjob_titleerrorjob_title is required
start_date_formatstart_dateerrorstart_date must be a valid date (YYYY-MM-DD)
salary_minsalaryerrorsalary must be >= 0
salary_nmw_warningsalarywarningsalary is below £10,000 — verify this is not a full-time role that may be below National Living Wage (NLW) threshold (National Minimum Wage Act 1998)
salary_currency_formatsalary_currencywarningsalary_currency must be a valid ISO 4217 three-letter code (e.g. GBP, EUR, USD)
contract_type_requiredcontract_typeerrorcontract_type is required
contract_type_validcontract_typeerrorcontract_type must be one of: permanent, fixed_term, zero_hours, contractor, apprentice, intern, casual, agency
employment_status_valuesemployment_statuswarningemployment_status must be one of: active, on_leave, maternity_leave, paternity_leave, sick_leave, gardening_leave, notice_period, suspended, terminated, retired
right_to_work_valuesright_to_work_statuserrorright_to_work_status must be one of: verified_british_irish, verified_eu_settled, verified_visa, verified_share_code, pending_verification, not_required, expired — unverified employees expose the employer to civil penalties up to £60,000 (Immigration Act 2014)

Run your own data against this contract in the free trial — drop a CSV in the dashboard, no code, no credit card. Start free trial →