CRITICAL story-expense-type-selection-mutual-exclusion-peer-mentor-001 5 pts

User Story

As a Peer Mentor (Likeperson)
I want to select my expense type from a fixed list of options rather than entering free text
So that I can quickly register the correct expense category without making errors or using inconsistent terminology

Audience Summaries

Predefined expense type selection eliminates the most costly point of failure in the peer mentor reimbursement workflow. By replacing free-text entry with a structured, icon-driven card picker, HLF removes the root cause of categorisation errors that currently delay reimbursements, distort accounting records, and require coordinator intervention. Peer mentors filing hundreds of claims annually gain a consistent, low-friction experience that reduces cognitive load and submission time. Consistent categorisation unlocks automated approval pipelines, accurate Bufdir reporting, and clean Xledger and Dynamics data exports — directly reducing administrative overhead and audit risk.

This is foundational infrastructure for scaling the reimbursement programme without proportionally scaling coordinator headcount.

This story is a foundational dependency for the entire expense registration flow and must be delivered before any downstream expense form stories. Complexity is moderate: the card-picker UI is straightforward, but the organisation-specific configuration filtering and single-type auto-selection logic require coordination with the backend configuration service team. Acceptance criteria include accessibility compliance (screen reader labels), which requires a dedicated QA pass with assistive technology. Effort estimate is medium; primary risk is configuration API readiness.

UAT must involve a coordinator verifying that only their organisation's enabled types appear. Rollout should be gated on the configuration service being populated with at least one organisation's expense type data to avoid empty-state failures in production.

Implementation requires a dynamic expense type picker component that fetches enabled types from the organisation configuration endpoint and renders them as tappable cards with icon, label, and description. State management must track the selected type and propagate it to the parent form to conditionally render type-specific field sets (e.g., distance inputs for mileage, amount input for parking). The auto-selection logic must detect a single enabled type on load, pre-select it, and optionally skip the picker step — requiring a navigation guard or step-skip mechanism in the form wizard. Accessibility requires each card to carry an ARIA label combining the type name and current selection state.

Field adaptation on type change must cleanly unmount irrelevant fields and reset their validation state to avoid stale errors. Integration tests should cover multi-type, single-type, and zero-type configuration edge cases.

Acceptance Criteria

  • Given the peer mentor opens the expense registration flow, when the expense type picker renders, then only expense types enabled in the organisation's configuration are displayed
  • Given the expense type picker is visible, when the peer mentor taps an expense type card, then that card is visually highlighted and all other cards are deselected
  • Given an expense type is selected, when the form continues, then the subsequent fields shown are specific to that expense type (e.g., distance fields for mileage, amount field for parking)
  • Given the picker is rendered, when a screen reader is active, then each expense type card has a descriptive accessibility label including the type name and whether it is currently selected
  • Given the organisation has only one expense type enabled, when the picker loads, then that type is pre-selected automatically and the picker step may be skipped

Business Value

Predefined expense types eliminate free-text entry errors that cause reimbursement delays and accounting mismatches. For HLF, where a peer mentor may file hundreds of claims annually, consistent categorisation is essential for automated approval, Bufdir reporting, and Xledger/Dynamics export. Removing ambiguity at the point of entry reduces coordinator review time and prevents the most common source of invalid claims.