Payroll validation rules
Validation rules are checks KAMI runs against every payslip when it is calculated, so that a suspicious figure is flagged before anyone is paid rather than after. They are how you encode "that can't be right" into the system instead of relying on someone noticing.
Where: Settings › Payroll › Validation rules You need: the payroll settings right
What a rule actually does
A rule describes a payslip that is wrong, not one that is right. When a payslip matches a rule, it is flagged for review.
That is the opposite of how people usually read them, and it is worth getting straight before writing your first one. A rule saying net monthly income equal to annual taxable income does not mean those should match — it means that if they ever do, something has gone badly wrong and you want to know.
The three kinds of rule
| Type | Compares a field against | Use for |
|---|---|---|
| Absolute Value | A fixed number you set | Hard limits — "no net pay above this" |
| Comparative Value | Another payslip field, optionally as a percentage | Relationships — "other payments should never exceed basic wage" |
| Ready-made Automations | A built-in KAMI check | Flagging prorated and termination payslips for a human look |
The fields you can test
| Basic Monthly Wage | Total Contributions Employee |
| Basic Daily Wage | Total Contributions Employer |
| Basic Hourly Wage | Net Monthly Income |
| Total Wage | Net Annual Income |
| Total Other Payments | Total Payable |
| Total Taxes | Tax Payable |
Operators are equal to, greater than and less than.
Ready-made automations
Two checks come built in, and both exist to force a human to look at a payslip that is legitimately unusual:
| Rule | Flags | Marked as |
|---|---|---|
| Hire Date | Someone hired inside this period | Prorated new hire payslip |
| Termination Date | Someone terminated inside this period | Termination payslip |
These are worth switching on even if you write no rules of your own. Prorated joiners and leavers are where proration errors live, there are rarely many of them, and they are easy to miss in a list of hundreds.
How to create a rule
- Open Settings › Payroll › Validation rules.
- Choose the rule type — absolute, comparative, or ready-made.
- Pick the payslip field to test.
- Choose the operator and the value or comparison field.
- Save. The rule applies from the next calculation onwards.
What Happens Next
- Rules run at calculation. Payslips already calculated are not re-checked until they are recalculated.
- A payslip breaking a rule is flagged as a validation issue; it is not blocked, deleted or altered.
- Flagged payslips still need a person to decide. A rule surfaces a payslip, it does not judge it.
- Changing a rule does not re-flag history — only future calculations use the new version.
Tips
- Write rules for the errors you have actually had. A rule per past incident is worth more than a comprehensive set invented up front.
- Start loose. A threshold that flags twenty payslips every run gets ignored within two cycles, and an ignored flag is worse than no flag. Tighten once the noise is gone.
- Use comparative rules for relationships that should always hold — contributions should not exceed wages, other payments should not dwarf basic pay. These survive salary changes, where absolute thresholds go stale.
- Turn on both ready-made rules. Joiners and leavers deserve a second look every time, and they cost you almost no review effort.
- Review your absolute thresholds after any pay rise round. A ceiling set two years ago will either flag everyone or nobody.
Troubleshooting / FAQ
Q: A rule is not flagging anything. Rules run at calculation. Recalculate a payslip you expect it to catch, and check the operator direction — rules describe the invalid case.
Q: Every payslip is flagged. The threshold is too tight, or the operator is inverted. A rule that fires on everything tells you nothing.
Q: Can a rule stop a payslip being paid? No. It flags for review. The decision stays with a person.
Q: We changed a rule — are past payslips re-checked? No. Only calculations from that point on.
Q: Can I test against a percentage of another field? Yes — that is what a comparative rule is for, for example flagging when other payments exceed a set percentage of basic wage.