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

Rapporten genereras inom 30 sekunder. Ladda ner som PDF eller dela med kollegor 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.

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%

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: queuedprocessingdone | 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 support@skolkoll.se eller följ ditt ärende i supportportalen.