medium complexity extracted Expense & Reimbursement Confidence: 100%
3
Components
2
Shared
0
User Stories
Yes
Analyzed

Description

This feature provides a configurable catalog of expense types (kilometer allowance, toll, parking, public transport, etc.) together with the rules that govern each type - required fields, receipt thresholds, mutually exclusive combinations, and auto-approval criteria. The catalog and rules are managed per organization so each tenant can reflect its own reimbursement policy without code changes, while the mobile app consumes the catalog at runtime to render the expense form.

Sources & reasoning

Section 2.1 and 3.3 describe a per-tenant configurable expense-type catalog with exclusion rules and threshold-based auto-approval, distinct from the user-facing registration flow. It sits in Phase 2 (Core Product) alongside the rest of the reimbursement stack.

  • Faste valg for utleggstype - ikke fritekst - for Ă„ hindre feilkombinasjon (f.eks. bĂ„de km og bussbillett). ... Automatisk godkjenning under 50 km / uten utlegg, manuell attestering ellers (HLF).
  • Detaljert refusjonsstyring med faste valg som gjĂžr feilkombinasjon teknisk umulig (f.eks. km + bussbillett kan ikke velges samtidig). Automatisk godkjenning under terskel.

Analysis

Business Value

Different organizations have materially different expense policies - HLF demands strict mutual exclusion and auto-approval below 50 km, while other organizations have looser rules. Hardcoding policy would force every change into a release cycle and prevent the platform from scaling to additional tenants. A configurable expense-type catalog and rules engine lets organizations encode their accounting policy declaratively, eliminates a whole class of operator errors (e.g. claiming both kilometer and bus on the same trip), and supports the threshold-based auto-approval flow that materially reduces coordinator workload.

Implementation Notes

Model expense types as tenant-scoped records with attributes for unit (km, NOK, hours), required-fields list, receipt threshold, and exclusion groups. A small rules engine evaluates submitted claims server-side against the active rules and emits validation errors or marks them auto-approved. The mobile app fetches the catalog at session bootstrap (alongside the enabled module set and labels) and caches it offline so the form remains usable without connectivity. The admin portal exposes CRUD for expense types in the expense-reimbursement settings page.

Quality Assurance

Peer Mentor (Likeperson) — submitter using the tenant-configured expense type picker
1
Scenarios
6
UAT Steps
14
A11y Annotations
2
Role Boundaries
Peer Mentor (Likeperson)

Peer Mentor (Likeperson)

Quick UAT

  1. Logg inn i Meander-mobilappen som Likeperson og Ă„pne Utlegg → Nytt utlegg.
  2. Trykk pÄ feltet Utleggstype og bekreft at picker-en kun viser kategoriene organisasjonen har aktivert (f.eks. Kilometer, Bompenger, Parkering, Kollektiv).
  3. Velg Kilometer og bekreft at regelteksten 'Automatisk godkjenning under 50 km' vises som hint under feltet.
  4. ForsĂžk Ă„ velge Kollektiv i tillegg til Kilometer og bekreft at appen blokkerer kombinasjonen med meldingen 'Kan ikke kombineres med Kilometer'.
  5. Velg Bompenger med belĂžp 150 kr og bekreft at feltet Kvittering markeres som obligatorisk (terskel 100 kr).
  6. Lagre utlegget og bekreft at det vises i Mine utlegg med riktig type og status Til godkjenning.

Quick UAT — Accessibility

  1. Logg inn i Meander-mobilappen som Likeperson og Ă„pne Utlegg → Nytt utlegg.
    • Screen reader VoiceOver/TalkBack annonserer sideoverskrift 'Nytt utlegg' og fĂžrste skjemafelt.
    • Keyboard / focus Tab-rekkefĂžlge: tilbake-knapp → skjemafelter i lesbar rekkefĂžlge.
    • Focus visibility Synlig fokusring pĂ„ fĂžrste interaktive element.
  2. Trykk pÄ feltet Utleggstype og bekreft at picker-en kun viser kategoriene organisasjonen har aktivert (f.eks. Kilometer, Bompenger, Parkering, Kollektiv).
    • Screen reader Picker annonseres som 'Utleggstype, knapp, dobbelttrykk for Ă„ Ă„pne'; ved Ă„pning leses antall valg og hvert alternativ som rolle 'valg'.
    • Keyboard / focus Piltaster opp/ned navigerer mellom alternativer; Enter velger.
    • Touch target Picker-knapp er minst 24x24 CSS px (faktisk minst 44x44 anbefalt).
  3. Velg Kilometer og bekreft at regelteksten 'Automatisk godkjenning under 50 km' vises som hint under feltet.
    • Screen reader Hjelpetekst er aria-describedby-koblet til feltet og leses sammen med feltlabelen.
    • Contrast Hjelpetekst har minst 4.5:1 kontrast og er ikke kun formidlet via grĂ„-pĂ„-grĂ„ farge.
  4. ForsĂžk Ă„ velge Kollektiv i tillegg til Kilometer og bekreft at appen blokkerer kombinasjonen med meldingen 'Kan ikke kombineres med Kilometer'.
    • Live region 'Kan ikke kombineres med Kilometer' annonseres via aria-live=assertive.
    • Contrast Feilmelding bruker bĂ„de ikon og tekst — status er ikke kun formidlet via farge.
  5. Velg Bompenger med belĂžp 150 kr og bekreft at feltet Kvittering markeres som obligatorisk (terskel 100 kr).
    • Screen reader Kvittering-feltet annonseres som 'Kvittering, obligatorisk' nĂ„r terskelen utlĂžses.
    • Focus visibility Det nylig obligatoriske feltet fĂ„r synlig markering uten Ă„ stjele fokus midt i innskriving.
  6. Lagre utlegget og bekreft at det vises i Mine utlegg med riktig type og status Til godkjenning.
    • Live region 'Utlegg lagret. Status: Til godkjenning' annonseres polite.
    • Zoom Listen Mine utlegg er brukbar ved 200% zoom uten horisontal scrolling.

Role Boundaries

2 role(s) must NOT access this feature
  • Global Administrator

    Har ikke tilgang til organisasjonens utleggsdata uten tidsbegrenset support-flagg; mobilappen er ikke tilgjengelig for Global Admin.

  • Prospective Buyer

    Salgssiden har ingen pÄlogging eller utleggsfunksjonalitet; deep-link til mobil/admin returnerer 403.

Expected End State

Tenant-konfigurert utleggskatalog styrer hvilke kategorier likepersonen kan velge, hvilke kombinasjoner som er tillatt, og nĂ„r kvittering kreves — ulovlige kombinasjoner blokkeres ved innsending, og lagrede utlegg har gyldig type i henhold til organisasjonens regler.

User Stories

No user stories have been generated for this feature yet.