HOME
HR App

Streamlining Leave, Attendance, and Workforce Visibility

In a rapidly growing local company, HR processes relied on fragmented and manual workflows.

Employees applied for leave through WhatsApp, while managers and HR staff struggled to manage rosters, team capacity, and leave tracking without a centralised system.

As the company expanded and hired remote staff across China and the Philippines, these inefficiencies became harder to sustain, this was an opportunity to digitise and streamline HR operations.

My Role UIUX Designer, PM, QA
Team 1 Mobile Dev, 1 Backend Dev
Timeline 2023 – 2024

I spoke with colleagues from 3 user groups to understand:

  • what actions each user group took
  • where breakdowns occurred
  • what impact those breakdowns created
User journey map

The issues could be converged into two themes:

Manual administrative overhead

HR spent 3 – 5 hours weekly tracking leave balances, verifying documents like MCs, had unnecessarily frequent back-and-forth communication with employees

Lack of visibility across teams

Employees had no clear view of their leave balance or colleagues' availability → last minute and/or overlapping leaves, managers struggling to anticipate staffing gaps.

How might we reduce manual workload and improve visibility of workforce availability across employees, managers, and HR?


To address the challenges, we first introduced a solution structured around two interfaces:

  • Backend system (for HR staff & managers) — Used to manage employee records, track leave balances and history, assign rosters, and monitor attendance.
  • Mobile app (for employees) — Used to check leave balances, apply for leave, view team rosters, and clock in and out. This provided employees with direct access to information and actions.
System structure and roles

System structure and roles

Roster setting for Managers

Roster setting for Managers

Employee's leave records and balances

Employee's leave records and balances

App site map

App site map

App for Employees

App for Employees: Home → Roster, Clock in / out, Leaves → Apply for Leave

This addressed more than half of the inefficiencies uncovered, however, through gathering feedback, we found opportunities to improve on the solution.


Improving team visibility

As leave applications shifted from WhatsApp to the app, team-wide visibility of absences was lost, and employees often forgot to inform colleagues after applying for leave.

To restore visibility, I introduced:

  • home screen notifications highlighting how many team members are on leave each day
  • a shared calendar showing colleagues' upcoming leaves and country-specific public holidays
Home screen notifications

Home screen notifications indicating if team members are on leave

Leaves calendar for teams

Leaves calendar for teams

Recreated passive awareness without relying on manual communication. Teams were much more aware of colleagues' future absences and better able to plan ahead.

Fully eliminating manual leave tracking

While standard leave types like annual and medical leave were easily managed in the system, HR still had to manually track more complex leave types such as Off-in-Lieu (OIL) due to system limitations.

To reduce this overhead, we introduced an OIL leave type with:

  • automated logic for leave assignment based on worked public holidays and roster data
  • built-in expiry rules since OIL is only valid for 3 months
OIL leave type
OIL leave expiry
Employees can check when their own OIL expires. HR staff no longer track and manually adjust per employee, saving up to 3 hours per month.

Preventing understaffing

While the system enabled managers to manage rosters and keep teams informed, staffing gaps still occurred when too many employees took leave during the same period.

We identified that leave management was unbounded, with no mechanism preventing staffing shortages before they happened.

Instead of introducing leave approvals which would increase managerial overhead and decision fatigue, we implemented a minimum headcount constraint, allowing managers to define the minimum staffing required each day.

  • Once the threshold is reached, new leave applications are automatically blocked
  • MCs and other exceptions can still be manually overridden by managers
Minimum headcount constraint
Staffing gaps were mitigated and discussed in advance, shifting leave management from reactive to preventative control.

Improving attendance integrity

The initial version of the app used GPS-based clock-ins, allowing employees to mark attendance once they were within the office vicinity.

However, it was observed that some employees clocked in before physically reaching their workstation.

To improve attendance integrity, we introduced NFC-based clock-ins by placing NFC cards in the office, requiring employees to tap their device on-site in order to clock in.

GPS clock-in was retained as a fallback for remote employees, with system flags differentiating on-site and remote workers.

NFC Clock-ins

NFC Clock-ins

Employees reached earlier to clock in and operational managers struggled less with late employees.

Reduced HR administrative workload

Less than half the time spent per month (up to 20hrs to <10hrs) was required for HR administrative work.

Improved employee autonomy

Employees no longer needed to contact HR to check leave balances

Better workforce visibility and reliable operations

Managers could better maintain staffing levels and avoid disruptions, teams gained awareness of colleagues' availability and upcoming absences

Lessons learnt:

  1. Visibility should be ambient, not effort-driven
    Users shouldn't have to actively check multiple places to understand team availability.
  2. The system should prevent operational issues, not just record them
    Especially for staffing, the app should act as a constraint system, not just a tracking tool.
  3. Digitising a workflow is not enough
    The invisible systems of awareness that people rely on must also be preserved or redesigned

By shifting from simply "building features" to designing for visibility and control, the app evolved into a system that not only reduced manual work, but actively supported operational decision-making.