← All work Case 05 / 07 — PeopleVision
05 / 07
Case study 05 — HR-tech · workforce analytics

PeopleVision Reports

Ten report screens over 847 employees, where the design problem was never the charts — it was deciding who is allowed to see whom.

Outcome Ten screens across four role tiers, one drill-down hierarchy, and a ten-state attendance vocabulary — with a locked Location tab that makes the permission boundary visible instead of hiding it.
Product
AIVision PeopleVision — Reports
Roles designed
Super Admin · Admin · Manager · Employee
Role
Sole designer, system + all screens
Deliverable
Built, running prototype
The problem

An attendance report for 847 people across six branches is easy to draw and almost impossible to trust. A manager needs their own team. An admin needs their department. A Super Admin needs the country. Give everyone the same screen and it is either useless to the manager or a surveillance tool for everyone else.

The build I inherited had one more problem: a left sidebar carrying ten report destinations, on screens where the report itself needs every pixel of width. Reports are wide. Sidebars are not negotiable real estate — they're just a habit.

So the work was a permission model with a visual grammar, and a shell that gets out of the report's way.

Index card — who sees what
Super AdminAll six branches, the country map, and the only role with the Location report unlocked.
AdminEnters the hierarchy already scoped to their own node — never at the root.
ManagerLands two levels deep, on their own team. No upward navigation.
EmployeeThemselves. The tier that exists to keep the model honest.
The decision that made it work

The locked tab stays visible

The obvious move is to hide the Location report from anyone who isn't a Super Admin. I kept it in the tab strip, greyed, with a padlock and a not-allowed cursor. An Admin who can't open it now knows it exists and who to ask — instead of a menu that silently rearranges itself per person and leaves everyone guessing what they're missing.

Tab strip as shipped — Admin role · Location locked
Today's Report Live Status LIVE Attendance Leaves Late & Absent Hierarchy Location Outdoor & Travel Trends Export
Ten tabs, four groups

Overview, Attendance, Workforce, Analytics. Ten destinations is too many to scan flat, so the grouping does the work the removed sidebar used to — without eating 240px of report width.

Role has a colour, permanently

Crimson Super Admin, blue Admin, violet Manager, green Employee — the same four colours on every avatar, chip and tier label, so you always know whose view you're in.

Switching role announces itself

A toast confirms “Switched to Manager view” and the drill path resets. A silent scope change is how people misread a report and act on it.

The build — live, interactive

Ten screens, running

This is the real prototype. Switch the role in the top bar and watch Location lock, open Hierarchy to drill from Admin to Manager to team, then click any person for the detail panel.

aivision.com/peoplevision/reports — live, interactive
The vocabulary argument

Absent is not one thing

The original model had three states: present, absent, on leave. But of the 847 people, 67 are working from home, 38 are on client visits, 14 are travelling and 11 are at an event. Under three states, all 130 of them read as some flavour of “not here” — and a manager acts on that number. Ten states cost a bigger legend and settle the argument permanently.

Attendance breakdown — 847 employees, today
Checked In612
Not Checked In94
Checked Out89
Work From Home67
On Leave52
Late43
Outdoor38
Travelling14
At Event11
The four highlighted rows are the argument

Work From Home, Outdoor, Travelling and At Event total 130 people who are working. A three-state model files every one of them under absent, and the daily number a manager reads becomes wrong by 15% of headcount.

Each state carries a fixed background, text colour, border and dot — one token set, applied identically in the summary tiles, the table rows, the hierarchy cards and the detail panel. A status never looks like two different things in two places.

10 states shipped
Decisions worth defending

Four calls, and what each cost

DecisionReasoning · trade-off
Killed the sidebar for a tab stripReports are wide; 240px of permanent chrome is 240px the table doesn't get. Costs discoverability — ten tabs in one horizontal row need the group labels to stay scannable, and on a narrow laptop the strip scrolls.
Locked tabs stay visibleA padlock teaches the permission model; a hidden tab teaches nothing. Costs a small amount of frustration — someone will click it — which I'd take over a menu nobody can reason about.
Role sets the starting depth, not the layoutA Manager opens the hierarchy already on their team; an Admin on their node. Same screen, different entry point, so nobody has to navigate down to their own scope. Costs a role-dependent default that has to be reasoned about in testing.
One detail panel, not tenEvery person in every report opens the same 420px right-hand panel, and the report stays visible beside it. Costs the ability to give any single report a bespoke detail view.
What I'd change

Ten tabs is one or two too many. Late & Absent is arguably a filtered state of the Attendance report, and Outdoor & Travel overlaps it too. I shipped them separately because each was a named ask from the brief — but a designer's job includes pushing back on a tab count, and I didn't push hard enough.

What it proved

On a reporting product, permissions are the information architecture. Deciding who sees whom determined the navigation, the default drill depth, the colour system and the empty states — every visual decision downstream came from that one model.

Next case study — 06 of 07
HRMS — Onboarding

Joining lifecycle with a field-level audit trail.

Read it →
← Previous: EduVision
All work About Email me