Mintage Payroll ·

The first monthly payroll takes shape

Employees can be assigned to a monthly payroll and recalculated, with hooks for allowances and deductions, bank details, departments and live updates.

1 min read168 commits that monthPayrollCalculations

A payroll you can run

May is when the pieces from April started working together. The central addition was the ability to assign an employee to a monthly payroll and compute their pay for each period, along with an API to recalculate those periods when something changed. For the first time, the system could take an employee and a salary and produce figures.

To keep that calculation flexible, we introduced payroll hooks. Instead of one long function that knows about every allowance and deduction, each item plugs into the calculation at a defined point. An allowance hook came first, then more. This is how Mintage can treat PAYE, NIS and company-specific items in the same way, and add new ones without rewriting the core.

The details payroll needs

Much of the rest of the month went into the details that make a payroll usable. Banks were seeded and employees could be paid by bank transfer, cash or cheque. Switching an employee to cash or cheque now clears their account number, so stale banking details do not linger. Departments and designations arrived, along with life and health insurance premiums. The first payroll export endpoints appeared too.

We also added real-time updates. When a payroll changes, the server broadcasts an event so that open screens can refresh without a reload. That matters when one person is editing a payroll while another is reviewing it.

Test data that looks real

A good share of commits went into seeders: realistic gross salaries, deductions and bank lists for testing. Calculations are only as trustworthy as the cases you test them against, and this month we focused on the monthly cycle first.

This article was written from Mintage Payroll’s commit history for May 2021. See Mintage Payroll today