Metod

Datakällor, år och rankingformler

Den här sidan beskriver vilka uppgifter varje ranking bygger på, vilket år de avser och hur placeringen räknas ut. Allmän information om tjänsten, begränsningar och integritet finns under Om Skolranking.

Datakällor och år

UnderlagKällaAvserSenast uppdaterat
Grundskola: meritvärde årskurs 9Skolverketläsåret 2025/262026-10-18
SALSA (förväntat värde och avvikelse)Skolverket via Kolada20252026-10-18
Skolenkäten: trygghet, studiero, stöd (elever åk 5 och åk 8, visas på skolsidor, ingår inte i rankingen)Skolinspektionenomgång 2025–20262026-10-23
Gymnasium: betygspoäng och examen inom 3 årSkolverket via Kolada20252026-07-12
Förskola: barn per legitimerad förskollärareSkolverket via Kolada20252026-07-12
Antagningspoäng, gymnasium (Stockholms län)Storsthlm (gymnasieantagningen.storsthlm.se)Slutantagning 20262026-08-05
Elevnöjdhet, gymnasium (Stockholms län)Storsthlms elevenkät20252026-09-12

Kolada är den öppna databas för kommun- och skolstatistik som drivs av RKA och som återpublicerar bland annat Skolverkets statistik. Årtal i Kolada är referensår, och datamängderna publiceras enligt olika scheman, så de avser inte samma år. Grundskolans meritvärden avser läsåret 2025/26 (referensår 2026). SALSA-värdena avser fortfarande 2025, eftersom Kolada ännu inte har publicerat SALSA för 2026. Kartpositioner för grundskolor kommer från samma filunderlag som meritvärdena.

Så beräknas rankingen

Grundskola

Skolorna sorteras fallande efter meritvärde i årskurs 9 (skala 0–340), som det redovisas av Skolverket. Inga egna vikter eller justeringar tillämpas. Endast skolor med både redovisat meritvärde och kartposition ingår. Placeringen inom en kommun är samma sortering begränsad till kommunens skolor.

SALSA visas separat och påverkar inte placeringen. Det är ett modellberäknat förväntat meritvärde utifrån bland annat föräldrarnas utbildningsnivå och andelen nyinvandrade elever; avvikelsen är skolans faktiska meritvärde minus det förväntade.

Gymnasium

Varje skolas genomsnittliga betygspoäng (gymnasieelever med examen) normaliseras till 0–100 mellan lägsta och högsta värdet bland alla rankade gymnasieskolor. Därefter räknas ett sammansatt värde:

poäng = 0,7 × normaliserad betygspoäng + 0,3 × examensandel inom 3 år (%)

Skolor utan redovisad examensandel rankas enbart efter den normaliserade betygspoängen, så att en saknad uppgift inte räknas som ett minus. Skolor utan betygspoäng ingår inte i rankingen. Antagningspoäng och elevnöjdhet (endast Stockholms län) visas som tilläggsinformation och påverkar inte rankingen.

Förskola

Förskoleenheter sorteras stigande efter antal barn per legitimerad förskollärare; lägre värde ger högre placering. Måttet beskriver bemanning, inte resultat, eftersom förskolan saknar betyg eller examen. Andel legitimerad personal visas som tilläggsinformation men påverkar inte placeringen. Enheter utan redovisat värde ingår inte.

Begränsningar

Rankingarna visar vad statistiken säger, inte hur bra en skola är för ett enskilt barn. Små skolor kan ha stora årliga svängningar, och skolor som saknar redovisade värden syns inte. Hittar du ett fel i uppgifterna, kontakta oss via adressen på Om Skolranking.

För utvecklare / API

Grundskoledatan finns som öppet JSON-API, fritt att använda utan nyckel (CC0, data från Skolverket). Ange gärna källan: Källa: skolranking.com, data Skolverket (CC0). Alla svar innehåller fälten source, license, dataYear och docs. Endast GET; CORS är öppet (*) och svar cachas i ett dygn.

  • GET /api/v1/kommuner – alla kommuner med antal skolor och länkar. Exempel
  • GET /api/v1/schools?kommun=Göteborg – grundskolorna i en kommun, sorterade efter meritvärde. Valfria parametrar: limit (1–200, standard 100) och offset. Okänd kommun ger 404, ogiltiga parametrar 400, båda som JSON. Exempel
  • GET /api/v1/schools/{id} – en skola, med id från listan ovan.

Fälten är bland annat meritValue (skala 0–340), rankSweden, rankKommun och salsa (förväntat värde och avvikelse). Toppfälten och rankingen avser läsåret 2025/26.

Historik (flera år)

Grundskola och gymnasium har historik bakåt i tiden. Den ligger additivt under school.history i GET /api/v1/schools/{id} och GET /api/v1/gymnasium/schools/{id}, och ändrar aldrig dagens värden eller rankingen. Skolor matchas mellan år på skolenhetskod (gymnasium: Koladas enhets-id). Ett år utan publicerat värde (skolan fanns inte än, är nedlagd eller källan saknar siffra) är null, aldrig 0; inget interpoleras.

"history": {
  "years": [2022, 2023, 2024, 2025, 2026],
  "sources": { "meritValue": "Kolada N15505/N15506 ...", ... },
  "series": [
    { "year": 2022, "meritValue": 315.6, "salsaExpected": 264, "salsaDeviation": 52 },
    ...
    { "year": 2026, "meritValue": 320.7, "salsaExpected": null, "salsaDeviation": null }
  ]
}
  • Grundskola (meritValue, Kolada N15505/N15506): 2022–2026, där 2026 = läsåret 2025/26. salsaExpected och salsaDeviation (U15415/U15416): 2022–2025; SALSA för 2026 är ännu inte publicerat och är null.
  • Gymnasium (Kolada referensår): meritPoints (N17691/N17690) publiceras först från 2023, alltså 2023–2025. graduationRate (examen inom 3 år): 2022–2025 för kommunala skolor; för fristående skolor finns bara 2025, eftersom Kolada inte längre levererar den serien. rankingScore och placeringar finns bara för nuvarande år.
  • Förskola: ingen historik.
  • GET /api/v1/history/grundskola och GET /api/v1/history/gymnasium – alla rankade skolor, en rad per skola och år, som CSV (standard). Lägg till ?format=json för JSON. Tomma celler är saknade värden. Exempel

Gymnasium och förskola

Samma regler (CC0, inga nycklar, öppet CORS, limit/offset, JSON-fel med 404/400) gäller för gymnasium och förskola. Svaren anger eget dataYear (Kolada referensår 2025 respektive 2025) och bara de fält som finns i datasetet; ett saknat värde (till exempel examensandel) är null.

  • GET /api/v1/gymnasium/kommuner – kommuner med gymnasieskolor. Exempel
  • GET /api/v1/gymnasium/schools?kommun=Göteborg – gymnasieskolorna i en kommun, sorterade efter rankingpoäng (70 % betygspoäng, 30 % examensandel). Fält: meritPoints, graduationRate, rankingScore, rankSweden, rankKommun.
  • GET /api/v1/gymnasium/schools/{id} – en gymnasieskola.
  • GET /api/v1/forskola/kommuner – kommuner med förskoledata. Exempel
  • GET /api/v1/forskola/units?kommun=Göteborg – förskoleenheterna i en kommun, sorterade efter barn per legitimerad förskollärare (lägst först). Fält: childrenPerTeacher, certifiedShare, childrenPerStaff, rankSweden, rankKommun.
  • GET /api/v1/forskola/units/{id} – en förskoleenhet.

MCP

Samma data finns som MCP-server (Model Context Protocol) för AI-assistenter: POST https://skolranking.com/api/mcp. Skrivskyddad, utan nyckel och utan sessioner (Streamable HTTP, JSON-RPC 2.0, ett meddelande per anrop, max 16 kB). Verktyg: list_kommuner, search_schools (kommun, valfria limit och offset) och get_school (id) för grundskola, samt search_gymnasium och get_gymnasium_school för gymnasium och search_forskola och get_forskola för förskola (samma parametrar; id:n är alfanumeriska koder). Alla svar innehåller samma källfält som REST-API:t.

curl -s https://skolranking.com/api/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'