Skip to content

From spreadsheet payroll to one source of truth

Most small companies run payroll from four workbooks that disagree. What breaks, what a single payroll record looks like, and how to move without retyping.

Updated 5 min read

Four overlapping spreadsheets folding into a single payslip.

Ask a thirty-person company how it runs payroll and you will usually hear about a process, not a system: hours are exported from the time tracker into an hours sheet, the hours sheet feeds a salary sheet, the salary sheet feeds a tax workbook, and every month someone builds thirty payslips by hand from the result. It works, in the sense that people get paid. It also fails quietly in ways nobody notices until a tax certificate, a leaver or an auditor asks a question.

What four workbooks cost you

The hours sheet and the salary sheet hold the same number, typed twice. The tax workbook holds a third copy of gross pay, annualised. The medical-claim register holds each employee’s grade limit, which also lives in the grading structure. None of these copies knows about the others, so a mid-month salary change, a joiner on the 3rd or a switch of pay cycle has to be applied in four places by the one person who remembers all four.

  • Formulas drift. A cell overwritten with a number in March still looks like a formula in September. The sheet keeps balancing because the total is also a formula.
  • History is a folder. Last year’s salary is whatever the file named Salary sheet Aug v3 FINAL says. There is no journal of when a salary changed or who approved it.
  • The employee has nothing. A payslip is a PDF someone remembered to email. Nobody can see their own year-to-date tax without asking accounts.
  • Leavers are a special project. The final settlement is a fresh sheet per person, rebuilt from leave balances, advances and the last month’s hours that live in three other places.

The number that must exist exactly once

The root of the mess is not spreadsheets. It is that the facts payroll needs have no owner. Hours worked belong to attendance. The grade and the joining date belong to HR. The salary, the tax regime and the bank account belong to payroll. A payroll system earns its place when each of those facts is stored once, by the tool that owns it, and the salary sheet reads them rather than copying them.

That is the shape Orbiz takes. Hours come from AMS, where attendance and approved leave already live, so a timesheet is generated rather than exported. Grades and employment status come from HRMS. Ledgr owns the pay profile — gross salary, structure, tax settings, bank details and the increments journal — and every salary sheet is computed from those three sources on the day it is run, then frozen so it can be re-read a year later exactly as it was paid.

Rules as configuration, not as cells

Every formula in the old sheets becomes a setting the finance team can read and change without touching code: the pay cycle (a calendar month, or the 26th to the 25th, with a dated switch between them), the working day, which days are weekends, whether a public holiday is paid as worked, how many missing hours a month are forgiven before anything is deducted, and the two rates that matter most — what an unpaid hour costs and what an overtime hour pays, each expressed as a base divided by a number of hours.

Salary structures work the same way: Basic 60 percent, house rent 25, utilities 13, internet 2 is a structure any employee can be placed on, and a second structure for a different pay group is a second record, not a second sheet. Country facts — tax slabs, statutory schemes, the certificate layout — arrive as a preset you apply and can edit, so the same product serves a team in Lahore and a team in Dubai without either being an afterthought.

Approval before money moves

A spreadsheet has no notion of review. A salary sheet in Ledgr goes through one: finance generates the timesheet, sends it to a reviewer, the reviewer approves or asks for changes, and only an approved timesheet can become a salary sheet, which itself is reviewed before it is marked disbursed. Every line on the sheet carries the sentence that explains it — "40 unpaid hours at 1,278.41, gross 225,000 ÷ (22 × 8 h)" — so the reviewer never recomputes anything.

Marking the sheet disbursed is the moment the copies you used to maintain by hand write themselves: the tax ledger for the year, the statutory contribution ledger, the loan schedule, the claim register, and a payslip PDF per employee on the organisation’s letterhead, emailed and kept. The employee sees it under their own login, behind a password check, alongside every earlier one.

Moving without retyping

The move itself is smaller than it looks, because the facts already exist somewhere. If salaries were held on the HR record, they are copied into pay profiles once, each with an opening increment dated at the last change. Attendance history stays where it was. What you enter by hand is the part no workbook ever recorded properly: the opening year-to-date figures for the current tax year, so that the annualised withholding continues from where the tax workbook left off rather than starting the year again in September.

  1. Set the organisation’s country and currency once; every tool reads them.
  2. Apply the country preset and check the slab table against the current rates.
  3. Create the salary structure and mark it default; add a second only if a pay group really differs.
  4. Enter the pay-cycle history, including the date you switched cycles, so old periods keep their real dates.
  5. Enter opening year-to-date gross and tax per employee for the current tax year.
  6. Generate the first timesheet, compare it to last month’s hours sheet line by line, and only then run the salary sheet.

Who this is for

Companies between ten and a few hundred people, with salaried staff whose pay depends on hours, leave and a progressive tax table: software teams paying developers and contractors, startups whose first finance hire inherits the founder’s workbook, and professional services firms that need a defensible tax certificate for every employee at year end. If you are still deciding whether hours should come from attendance or from a timer, attendance vs time tracking vs timesheets covers that first.

FAQ

Questions this post gets asked

Do we have to retype every salary to move?

No. Salaries already held on the HR record are copied into pay profiles in one step, each with an opening increment dated at the last change. What you do enter by hand is the opening year-to-date gross and tax for the current tax year, so withholding continues from where your tax workbook stopped.

Can we keep our own pay-cycle dates and rate formulas?

Yes. The pay cycle, working day, weekend days, holiday treatment, the unpaid-hour and overtime rates and the salary structure are all settings you read and change in Ledgr. Nothing about your payroll rules lives in code.

What happens to a salary sheet after it is paid?

It is frozen with the policy and pay profiles it was computed from, so it can be reopened later exactly as paid. Marking it disbursed also writes the tax and contribution ledgers, updates loan schedules and claim registers, and generates a payslip PDF per employee.

Keep reading

All posts
  • The Cadence mark beside the words "AI and all-in-one business software, without the hype".
    AI assistantsPlatformGuides

    AI in all-in-one business software: what to check

    AI in an all-in-one business suite depends on where the data is and what an assistant may do. Two honest models, what three suites say, and what to check.

    Zohaib Khalid · · 10 min read
  • The HRMS mark beside the words "Odoo vs ERPNext, compared honestly".
    GuidesPlatform

    Odoo vs ERPNext for a small business

    Odoo vs ERPNext for a small business: what each costs from its own pricing page, what is free, who implements it, and when neither is the tool you need.

    Zohaib Khalid · · 6 min read
  • The Cadence mark beside the words "Connect your assistant to Orbiz".
    AI assistantsPlatformGuides

    Connect Claude or ChatGPT to your business software

    How to connect Claude, ChatGPT or Claude Code to your HR, payroll, attendance and project data with MCP, safely, and what the assistant can then do for you.

    Zain Khalid Malik · · 5 min read

Want to see this working in your organisation?

Every tool in this post is included in every plan. Tell us your team size and we set up a working organisation for you to try.