# Data Model Principles

- Financial and HR records use PROTECT where deletion would damage history.
- Salary assignments are effective-dated so future salary revisions do not change old payroll.
- Payroll stores a calculation snapshot for historical reproducibility.
- Attendance punch logs are deduplicated by device, device user ID and punch timestamp.
- Employee requests and workflow tasks are separate: a request is the business record, a task is an approver's action item.
- Rejected/returned decisions require a reason at service layer.
- Exit clearance is assigned to responsible users; HR override is an exception and stores override reason.
- Import jobs retain validation errors and confirmation history.
