ZyncDocs · NG-Payroll
Must Should Could
Functional Requirements

NG-Payroll — Nigerian Payroll

The complete requirements capture of the Nigerian payroll as implemented in the Zerp ERP backend (zerp-be, development branch): a monthly pay-run engine with annualised PAYE withholding, configurable statutory contributions — Pension, NHF, NHIS, NSITF — GL journal posting, and on-screen payslips. Each module below summarises the capability and links to its detailed, testable requirements; the Processes tab walks the end-to-end operating cycle.

7
Modules
40
Requirements
6
Process flows
5
Statutory schemes

Configure

Item catalogue, item groups, contribution groups with scheme rates, tax brackets, GL accounts.

Enrol

Employee tax profiles, standing item assignments, statutory registration numbers.

Run

Snapshot inputs → calculate → approve → post journal → pay.

Remit

Per-run PAYE and contribution summaries feeding agency remittance.

Foundation

Setup & configuration CFG

Everything configured before the first run: the pay-component catalogue, reusable item bundles, statutory scheme rates, the year's PAYE parameters, and the ledger accounts.

Detailed requirements →
Actors: HR Admin, Finance AdminRequirements: 7

Capabilities & scope

  • Payroll item catalogue — allowance / deduction / overtime / tax-relief definitions with taxability, statutory bases, GL account, frequency, and the single basic-salary flag.
  • Item groups — named bundles of items + default amounts, applied to many employees in one skip-and-report action.
  • Contribution groups — statutory policies holding each scheme's rates, who pays, and GL payable accounts.
  • Per-year tax brackets — PAYE bands auto-seeded; personal relief values operator-set.
  • Company config — payroll GL accounts; spreadsheet import for catalogue, groups and assignments.

Key requirements

IDRequirementPriority
FR-CFG-I01/I02Maintain the item catalogue (no seeds); enforce a single basic-salary item.Must
FR-CFG-B01Define item groups and bulk-apply them into standing assignments with skip-and-report semantics.Must
FR-CFG-G01Define contribution groups whose configured rates the run applies.Must
FR-CFG-T01Per-year tax brackets; auto-seed bands for current + next year (reliefs ship as zero).Must
FR-CFG-A01Resolve GL accounts from config; refuse to post without a liability account.Must

Statuses & key values

Item types: ALLOWANCE / DEDUCTION / OVERTIME / TAX_RELIEF Frequency: MONTHLY / ANNUALLY Value types: PERCENTAGE / FIXED

Foundation

Employee payroll profile EMP

The payroll-relevant employee data: tax category and family reliefs, employment dates, contribution-group link, the standing item assignments that define pay, and per-scheme registration numbers.

Detailed requirements →
Actors: HR Admin, HR StaffRequirements: 6

Capabilities & scope

  • Tax profile on the employee master — category, children, manual relief top-up.
  • Standing item assignments — catalogue item + amount + effective window; no-overlap rule; annual ÷12 smoothing.
  • Per-employee statutory numbers (TIN, pension PIN, NHF/NHIS/NSITF numbers).
  • Spreadsheet import of assignments resolving employees by reference/PIN.

Key requirements

IDRequirementPriority
FR-EMP-P01Hold the tax/statutory profile on the employee master; payroll reads it without modifying it.Must
FR-EMP-A01/A02Assignments active by effective window at the pay date; no overlapping assignments of the same item.Must
FR-EMP-A03Annual amounts smooth ÷12.Must
FR-EMP-S01One registration number per scheme per employee, upserted via a single form.Must

Statuses & key values

Assignment: ACTIVE / INACTIVE Tax category: SINGLE / MARRIED_SPOUSE_WORKING / MARRIED_SPOUSE_NOT_WORKING

Engine

Pay run lifecycle RUN

The monthly run: create → add employees (snapshotting leave, overtime, absence and contributions) → calculate → approve → post journal → mark paid, with reject/cancel paths and calendar-day proration for partial months.

Detailed requirements →
Actors: HR Admin (preparer + approver)Requirements: 9

Capabilities & scope

  • Five-state lifecycle with status-driven editability and audited transitions.
  • Period-input snapshotting from approved leave, timesheets and attendance; resync + manual overrides; items read live at calculate.
  • Deterministic calculation — prorate → gross → statutory → PAYE → net → employer cost — written atomically.
  • Live estimates on uncalculated lines; in-app notifications on approve / reject / paid.

Key requirements

IDRequirementPriority
FR-RUN-L01Enforce the status machine; every transition audited.Must
FR-RUN-E01Snapshot unpaid leave, overtime, absence and contributions per employee on add/resync.Must
FR-RUN-P01Prorate salary, allowances, deductions and the statutory base by calendar-day fraction for mid-month joiners/leavers.Must
FR-RUN-X01Calculate in the defined order, atomically; net pay floors at zero.Must
FR-RUN-W02Maker/checker separation (today the same user can calculate and approve).Could

Statuses & key values

Run: DRAFT / PENDING_APPROVAL / APPROVED / PAID / CANCELLED net = max(0, gross − deductions − statutory − tax)

Engine

Statutory contributions STA

Pension, NHF, NHIS and NSITF computed from contribution-group configuration — rates are tenant data, bases derive from tagged items (or basic + allowances), and every row stores prorated and full-month twin amounts.

Detailed requirements →
Actors: System (computed)Requirements: 5

Capabilities & scope

  • Pension typically 8% employee / 10% employer of emoluments; NHF 2.5% of basic; NSITF 1% employer — configured, not coded.
  • Scheme bases via item tagging (e.g. pension on basic + housing + transport).
  • Employee shares feed PAYE relief ×12, uncapped; employer shares feed employer cost only.

Key requirements

IDRequirementPriority
FR-STA-R01One contribution row per scheme per employee per run, with prorated + full-month twin amounts.Must
FR-STA-R02Base = items tagged with the scheme, else basic + allowances; prorated for partial months.Must
FR-STA-C01Compute by configured value type: percentage of base or fixed amount (÷12 if annual).Must
FR-STA-C02Employer amounts never reduce employee pay and are excluded from the salary journal.Should

Engine

PAYE income tax TAX

Annualised monthly withholding: gross less a monthly slice of the annual reliefs, ×12, walked through the progressive PAYE bands (₦800k zero band to 25%), ÷12 — stateless month to month, no rebate.

Detailed requirements →
Actors: System (computed)Requirements: 6

Capabilities & scope

  • Reliefs: personal / spouse / child from the year's bracket, statutory contributions (uncapped), item reliefs ×12.
  • Per-year configurable bands, auto-seeded "Nigeria PAYE {year}" brackets.
  • Identical math for draft estimates and final calculation.

Key requirements

IDRequirementPriority
FR-TAX-M01/M02The annualised computation, stateless across months, no rebate.Must
FR-TAX-R01/R02Personal reliefs from bracket + employee profile; statutory reliefs from full-month contributions ×12.Must
FR-TAX-B01Progressive band walk on the pay year's configured bands.Must

Finance

GL journal posting GL

An approved run becomes one balanced journal: DR Salary Expense (Σ gross); CR item deductions, employee statutory shares, PAYE, and per-employee net salary payable. Preview first; unmapped accounts block; journal required before payment.

Detailed requirements →
Actors: Finance AdminRequirements: 4

Key requirements

IDRequirementPriority
FR-GL-L01Post one balanced entry per run with the defined legs; employer costs excluded by design.Must
FR-GL-P01/P02Dry-run preview; posting refuses on unmapped accounts or a missing liability account.Must
FR-GL-R01Re-posting replaces the prior entry — never two live entries per run.Must

Outputs

Payslip & outputs OUT

The on-screen payslip per run line (earnings, deductions, statutory shares, PAYE) and per-run contribution summaries for remittance. No documents or statutory files are generated today.

Detailed requirements →
Actors: HR Admin, Employee (recipient)Requirements: 3

Key requirements

IDRequirementPriority
FR-OUT-P01Compose the payslip (earnings, deductions, summary) from every run line.Must
FR-OUT-S01Per-run contribution and PAYE summaries for remittance and reconciliation.Must
FR-OUT-P02Payslip PDF, e-mail and self-service access (absent today).Could

Reference

Glossary

TermMeaning
PAYEPay-As-You-Earn — personal income tax withheld from salaries, remitted to the employee's State Internal Revenue Service.
PITAPersonal Income Tax Act — the statute behind PAYE bands and reliefs.
Pension (PRA 2014)Contributory pension under the Pension Reform Act — employee 8% + employer 10% of monthly emoluments, paid to the employee's PFA.
PFAPension Fund Administrator — holds each employee's retirement savings account (pension PIN).
NHFNational Housing Fund — 2.5% of basic salary, remitted to the Federal Mortgage Bank.
NHISNational Health Insurance Scheme (now NHIA) — health insurance contributions where operated.
NSITFNigeria Social Insurance Trust Fund — 1% employer levy under the Employee Compensation Act.
TINTax Identification Number — the employee's (and employer's) tax registration with FIRS/State IRS.
EmolumentsThe pension base — basic + housing + transport — modelled here by tagging those items to the pension scheme.
Contribution groupReusable policy holding each statutory scheme's rates, who pays, and its GL payable account.
Item groupA named bundle of catalogue items + default amounts, bulk-applied into standing assignments.
AnnualisationThe PAYE method: monthly taxable ×12 → band walk → annual tax ÷12, computed independently each month.

Reference

Known gaps — roll-up

The significant gaps in the implementation, consolidated from the detailed pages.

No bank/disbursement data or payment files — payment exists only as a GL accrual. (employee, GL)
No statutory returns, schedules or payslip documents — no PAYE returns, PFA pension schedules, NHF/NSITF filings, payslip PDFs or employee self-service pay access. (outputs)
Employer statutory costs never reach the GL; re-running an approved, journalled run orphans the posted journal; delete has no status guard. (GL, run)
PAYE has no year-to-date true-up and no bonus method — variable pay months over/under-withhold with no catch-up. (PAYE)
Statutory rates are unvalidated tenant data — no seeded Nigerian group, no rate checks, and personal reliefs ship as zero. (statutory, setup)
No maker/checker; claims/loans/advances not fed into runs. (run)
No employer statutory identity store (TIN, PENCOM code, NSITF number). (setup)