Core concepts
Effective dating and history
Why the product answers questions as of a date rather than storing only what is true now.
Everything that varies over time is dated rather than overwritten. An engagement and a compensation record each carry a start date and an optional end date, and a question is always answered as of a date.
This is not archival tidiness. A payslip was posted to the address somebody lived at then; leave accrued in a previous year belongs to the engagement in force in that year; a payroll run reopened in two years has to reproduce what was filed, not what is true now.
Corrections are additive
- Leave ledger
- Insert-only. A mistake is corrected by posting a reversal that points at the original entry, never by editing or deleting it. A balance is the sum of the entries, so there is no balance field that could disagree with them.
- Addresses
- A change supersedes rather than overwrites, because something was already sent to the old one.
- Agreements
- An amendment chains to the document it supersedes. What somebody actually signed stays recoverable.
- Payroll snapshots
- Immutable once emitted. A correction is a later snapshot with a sequence number, never a rewrite of a closed period.
Settings changes never rewrite history
Editing a leave policy changes what happens next; entries already posted keep their own minutes and their own policy reference. Deleting a policy the ledger points at is refused, because that link is how somebody answers what rules a balance was credited under.