Skip to content
All work
Custom BuildF&B group · Singapore

Custom payroll system for F&B outlets

Three companies, one login. A payroll system that gets Singapore statutory right where the off-the-shelf tools get expensive or vague — CPF across age and wage bands, SDL, the self-help groups, foreign worker levy — handles hourly part-timers and Work Permit staff, and files a byte-exact CPF EZPay submission per entity. Every figure on screen is clickable, and shows you the formula that produced it.

Services
Custom App Build · IT Modernisation
Engagement
In build · 2026
Where it stands
Phase 1 live (entities, people). CPF engine and EZPay filing in build.
3 entities
One login, correct submission number per company
Rates versioned
By effective date — 2027 changes slot straight in
Every figure
Clickable, and shows the formula behind it
Parallel first
Checked against a manual run before it goes live
The situation

A small F&B group running several Singapore entities: an admin company, a cafe outlet, and a third business coming online. Staff are hired under one entity today and move to another as each opens — which, in Singapore, is not an internal transfer at all. It is legally a new employment: new contract, CPF filed under a different submission number, a separate IR8A at year-end.

The workforce is mixed in exactly the way that breaks payroll tools: salaried admin staff who aren't on any roster, outlet staff who are, and hourly part-timers — plus Singaporeans on full CPF alongside Malaysians on Work Permits, who pay no CPF but attract a foreign worker levy instead.

The problem
01

Singapore statutory payroll is a minefield of edge cases

CPF rates change at 55, 60, 65 and 70 — and the new rate starts the month after the birthday, not on it. Below $750 a month, part-timers fall into wage bands where the employee share phases in. The Ordinary Wage ceiling moved to $8,000 in January 2026. Get the rounding wrong by a cent and the CPF file won't reconcile. Miss SDL on your Work Permit staff — a common slip — and you're under-declaring.

02

Every payroll product is built for an HR department

We looked hard at the incumbents. They're built around approval chains, permission matrices and dashboards — the furniture of an HR team. This business has one admin and a small crew of outlet staff on their phones. Most of the product is overhead you pay for and navigate around.

03

Nobody can see how the number was reached

The deepest problem with payroll software is that it hands you a figure and asks for trust. When you can't see the working, you can't check it — and CPF underpayment draws late interest and MOM's attention.

Payroll isn't hard because the arithmetic is hard. It's hard because the rules move, and you can't see the working.
The approach

Build the smallest system that gets the statutory maths exactly right, and make every number it produces explain itself.

Model the transfer honestly

We separated the person from the job. An employee is a person; an employment is that person's assignment to one entity, with start and end dates. Moving someone to the new outlet closes one employment and opens another — so CPF automatically files under the right submission number from that month, the year-end forms split correctly per entity, and the history stays intact.

Version the rates, never hard-code them

Every rate — CPF by age and wage band, SDL, the self-help groups, the levy — lives in a table keyed by effective date. The 2026 changes are in; the announced 2027 changes will slot in beside them. The engine reads the table for the month it's computing. Rates change every year in Singapore; a system that hard-codes them is a system that quietly goes wrong.

Make the payroll engine a pure calculation

The part that computes money does nothing else — no database writes, no side effects. That makes it exhaustively testable, and it's where the test coverage goes. Before it runs the business, it has to agree with the CPF Board's own contribution calculator, to the dollar, across every awkward case: band transitions, the annual wage ceiling, sub-$750 part-timers.

Show the working — on every figure

The signature of the system. Any computed amount on screen can be clicked, and it opens to show the formula with the real inputs: "OW $3,200 × 17% = $544.00 (employer), age band ≤55, rate table Jan 2026." It turns an opaque payslip into something an owner can audit in ten seconds — and it doubles as the tool for checking the system against a manual run.

Produce the file the government actually wants

There is no CPF submission API. The real deliverable is a byte-exact fixed-width file that CPF EZPay will accept — one per entity, per month — plus itemised payslips that satisfy the Employment Act and a bank file for paying everyone. So we build the generator and a validator that checks the output against the published spec before it ever reaches the portal.

What came out of it

Where it stands, and what it does:

  • One login across all three companies, with an entity switcher — because filing under the wrong entity is the most expensive mistake a multi-company payroll tool can let you make.
  • People and employments live: staff, entities, outlets, and clean entity-to-entity transfers.
  • A statutory engine covering CPF age and wage bands, SDL (including Work Permit staff), the self-help groups, and foreign worker levy as an employer cost.
  • Payroll review built around exceptions, not rows — it surfaces what changed and what looks wrong, rather than asking you to read every line.
  • Next: the CPF EZPay file generator and its validator, then itemised payslips and the bank payment file.
Why this matters for F&B owners

If you run a cafe, a bakery or a couple of outlets, your payroll is genuinely harder than a 200-person office's. Hourly part-timers, staff across more than one company, a mix of citizens and Work Permit holders — that's the exact combination that pushes you into the expensive tier of every payroll product, or into a spreadsheet you're quietly afraid of.

The alternative isn't a bigger product. It's a smaller one that knows your rules cold, shows you its working, and files what the government asks for. That is what we're building here — for our own group first, which is the only honest way to sell it to yours.

Sounds like your business?

Tell us what you're dealing with — a similar problem, a different one, or an idea of your own. It takes a minute, and it goes straight to Gordon.

More work