Skip to content
Monthly Payroll: Figures and Ownership

Monthly payroll: stored figures, knock-on effects and the checks that stay with a person

The explanation behind Configure and run monthly payroll: where each payroll figure comes from, what a redone run changes elsewhere, and the parts of the job that stay with a person. Read it alongside Steps 9 to 12, and first when a payslip, a journal or a statutory file shows a number you did not expect. Payroll Admin is not in the Applet Store yet, so what follows is read from the applet’s source and the payroll backend (why).

Payroll figures: stored once, or worked out again

When a payroll number looks wrong, first find out whether it was stored at some earlier moment or is read fresh each time. That tells you where to look.

FigureTaken fromStored, or recomputed
A payslip’s gross, contributions and netThe salary lines and the Statutory Rates masterStored at Calculate. Changing a rate later changes nothing until you recalculate, and the recalculation replaces the payslips
The rate behind each contributionThe Statutory Rates header for that scheme. The lookup takes the first header it finds and does not read Effective Date. With no header, it uses built-in placeholders and the trace says fallbackRead at the time of Calculate. Keep one header per scheme
SOCSO and EIS amountsA rate times the wage. The master’s fixed-amount columns are not read, so a wage-band table keyed in as fixed amounts calculates to RM 0.00Read at the time of Calculate
The amounts on the payroll journalThe run’s stored totalsA snapshot of the last Calculate. Post GL does not recompute
The accounts on the payroll journalThe default GL mapping for the companyRead at Post GL. A missing mapping row writes the line anyway, under the component code, with no GL code
Bank account numbers on the bank fileEmployee Maintenance, Payment ConfigRead when you generate the file
Employer and member numbers on the statutory filesCompany Setup, and each employee’s statutory recordRead when you generate the file. A blank employer number becomes a run of zeros
Salary-paid expense claims to add to payThe Claim Cycle’s Payroll Payment ReportRecomputed every time you run the report
Wages in the trial balanceThe general journals you postedA live figure, worked out from the journals each time

What breaks elsewhere when a run is redone or back-dated

  • A recalculation deletes the payslips it replaces. If a payslip has already gone to staff, the copy they hold no longer matches anything stored. Approved is not final, because Reject sends an approved run back to draft. Only Finalize locks it.
  • Nothing links the run to the general journal. A recalculated run changes no ledger figure, so the correction is a second journal, posted by a person.
  • A payroll journal dated into a month you have already reported changes that month’s books after the fact. Your accountant decides whether the correction goes there or into the current month.
  • Changing an employee’s AR/AP type changes the next posting to them, including a repost of an old document.
  • A journal file whose import ended FAILED may have posted some of its journals. Uploading it again doubles those wages.

The parts of the job that stay with a person

  • Who approves the run. Someone other than the person who calculated it. Nothing in the run enforces that, so it is a written rule. The check is that the approver recorded on the run is a different person from the one who calculated it.
  • Who checks the statutory figures. The payroll owner, against the schedules published by KWSP, PERKESO and LHDN. This wiki publishes no rate table. The check is that one employee’s EPF, SOCSO, EIS and PCB match the published schedule for that wage.
  • Who posts the journal, and when. Whoever keeps the books posts it in the month the work was done, not the month it was paid. The statutory liabilities clear when you remit on the 15th of the following month.
  • When not to post. Before the run is finalised, while salary changes for the month are still coming in, and never by uploading a failed import again without first reading the journal listing.

What success looks like for this part

For any payroll figure you are asked about, you can say whether it was stored at Calculate or is read fresh, and where to look; before you redo or back-date a run you know which journal a person must post to correct the books; and each of the four jobs that stay with a person has a named owner and a check.

Common mistakes in this part

The mistakes table for the whole run is on the front page. The ones this page explains: no Statutory Rates header at all (Calculate falls back silently to built-in placeholders, and the trace says fallback), and relying on the allowance or employee statutory flags.

Related documentation

Last updated on