Custom Reports
Feature Detail
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-358Fase 3 - Vekst og engasjement: Gamification / «Ditt likepersonsÄr» (Wrapped, badges, Advantage Calculator) Kursadministrasjon og sertifisering (HLF + Barnekreftforeningen)
Analysis
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.
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)Organization Administrator
Quick UAT
- Logg inn i Admin-portalen som Organisasjonsadministrator. GĂ„ til Rapportering â Egendefinerte rapporter.
- Trykk pÄ Ny rapport. Bekreft at rapportbyggeren Äpnes med tomme dimensjons- og filtervalg.
- Velg minst to dimensjoner (f.eks. Aktiviteter og Likepersoner). Bekreft at tilgjengelige kolonner oppdateres dynamisk.
- Legg til et datofilter for gjeldende kvartal og et kategorifiilter (f.eks. aktivitetstype). Bekreft at filtrene vises i filterfeltet.
- Trykk ForhÄndsvis. Bekreft at resultattabellen viser rader som samsvarer med valgte dimensjoner og filtre, og at bare data fra egen organisasjon vises.
- Trykk Lagre rapport, gi den et navn, og bekreft at rapporten dukker opp i listen over lagrede rapporter.
- Ă 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
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Ă 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.
Components (20)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.