Datakvalitet — Dokumentation
Automatiska kontroller och varningar för skoldata.
Datakvalitet — Automatiska kontroller av skoldata
Kom igång
PortalSkolkoll kontrollerar automatiskt all data varje natt. Om något ser fel ut skapas en varning som visas på din Översikt-sida.
Se varningar på Översikt
Aktiva varningar visas som kort med allvarlighetsgrad. Kritiska varningar markeras i rött, vanliga varningar i gult.
Kvittera varning
Skriv en valfri kommentar i fältet under varningen och klicka på bockmarkeringen bredvid den. Varningen tonas ned direkt och visas inte längre på Översikt nästa gång sidan laddas. Den finns kvar som kvitterad och kan hämtas via API:t med acknowledged=true.
Typer av kontroller
PortalSex kontrolltyper körs automatiskt varje natt efter att ny data hämtats:
| Kontroll | Vad som undersöks | Allvarlighet |
|---|---|---|
| Saknade värden | Obligatoriska uppgifter som elevantal eller skolform saknas | Kritisk |
| Avvikande värden | Nyckeltal som ligger utanför rimliga intervall (t.ex. meritvärde över 340) | Varning / Kritisk |
| Plötsliga förändringar | Värden som ändrats mer än 5 % sedan förra uppdateringen | Varning (5-20 %) / Kritisk (>20 %) |
| Motsägelser | Data som inte stämmer överens, t.ex. om Skolverkets och Koladas siffror skiljer sig åt mer än 10 % | Varning / Kritisk |
| Rapporteringsluckor | Skolor som har elever men saknar resultatdata (t.ex. meritvärde) | Info |
| Möjliga dubbletter | Skolor med samma namn i samma kommun och liknande elevantal | Info |
Datahälsopoäng
PortalVarje skola, kommun och huvudman får en poäng från 0 till 100 som visar hur komplett och konsistent dess data är:
- 100 — inga problem hittade
- Kritisk varning drar av 10 poäng
- Varning drar av 3 poäng
- Info drar av 1 poäng
Poängen räknas vid varje datasynk för varje aktiv skola och tar med förändringsvarningar mot föregående synk. En kommuns och en huvudmans poäng är medelvärdet av deras aktiva skolors poäng. Om synken inte kunde poängsätta en skola är dess poäng null och den räknas inte in i medelvärdet.
Poängen hämtas via API:t (se nedan). Den nationella sammanfattningen anger totalt antal aktiva skolor, antal skolor med varningar, genomsnittlig poäng bland skolorna med varningar (100 om ingen skola har varningar, null om senaste synken inte poängsatte någon skola) och antal varningar per allvarlighetsnivå. Varningsantalen räknar olika flaggor per skola (typ, allvarlighet och fält), så en flagga som upprepas för samma skola räknas en gång.
Veckomail
PortalVarje måndag kl 08:00 skickas en sammanfattning av okvitterade varningar till din organisations kontaktmail. Sammanfattningen visar:
- Antal varningar per allvarlighetsnivå (kritisk, varning, info)
- De 5 mest kritiska varningarna med detaljer
För utvecklare: API-referens
APIVisa API-dokumentation
Datakvalitetsdata för Pro används via portalen och organisationens inloggade Firebase-session. Det här är interna Pro-endpoints, inte Skolkolls publika API-roadmap eller en API-nyckelprodukt.
Endpoints:
// Varningar:
GET /api/pro/alerts Lista varningar
?severity=critical|warning|info Filtrera allvarlighetsgrad
&acknowledged=true|false Filtrera kvitterade/okvitterade
&locale=sv|en Meddelandespråk
PUT /api/pro/alerts/{alertId}/acknowledge Kvittera varning
// Datahälsopoäng:
GET /api/pro/quality/health-scores Hämta hälsopoäng
?scope=summary|school|municipality|provider
&code={kod} Krävs för school/municipality/providerExempel:
// Hämta alla kritiska okvitterade varningar:
GET /api/pro/alerts?severity=critical&acknowledged=false&locale=sv
→ {
"alerts": [
{
"id": "alert_abc123",
"schoolCode": "12345678",
"schoolName": "Exempelskolan",
"type": "sudden_change",
"severity": "critical",
"field": "meritRating9",
"message": "Meritvärde ändrades 25% (220 → 275)",
"currentValue": 275,
"previousValue": 220,
"acknowledged": false,
"detectedAt": "2026-03-18T02:15:00Z"
}
]
}
// Kvittera en varning (prompt: "Lägg till en kommentar till kvitteringen (valfritt):"):
PUT /api/pro/alerts/alert_abc123/acknowledge
{ "comment": "Undersökt — skolformsändring F-9 till 7-9" }
→ {
"id": "alert_abc123",
"status": "acknowledged",
"acknowledgedBy": "user@example.com",
"acknowledgedAt": "2026-03-18T09:30:00Z"
}
// Hämta sammanfattad hälsopoäng:
GET /api/pro/quality/health-scores?scope=summary
→ {
"scope": "summary",
"totalSchools": 16234,
"schoolsWithAlerts": 146,
"averageHealthScore": 94,
"alertCounts": { "critical": 12, "warning": 89, "info": 45 }
}
// Hälsopoäng per skola:
GET /api/pro/quality/health-scores?scope=school&code=12345678
→ { "scope": "school", "code": "12345678", "healthScore": 88 }
// Hälsopoäng per kommun:
GET /api/pro/quality/health-scores?scope=municipality&code=0180
→ { "healthScore": 92, "schoolCount": 248 }
// Hälsopoäng per huvudman:
GET /api/pro/quality/health-scores?scope=provider&code=5566778899
→ { "healthScore": 95, "schoolCount": 14 }Detaljer:
Kvittera varning — skicka JSON med valfritt comment (max 500 tecken). Kvitterade varningar behåller sin synlighet men markeras som hanterade.
Health-scores med scope — summary returnerar totalstatistik (inget code behövs). school, municipality och provider kräver respektive code (skolenhetskod, kommunkod eller org.nr).
Felkoder: 400 (valideringsfel, t.ex. code angiven mer än en gång), 403 (organisationen saknar datakvalitetstjänst — gäller health-scores), 404 (skolan finns inte eller är inte aktiv). En kommun eller huvudman utan aktiva skolor ger { "healthScore": 100, "schoolCount": 0 }.
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.