# Phase 3 Reconciliation Findings

Engine run: `payroll:run 2025-06` → `payroll:reconcile 2025-06 <template>`
Ruleset: **PITA** (Personal Income Tax Act — CRA + graduated bands).

## What reconciles (engine is correct)

| Figure | Result | Notes |
|---|---|---|
| **Gross pay** | **1,344 / 1,347 match** | basic (from salary table) + allowances |
| **PAYE income tax** | **1,342 / 1,347 match** | CRA + 7/11/15/19/21/24% bands; matching tax transitively validates pension & NHF, which are its reliefs |
| **Pension (8%)** | exact | 8% of consolidated salary (e.g. TI30277 → 16,625.71) |
| **NHF (2.5%)** | exact | 2.5% of consolidated salary (e.g. TI30277 → 5,195.53) |

The hard, statutory parts of the calculation reproduce the source to the kobo.

## What does not reconcile — and why it is a source-data issue, not an engine bug

**Net pay** differs for ~99% of staff. The direction is decisive:

- **1,340 employees**: the template's Net is **lower** than the engine's — i.e. the template's
  *Total Deduction* is **larger** than the sum of every itemised deduction column
  (NHF + Pension + PAYE + the 14 named voluntary deductions). Gap: **min ₦1,579.85,
  max ₦243,077.83, mean ₦14,354.24**, and it is **inconsistent per employee** (not a fixed
  formula), so it cannot be re-derived.
- **0 employees** where the engine legitimately over-deducts against comparable data.
- **4 employees** where engine Net < template Net — all data anomalies:
  - 1 × **CONMESS** staff (TI346577) with **no salary-table row** (template has no CONMESS
    consolidated-salary column), so the engine has no base pay to apply.
  - 3 × rare high grades (GL20/GL25, few staff) whose source consolidated-salary value is
    internally inconsistent.

### Conclusion
The template's **itemised deduction columns are incomplete**: the Total Deduction / Net Pay
were produced by the upstream payroll system and fold in deductions that were never broken
out into the visible columns. The engine faithfully computes Net from the data actually
present. **Full net reconciliation requires the complete deduction schedule**, not the 14
columns in this template.

## Follow-ups
1. Obtain the full per-employee deduction schedule from the source system to close the net gap.
2. Add salary rows for CONMESS (and verify GL20/GL25 source amounts).
3. When the current-year Nigeria Tax Act figures are confirmed from an authoritative source,
   add a second `PayeStrategy` (effective-dated) alongside `PitaPayeStrategy`.
