high complexity extracted Reporting & Export Confidence: 100%
2
Components
18
Shared
0
User Stories
Yes
Analyzed

Description

Custom Reports allows organization administrators to build ad-hoc reports by selecting dimensions, filters, and metrics from the available data model - activities, contacts, peer mentors, expenses, events, and certifications. The report builder provides a visual configuration interface where admins select columns, apply date and category filters, and preview results before saving or exporting. Saved report configurations can be reused and shared within the organization. The feature targets power users who need cross-dimensional analysis beyond what the standard Team Reports and Bufdir exports provide.

Sources & reasoning

Custom Reports is not explicitly named in the source doc but appears in the blueprint as a v1.1 feature under admin-reporting. The priority matrix (lines 140-165) covers only the standard Bufdir and team reporting flows; custom analytics is a Fase 3 growth feature by inference from the phasing pattern. Fase 3 normalizes to v1.1.

  • docs/source/likeperson.md · line 353-358
    Fase 3 - Vekst og engasjement: Gamification / «Ditt likepersonsÄr» (Wrapped, badges, Advantage Calculator) Kursadministrasjon og sertifisering (HLF + Barnekreftforeningen)

Analysis

Business Value

As organizations mature their use of the platform, standard reports cover routine compliance needs but cannot answer strategic questions - which activities correlate with highest engagement, which peer mentors have the longest tenure, or which contact categories are growing. Custom Reports empowers org admins to answer these questions without requesting bespoke development. For NHF, which manages 12 national associations and 9 regions, the ability to slice data by organizational hierarchy is particularly valuable. This feature also reduces long-term support overhead by enabling organizations to self-serve analytical needs that would otherwise require platform team involvement.

Implementation Notes

Build a query builder UI in Next.js that constructs parameterized SQL via a safe intermediate representation - never concatenating raw user input into queries. The backend API should accept a structured report definition (selected columns, filter predicates, sort order) and return paginated results. Implement a saved_report_configurations table to persist definitions per organization. Export to CSV and XLSX from any custom report result set. Apply strict tenant scoping at the API layer so the query builder cannot reference other organizations' data. Given complexity, consider an incremental delivery: first ship a fixed set of selectable dimensions, then add arbitrary filter composition in a follow-up iteration within the same release cycle.

Quality Assurance

Organization Administrator (primary)
1
Scenarios
7
UAT Steps
19
A11y Annotations
3
Role Boundaries
Organization Administrator

Organization Administrator

Quick UAT

  1. Logg inn i Admin-portalen som Organisasjonsadministrator. GĂ„ til Rapportering → Egendefinerte rapporter.
  2. Trykk pÄ Ny rapport. Bekreft at rapportbyggeren Äpnes med tomme dimensjons- og filtervalg.
  3. Velg minst to dimensjoner (f.eks. Aktiviteter og Likepersoner). Bekreft at tilgjengelige kolonner oppdateres dynamisk.
  4. Legg til et datofilter for gjeldende kvartal og et kategorifiilter (f.eks. aktivitetstype). Bekreft at filtrene vises i filterfeltet.
  5. Trykk ForhÄndsvis. Bekreft at resultattabellen viser rader som samsvarer med valgte dimensjoner og filtre, og at bare data fra egen organisasjon vises.
  6. Trykk Lagre rapport, gi den et navn, og bekreft at rapporten dukker opp i listen over lagrede rapporter.
  7. Åpne den lagrede rapporten og trykk Eksporter. Bekreft at en nedlastbar fil (CSV eller Excel) genereres og inneholder riktige kolonner og rader.

Quick UAT — Accessibility

  1. Logg inn i Admin-portalen som Organisasjonsadministrator. GĂ„ til Rapportering → Egendefinerte rapporter.
    • Screen reader Sideoverskrift 'Egendefinerte rapporter' annonseres; tab-rekkefĂžlge: navigasjonsmeny → sideoverskrift → Ny rapport-knapp.
    • Keyboard / focus Navigasjonspunktet 'Rapportering' nĂ„s med Tab; undermeny Ă„pnes med Enter eller piltast.
  2. Trykk pÄ Ny rapport. Bekreft at rapportbyggeren Äpnes med tomme dimensjons- og filtervalg.
    • Focus visibility Fokus flyttes automatisk til fĂžrste felt i rapportbyggeren etter Ă„pning; synlig fokusring pĂ„ aktivt felt.
    • Touch target Ny rapport-knapp er minst 24×24 CSS px.
  3. Velg minst to dimensjoner (f.eks. Aktiviteter og Likepersoner). Bekreft at tilgjengelige kolonner oppdateres dynamisk.
    • Screen reader Skjermleser annonserer valgt dimensjon og bekrefter at kolonner er oppdatert, f.eks. 'Aktiviteter valgt. Kolonner oppdatert.'
    • Keyboard / focus Dimensjonslisten navigeres med piltaster; mellomrom eller Enter velger element.
    • Live region 'Kolonner oppdatert' annonseres som polite live region etter hvert dimensjonsvalg.
  4. Legg til et datofilter for gjeldende kvartal og et kategorifiilter (f.eks. aktivitetstype). Bekreft at filtrene vises i filterfeltet.
    • Keyboard / focus Datovelger nĂ„s med Tab; piltaster navigerer mellom dager/mĂ„neder/Ă„r; Enter bekrefter.
    • Focus visibility Hvert filtervalg har synlig fokusring; filterchips har aria-label med filterverdi og mulighet for fjerning.
    • Contrast Filterchips bruker ikke farge alene for Ă„ indikere aktivt filter; tekst eller ikon supplerer.
  5. Trykk ForhÄndsvis. Bekreft at resultattabellen viser rader som samsvarer med valgte dimensjoner og filtre, og at bare data fra egen organisasjon vises.
    • Screen reader Tabelloverskrifter leses opp ved navigasjon med piltaster i tabellen; kolonnescope er korrekt.
    • Live region 'ForhĂ„ndsvisning klar. X rader funnet.' annonseres som polite live region.
    • Zoom Resultattabellen er lesbar og scrollbar horisontalt ved 200% zoom uten at innhold overlapper.
  6. Trykk Lagre rapport, gi den et navn, og bekreft at rapporten dukker opp i listen over lagrede rapporter.
    • Screen reader 'Rapport lagret: [navn]' annonseres etter bekreftelse.
    • Focus visibility Navnefelt i lagredialogen fĂ„r fokus automatisk ved Ă„pning; Lagre-knapp er synlig og fokusbar.
    • Touch target Lagre-knapp er minst 24×24 CSS px.
  7. Åpne den lagrede rapporten og trykk Eksporter. Bekreft at en nedlastbar fil (CSV eller Excel) genereres og inneholder riktige kolonner og rader.
    • Screen reader 'Eksport startet. Filen lastes ned.' annonseres som polite live region.
    • Keyboard / focus Eksporter-knapp nĂ„s med Tab fra rapportvisningen; aktiveres med Enter.
    • Live region 'Eksport fullfĂžrt. Fil klar for nedlasting.' annonseres nĂ„r filen er generert.

Role Boundaries

3 role(s) must NOT access this feature
  • Peer Mentor

    Egendefinerte rapporter finnes ikke i mobilappens navigasjon; deep-link til admin-portalen returnerer 403.

  • Coordinator

    Egendefinerte rapporter finnes ikke i mobilappens navigasjon; koordinatorer har ikke tilgang til Admin-portalen og deep-link returnerer 403.

  • Prospective Organization Representative

    Ingen tilgang til Admin-portalen; alle admin-endepunkter returnerer 401/403.

Expected End State

Den egendefinerte rapporten er lagret i organisasjonens rapportliste, forhÄndsvisning viser kun organisasjonens egne data, og eksporten inneholder korrekte kolonner og rader i valgt format.

User Stories

No user stories have been generated for this feature yet.