UX redesign: Attendance, shifts & time
Part of the UX gap analysis. Places, patterns and treatments follow the IA & principles. Spryple facts come from the crawled Help Center; click counts are estimates (see evidence).
2. Attendance, Shifts & Time
Scope: 53 documented attendance screens, workflows C1–C21 and L11. Facts about Spryple come from the Help Center extracts and screenshot notes; anything else is marked "not documented". Click counts are documented-actions estimates (baseline) and redesign estimates (taps), per the method in 00-ia-and-principles §5.
2.1 UX issues found
| ID | Issue (pattern) | Evidence | Pros | Cons | How we handle it (place · pattern · principle) |
|---|---|---|---|---|---|
| UX-ATT-01 | One job, four pages, four histories. Attendance request, permission, regularization and shift change each have their own page, form, edit/delete and history (Permission History, Approval History, shift change records). Pattern: separate request modules. | Screens "Attendance Request", "Request Permission", "Shift Change Request", "Attendance Regularization", "Permission History", "Approval History"; C2, C5, C6, C7 | Each form is short and specific; the user always knows which form they are in | Employee must know which module owns the job before starting; four histories to check one status; vocabulary drifts (Deleted vs Cancelled) | P-REQ · PAT-3 (+ PAT-10 for history) · UXP-2, UXP-8: one "+ Request" sheet with type picker, one My requests list |
| UX-ATT-02 | Three approval entry points for one request. Team widget ("Approve attendance"), dashboard "Approve request", and side-nav "Pending Approvals" all open the same Approval for Attendance page. Plus separate side-nav items for Approve Permission, Regularization Approval, Approve Shift Change Request. | C4 ("three ways"); evidence: 3 entry points; screens "Approve from Main Dashboard", "Approve request (Dashboard)", "Pending Approvals (Side Navigation)", "Approve Permission", "Regularization Approval", "Approve Shift Change Request" | Approval is reachable from wherever the manager happens to be; the Approve/Reject popups are simple | Six places to look for pending work; manager can miss one type; every approval is a page open, popup, submit (about 4 actions each) | P-INBOX · PAT-2 · UXP-2, UXP-4: single inbox, swipe or bulk approve; Home shows a "5 pending" action card that deep links to it |
| UX-ATT-03 | About 20 attendance reports, rebuilt per role. The same data appears as separate screens for Super Admin, Admin, Manager and Employee: Attendance Summary Report (3 audiences, 5 appearances in the evidence), Summary Report, Manager Detailed Report, Monthly Detail Report, Missed Punch Report (4 appearances), Current Day (3), Punch Summary (3), Late Attendance, Extra Days, Penalty Days, Overtime, Shift wise, Monthly Shifts. | Attendance slice screens 1–6, 22–24, 34–37, 50; evidence "most repeated screens"; C19 ("common pattern: select City-Branch, Manager, From and To, Search") | Role-specific reports can be tuned to what that role needs; permissions are simple to reason about | Duplicated screens drift apart; a user changing role relearns the filters; about 4 filter actions before any data shows | P-INSIGHT · PAT-8 · UXP-3: one Attendance topic in the Reports centre, Scope switch (Me / Team / Location / Org), saved views |
| UX-ATT-04 | Regularization only via a menu, though the missed punch is already known. The system already knows a record is "check in but no check out" (C7 note), yet the employee must go to the Attendance Regularization table, or the Missed Punch Report, to act. The manager has a separate Manager Attendance Regularization page with Full Day / Half Day radio lists. | C7, C8, C18; screens "Attendance Regularization", "Manager Attendance Regularization", "Missed Punch Report" | The table gives a focused list of days to fix; manager bulk multi-select exists | Problem is detected but not pushed; the user has to find it. Missed Punch Report only shows data when Rule 35 (default punch-out) is Yes, a hidden dependency | P-HOME · PAT-1 (+ PAT-11): "Fix" action card on the day itself; manager gets an exceptions queue in Team today · UXP-1, UXP-6 |
| UX-ATT-05 | On-behalf requests duplicated. "Add a request" on the manager dashboard and "Request Behalf of Employee" in side navigation open the same page; the employee name is prefilled and disabled on one route, selectable on the other. | C3; screens "Dashboard", "Add a request (Dashboard)", "Request Behalf of Employee (Side Navigation)" | Dashboard route saves a step when the employee is already known | Two routes to one form; on-behalf exists only for attendance requests (other types: not documented in this slice); about 12 actions | P-REQ · PAT-3 · UXP-2: "For: Me / Team member" switch on the one sheet; Team today and roster open the sheet pre-filled for that person |
| UX-ATT-06 | Excel upload depends on a vendor template. Manager uploads a file in the left menu; "the implementation team provides the suggested Excel sheet". Steps stop at "submit"; validation and error feedback are not documented. | C12; screen "Excel Upload" | Works for tenants with no devices and for migration; familiar to HR | Template is not self-serve; no documented preview or error report, so a wrong file is found after the fact; a menu item under Manager only | P-PEOPLE › Bulk import · PAT-7 · UXP-6: downloadable template, dry-run report, commit and 24 h rollback (FR-ORG-012, FR-ATT-036) |
| UX-ATT-07 | Overtime is "hours beyond shift" with no review. The Overtime Report treats extra hours beyond shift hours as OT; L11 only sets a minimum work-hours-per-day figure. No approval, rounding, cap or comp-off outcome is documented. | C19 (Manager: Overtime Report); L11; screen "Overtime Report" | Zero effort: OT appears automatically; simple to explain | Every stray minute becomes OT; nobody reviews genuine OT; shape of payout not documented | P-INBOX (OT claims) + P-SET › Policies › Attendance › Overtime · PAT-11, PAT-9 · UXP-6, UXP-5: OT candidates arrive as claims; manager approves all, part or none (FR-ATT-027/028) |
| UX-ATT-08 | Attendance rules live in three places. Shift master (grace, lates, deduction), HR Policies (Rules 16–48: week-offs, half-day hours, regularization lookback, default punch-out, lunch/tea, extra days, week-off penalty) and Payroll Policies. Extra-day slabs and penalty designations are further separate admin tabs. | C9, C10, C16, C18; HR Policy rules 16–18, 19–21, 25–26, 29, 32–33, 35, 43–48; screens "Extra Days Slab configuration", "Applicable Designations for Penalty" | Each area is individually editable; slab table is explicit | Admin cannot see the full attendance rule set in one place; effect of a change is not shown (impact preview not documented) | P-SET › Policies › Attendance · PAT-9 · UXP-5, UXP-9: one plain-language editor, example and impact preview, effective date |
| UX-ATT-09 | Shift planning is split across five screens. Shift configuration, Week off configuration (3 appearances), Shift rotation Sequences, Assign Rotation Shift and Reassign Rotation Shift. Rotation takes about 18 actions; how the sequence advances automatically is not documented. | C9, C10, C11; screens 9, 11, 27, 29, 33 | Each step is explicit and auditable; shift history is viewable | Planner cannot see the result as a grid; shifts, week-offs and rotations are edited in different places; no coverage view while editing | P-TEAM › Roster planner · PAT-4, PAT-12 · UXP-1, UXP-4: one grid with bulk assign, week-offs and rotations in the same view |
| UX-ATT-10 | Shift swap is hidden inside the approval step. The manager picks a swap employee from a dropdown while approving; whether it is mandatory and how the other employee is informed is not documented. | C5 (Not documented list) | One decision handles both rosters | The swapped colleague has no say or notice (not documented); no coverage check | P-REQ + P-INBOX · PAT-3, PAT-2 · UXP-5: employee names the colleague on the request, colleague accepts in Inbox, manager sees coverage (FR-ATT-017) |
| UX-ATT-11 | Reports and approvals are not at the point of use. The monthly detail is a report, not the calendar; the calendar shows status but opening a day to see punches, photos and source requires the report. | Screens "Calendar", "Check In/Out", "Monthly Detail Report"; spryple-analysis §21.3 (popup shows first and last photos) | Calendar is a good overview with colour legend (P, A, W, L, H, HD, WP, HP, HL) | Detail lives elsewhere; employee cannot see why a day is A or HD | P-TIME · PAT-4 · UXP-5: day drawer with punches, photos, source, request status and a "How calculated" line |
| UX-ATT-12 | Request edit and delete are scattered table icons. Edit shows a form again; Delete asks "Yes"; View is a separate icon after decision; permission has a separate cancel icon for approved records. | Screens "Edit Request", "Delete Request", "View"; C2, C6 | Familiar CRUD icons; confirmation guards against mistakes | Per module, inconsistent; terminology differs (Deleted, Cancelled) | P-TIME › My requests · PAT-10 · UXP-8: one list, one status vocabulary, Withdraw while Submitted, timeline on open |
| UX-ATT-13 | Late and extra-day results are separate reports, not in the month. Late Attendance report (shift, in time, late hours); Extra Days and Penalty Days are two radio buttons on a report. Screenshot sample shows implausible late hours (672:00:00), a calculation-quality signal. | Screens "Late Attendance Report", "Extra Days", "Penalty Days"; C17; spryple-analysis §21.3 | Dedicated report with PDF and Excel download | Employee learns of penalty after the fact; no explanation of the rule | P-TIME + P-INSIGHT · PAT-4, PAT-8 · UXP-5: lates, extra days and penalties as badges in the calendar with the rule named; reports centre filter for HR |
| UX-ATT-14 | Two capture models for shared devices: Receptionist login and face enrolment by a manager. Receptionist selects All or Select employees to capture attendance; face enrolment is done by manager or receptionist from separate screens; no liveness cue visible. | C13, C14; screenshots §21.3 | Works for employees without smartphones | A person with a login punches for others; no liveness or anti-spoof cue is visible in screenshots | P-KIOSK · PAT-11 · UXP-7: location-scoped kiosk with face/PIN; assisted punch with reason and photo (FR-MOB-012, -017) |
| UX-ATT-15 | Approval History and request history are separate lists. Manager sees approved and rejected attendance requests in Approval History and permission outcomes in Permission History. | Screens "Approval History", "Permission History"; C4, C6 | Quick audit by module | Two histories for one manager job; no combined filter by type | P-INBOX · PAT-2, PAT-10 · UXP-2: Inbox "Done" filter; same list, status chips |
| UX-ATT-16 | Admin-only setup is mixed with daily menus. Mapping IDs, Messages Master, Extra Days Slab sit alongside daily shift and report pages in the Attendance module; geo-fence radius has steps "not documented". | C1, C15, C20; screens 7, 8, 12, 13; §21.3 (radius 200 m example, options not shown) | Admin finds attendance-related setup in the attendance menu | Daily users see setup items; geo-fence steps and out-of-fence behaviour are not documented | P-SET › Devices & locations, Policies · PAT-9 · UXP-7: web-first setup; geo-fence radius with live map and mode (block / flag / off) (FR-ATT-003) |
2.2 Where every feature goes (all screens addressed)
| # | Spryple screen | Audiences | New place › section | Treatment | Why / how it works now |
|---|---|---|---|---|---|
| 1 | Monthly Attendance Report | Super Admin, Admin | P-INSIGHT › Attendance › Monthly register | MERGE | One catalogue entry; Scope = Location or Org; absent, present, late, total counts kept; saved view and export |
| 2 | Monthly Shifts Report | Super Admin, Admin | P-INSIGHT › Attendance › Shift coverage; also P-TEAM › Roster planner coverage row | MERGE | Present / scheduled per shift per day shown while planning (e.g. 3/109 style in §21.3), and as a report |
| 3 | Attendance Summary Report | Super Admin, Admin, Employee | P-INSIGHT › Attendance › Summary (Scope Me / Team / Org); Me view is the P-TIME month summary | DEDUPE | One of five appearances; first in, last out, hours, photos and source stay in the day drawer and export |
| 4 | Current Day Attendance Report | Super Admin, Admin, Managers | P-TEAM › Team today (managers); P-INSIGHT › Attendance › Today (Org) | EMBED | Live status with check-in photos in the drill; no search form |
| 5 | Punch Summary Report | Super Admin, Admin, Managers | P-INSIGHT › Attendance › Punches; P-TIME day drawer for one person | MERGE | Multiple in/out per day kept; City-Branch is the scope filter |
| 6 | Missed Punch Report | Admin, Managers, Employee | P-HOME action card "Fix"; P-TEAM › Team today exceptions; P-INSIGHT saved view | REPLACE | Missed punch becomes an action, not a report; report remains as a saved view for HR (4 appearances collapse to 1) |
| 7 | Mapping ID's | Admin | P-SET › Devices & locations › Biometric mapping | KEEP+ | Bio-metric ID to employee, plus bulk import and an Unmapped punches queue (FR-ATT-006/007) |
| 8 | Attendance Messages Master | Admin | P-SET › Templates & messages (module: Attendance) | REPLACE | One Templates & messages editor for every module: notification templates plus terminology and label overrides (FR-ORG-017). Editing every on-screen error message per tenant is not carried over (FR-NTF-017, Won't) |
| 9 | Shift configuration | Admin, Managers | P-TEAM › Roster planner (assign); P-SET › Policies › Attendance › Shifts (shift master) | KEEP+ | Pick employees, drag or bulk-assign a shift and week-off, date range; publish with notification |
| 10 | Shift wise Report | Admin, Managers | P-TEAM › Roster planner coverage; P-INSIGHT › Shift coverage | MERGE | Same data as screen 2, one source |
| 11 | Week off configuration | Admin, Managers | P-TEAM › Roster planner › Week-offs; default pattern in P-SET › Policies › Attendance | DEDUPE | Three appearances become one grid control; per-employee history kept |
| 12 | Extra Days Slab configuration | Admin | P-SET › Policies › Attendance › Extra days | REPLACE | Slab by designation (min days, max days, eligible extra days) inside a plain-language editor with example (FR-ATT-029) |
| 13 | Applicable Designations for Penalty | Admin | P-SET › Policies › Attendance › Week-off penalty (applicability) | REPLACE | Active/Inactive list becomes the applicability picker of the penalty rule (FR-ATT-030) |
| 14 | Managers (dashboard) | Managers | P-HOME manager widgets; P-TEAM › Team today and team calendar | MERGE | Pending approvals, absent counts and employee list in calendar all kept |
| 15 | Dashboard (Request Behalf of Employee) | Managers, Employee | P-REQ with "For" switch | DEDUPE | On-behalf is a switch on the one sheet |
| 16 | Add a request (Dashboard) | Managers | P-REQ prefilled from P-TEAM | DEDUPE | Same as 15; employee prefilled when opened from a person |
| 17 | Request Behalf of Employee (Side Navigation) | Managers | P-REQ | DEDUPE | Same as 15; no side-nav item |
| 18 | Approve from Main Dashboard | Managers | P-HOME action card to P-INBOX | DEDUPE | "Approve 5" card opens the Inbox filtered |
| 19 | Approve request (Dashboard) | Managers | P-INBOX | DEDUPE | One approval page, now a context panel |
| 20 | Pending Approvals (Side Navigation) | Managers | P-INBOX | KEEP+ | Becomes the single inbox with bulk and swipe |
| 21 | Excel Upload | Managers | P-PEOPLE › Bulk import › Attendance | REPLACE | Self-serve template, dry-run, commit (FR-ATT-036); vendor dependency removed |
| 22 | Summary Report | Managers | P-INSIGHT › Attendance › Summary, Scope = Team | DEDUPE | Same report as 3 |
| 23 | Manager Detailed Report | Managers | P-INSIGHT › Attendance › Punches; P-TEAM drill to day drawer | DEDUPE | Details per person per day opened from the team view |
| 24 | Late Attendance Report | Managers, Employee | P-TIME calendar late badge (Me); P-INSIGHT › Lates (Team) | MERGE | Shift, in time, late minutes with the rule that applied |
| 25 | Approval History | Managers | P-INBOX › Done filter | MERGE | Approved/rejected with timeline (PAT-10) |
| 26 | Approve Shift Change Request | Managers | P-INBOX (type: Shift change) | MERGE | Swap is chosen by the requester and accepted by the colleague |
| 27 | Shift rotation Sequences | Managers | P-TEAM › Roster planner › Rotations | KEEP+ | Define ordered shifts, step length, anchor date, location (FR-ATT-013) |
| 28 | Approve Permission | Managers | P-INBOX (type: Permission) | MERGE | Approver may edit minutes inline before approving |
| 29 | Assign Rotation Shift | Managers | P-TEAM › Roster planner (assign rotation to selection) | MERGE | Select employees, choose rotation and start step |
| 30 | Permission History | Managers | P-INBOX › Done; P-TIME › My requests (employee) | MERGE | One status list |
| 31 | Manager Attendance Regularization | Managers | P-TEAM › Team today › Exceptions (bulk table) | REPLACE | Full-day and half-day exceptions listed; multi-select, then attendance or leave on behalf (FR-ATT-025) |
| 32 | Regularization Approval | Managers | P-INBOX (type: Fix attendance) | MERGE | Bulk approve; manager-made fixes are auto-approved, so nothing to approve for them |
| 33 | Reassign Rotation Shift | Managers | P-TEAM › Roster planner › Reassign from date | MERGE | Past days unchanged (FR-ATT-013) |
| 34 | Overtime Report | Managers | P-INBOX (OT claims); P-INSIGHT › Overtime | MERGE | Computed OT candidates reviewed, not just reported (FR-ATT-028) |
| 35 | Extra Days & Penalty Report | Managers, Employee | P-INSIGHT › Attendance › Extra days and penalties | MERGE | Heading-only in the Help Center; one entry with two tabs |
| 36 | Extra Days | Managers, Employee | Tab of screen 35; badge in P-TIME month | MERGE | Weekoff-present, holiday-present, slab count |
| 37 | Penalty Days | Managers, Employee | Tab of screen 35; badge in P-TIME month | MERGE | Same as 36 |
| 38 | Login | Employee | Common sign-in (Access part); lands on P-HOME | DEDUPE | Not redesigned here |
| 39 | Employee Dashboard | Employee | P-HOME | MERGE | Heading only in the Help Center; punch card and action cards |
| 40 | Calendar | Employee | P-TIME calendar | KEEP+ | Codes A, P, W, L, H, HD, WP, HP, HL, with day drawer |
| 41 | Check In/Out | Employee | P-HOME punch card | EMBED | First In / Last Out shown beside the punch button |
| 42 | Shifts | Employee | P-HOME punch card; P-TIME | EMBED | Current and next shift with date and time |
| 43 | Requesting Attendance | Employee | P-REQ | MERGE | Three ways collapse to one sheet |
| 44 | From Main Dashboard | Employee | P-HOME action card | DEDUPE | Pending days appear as cards |
| 45 | Send a request | Employee | P-REQ prefilled from the card | DEDUPE | Pending date prefilled |
| 46 | Attendance Request | Employee | P-REQ › Work from home / On-duty | REPLACE | Work type, dates, half-day, reason, attachment kept |
| 47 | Edit Request | Employee | P-TIME › My requests | MERGE | Editable while Submitted |
| 48 | Delete Request | Employee | P-TIME › My requests | MERGE | Withdraw with confirm |
| 49 | View | Employee | P-TIME › My requests timeline | MERGE | Decision, who, when |
| 50 | Monthly Detail Report | Employee | P-TIME month view + export | MERGE | Download Excel and PDF from the calendar |
| 51 | Shift Change Request | Employee | P-REQ › Shift change | MERGE | From-shift auto filled |
| 52 | Request Permission | Employee | P-REQ › Permission | MERGE | Minutes, date, reason; one per day rule shown at entry |
| 53 | Attendance Regularization | Employee | P-HOME action card "Fix"; P-TIME day drawer | REPLACE | Enter out-time or convert to leave in one sheet |
Rows covered: 53 of 53
2.3 Redesigned workflows
Baseline = documented UI actions from the workflow-actions data. After = estimated taps (decisions and data the user must provide; prefilled defaults not counted).
| ID | Workflow | Spryple documented UI actions | Redesigned flow (where → steps) | Taps after (estimate) | Saving |
|---|---|---|---|---|---|
| C1 | Biometric ID mapping | 5 | P-SET › Devices & locations › Biometric mapping → pick device user (or bulk import) → pick employee → save; unmapped punches queue lists who is waiting | 3 | 2 |
| C2 | Attendance request by employee (3 entry points) | 15 | P-HOME "Fix" card or P-REQ → type (prefilled by day) → reason → submit | 3 | 12 |
| C3 | On-behalf request (manager) | 12 | P-TEAM person or P-REQ → For: team member → type and dates → submit (auto-approved) | 4 | 8 |
| C4 | Attendance request approval (3 ways) | 12 | P-INBOX → swipe or bulk approve | 1 | 11 |
| C5 | Shift change and swap | 11 | P-REQ › Shift change → to-shift (+ colleague) → submit; colleague accepts in P-INBOX; manager approves in P-INBOX | 5 | 6 |
| C6 | Permission request and approval | 10 | P-REQ › Permission → minutes → submit; manager approves in P-INBOX (edit minutes inline if needed) | 4 | 6 |
| C7 | Regularization (employee) | 8 | P-HOME "Fix" card → enter out-time (or choose leave) → confirm | 2 | 6 |
| C8 | Manager regularization and approval | 14 | P-TEAM › Team today › Exceptions → multi-select → Attendance or Leave (auto-approved) | 3 | 11 |
| C9 | Shift creation and assignment | 8 | P-SET › Policies › Shifts (create once); P-TEAM › Roster planner → select employees → shift → range → publish | 4 | 4 |
| C10 | Week-off configuration | 3 | Roster planner › Week-offs → pattern → select employees → save | 3 | 0 |
| C11 | Shift rotation: create, assign, reassign | 18 | Roster planner › Rotations → name and pick shifts → save; select employees → rotation and start step → publish; reassign = same with "from date" | 6 | 12 |
| C12 | Excel upload of attendance | 8 | P-PEOPLE › Bulk import › Attendance → pick file → review dry-run → commit | 4 | 4 |
| C13 | Face capture and enrolment | 1 | P-SET › Devices & locations › Face enrolment → invite (bulk); employee self-captures on phone; status Verified / Not verified in Person 360 | 1 (HR) | 0 |
| C14 | Receptionist check-in / out | 7 | P-KIOSK → employee looks at camera (face/PIN); assisted punch only for visitors | 1 | 6 |
| C15 | Geo-location configuration | 0 (steps not documented) | P-SET › Devices & locations → place pin on map → radius → mode (block / flag / off) → save | 3 | n/a |
| C16 | Extra days slabs and penalty designations | 8 | P-SET › Policies › Attendance › Extra days / Week-off penalty → answer plain-language prompts → preview → effective date | 4 | 4 |
| C17 | Extra Days and Penalty Days reports | 5 | P-TIME month badges (employee); P-INSIGHT › Extra days and penalties (saved view) | 2 | 3 |
| C18 | Missed Punch report and default punch-out | 6 | Home "Fix" card (employee); Team today exceptions (manager); P-INSIGHT saved view (HR); default punch-out is a policy value, not a precondition for the report | 2 | 4 |
| C19 | Attendance report retrieval | 4 | P-INSIGHT › Attendance → Scope → saved view or export | 2 | 2 |
| C20 | Attendance Messages Master | 2 | P-SET › Templates & messages → edit → save | 2 | 0 |
| C21 | Shift wise report | 1 | Roster planner coverage row, visible with no taps | 0 | 1 |
| L11 | Overtime duration | 2 | P-SET › Policies › Attendance › Overtime → minimum minutes (with rounding and cap in the same editor) → save | 2 | 0 |
| Total | 160 | 61 | 99 (about 62%) |
C15 saves nothing because the documented flow has 0 recorded actions; the 3 taps are our estimate.
Journey 1. Daily punch on mobile (C13 step 5, C14, C15)
- Before (Spryple, documented): The employee self check-in or check-out in the HCM app with face configuration; geo-located check-in works within a manager-configured location; the radius and out-of-fence behaviour are not documented; the receptionist route needs a login and selecting All or Select employees (7 actions, C14). Timings are seen in the web dashboard.
- After: P-HOME punch card shows shift, geo status and a single Punch button (PAT-1). Selfie plus location are captured in the same tap (FR-ATT-002). Inside the fence: punch is done. Outside (flag mode): a one-line reason field appears. Offline: queued with a banner (FR-ATT-005). At shared sites, P-KIOSK takes face or PIN with no login.
- Taps: 1 (phone), 0 at kiosk (face), versus 7 for the receptionist route.
- Automatic: shift selection (auto-shift for multi-shift, FR-ATT-018), source tagging, geo-fence check, default punch-out at shift end if policy says so (PAT-11).
Journey 2. Missed punch fix (C7, C18, C8)
- Before: Employee checks in but not out; the record appears in the Attendance Regularization table; edit icon, enter out-time, save icon (or leave icon, choose leave type, submit) = 8 actions. The Missed Punch Report (6 actions) shows data only if Rule 35 is Yes. Manager has a separate page: Full Day radio, multi-select, attendance or leave icon, confirm; then a separate Regularization Approval page (14 actions together).
- After: Next morning Home shows an action card "Yesterday: no out punch. Fix" (PAT-1). Tap Fix → sheet prefilled with the date and the provisional out-time per policy; adjust time or switch to "Leave" → confirm. The day drawer in P-TIME carries the same Fix button. For managers, Team today › Exceptions lists the team's missed punches; select several → Attendance or Leave, auto-approved at manager level with a required reason (FR-ATT-025). Reminders and period-close auto-resolution run by policy (FR-ATT-020, -032).
- Taps: employee 2; manager 3 for the whole team.
- Automatic: detection, provisional punch-out, reminder, lookback limit shown at entry ("2 of 4 used this month", UXP-5), period-close resolution.
Journey 3. WFH / On-duty request (C2, C3)
- Before: Three entry points (Alerts on main dashboard, "Send a request" under Pending Attendance, Attendance Request in the module) lead to one form: work type, from, to, reason, half-day ticks, attachment, submit (15 actions). Manager on behalf uses two more routes (12 actions). Mobile also requires a Shift (§21.3).
- After: "+ Request" → "Work from home / On-duty" (or the Home card for a pending day). Dates default to today or the pending day; shift auto-filled; reason is the only typed field; submit shows "Approver: Priya, usually answers in 2 h". Manager: open from a team member (P-TEAM) or flip "For" to the person; request is auto-approved (FR-ATT-023, US-ATT-11).
- Taps: 3 employee, 4 on behalf.
- Automatic: shift, date defaults, per-type monthly limit shown before submit, notification to approver, calendar update on approval.
Journey 4. Approvals (C4, plus C5, C6, C8 approval steps)
- Before: Three ways to open the same Approval for Attendance page; Approve opens a popup, Submit approves; Reject needs a reason (12 actions). Permission, regularization and shift change each have their own approval page. Bulk approval for attendance requests is not documented; regularization approval allows multi-select.
- After: One P-INBOX. List grouped by type with filters, a context panel (team calendar, balance, policy check, history), swipe-right to approve on mobile, select-all and Approve for bulk with a common reason for reject (FR-NTF-011). Permission minutes can be edited inline. OT claims sit in the same list. Home shows "7 to approve" as an action card.
- Taps: 1 per item, or 2 for a batch of any size (select all, approve).
- Automatic: items arrive from all modules; manager-raised requests are auto-approved so they never enter the queue.
Journey 5. Shift and roster planning with rotation and swap (C9, C10, C11, C5, C21)
- Before: Admin creates a shift (name, description, times, grace, lates, deduction). Manager assigns shift and week-offs on one page, week-offs on another (3 appearances), rotation sequences on a third, assign rotation on a fourth, reassign on a fifth (18 actions for rotation alone). Shift change approval is a separate page with a swap dropdown. How the rotation advances automatically is not documented.
- After: P-TEAM › Roster planner: employees by days grid with a coverage row (present / scheduled). Select cells or people → pick a shift, week-off pattern or rotation → publish with notification (PAT-4, PAT-12; drag and drop is R2, FR-ATT-015). Rotations are defined in a side panel (shifts, step length, anchor date). Reassign from a date leaves past days unchanged. Swap: employee names the colleague in "+ Request › Shift change"; colleague accepts in Inbox; manager approves and the grid updates both rows with a coverage warning if below minimum.
- Taps: shift/week-off assignment 4, rotation 6, swap 5 across three people.
- Automatic: rotation advance, default shift for new joiners (FR-ATT-012), from-shift prefill, notification on publish.
Journey 6. Permission (C6)
- Before: Employee: add new, select date, enter minutes, enter reason, submit; one per day; edit, delete or cancel icons. Manager: Approve Permission page, optional edit, approve or reject icon; Permission History for outcome (10 actions). Maximum duration and rejection reason capture are not documented.
- After: "+ Request › Permission": date defaults to today, start time and minutes with the rule shown ("1 per day, up to 120 min, paid per policy", FR-ATT-026). Submit. Manager sees it in Inbox, adjusts minutes inline if needed, approves. Approved minutes excuse late/early-go automatically; the calendar day shows a "Permission" badge.
- Taps: 3 employee (+ Request, minutes, submit), 1 manager.
- Automatic: limit check, paid/unpaid outcome, late excusal.
2.4 UX enhancements beyond Spryple
- [Proposed] Smart punch card on Home: shows today's shift, geo status ("Inside Pune HQ, 40 m") and a single Punch button; first IN and last OUT appear instantly.
- [Proposed] Day drawer with "How calculated": tapping any calendar day shows punches, photos, source, shift, policy version and why the day is HD or A (FR-ATT-019).
- [Proposed] Pre-emptive Fix cards: the system detects missed punches, short hours and repeated lates and offers the fix on the day, with a daily reminder at a policy time.
- [Proposed] Live policy preview at entry: "This will use 1 of 2 permissions this month", "Regularization 2 of 4 used", "Balance after: 2.5".
- [Proposed] Roster coverage warnings while planning (minimum coverage per shift) and a "copy last week" action (FR-ATT-014).
- [Proposed] Shift swap with consent: colleague accepts before the manager decides (FR-ATT-017).
- [Proposed] OT review queue: computed candidates, approve all, part (edit minutes) or none; approved OT can go to pay or comp-off (FR-ATT-027/028).
- [Proposed] Period-close checklist (unresolved missed punches, pending requests, OT claims, unmapped punches) with one-tap reminders before payroll lock (FR-ATT-032).
- [Proposed] Unmapped punches queue with one-tap mapping, and device health alerts (FR-ATT-006/008).
- [Proposed] Anomaly flags (out-of-fence, offline, clock drift, impossible travel) reviewed as exceptions, not as reports (FR-ATT-039).
- [Proposed] Kiosk mode with PIN fallback and liveness (Spryple's screenshots show no liveness cue) (FR-MOB-012..017).
- [Proposed] Saved views and scheduled delivery for the attendance reports, so HR does not reselect City-Branch and manager each time.
2.5 PRD impact
| Proposed ID | UX requirement | Priority (MoSCoW) | Release | Source issue |
|---|---|---|---|---|
| UX-FR-ATT-01 | Home punch card: one-tap punch with selfie and location, shift, geo status, first IN / last OUT; inline reason when outside the fence in flag mode (extends FR-ATT-002/003/037) | Must | R1 | UX-ATT-11, UX-ATT-16 |
| UX-FR-ATT-02 | Fix action cards on Home and in the day drawer for missed punch, short hours and lates, prefilled with date and provisional value (extends FR-ATT-020/024) | Must | R1 | UX-ATT-04 |
| UX-FR-ATT-03 | "+ Request" sheet covers attendance (WFH, On-duty, Remote), permission, shift change, regularization with a "For: Me / Team member" switch; no separate on-behalf screens (extends FR-ATT-023/025/026/017, US-ATT-11) | Must | R1 | UX-ATT-01, UX-ATT-05 |
| UX-FR-ATT-04 | Single Inbox for all attendance approvals (attendance, permission, regularization, shift change, OT) with bulk and swipe and a context panel (extends FR-NTF-011, FR-ATT-028) | Must | R1 | UX-ATT-02, UX-ATT-15 |
| UX-FR-ATT-05 | My requests: one list for every attendance request type with Withdraw while Submitted, one status vocabulary and a timeline | Must | R1 | UX-ATT-01, UX-ATT-12 |
| UX-FR-ATT-06 | Time calendar day drawer: punches, photos, source, request status, "How calculated" (extends FR-ATT-019/037) | Must | R1 | UX-ATT-11 |
| UX-FR-ATT-07 | Attendance badges in the calendar for late, extra day, penalty and permission with the rule that applied (extends FR-ATT-022/029/030) | Should | R1 | UX-ATT-13 |
| UX-FR-ATT-08 | Reports centre: one Attendance topic with Scope (Me / Team / Location / Org), saved views, export and schedule; replaces role-specific copies (extends FR-RPT-003) | Must | R1 | UX-ATT-03 |
| UX-FR-ATT-09 | Team today with Exceptions tab: live status plus missed punch and half-day lists with multi-select, attendance or leave on behalf (extends FR-ATT-025/038) | Must | R1 | UX-ATT-04, UX-ATT-05 |
| UX-FR-ATT-10 | Roster planner: one grid for shifts, week-offs and rotations with bulk assign, copy week, coverage row and publish notification (extends FR-ATT-012..014, -016); drag and drop stays R2 (FR-ATT-015) | Should | R1 | UX-ATT-09 |
| UX-FR-ATT-11 | Shift swap: requester names the colleague, colleague accepts in Inbox, manager sees coverage (extends FR-ATT-017) | Should | R1 | UX-ATT-10 |
| UX-FR-ATT-12 | Settings › Policies › Attendance: one plain-language editor covering shifts, grace, lates, week-offs, regularization, permission, extra days, penalty, missed punch with impact preview and effective date (extends FR-ATT-011, -016, -020, -022, -026, -029, -030) | Must | R1 | UX-ATT-08 |
| UX-FR-ATT-13 | OT policy and OT review: typed policy with approval, rounding, caps and outcome; computed candidates reach the Inbox as claims (extends FR-ATT-027/028) | Must | R1 | UX-ATT-07 |
| UX-FR-ATT-14 | Attendance import through Bulk import with downloadable template, dry-run, commit and rollback (extends FR-ATT-007/036, FR-ORG-012) | Must | R1 | UX-ATT-06 |
| UX-FR-ATT-15 | Devices & locations: biometric mapping with bulk import and Unmapped punches queue, geo-fence on map, face enrolment status (extends FR-ATT-003/006/008) | Must | R1 (device gateway R2) | UX-ATT-16 |
| UX-FR-ATT-16 | Kiosk: face or PIN, location-scoped, assisted punch with reason and photo; replaces Receptionist login (extends FR-MOB-012..017, FR-ATT-010) | Should | R2 | UX-ATT-14 |
| UX-FR-ATT-17 | Period-close checklist with reminders before lock (extends FR-ATT-032) | Should | R1 | UX-ATT-04, UX-ATT-07 |
| UX-FR-ATT-18 | Decision needed: Attendance Messages Master is Won't in FR-NTF-017; keep notification wording editable in Templates & messages and UI strings in code | Could | R2 | UX-ATT-16 |