Every report, one way
Over the years Mintage had collected dozens of exports, each written slightly differently. In November we rebuilt them on a single shared base. Every report now follows the same pattern: it runs as a background job, reports its progress, and produces a file to download when it is done.
Moving across meant touching almost everything: payslips, PAYE manual and CSV files, the PAYE offline file, NIS manual, online and offline files, GRA Forms 2A and 7B, the payroll and year-to-date journals, deductions, insurance, pay labels and signature sheets. Form 7B PDFs now arrive together in a single zip file. Department sheet names are trimmed so long names no longer break spreadsheets, and we rewrote the deductions and year-to-date sheets.
Where the work happened
Most of November’s work landed inside the payroll modules themselves. Alongside the report rebuild, the calculation engine got a small fix so that NIS treats negative insurable income the same way as zero.
Sturdier data
We fixed a problem that could create duplicate payment period summaries and added a database rule so it cannot happen again. Excel imports became more forgiving, handling negative numbers, dashes used for zero, extra decimal places and differences in name case. In the calculation engine, PAYE and NIS now sit behind clear interfaces, and new tests cover how user input is cleaned before it reaches a calculation.
This article was written from Mintage Payroll’s commit history for November 2023. See Mintage Payroll today