Skip to main content

UX redesign: Leave & holidays

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).

3. Leave & Holidays​

Scope: all audiences (Admin, Managers, Employee, plus the CRM copy used by Sales Executives), web and mobile leave. Baselines are the documented UI actions in workflow-actions.json (documented-actions estimate, not a live measurement). Redesign figures are estimates of decisions and data the user must provide; prefilled defaults are not counted (see the click-count method in 00-ia-and-principles.md).

3.1 UX issues found​

IDIssue (pattern)EvidenceProsConsHow we handle it (place · pattern · principle)
UX-LVE-01Leave request, comp-off request, optional holiday request, cancellation and history are separate pages inside the Leave module (one page per request type)D5, D9, D11 in 04-workflows.md; screens Leave Request, Comp-off Request, Optional Holiday Request, Leave HistoryEach page is simple and has one purpose; the menu names are easy to learnEmployee must know which page matches the need; five entry points; the same fields (dates, reason) are rebuilt on each pageP-REQ · PAT-3 request sheet with a type picker (Leave, Comp-off credit, Optional holiday) · UXP-2, UXP-3
UX-LVE-02Sandwich-rule effect is invisible until after submit. The page shows a "Leave count" but the sandwich rules (Friday plus Monday, days around a holiday) are applied silentlyD5 step 3; D3 rules 1 and 2; "Balance deduction timing" not documentedThe count is shown automatically, so simple requests need no mathsUsers cannot see why 2 days became 4, or what the balance will be after; surprises appear at approvalP-REQ · PAT-3 live policy preview: "This will use 4 days (sandwich: Sat–Sun counted). Balance after: 2.5" · UXP-5
UX-LVE-03The holiday list is a separate widget and View All screen, apart from the calendarD12; screens Calendar and Holiday ListThe "next 3 holidays" widget is a quick glanceA second list duplicates what the calendar already shows; View All is one more clickP-TIME · PAT-4 calendar plus day drawer; holidays are a layer on it; next 3 holidays as a Home card · UXP-2
UX-LVE-04Ten leave-type configuration screens, each a numbered question list (Casual 10 rules, Sick 6, Comp-off 9, LOP 3, Maternity 6, Paternity 5, Wedding 5, Bereavement 3, Earned 10, plus Advanced)D4; 05-configuration.md §3.3–3.12Each type is isolated, so a change cannot leak into another typeSame questions (sandwich, credit frequency, lapse, advance days) are repeated per type; 57 numbered rules to answer; no previewP-SET › Policies › Leave types · PAT-9 plain-language editor with templates, grouped sections, "inherited vs overridden" and an impact preview · UXP-9
UX-LVE-05Policy changes apply only to newly added employees; no preview of what changesD4 effect scope (documented)Predictable: nobody's existing balance moves by surpriseAdmin cannot fix an existing policy for current staff; the real effect is hard to seeP-SET › Policies › Leave types · PAT-9 effective date plus impact preview of balance changes before activation · UXP-5 (FR-LVE-024)
UX-LVE-06On-behalf leave, comp-off and optional holiday each have their own manager screenD8, D10, D11 step 5; screens Request on Behalf of Employee, Comp off Request on Behalf, Optional Holiday on BehalfManager gets a purpose-built screen per typeThree screens for one idea; D8 auto-approves but D10 does not state it, so behaviour is inconsistentP-REQ · PAT-3 "For: Me / Team member" switch on the same sheet · UXP-3
UX-LVE-07Manager approvals are split across Pending Requests, Pending Comp-off, Pending Cancellation Requests and Optional Holiday ApprovalD6, D7, D9, D11; screens listedEach list is short and typedThe manager must visit four places; items are easy to miss; each has its own approve and reject controlsP-INBOX · PAT-2 one inbox with a type filter, bulk approve, swipe · UXP-2
UX-LVE-08Approval gives no context. The manager sees the request but the team calendar sits on a different screen (Manager Leave Dashboard)D6 (Calendar on the dashboard); "Delegation, auto-approval timeouts" not documentedThe dashboard calendar exists, so context is reachableContext and decision are on different screens; a clash with teammates is found only by memoryP-INBOX · PAT-2 context panel: team calendar for those dates, balance, policy check, history · UXP-1, UXP-5 (FR-LVE-010)
UX-LVE-09Reject is a multi-step control: click Reject, type a reason, click Submit; approve opens no previewD6 steps 2–4; D11 step 4A recorded reason helps the employee3 actions per rejection; also "Review and approve" repeats the same approve action on another screenP-INBOX · PAT-2 one-tap approve; reject opens an inline reason with quick reasons · UXP-4
UX-LVE-10Leave history appears in 5 places (employee, manager, CRM employee, CRM manager, comp-off history separately)01-evidence.md (leave history 5); screens Leave History, Comp-off History; D15Each audience finds history near its own menuSame data, five screens; editing and deleting are only inside historyP-TIME · requests list with status filter (MERGE); CRM copy removed (DEDUPE) · UXP-2, UXP-3
UX-LVE-11Leave screens are duplicated inside CRM (Leave Request, Leave History, Pending Approvals)D15; 01-evidence.md (18 attendance/leave/shift screens repeated in CRM)Field staff stay in one app shellA second leave form and history to build, test and keep consistent; statuses differ (applied, cancel leaves)P-REQ · PAT-3 same sheet in the single app; field users see the same Home and Inbox · UXP-3
UX-LVE-12Leave reports are repeated: Detailed, Employee wise, Summary, PayrollD14; screens listedEach report has a clear nameFour screens with the same filters (employee, period, type, status, designation); Excel and PDF each timeP-INSIGHT · PAT-8 report centre, one Leave topic with scope filter and saved views · UXP-2
UX-LVE-13Balance, company policy and optional-holiday quota are separate read-only pages (Leave Balance, Company Leave Policies with fields disabled)D13; [SS] §21.11 read-only Rule/Value tableThe policy text is completeEmployee must open another page to learn a rule; numbered admin rules are shown to employeesP-TIME balance chips plus a plain-language "my policy" summary inside the request sheet and the balance drawer · UXP-5 (FR-LVE-019, FR-LVE-021)
UX-LVE-14Activate and deactivate leave types is a separate flow (Add new, select, submit) and the effect of deactivating is not documentedD1, D2Prevents unwanted types from appearingSeven actions to switch two types on and off; effect on balances and open requests not documentedP-SET · PAT-9 template picker with an active toggle and a block-or-choose dialog when balances exist · UXP-9 (FR-LVE-031)
UX-LVE-15Employee cannot see comp-off life: approved, utilized, expired are visible only to managers (Comp-off History); how a comp-off becomes a leave day is not documentedD9 not documented; screen Comp-off History (Managers)Managers can auditEmployees get no warning before expiry; comp-off earn and use are two disconnected stepsP-HOME · PAT-1 action card "1 comp-off expires in 5 days: Use it" plus P-REQ prefilled leave type · UXP-1 (FR-LVE-014)
UX-LVE-16Contact number and emergency email are asked only on mobile; sick leave documents are a separate upload rule[SS] §21.4; D5 variants; Sick leave ruleNeeded on long leavesWeb and mobile forms differ, so data is inconsistentP-REQ · PAT-3 adaptive fields: contact and attachment fields appear only when the policy needs them, same on web and mobile · UXP-9 (FR-LVE-007)

3.2 Where every feature goes (all screens addressed)​

#Spryple screenAudiencesNew place › sectionTreatmentWhy / how it works now
1Leave PoliciesAdminP-SET › Policies › Leave typesREPLACEOne list of active leave types with status, accrual and applicability; opens the plain-language editor (PAT-9)
2Common rules configurationAdminP-SET › Policies › Leave types › Company defaultsREPLACEThe six common rules (two sandwich rules, past days, mails, leave cycle, optional holiday cap) become tenant defaults, inherited by each type and overridable
3How to activate default leaves?AdminP-SET › Policies › Leave types › Add from templateREPLACETemplate picker seeds the ten observed types; no separate Add new then Submit page
4Casual leave ConfigurationAdminP-SET › Policies › Leave types › Casual (editor)REPLACETen rules regrouped into Entitlement, Rules on use, Year-end, Sandwich, with an example and an impact preview
5Sick leave ConfigurationAdminP-SET › Policies › Leave types › Sick (editor)REPLACESix rules incl. document-required-above-N-days shown as one sentence with a live example
6Comp-off leave ConfigurationAdminP-SET › Policies › Leave types › Comp-off (editor)REPLACENine rules (eligibility, minimum hours, backdated days, lapse) as one plain-language panel
7Loss of pay Leave ConfigurationAdminP-SET › Policies › Leave types › Loss of pay (editor)REPLACEThree rules; shown with the LOP split offer used in requests
8Maternity Leave ConfigurationAdminP-SET › Policies › Leave types › Maternity (editor)REPLACESix rules; eligibility is a condition set in the editor (not a fixed gender or marital-status rule, per FR-LVE-003)
9Paternity Leave ConfigurationAdminP-SET › Policies › Leave types › Parental (secondary carer) (editor)REPLACEFive rules, same editor
10Wedding Leave configurationAdminP-SET › Policies › Leave types › Wedding (editor)REPLACEFive rules; eligibility via conditions
11Bereavement Leave configurationAdminP-SET › Policies › Leave types › Bereavement (editor)REPLACEThree rules, same editor
12Earned Leave configurationAdminP-SET › Policies › Leave types › Earned (editor)REPLACETen rules incl. carry-forward shown with a year-end preview
13Advanced leave configurationAdminP-SET › Policies › Leave types › Advanced (negative) leaveKEEP+Stays as a setting on a type that accrues monthly; negative balance shown in the ledger and the request preview
14How to deactivate Default leavesAdminP-SET › Policies › Leave types › Active toggleMERGEToggle in the list; a dialog asks what happens to open balances and requests (not documented in Spryple)
15Leaves Messages MasterAdminP-SET › Templates & messages (module: Leave)REPLACEOne 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)
16Manager Leave DashboardManagersP-TEAM › Team calendar and P-HOME (manager widgets)EMBEDWho is out and pending count on Home; the calendar is the team calendar; list is filtered Inbox
17Pending RequestsManagersP-INBOX › filter LeaveMERGEOne inbox list; Approve, Reject, View on the row or swipe
18ApproveManagersP-INBOX › row actionMERGEOne tap, or bulk approve
19RejectManagersP-INBOX › row actionMERGEReject opens an inline reason (quick reasons)
20Review & approveManagersP-INBOX › context panelDEDUPESame approve action as 18; the context panel is the review
21Pending Comp-offManagersP-INBOX › filter Comp-offMERGESame inbox, type filter
22Pending Cancellation RequestsManagersP-INBOX › filter CancellationMERGESame inbox; the item shows the original leave and balance restored
23Leave HistoryManagers, EmployeeP-TIME › My requests (employee); P-TEAM and P-INSIGHT with scope Team (manager)MERGEOne list per scope; status filter Submitted, Approved, Rejected, Cancelled, Deleted; edit, delete, cancel from the row
24Comp-off HistoryManagersP-TIME › My requests and balances (comp-off lots); P-INSIGHT with scope TeamMERGEApproved, Utilized, Expired become statuses and a "lots with expiry" list
25Detailed ReportManagersP-INSIGHT › Leave › Leave detailMERGEEmployee, date, type, designation as filters of one report
26Employee wise ReportManagersP-INSIGHT › Leave › Leave detail (scope Person)DEDUPESame report with an employee filter; also reachable from Person 360
27Summary ReportManagersP-INSIGHT › Leave › Leave summaryMERGEWorked days and leave count as a summary view
28Payroll ReportManagersP-INSIGHT › Leave › Payroll bridgeMERGELeaves approved, LOP and absent counts; also a readiness check in the payroll wizard (FR-LVE-023)
29Request on Behalf of EmployeeManagersP-REQ › For: Team memberMERGESame sheet; balance of the chosen person appears in the preview; approved at the actor's level
30Comp off Request on Behalf of EmployeeManagersP-REQ › Comp-off credit, For: Team memberMERGEEligible worked dates (week-off and holiday) listed for the chosen person
31Optional Holiday ApprovalManagersP-INBOX › filter Optional holidayMERGESame inbox; the quota used is shown in the context panel
32Optional Holiday on Behalf of EmployeeManagersP-REQ › Optional holiday, For: Team memberMERGESame sheet
33Employee (Leave Management entry)EmployeeP-HOME and P-TIMEDEDUPENo separate module landing page; balances on Home, calendar in My time
34Leave DashboardEmployeeP-HOME › balances card and P-TIMEEMBEDThe screen is a heading only in the help text (no content documented); balance chips and calendar cover it
35CalendarEmployeeP-TIME › CalendarKEEP+Holidays, week-offs and leaves with day drawer; tap a free day starts a request (UXP-1)
36Holiday ListEmployeeP-TIME › Calendar layer and P-HOME card (next 3)EMBEDView All is a list toggle on the same calendar
37Leave RequestEmployeeP-REQ › LeaveMERGEType, dates, half-day, reason on one sheet with a live sandwich and balance preview
38Leave BalanceEmployeeP-HOME › balances card; P-TIME › BalancesEMBEDUsed, Available, Total, pending and expiring; tap for the ledger (FR-LVE-019)
39Comp-off RequestEmployeeP-REQ › Comp-off creditMERGEOnly week-off and holiday dates selectable; hours; reason
40Company Leave PoliciesEmployeeP-REQ policy line and P-TIME › Balances › My policyEMBEDRead-only plain-language summary of the person's own resolved policy, not a field-by-field disabled form
41Optional Holiday RequestEmployeeP-REQ › Optional holidayMERGEList of optional holidays with quota left; one tap to choose, remarks optional

Rows covered: 41 of 41

3.3 Redesigned workflows​

Baseline counts are the documented UI actions from workflow-actions.json. D4, D7 and D13 have a baseline of 0 there because no countable steps are written, so their savings are "not measurable". Totals compare 69 documented actions (all 16 workflows) to an estimated 48 taps.

IDWorkflowSpryple documented UI actionsRedesigned flowTaps after (estimate)Saving
D1Leave policy activation5Settings › Leave types › Add from template, tick types, Activate23
D2Leave policy deactivation2Active toggle off, then choose what happens to balances in the dialog3-1 (adds a safety choice that Spryple does not have)
D3Common leave rules2Company defaults panel: change values with an example under each, save3-1 (more clicks buys previews and examples)
D4Leave type configuration and Advanced leave0 (not counted)Pick a template, edit grouped plain-language sections with a preview, set effective date, save5not measurable
D5Leave request (employee)6Tap a day (or + Request), type and dates prefilled, live preview, Submit33
D6Leave approval (manager)6Inbox row with team context: Approve (reject adds one inline reason tap)15
D7Leave cancellation0 (not counted)My requests row › Cancel › confirm; manager approves in Inbox2 (employee)not measurable
D8Leave on behalf (manager)7+ Request › For: Team member › person (type and dates prefilled) › Submit43
D9Comp-off request and approval4Home card or Request › Comp-off; worked date, hours, Submit; manager approves in Inbox40 (earn is 3 taps, approve 1; the gain is context and expiry card)
D10Comp-off on behalf6+ Request › Comp-off › For: person › date › Submit42
D11Optional holiday request, approval, on-behalf19Request › Optional holiday › tap holiday (quota shown) › Submit; manager approves in Inbox with bulk; on-behalf uses the For switch712
D12Holiday list and calendar1Holidays are a layer on My time; next 3 on Home; View All is a toggle10 (but one fewer screen)
D13Leave balance and policies0 (not counted)Balance chips on Home (0 taps); tap for ledger and "my policy"1not measurable
D14Leave reports3Report centre › Leave topic › scope filter (saved view)21
D15CRM leave request4Same + Request sheet in the single app; no second form31
L5Holidays (Admin)4Settings › Holidays › add from a national template or pick dates, tick locations, Submit; duplicate check inline31

Totals: 69 documented UI actions before, about 48 taps after.

Journey 1. Apply leave with a live sandwich and balance preview (D5, D8, D15)​

Before (6 documented actions): open Leave Management, click Leave Request, select leave type, pick From and To dates (and half-day option), enter reason, click Submit. The leave count appears, but the sandwich effect and balance after are not shown.

After (3 taps, UXP-4): tap a free day on My time (or + Request › Leave). The sheet prefills the leave type with most balance, start date; tap the end date, type is changeable. The preview updates as dates change: "4 days (sandwich: Sat–Sun counted). Balance after: 2.5. Priya and Omar are also out on 12 Nov". If balance is short, "Use 2 days as LOP?" is offered (FR-LVE-025). Tap Submit. Contact and attachment fields appear only when the policy asks for them (UX-LVE-16). The status timeline starts at Submitted.

Journey 2. Cancel leave (D7)​

Before: employee opens Leave History, cancels approved future leave; status shows "Cancel Submitted"; manager visits Pending Cancellation Requests to Approve or Reject. Balance restoration is not documented.

After (2 taps for the employee): My requests (or the day drawer) › Cancel leave › confirm. If not yet approved it is withdrawn at once; if approved and in the future it becomes a cancellation request with the balance to be restored shown ("2 days return to Casual"). The manager sees it in the Inbox filtered by Cancellation, with one-tap approve. Partial cancel of remaining days is offered if leave has started (FR-LVE-011). Past leave: HR only.

Journey 3. Comp-off earn and use (D9, D10)​

Before: employee opens Comp-Off Request, selects worked date (only week-offs and holidays enabled), hours and minutes, reason, Submit; manager uses Pending Comp-off; Comp-off History shows Approved, Utilized, Expired to managers only. How it becomes a leave day is not documented.

After: Earn (3 taps): Request › Comp-off credit; the sheet lists the eligible worked dates (prefilled if attendance already shows work on a week-off), hours prefilled from attendance, Submit; or credited automatically from approved attendance (FR-LVE-014 b) with no request. Manager approves in the Inbox. Use (3 taps): the Home card "1 comp-off, expires 30 Nov: Use it" opens the Leave sheet with Comp-off prefilled. Employee sees approved, utilized and expiry on each lot.

Journey 4. Optional holiday (D11, L5)​

Before (19 documented actions across the three audiences): employee clicks add, selects from the dropdown, enters remarks, submits; manager opens the separate optional holiday approval screen, selects From and To dates, searches, approves or rejects (reason, Submit); on-behalf: click the button, select employee and holiday, remarks, submit. The yearly cap is an Admin common rule.

After (3 taps employee, 1 tap manager, 3 on behalf): Request › Optional holiday: the list shows the tenant's optional days with "2 of 3 left"; tap one, Submit. The manager approves in the Inbox (bulk if several); the quota used is in the context panel. On-behalf uses the For switch. Admin side (L5): Settings › Holidays, add from a national template or pick dates, set Public or Optional and locations, duplicates for the same date and branch blocked inline.

Journey 5. Manager approval with team-calendar context (D6)​

Before (6 documented actions): open the Manager Leave Dashboard, view Pending Requests, Approve; or Reject, type a reason, Submit. The team calendar is on the dashboard, separate from the request.

After (1 tap; 2 for reject): the Inbox row shows employee, dates, days after sandwich, balance after, and a mini team calendar for those dates with teammates on leave and a concurrent-absence warning (FR-LVE-010). Approve by tap or swipe, or select several and Bulk approve. Reject opens an inline reason with quick reasons. Delegation and timeouts are not documented in Spryple; we show a Delegate option (see 3.4).

Journey 6. Leave policy setup with templates (D1–D4)​

Before (D1 5 actions, D2 2, D3 2, D4 not counted): Add new, select a policy, submit; then Edit each type and answer its numbered questions (Casual 10, Sick 6, Comp-off 9, LOP 3, Maternity 6, Paternity 5, Wedding 5, Bereavement 3, Earned 10); edit six common rules separately; a change affects only newly added employees.

After (about 5 taps for a standard setup): Settings › Policies › Leave types › Add from template; tick the types; set Company defaults once (leave cycle, sandwich, backdated days, mail); types inherit them and show "inherited" or "overridden". Each type opens in plain language ("Employees get 12 days a year, credited monthly") with an example and an impact preview ("14 employees' balances change"). Set effective date and Activate. Versioned, so current employees can be included with adjustment entries (FR-LVE-024).

3.4 UX enhancements beyond Spryple​

  • [Proposed] Tap-a-day request: tap a free day on My time to start a prefilled leave request (UXP-1).
  • [Proposed] Live preview in the sheet showing days used, sandwich effect, balance after and policy checks before submit (UXP-5).
  • [Proposed] Team clash warning for employee and approver with names where permitted (FR-LVE-010).
  • [Proposed] Home action card for expiring comp-off, with a Use it button.
  • [Proposed] Insufficient balance: split into paid days plus LOP in one tap (FR-LVE-025).
  • [Proposed] Inbox bulk approve and swipe, with reject quick reasons.
  • [Proposed] Approver delegation while on leave and optional auto-escalation (not documented in Spryple; FR-NTF-009 and FR-NTF-011 exist).
  • [Proposed] Policy editor with templates, "inherited vs overridden", examples and an impact preview with effective dates (FR-LVE-024, FR-LVE-030).
  • [Proposed] Employee-facing plain-language policy summary instead of a disabled form (FR-LVE-021).
  • [Proposed] Balance chips with a ledger tap-through that explains how each number was calculated (FR-LVE-019).
  • [Proposed] Year-end carry-forward and lapse run as a wizard with a preview (PAT-7, FR-LVE-016).
  • [Proposed] Out-of-office calendar sync (FR-LVE-027, R3).

3.5 PRD impact​

Proposed IDUX requirementPriority (MoSCoW)ReleaseSource issue
UX-FR-LVE-01One request sheet type picker (Leave, Comp-off credit, Optional holiday) with a For: Me / Team member switch replacing on-behalf screens (extends FR-LVE-007, FR-LVE-012, FR-LVE-013)MustR1UX-LVE-01, UX-LVE-06, UX-LVE-11
UX-FR-LVE-02Live preview in the sheet: days after sandwich, balance after, policy violations, LOP-split offer (FR-LVE-007, FR-LVE-008, FR-LVE-009, FR-LVE-025)MustR1UX-LVE-02
UX-FR-LVE-03Holiday layer on the My time calendar with next-3 Home card and optional-holiday quota display (FR-LVE-020, FR-LVE-013)MustR1UX-LVE-03
UX-FR-LVE-04Plain-language leave type editor with templates, grouped sections and examples (FR-LVE-001, FR-LVE-002)MustR1UX-LVE-04
UX-FR-LVE-05Policy impact preview and effective date before activation (FR-LVE-024)MustR1UX-LVE-05
UX-FR-LVE-06Inbox types for Leave, Cancellation, Comp-off and Optional holiday with bulk approve and swipeMustR1UX-LVE-07, UX-LVE-09
UX-FR-LVE-07Approval context panel with team calendar, balance after, policy check and history (FR-LVE-010)MustR1UX-LVE-08
UX-FR-LVE-08Single requests list with status filter and row actions (edit, delete, cancel); CRM leave history removedMustR1UX-LVE-10, UX-LVE-11
UX-FR-LVE-09Leave topic in the report centre: detail, summary and payroll bridge as saved views with Me/Team/Location/Org scope (FR-LVE-023)ShouldR1UX-LVE-12
UX-FR-LVE-10Employee balance chips and a "my policy" plain-language summary in the sheet (FR-LVE-019, FR-LVE-021)MustR1UX-LVE-13
UX-FR-LVE-11Active toggle with a block-or-choose dialog for types that have open balances (FR-LVE-031)ShouldR1UX-LVE-14
UX-FR-LVE-12Home action card for expiring comp-off and a use-comp-off shortcut (FR-LVE-014)ShouldR1UX-LVE-15
UX-FR-LVE-13Adaptive fields (contact, alternate email, attachment) shown by policy, identical on web and mobile (FR-LVE-007, FR-LVE-009)ShouldR1UX-LVE-16
UX-FR-LVE-14Approver delegation and optional auto-escalation on leave (FR-NTF-009, FR-NTF-011)CouldR2UX-LVE-08
UX-FR-LVE-15Out-of-office calendar sync (FR-LVE-027)CouldR3UX-LVE-03