Rapporter — Dokumentation

PDF-rapporter med nyckeltal, diagram och källbelagda enterprise-underlag.

Rapporter — Professionella PDF-rapporter

Skapa en rapport

Portal

Rapporter skapar professionella PDF:er med nyckeltal, tabeller och diagram som du kan ladda ner, skriva ut eller dela med kollegor och beslutsfattare.

1
Välj rapporttyp

Gå till Rapporter i menyn. Välj en standardrapport eller en enterprise-mall som är aktiverad för organisationens paket.

Rapporter
SkolprofilDjupanalys av en skola
KommunöversiktAlla skolor i en kommun
HuvudmannarapportSkolor under en huvudman
TrendrapportJämför utveckling över tid
2
Fyll i detaljer

Ange vilken skola eller kommun rapporten ska handla om, samt valfria inställningar som jämförelsenivå och tidsperiod.

Skolprofil
3
Ladda ner och dela

När rapporten är klar kan du ladda ner PDF-underlaget. Nämndrapport och rektorsdialog går vidare till kundgranskning före publicering; övriga rapporttyper kan delas via en tidsbegränsad länk.

Dina rapporter
RapportTypStatus
Testskolan — SkolprofilSkolprofilKlar

Fyra rapporttyper

Portal

Varje rapporttyp är utformad för ett specifikt syfte:

  • Skolprofil — en djupanalys av en enskild skola. Innehåller 6 nyckeltalskort, en jämförelsetabell mot kommunsnitt eller rikssnitt, och 4 trenddiagram som visar utvecklingen över tid.
  • Kommunöversikt — visar alla skolor i en kommun i en tabell rankade efter meritvärde. Inkluderar kommunens samlade nyckeltal och ett stapeldiagram med topp 15 skolor.
  • Huvudmannarapport — sammanställer alla skolor under en huvudman, grupperade per kommun. Visar aggregerade nyckeltal: antal skolor, totalt elevantal, genomsnittligt meritvärde och behörighet.
  • Trendrapport — jämför utvecklingen över tid för upp till 20 skolor eller kommuner. Varje valt nyckeltal visas som ett eget linjediagram med alla enheter som separata linjer.

Enterprise-rapporter och evidence

Portal

Enterprise-mallarna är pilotstöd för journalist-, kommun- och koncernflöden. De visas bara när organisationen har reports- och enterprise-reports-tjänsterna, användaren har motsvarande behörigheter (eller är org-admin), samt rätt paket/audience.

  • Journalist: journalist_story_package — storykort, metodnot, källtabell och frågor att ställa.
  • Kommun: municipality_board_report och principal_dialogue_brief — nämndrapport eller rektorsdialog från signaler.
  • Koncern: group_quarterly_report och media_and_inspection_brief — portföljrisk, medieunderlag och tillsynsdialog.

Enterprise-rapporter måste skapas från en serverlagrad signal eller serververifierade källreferenser. Portalen skickar normalt signalId; API:et hydratiserar evidence på serversidan och avvisar fri klient-evidence.

Färdiga enterprise-jobb med verifierad evidence visar en chart-ready CSV-export via /api/pro/reports/jobs/{jobId}/evidence-export. Rapporten innehåller metod, källor, begränsningar och evidence-hash.

Enterprise-evidence måste bära sourceDataset, sourceGeneratedAt, sourceVersionTag och vid behov sourceSyncId. Saknad dataset/version/timestamp, okänd freshness-policy, framtidsdaterad timestamp eller stale/out-of-SLA evidence blockerar rapportskapande, schemaläggning, delning och CSV-export med stabila koder som missing_source_dataset, missing_source_version, missing_freshness, freshness_policy_missing, future_evidence eller stale_evidence.

Granska och publicera kommunens rapporter

Portal

För nämndrapport och rektorsdialog öppnar du Granska och publicera när rapporten har genererats. Originalutkastet i PDF är underlag för arbetet. Kundens granskade slutversion är ett separat HTML-dokument som kan förhandsvisas och laddas ner.

  1. Utse rapportansvarig och sakgranskare bland organisationens behöriga användare. Ange användningsändamål och välj mottagare.
  2. Komplettera kundens sammanfattning och lokala analys. I nämndrapportens övriga avsnitt kan du skriva Kommentar i rapporten. Texten visas som Kommunens kommentar när du sparar en ny version. Sakgranskaren kan välja kommunens kommentar som berörd uppgift och begära rättelse eller utelämning av just den texten. Om kommentaren eller hela avsnittet utesluts visas inte kommentaren. Källuppgifterna är frysta; ett faktabyte kräver källrättelse och ett nytt rapportjobb.
  3. Spara och lämna versionen till sakgranskaren. Sakgranskaren kan begära rättelser eller godkänna exakt den förhandsvisade versionen.
  4. Rapportansvarig publicerar den godkända versionen. Förvalt är åtkomst för valda mottagare i portalen. En öppen delningslänk kräver ett uttryckligt val av offentlig publicering. Länken gäller en bestämd version och kan återkallas utan att versionshistoriken tas bort.

Granskare och mottagare behöver rapportbehörighet för organisationens kommunrapporter. Externa mottagare bjuds inte in automatiskt. Granskningsanteckning dokumenterar kontrollen och visas inte för rapportens läsare. Vid bedömningen Accepterad begränsning eller Utesluten byter fältet namn till Motivering som visas i rapporten: den texten följer med slutdokumentet. Kontrollera därför textens innehåll när du ändrar bedömningen.

Om innehåll, ansvariga, ändamål eller mottagarkrets ändras behövs en ny version och ett nytt godkännande. En publicerad version skrivs aldrig över. Versionshistoriken visar tidigare dokument och deras godkännande- och publiceringskvitton. Om någon annan har ändrat rapporten under arbetet måste du läsa in aktuell version innan du fortsätter.

Pilotstatus och avgränsning

Pilot

Enterprise-rapportering i v1 är avsedd för design partners. Den skarpa delen är behörighetsstyrning, källbelagd evidence, auditloggade rapportjobb och återanvänd verifierad evidence i scheman.

  • Pilotstöd: signalbaserade rapporter, chart-ready evidence-export, schemaläggning från verifierad signal och pilot-readiness i enterprise-capabilities.
  • Skarpt i v1: aktiv prenumeration, reports, enterprise-reports, rätt paket/audience och serverlagrad evidence krävs innan rapporten skapas.
  • Utanför v1: individdata, elevnamn, personnummer, vendor-specifika skolplattformskopplingar, SSO/SCIM och kundspecifika BI-/SKA-ersättare.
  • Narrativ analys: rapporttexten är mallstyrd och källbelagd; v1 skapar inga AI-genererade slutsatser eller rekommendationer.

Anpassa din rapport

Portal

Innan du skapar rapporten kan du anpassa den:

  • Jämförelsenivå (Skolprofil) — välj om skolans resultat ska jämföras med kommunsnittet eller rikssnittet
  • Tidsperiod — ange startår och slutår för att begränsa vilka år som visas i trenddiagram
  • Nyckeltal — välj vilka nyckeltal som ska ingå i rapporten (max 10 st). Om du inte väljer några inkluderas alla tillgängliga.
  • Rubrik (Trendrapport) — ange en egen titel som visas på rapportens framsida

Schemalägg rapporter

Portal

Under "Schemalagda rapporter" kan du skapa ett schema för att få rapporter genererade automatiskt. Tre frekvenser finns:

  • Varje vecka — genereras varje måndag
  • Varje månad — genereras första måndagen varje månad
  • Varje kvartal — genereras i januari, april, juli och oktober

En nedladdningslänk skickas till din e-post varje gång rapporten genererats. Du kan alltid ladda ner rapporten igen via portalen. Max 10 scheman per organisation.

Enterprise-scheman sparar en serververifierad evidence-snapshot när schemat skapas. Den schemalagda körningen återanvänder snapshoten, men kontrollerar fortfarande att organisationen har aktiv rapporttjänst, enterprise-rapporttjänst och rätt paket/audience. Ett schema kan bara pausas/aktiveras eller byta frekvens; skapa om schemat när signalen, mallen eller källurvalet ska bytas.

Om ett enterprise-schema hoppas över, auditloggas orsaken, till exempel inactive_subscription, missing_reports_entitlement, missing_enterprise_reports_entitlement, audience_not_entitled, missing_source_dataset, missing_source_version, missing_freshness, freshness_policy_missing, future_evidence eller stale_evidence.

Dela en rapport

Portal

Klicka "Dela" bredvid en färdig rapport. En delningslänk kopieras till ditt urklipp. Länken fungerar utan inloggning i 30 dagar (kan ställas in mellan 1 och 90 dagar). Du kan återkalla en delningslänk när som helst.

Genererade rapporter sparas i 90 dagar. Nedladdningslänken förnyas automatiskt varje gång du öppnar rapporten.

För utvecklare: API-referens

API
Visa API-dokumentation

Rapportfunktioner används via portalen och interna Pro-endpoints. /api/pro/reports kräver Firebase-inloggning med Authorization: Bearer <idToken> och organisationens Pro-medlemskap; rapporter använder inte API-nycklar. Den publika delningslänken är den enda rapport-endpointen utan inloggning.

Endpoints:

// Rapportjobb:
POST   /api/pro/reports/jobs                   Skapa rapport (asynkront)
GET    /api/pro/reports/jobs                   Lista rapporter (?limit=1-100, standard 20)
GET    /api/pro/reports/jobs/{jobId}            Hämta status + nedladdningslänk
GET    /api/pro/reports/jobs/{jobId}/evidence-export Hämta enterprise-evidence som CSV
POST   /api/pro/reports/jobs/{jobId}/archive    Arkivera rapportjobb

// Delning:
POST   /api/pro/reports/jobs/{jobId}/share      Skapa delningslänk
DELETE /api/pro/reports/jobs/{jobId}/share      Återkalla delningslänk
GET    /api/pro/reports/share/{jobId}           Publik nedladdning (org + token som query params)

// Schemaläggning:
POST   /api/pro/reports/schedules              Skapa schema
GET    /api/pro/reports/schedules              Lista scheman (max 20)
PATCH  /api/pro/reports/schedules/{id}         Uppdatera (enabled, frequency)
DELETE /api/pro/reports/schedules/{id}         Ta bort schema

Exempel: Skapa rapporter

// Skolprofil med rikssnitt och tidsfönster:
POST /api/pro/reports/jobs
{
  "reportType": "skolprofil",
  "schoolCode": "12345678",
  "comparisonLevel": "national",
  "kpis": ["meritRating9", "eligibleYR9", "certifiedTeachersPercent"],
  "fromYear": 2020,
  "toYear": 2025
}
→ 202 {
    "jobId": "abc",
    "status": "queued",
    "reportType": "skolprofil",
    "pollUrl": "/api/pro/reports/jobs/abc",
    "expectedStates": ["queued", "processing", "done", "failed"],
    "firstValue": { "milestone": "first_report_queued", "artifactReady": false }
  }

// Trendrapport — jämför tre skolor:
POST /api/pro/reports/jobs
{
  "reportType": "trendrapport",
  "schoolCodes": ["12345678", "23456789", "34567890"],
  "kpis": ["meritRating9", "eligibleYR9"],
  "title": "Jämförelse grundskolor Lund",
  "fromYear": 2019
}
→ 202 { "jobId": "def", "status": "queued", "reportType": "trendrapport" }

// Enterprise: nämndrapport från serverlagrad signal:
POST /api/pro/reports/jobs
{
  "reportType": "municipality_board_report",
  "signalId": "signal-demo"
}
→ 202 { "jobId": "ghi", "status": "queued", "reportType": "municipality_board_report" }

// Polla status:
GET /api/pro/reports/jobs/{jobId}
→ { "status": "done", "readyAt": "2026-03-18T09:15:42Z", "result": { "downloadUrl": "https://...", "fileName": "skolkoll-skolprofil-12345678-2026-03-18T09-15-42.pdf", "sizeBytes": 184320, "expiresAt": "2026-03-18T10:15:42Z", "firstValue": { "milestone": "first_report_ready", "artifactReady": true } } }

Exempel: Schemaläggning

// Skapa schema — månadsvis kommunöversikt:
POST /api/pro/reports/schedules
{
  "reportType": "kommunoversikt",
  "municipalityCode": "0180",
  "frequency": "monthly"
}
→ 201 { "id": "abc", "enabled": true, "frequency": "monthly", "spec": {...} }

// Skapa enterprise-schema — veckovis nämndrapport från verifierad signal:
POST /api/pro/reports/schedules
{
  "reportType": "municipality_board_report",
  "signalId": "signal-demo",
  "frequency": "weekly"
}
→ 201 { "id": "ent", "enabled": true, "frequency": "weekly", "spec": { "evidenceVerificationMode": "live", "evidenceHash": "..." } }

// Lista alla scheman:
GET /api/pro/reports/schedules

// Pausa/byta frekvens:
PATCH /api/pro/reports/schedules/{id}
{ "enabled": false }

// Ta bort:
DELETE /api/pro/reports/schedules/{id}
→ { "ok": true }

Exempel: Dela rapport

// Skapa delningslänk (30 dagar):
POST /api/pro/reports/jobs/{jobId}/share
{ "expiryDays": 30 }
→ { "shareUrl": "/api/pro/reports/share/{jobId}?org=X&token=abc...", "expiresAt": "2026-04-17T...", "expiryDays": 30 }

// Återkalla delningslänk:
DELETE /api/pro/reports/jobs/{jobId}/share
→ { "ok": true }

// Publik nedladdning (ingen autentisering):
GET /api/pro/reports/share/{jobId}?org=X&token=abc...
→ 302 redirect till signerad PDF-URL

Tillgängliga KPI-nycklar:

NyckelBeskrivningEnhet
meritRating9Meritvärde åk 9poäng
certifiedTeachersPercentBehöriga lärare%
studentsPerTeacherElever per lärareantal
totalPupilsAntal eleverantal
eligibleYR9Behörighet gymnasiet åk 9%
allSubjectsPassed6Godkänd alla ämnen åk 6%
allSubjectsPassed9Godkänd alla ämnen åk 9%
npSVE9Nationellt prov svenska åk 9poäng
npMA9Nationellt prov matematik åk 9poäng
npENG9Nationellt prov engelska åk 9poäng
examWithin3YearsGymnasieexamen inom 3 år%
eligibleHigherEdBehörighet till högskola%
preschoolPedagogicalHigherEducationPercentAndel med pedagogisk högskoleutbildning (förskola)%
preschoolChildrenPerFTEBarn per årsarbetare (förskola)antal

certifiedTeachersPercent och studentsPerTeacher har värden för enheter med grundskola eller gymnasieskola. En förskoleenhet utan grundskola eller gymnasieskola har i stället värden under de två förskolenycklarna. För en sådan förskoleenhet avser totalPupils inskrivna barn, och i en skolprofil ger en begärd lärarnyckel förskolans motsvarande personalmått.

Parametrar:

ParameterGällerBeskrivning
reportTypeAllaObligatorisk: skolprofil, kommunoversikt, huvudmannarapport, trendrapport eller en aktiverad enterprise-mall.
schoolCodeSkolprofilSkolenhetskod (8 siffror)
municipalityCodeKommunöversiktKommunkod (4 siffror)
organizerOrgNrHuvudmannarapportOrganisationsnummer
schoolCodes[]TrendrapportLista skolenhetskoder (max 20)
municipalityCodes[]TrendrapportLista kommunkoder (max 20)
kpis[]AllaObligatorisk för trendrapport. Valfri för övriga. Max 10 st.
fromYear / toYearAllaStartår/slutår för trenddata (heltal 2000-2100)
comparisonLevelSkolprofil"municipality" (standard) eller "national"
titleTrendrapportValfri rubrik, max 200 tecken
signalIdEnterpriseRekommenderad källreferens. Signalens audience måste matcha enterprise-mallens audience.
evidenceRefs[]Enterprise APIValfritt API-spår för serverlagrad evidence. Varje ref måste innehålla customerDataId eller signalId; fri klient-evidence avvisas.
frequencySchemanweekly, monthly eller quarterly
formatEvidence-exportcsv eller chart-ready.
expiryDaysDelning1-90 dagar, standard 30

Detaljer:

Jobbstatus: queued → processing → done | failed. Vid done inkluderas result med downloadUrl, fileName, sizeBytes, storagePath och expiresAt. Nedladdningslänken förnyas vid varje anrop (1 timmes giltighet).

Enterprise evidence: API:et sparar evidenceRefs, evidenceManifest, evidenceHash, evidenceVerifiedAt och evidenceVerificationMode i jobbets eller schemats spec. Schemalagda enterprise-körningar återanvänder redan verifierad evidence med reused_verified.

Enterprise-scheman: PATCH /api/pro/reports/schedules/{id} accepterar bara enabled och frequency. Specen är immutabel efter skapande; radera och skapa ett nytt schema för ny signalId, nya evidenceRefs[], annan mall eller annan audience.

Delning: Token genereras med 32 bytes crypto randomBytes. Publik nedladdning (GET /share/:jobId) kräver org och token som query-parametrar. Utgångna delningslänkar returnerar 410 Gone.

Felkoder:

KodBetydelse
400Valideringsfel — saknad identifierare, ogiltigt reportType, fromYear > toYear, kpis[] saknas (trendrapport), max 10 KPIs överskridet, max 20 enheter överskridet, max 10 scheman överskridet, enterprise-rapport utan signalId/evidenceRefs[], fri klient-evidence eller audience-mismatch
403Saknar rapporter-behörighet, enterprise-rapporter-behörighet, rapporter-tjänsten, enterprise-rapporttjänsten eller rätt paket/audience. Ogiltig share-token.
404Jobb/schema/signal/evidence hittades inte, organisation saknas, ingen delningslänk existerar
410Delningslänk har gått ut eller rapportfilen har raderats (90-dagars retention)

Begränsningar:

  • Max 20 enheter per trendrapport
  • Max 10 KPI:er per rapport
  • Max 10 scheman per organisation
  • 90 dagars retention — genererade PDF:er sparas i 90 dagar
  • Nedladdningslänkar har 1 timmes giltighet och förnyas automatiskt
  • Delningslänkar: max 90 dagars utgång, standard 30 dagar
  • Benchmark-PDF:er skapas via Benchmark-export, inte via rapporternas API
  • Enterprise-rapporter är mallstyrda och källbelagda; ingen AI-genererad slutsatstext ingår i v1
  • Enterprise-scheman återanvänder den evidence-snapshot som verifierades när schemat skapades

Har du frågor? Mejla info@skolspegeln.se. Förfrågan tas emot och hanteras manuellt via e-post; ingen supportportal används för ny intake.