Book a call
Case study
Payroll SaaS (NDA)
Payroll and HR SaaS

Payroll that HR teams can trust with statutory filings

A Singapore SaaS company wanted to replace the spreadsheets SMBs run payroll on with one regulated platform. We engineered it end to end in 39 weeks, with 20+ bank integrations and automated CPF and IR8A reporting.

Payroll and HR SaaS on a laptop and a phone: monthly payroll run and an employee payslip
−70%
payroll processing time per cycle, from 20+ hours to under 6, as reported by HR teams using the platform.
97%
payroll accuracy on first submission, removing most of the manual reconciliation each cycle used to need.
−80%
compliance errors and delays, because CPF and IR8A reports are generated from verified payroll data.
Engagement
39 weeks, discovery to delivery
Team
MetaProject engineering team, end to end
Region
Singapore (APAC)
Today
Live and expanding toward multi-country payroll
01 · The business problem

Payroll that works at five employees breaks at fifty

Small and mid-sized businesses in Singapore have long run payroll on spreadsheets, point tools and the occasional outsourced bookkeeper. HR teams spent 15 to 30 hours per payroll cycle reconciling spreadsheets by hand, with employee and leave data spread across separate systems.

The statutory side was the most fragile part. CPF contributions vary by employee age and citizenship status, IR8A tax filings are labour-intensive, and every manual re-entry step was a chance for a filing error.

The brief: one platform for payroll, HR, leave, tax reporting and bank payout, built for Singapore's rules and accurate enough that an HR team would trust it with statutory filings.

02 · What was at stake

Rules change, releases shouldn't

CPF rates, contribution caps and statutory thresholds change periodically. Hard-coded logic would turn every regulatory update into a code release.

Clean records from messy data

New customers arrived with data in legacy systems and spreadsheets. Leave management and payroll reconciliation only work if the employee record underneath is clean.

Payroll day is the peak

The platform moves employee money through 20+ banks, each with its own quirks, and load peaks at the end of every month. Security and ACID guarantees had to be there from the first release.

Payroll screen on a tablet with employee payment settings, monthly pay, ad hoc pay types and a salary summary
03 · How we solved it

Four decisions that took manual work out of every payroll cycle

01

Keep the regulation in a parameter layer

Each client configures work schedules, leave accrual and tax handling per employee category within what the regulation allows. Regulatory values live in a parameter layer the engine reads, so most updates are configuration changes that can be tested and rolled back without a release cycle. The build cost more upfront. Maintenance cost dropped.

02

Optimise the payroll engine for correctness

Days off, bonuses, allowances, tax refunds and leave carried across pay periods all interact, and CPF's age and citizenship rules add corner cases that break a naive implementation. We spent the engineering effort on edge conditions, since a payroll error costs the customer far more than a slow calculation.

97%
accuracy on first submission
03

One payout interface for every bank

The integration layer hides each bank's API style and file conventions behind a uniform interface. The payroll engine doesn't care where a payout goes, and adding another bank is a connector and configuration job rather than a re-architecture.

20+
Singaporean banks live for automated payouts
04

Generate filings from verified payroll data

Manual re-entry caused most filing errors. CPF submissions and IR8A reports are produced directly from payroll data the HR team has already checked, so reporting becomes a verification step.

−80%
compliance errors and delays
Work schedule management on a laptop: group shifts, daily work settings and employees by department
04 · Timeline

Weeks 1–4 · Discovery

Regulatory scope and success criteria.

Weeks 5–20 · Core engine and MVP

Payroll engine, compliance layer, essential HR modules.

Weeks 21–32 · Full integration

20+ bank integrations, security, mobile-ready frontend.

Weeks 33–36 · Testing and QA

End-to-end testing, API validation, staging dry runs.

Weeks 37–39 · Delivery

Launch, client onboarding, post-launch fixes.

After handover

A platform built to grow without re-architecture

The engagement closed after launch, client onboarding and post-launch fixes, and the platform passed to the client's team. Adoption followed quickly: 85% of the platform's clients use automated leave and payroll, and 60% moved to direct bank payouts within three months.

The platform is in continuous evolution. Its roadmap covers payroll beyond Singapore, AI-assisted forecasting and compliance risk alerts, and API integrations with accounting and ERP systems. Because the rules engine was designed for it, a new jurisdiction means defining its parameters rather than rebuilding the engine.

39 weeks

from discovery to delivery

20+

bank integrations live for automated payouts

85%

of clients using automated leave and payroll after go-live

60%

adopted direct bank payouts within three months

05 · Results in full

−70%

payroll processing time per cycle

97%

payroll accuracy on first submission

−80%

compliance errors and delays

−40%

monthly HR administrative hours

30%

faster employee onboarding

4.6/5

client satisfaction in post-launch surveys

Under the hood

One suite covering the payroll engine, a configurable rules engine, the employee database, approval workflows, direct bank payouts, CPF and IR8A reporting, 2FA with session monitoring and audit logging, and a mobile-ready frontend.

.NET 9 / ASP.NET Core · Next.js + TypeScript · PostgreSQL (ACID) · AWS Multi-AZ · Terraform · Jenkins CI/CD with security gates · Figma · Postman and Swagger API contract tests

FAQ

Questions about this project

Why .NET 9 and Next.js for an HR / payroll system?

The stack choice followed the workload. .NET 9 / ASP.NET Core gave us the type safety and performance profile that payroll calculations reward. Financial data demands strict typing and the .NET ecosystem has decades of patterns for handling money correctly. Next.js + TypeScript on the frontend gave us responsive, mobile-ready interfaces that HR managers could use from any device. PostgreSQL on the data layer enforces the ACID guarantees you can't compromise on for payroll. The workload drove the stack.

How do you handle regulatory updates in a payroll engine?

By separating regulatory parameters from regulatory logic. Singapore's CPF rates, contribution caps, and statutory thresholds change periodically. If those values are hard-coded throughout the engine, every regulatory update is a code change. If they live in a parameter layer that the engine reads, most regulatory updates become configuration changes, applied without a release cycle, tested in isolation, rolled back cleanly if needed. This pattern adds complexity to the initial build but dramatically reduces the cost of every subsequent regulatory cycle.

How long does the transition from spreadsheets to automated payroll SaaS take?

For an end-user company adopting a platform like this, the transition typically spans a few weeks of data migration plus a parallel-running period of one or two payroll cycles before full cutover. The platform itself was built over a 39-week engagement. Migration timelines for individual clients onto the platform are much shorter, because the platform was designed to absorb messy source data without compromising the integrity of the new records.

Can the platform expand beyond Singapore?

Architecturally, yes, and that's part of the current roadmap. The configurable rules engine was designed precisely so that adding a new jurisdiction is a matter of defining its regulatory parameters and operational specifics, not re-architecting the engine. Multi-country expansion is one of the post-launch workstreams.

Can you share the client name?

The client name is withheld under NDA. Get in touch if you'd like to discuss the engagement at more depth under a mutual NDA. We can walk through the architecture and operational decisions at a level not appropriate for public material.

Is regulation slowing down your release cycle?

Tell us what you are building. We will come back with an honest view of how we would approach it.