You can use HR and Leave Management to create and maintain employee records, run the leave request and approval process, configure leave policies and calendars, and control who can see and change what.
This page was generated from the application's model. Screen and button names follow the ViewModel and column names in the model; confirm wording against the running application before publishing.
1 What HR and Leave Management does
HR and Leave Management is the core personnel-record and time-off workspace. It keeps each employee's current profile available for daily HR work, and it retains history where changes must be auditable.
The system covers five areas:
| Area | What you can do | Example |
|---|---|---|
| Employee records | Maintain personal details, employment terms, bank and statutory data, and documents. | Store an employee's contract PDF and passport scan in their file. |
| Lifecycle tracking | Record dated status changes such as Probation, On Leave, or Resigned. | Schedule On Leave to start on a future date. |
| Leave requests | Employees request leave; managers and HR approve in two stages. | An employee requests five days of annual leave and a manager approves it. |
| Leave rules | Define leave types, policies, accrual methods, and blackout periods. | Block leave for the Finance department during year-end close. |
| Administration | Set up the organization, calendars, public holidays, roles, and users. | Import a country's public holidays for the new year. |
For example, when an employee receives a pay rise, you add a salary revision instead of replacing the previous salary record. When an employee starts a period of leave, you record a lifecycle status change with an effective date rather than changing the displayed status directly.
2 Roles and access
Access is controlled by role-based access groups. The application defines four business roles and three general-purpose access groups.
| Access group | Intended use |
|---|---|
AdminRole
|
System administrators. Manage API settings, employee settings, and user-role assignments. |
HumanResourceRole
|
HR staff. Manage the employee directory, system administration, leave calendar settings, and lookup lists. |
ManagerRole
|
Managers. Review and decide leave requests in the Approval Inbox. |
EmployeeRole
|
Ordinary employees. Use self-service features such as the leave dashboard and leave requests. |
IsLoggedIn
|
Any signed-in user. |
IsAdmin
|
Users flagged as administrators. |
OpenView
|
Screens that any visitor can open, such as the start page and the Access Denied page. |
The table below lists screens that are explicitly restricted in the model.
| Screen | Restricted to |
|---|---|
| Employee Directory | HR |
| System Administration | HR |
| Leave Calendar Settings | HR |
| Lookup lists (Departments, Jobs, Contract Types, Employment Types, ID Types, Document Types) | HR |
| Approval Inbox | Managers |
| API Settings, Employee Settings | Administrators |
| User Roles, User Seeker | Administrators |
| System user records | Users with IsAdmin
|
If you open a screen you are not permitted to use, the application shows the Access Denied page.
3 Historical record rules
The system is designed to preserve historical information for reporting and audit purposes.
| Area | How changes are recorded | Example |
|---|---|---|
| Employee profile details | Edit the profile and save it. Until you save, you can discard the unsaved edits. | Correct a phone number before saving. |
| Lifecycle status | Create a dated status record in Lifecycle History. | Schedule On Leave to begin on a future date. |
| Salary | Add a salary revision. The prior salary remains under Previous Revisions. | Record a new monthly salary effective from the start of next month. |
| Bank details | Keep bank-account records; one account is the current account and earlier accounts are kept as previous accounts. | Keep a former account for historical payment tracking. |
| Statutory details | Add each government identification record separately. | Store both a National ID and a Tax Identification Number. |
| Leave requests | Every status change is written to the leave request log with reviewer comments. | Keep the reason a request was rejected. |
| Leave balances | Policy assignments create balances. Removing a policy makes its balance inactive rather than deleting it. | An employee moves to a new policy; the old balance is retained as inactive. |
4 Find or create an employee
The Employee Directory is the landing page for personnel records. It is available to HR.
Search the directory
Use the Search box and the Filter control to find employees. Each row shows the employee's current status so you can see the lifecycle state before opening the record. Open an employee to go to the employee profile workspace.
Create an employee
- In the Employee Directory, select Add New Employee.
- Complete the information in the Personal Info and Employment tabs.
- Select Save Changes. The system ensures the employee has a unique employee ID.
- Open Lifecycle History.
- Record the employee's initial lifecycle status, such as Onboarding or Probation, with the applicable date.
The system also prepares the employee's leave request form and leave balances for them. Do not try to set the lifecycle status in the Employment tab. Use Lifecycle History so the status change has a dated audit record.
5 Manage the employee profile
The employee profile workspace shows the employee's photo, full name, employee ID, and title at the top. The workspace groups information into tabs:
- Personal Info
- Employment
- Lifecycle & History
- Financial & Statutory
- Documents
- Leave Management
Use Back to return to the directory.
5.1 Personal Info
Use Personal Info for demographic and contact data.
| Section | Information to maintain | Example |
|---|---|---|
| Basic details | First name, last name, gender, and date of birth. | Record the employee's legal first and last name. |
| Contact information | Email address, phone number, and address (street, city, state or province, postal code). | Store the employee's current home address. |
| Emergency contacts | Name, phone number, and relationship. You can add more than one contact. | Add a spouse as the primary emergency contact. |
To add an emergency contact, select Add Emergency Contact, complete the form, and save.
5.2 Employment
Use Employment to describe the employee's place in the organization and their terms.
| Section | Information to maintain | Example |
|---|---|---|
| Role and placement | Department, job title, reporting manager, and work location. | Assign an employee to Finance with a named manager. |
| Employment terms | Hire date and contract type. | Record a contractor's hire date and contract type. |
| Current status | The currently effective lifecycle state. | An employee shows On Leave after the corresponding lifecycle record takes effect. |
Department, job title, manager, and contract type are chosen from pick lists. The current status is displayed here, but you cannot change it directly in this tab.
The reporting manager you choose here matters for leave: it determines whose Approval Inbox receives the employee's leave requests.
5.3 Lifecycle History
Use Lifecycle History as the dated audit trail for an employee's journey through the organization. Each entry has a status, an effective date, a reason, and an applied indicator.
To record a status change:
- Open the employee profile and select Lifecycle & History.
- Select Record Change.
- Choose the new status, such as On Leave or Terminated.
- Enter the effective date.
- Enter a reason when needed. For example, enter
Maternity leave commencement. - Save the record.
The effective date determines how the record is handled. A background job applies scheduled records when their date arrives (see Automated background jobs).
| Effective date | Result | Example |
|---|---|---|
| Future date | The record is scheduled and applies automatically on that date. | Record On Leave for next month's leave start date. |
| Today or past date | The change applies to the employee's status. A past date acts as a historical correction. | Correct a termination record to its actual date. |
| Applied record | The record is part of the employee's permanent history. | A leave status that has already taken effect remains in the audit trail. |
The allowed transitions between statuses are described in Employee lifecycle states.
5.4 Financial and Statutory
Use Financial & Statutory for salary, bank, and government-identification data.
Add a salary revision
- Open the employee profile and select Financial & Statutory.
- In the salary section, select Add Salary Structure.
- Enter the base salary, currency, pay frequency, and effective date.
- Save the revision.
The new revision becomes the current salary once its effective date arrives; a background job applies salary revisions by date. The former salary stays under Previous Revisions. For example, to give an employee a raise from the first day of next month, create a new revision with the new amount and that future effective date. Do not overwrite the existing amount.
Maintain bank details
Use Add Bank Account to record an account. Each account holds the bank name, account name, account number, routing code, SWIFT/BIC code, and branch address. The employee has one current bank account; earlier accounts are listed under Previous Accounts for historical payment tracking.
Add statutory details
Employees can have multiple government identification records. Select Add Statutory Identifier to add another record, such as a National ID, Passport, or Tax Identification Number. Each record has an ID type, an ID number, and an expiry date. Some ID types are marked as required in the system settings.
5.5 Documents
Use Documents as the employee-file repository.
- Open the employee profile and select Documents.
- Select Add Document and upload the file.
- Choose the document type, such as a contract or ID scan.
- Review the upload date in the document list.
Contracts can also hold a signed-on date and the signed file. Document types are maintained by HR under Organization structure.
5.6 Leave Management tab
The Leave Management tab shows the employee's leave dashboard: leave balances, leave history, the leave calendar, and quick apply. See Request leave.
HR can also open Leave balances and policies for an employee to do two things:
- Review balances. Each balance shows accrued days, carried-over days, used days, pending days, and the available balance.
- Assign policies. The system suggests recommended policies for the employee. Select the policies you want and select Assign Selected. Policies that no longer apply are shown as inactive allocations.
6 Save or discard profile edits
Profile edits are not retained until you select Save Changes. If you change a field accidentally and have not saved, select Discard Changes. This restores the profile to its last saved state.
Use Discard Changes only for unsaved profile edits. It does not remove an applied lifecycle-history record.
7 Request leave
Employees request leave from their leave dashboard or the leave calendar.
The leave dashboard
The dashboard shows the employee's leave balances, a leave calendar, their leave history, and a Quick Apply option.
Submit a request
- Open the leave calendar, or select Quick Apply on the dashboard.
- Enter the leave type, start date, end date, and reason.
- Review the calculated number of days.
- Attach a supporting document if the leave type requires one.
- Select Submit Request.
The request form checks your request before it is saved. It does not accept a request that:
| Check | What it means | Example |
|---|---|---|
| Days within limit | The calculated days must not exceed the maximum allowed per event for the policy. | A policy allows five days per event; a seven-day request is refused. |
| No overlap | The dates must not clash with your existing leave requests. | You cannot submit leave that overlaps an approved week. |
| No blackout | The dates must not fall in a blackout period that applies to you. | Leave is blocked during a department freeze. |
| Sufficient balance | Days deducted come from your balance unless the policy allows a negative balance. | A policy with Allowed Negative Balance lets the balance go below zero. |
The leave calendar also shows the public holidays for your country. Use Show Leave Balances and Hide Leave Balances to toggle the balance panel.
Track a request
Your leave history lists each request with its status. See Leave request states for what each status means. You can cancel a request while it is still waiting for manager review.
8 Approve leave
Leave requests follow a two-stage approval: first the employee's manager, then HR.
Manager review
- Open Approval Inbox.
- Select a request to see the dates, reason, and days requested.
- Enter reviewer comments if needed.
- Approve the request to send it on to HR, or reject it.
HR review
Requests approved by a manager move to Pending Human Resource. HR approves the request, which deducts the days from the balance, or rejects it.
Reversing an approval
An approved request can be reversed. Reversing sends it back to Pending Human Resource for another decision.
Every decision is written to the request's log with the state, time, and reviewer comments.
9 Review leave across the company
| Screen | Use it to | Example |
|---|---|---|
| Leave Directory | Search and filter all leave requests, including by status. | Find every pending request. |
| Department Leave Directory | See leave by department. | Check who in Sales is off next week. |
| Company Calendar | View the company-wide calendar. | Plan coverage around public holidays. |
10 Configure the system
System configuration is under System Administration, available to HR. It has tabs for Leaves Rules and Policies, Organization Structure, Public Holidays, and Roles and Permissions. A warning appears if the leave year has not been set.
10.1 Leave rules and policies
This screen has three sections: leave types, blackout periods, and leave policies.
Leave types
| Field | Meaning |
|---|---|
| Name | The leave type name, such as Annual Leave or Sick Leave. |
| Is Paid | Whether the leave is paid. |
| Must Attach Documents | Whether a supporting document is required when requesting. |
Leave policies
| Field | Meaning | Example |
|---|---|---|
| Name, Description | Identify the policy. | Standard Annual Leave
|
| Leave Type | The type the policy grants. | Annual Leave |
| Annual Allowance | Days granted per leave year. | 21 |
| Maximum Carry Over | Days that can carry into the next year. | 5 |
| Accrual Method | How the allowance is earned. | Monthly |
| Allowed Days Per Event | Maximum days in a single request. | 10 |
| Allowed Negative Balance | How far the balance can go below zero. | 0 |
| Eligibility Criteria | Free-text description of who qualifies. | After six months of service
|
| Country, Contract Type, Gender Restriction, Jobs | Restrict the policy to matching employees. | Only full-time employees in Kenya |
| Leave Blackouts | Blackout periods that apply to the policy. | Year-end freeze |
The accrual method controls how a balance grows:
| Method | Behavior |
|---|---|
| Monthly | Days accrue each month, up to a monthly upper limit. |
| Upfront | The full allowance is available from the start. |
| Uncapped | No fixed limit on the balance. |
| One-time grant | A single grant of days. |
Blackout periods
A blackout period has a reason, a start date, and an end date. You can link it to specific leave policies and to specific departments, so the restriction applies only to the people you intend.
10.2 Organization structure
Maintain the lists that employee records draw from:
| List | Fields |
|---|---|
| Departments | Name, description |
| Jobs | Title, grade level, description |
| Contract Types | Name |
| Genders | Name |
HR also maintains these lookup lists, each with its own screen: Employment Types, ID Types (with a required flag), Document Types, and Hours of Day.
10.3 Public holidays
Public holidays are kept per country.
- Open the Public Holidays tab.
- Select Refresh Country List to load countries from the external API.
- Select Fetch Holidays to retrieve holidays from the external API.
- Choose a country and a year.
- Review the holidays shown and select the ones you want.
- Select Import Selected Holidays.
Each holiday stores its name, local name, country code, date, and whether it is global.
10.4 Calendar and leave year
The system uses a generated calendar of years, months, weeks, and days.
Calendar settings
- Open Calendar Settings.
- Choose or create a week definition (the system includes an ISO definition).
- Select Generate Calendar.
- Save your changes.
Leave calendar settings
- Open Leave Calendar Settings (HR only).
- Set the leave cycle's start and end dates.
- Select Create Leave Calendar, then save.
The leave year must be set before leave can be managed. At year end, the system can roll the leave calendar over automatically, carrying over blackout periods and selected public holidays and generating new balances.
10.5 Roles and permissions
- Roles. Open the Roles and Permissions tab to add roles. Each role has a name, a type, and a specification.
- User roles. Administrators open User Roles, search for a user, edit their roles, and save. Discard unsaved changes with Discard Changes.
10.6 Application settings
| Screen | Restricted to | Use |
|---|---|---|
| Employee Settings | Administrators | Application-level settings, including options used when generating employee IDs. |
| API Settings | Administrators | The addresses of the external calendar and countries APIs used for public holidays. |
11 Automated background jobs
These jobs run without user action. They keep balances, statuses, and calendars current.
| Job | What it does |
|---|---|
| Leave balance monthly accrual | Adds the monthly accrual to eligible leave balances. |
| Auto roll over leave calendar | Starts the new leave year and carries forward the configured data. |
| Create calendar | Generates calendar years, months, weeks, and days. |
| Update employee status | Applies scheduled lifecycle status records when their effective date arrives. |
| Update employee salaries | Applies scheduled salary revisions when their effective date arrives. |
| Update time | Keeps the system's time-based values current. |
12 System overview
12.1 Data model
The following table summarizes the main entities. (Insert the class diagram from the MDriven Designer here.)
| Group | Entities |
|---|---|
| People | Employee, EmployeeAddress, EmergencyContact, EmployeeStatusLog |
| Employment | Department, Job, ContractType, Contract, EmploymentType, Gender |
| Finance and identity | SalaryStructure, BankAccount, StatutoryIdentifier, IDType |
| Documents | Document, DocumentType |
| Leave | LeaveType, LeavePolicy, EmployeeLeavePolicy, LeaveBalance, LeaveRequest, LeaveRequestForm, LeaveRequestLog, RequestAttachment |
| Leave rules | AccrualMethod (Monthly, Upfront, UnCapped, OneTimeGrant), LeaveBlackout, LeavePolicyBlackout, DepartmentLeaveBlackout, LeaveCalendar |
| Calendar | Calendar, WeekDefinition, Year, Month, Week, Day, DayOfWeek, DayOfMonth, MonthOfYear, HourOfDay, PublicHoliday, Country |
| Security | Role, EmployeeRole, UserRole, Admin, HumanResource, Manager, SysUser, SysRole, SysUserRole, SysUserClaim, SysExternalLogin, SysSession |
| Configuration | Settings, ApiSettings, ApiResult |
| Infrastructure | SysAsyncTicket, SysSingleton, SysSuperClass |
The model defines no enumerations. Values such as gender, contract type, and leave type are classes, so administrators can change them without a software change.
12.2 Employee lifecycle states
The employee lifecycle is modeled as a state machine. Statuses are grouped:
- Active employment: Probation, Active
- Temporary pause: On Leave, Suspended
- Post-employment: Resigned, Terminated, Retired, Deceased
stateDiagram-v2
[*] --> Onboarding
Onboarding --> Probation
Probation --> Active
Active --> OnLeave
Active --> Suspended
Active --> NoticePeriod
OnLeave --> Active
Suspended --> Active
OnLeave --> NoticePeriod
Suspended --> NoticePeriod
NoticePeriod --> Resigned
NoticePeriod --> Terminated
NoticePeriod --> Retired
NoticePeriod --> Deceased
In the model, transitions out of active employment and the temporary-pause group apply to every status in the group. The diagram above shows them per status for readability.
12.3 Leave request states
stateDiagram-v2
[*] --> PendingManager
PendingManager --> PendingHumanResource: ApprovedByManager
PendingManager --> Rejected: RejectedByManager
PendingManager --> Cancelled: Cancel
PendingHumanResource --> Approved: ApprovedByHumanResource
PendingHumanResource --> Rejected: RejectedByHumanResource
Approved --> PendingHumanResource: Reverse
| State | Meaning |
|---|---|
| Pending Manager | Submitted and waiting for the employee's manager. |
| Pending Human Resource | Approved by the manager and waiting for HR. |
| Approved | Approved by HR. Days are deducted from the balance. |
| Rejected | Rejected by the manager or by HR. |
| Cancelled | Cancelled while it was still waiting for the manager. |
Each request stores its start date, end date, reason, deducted days, current state, reviewer comments, and creation time.
12.4 Screen reference
| Area | Screens |
|---|---|
| Employee | Employee Directory, Employee Details, Personal Info, Employment, Employee Status Log, Financial and Statutory, Documents, Bank Account modal, Emergency Contact modal, Salary Structure modal, Statutory Identifier modal, Employee Record Status Log modal |
| Leave (employee) | Leave Dashboard, Leave Calendar, Leave Requests, Leave Balance Details modal, Employee Leave Balances and Policies, Employee Recommended Policies modal |
| Leave (review) | Approval Inbox, Leave Directory, Department Leave Directory, Company Calendar |
| Leave configuration | Leave Rules and Policies, Leave Policy Details, Leave Type Details, Leave Blackout Details, Leave Calendar Settings |
| Organization | Organization Structure, Department Details, Job Details, Contract Type Details, Gender Details, and lookup lists |
| Calendar and holidays | Calendar Settings, Date Structure Browser, Week Definition Browser and View, Year View, Public Holiday Management, Countries, Country Browser and View |
| Security and admin | System Administration, Roles and Permissions, Role Details, User Roles, Edit User Roles, User Seeker, API Settings, Employee Settings, Access Denied |
| Background jobs | The six jobs in Automated background jobs |
13 See also
Categories: Tutorials and Learning Paths, Domain Modeling Best Practices
