Datasets and downloads

Skolkoll's data freely available as CSV. Use in research, journalism or your own analyses.

School data

All school units in Sweden with key metrics, coordinates and provider information. 16,000+ schools, 18 fields.

Download CSV
Rows
16,000+ school units
Version
Current CSV build; check _period and _kalla per row.
Source
Skolverket
Period
School register and the latest published open key metrics; check _period per row in the CSV.

Sample row

skolenhetskod
44673074
skolenhetNamn
Abrahamsbergsskolan
kommunNamn
Stockholm
kommunKod
0180
lan
Stockholms län
huvudmanNamn
STOCKHOLMS KOMMUN
skolformer
GR, FKLASS, FTH
status
AKTIV
Field dictionary (18 columns)

Version: Current CSV build; check _period and _kalla per row. Source period: School register and the latest published open key metrics; check _period per row in the CSV.Tip: read the CSV with semicolon separator, UTF-8 BOM and a comma decimal separator.

FieldTypeDefinitionSourceLimitation
skolenhetskodcodeSkolverket's unique code for the school unit.SkolverketThe code identifies the school unit in the source but does not replace the provider's own reference numbers.
skolenhetNamntextThe school unit's name per Skolverket's open register.SkolverketNames can change between releases and should be matched on the school-unit code.
kommunNamntextThe municipality's name.Skolverket / KoladaMunicipality names should be combined with kommunKod for a robust join.
kommunKodcodeSCB's four-digit municipality code.SCB / Kolada / SkolverketRead as text so that leading zeros are preserved.
lantextCounty in which the school unit or municipality is located.Skolverket / SCBCounty membership can be affected by historical municipal boundary changes.
huvudmanNamntextProvider or organisation that runs the school unit.SkolverketSays nothing about ownership structure, group relationships or contracts.
skolformerlistSchool types the unit runs, comma-separated in the CSV.SkolverketA school unit can have several school types and should be filtered per analysis question.
statustextSchool-unit status, for example active or inactive.SkolverketStatus is updated per the source's publication cadence and can lag behind local decisions.
latcoordinateLatitude of the school unit's location.Skolverket / Skolkoll geokodningCoordinates may be approximate and should not be treated as an exact entrance point.
lngcoordinateLongitude of the school unit's location.Skolverket / Skolkoll geokodningCoordinates may be approximate and should not be treated as an exact entrance point.
antalEleverintegerNumber of pupils per the latest published statistics in the export.Skolverket / KoladaSmall counts may be suppressed for confidentiality, rounded or missing.
elevPerLararedecimalPupils per teacher or full-time equivalent depending on school type and dataset.Skolverket / KoladaDefinition and measurement period can differ between school type and municipality level.
behorigaLararePctpercentShare of qualified teachers, as a percentage.SkolverketSubject mix, small samples and the reporting period affect comparability.
meritvardeAk9decimalAverage merit value in year 9.SkolverketAvailable only for relevant compulsory schools and should be read alongside pupil counts and data quality.
behorigaGymnasietPctpercentShare of pupils eligible for upper-secondary vocational programmes.SkolverketNot available for all school types and is affected by small pupil groups.
_kallatextPrimary source or source chain for the row.SkolkollAlways verify against the original source before publishing firm conclusions.
_periodtextMeasurement period or school year the row refers to.SkolkollDifferent fields in the same row can have different source periods when sources update at different cadences.
_kvalitetsklasstextSkolkoll's data-quality class for the row or export.SkolkollThe quality class is an interpretation warning signal, not a certification of the source.
curl
curl -L "https://skolkoll.se/nedladdning/skolor.csv" -o skolor.csv
Python
import pandas as pd

df = pd.read_csv(
    "https://skolkoll.se/nedladdning/skolor.csv",
    sep=";",
    comment="#",
    encoding="utf-8-sig",
    decimal=",",
)
print(df.head(1))

Citation: Skolkoll. School data - all school units. Retrieved from https://skolkoll.se/data/. Source: Skolverket. Terms: Skolverket open data terms.

Municipality statistics

Aggregated statistics per municipality: merit value, teacher qualifications, pupil numbers, demographics and finances.

Download CSV
Rows
290 municipalities plus comparison rows where the source publishes them
Version
Latest published municipality value per indicator.
Source
Kolada
Period
Latest municipality value per indicator; the year is held in separate *_ar columns.

Sample row

kommunKod
0180
kommunNamn
Stockholm
kostnadPerElev_kr
se CSV
kostnadPerElev_ar
senaste år
elevPerLarare
se CSV
elevPerLarare_ar
senaste år
Field dictionary (14 columns)

Version: Latest published municipality value per indicator. Source period: Latest municipality value per indicator; the year is held in separate *_ar columns.Tip: read the CSV with semicolon separator, UTF-8 BOM and a comma decimal separator.

FieldTypeDefinitionSourceLimitation
kommunKodcodeSCB's four-digit municipality code.SCB / Kolada / SkolverketRead as text so that leading zeros are preserved.
kommunNamntextThe municipality's name.Skolverket / KoladaMunicipality names should be combined with kommunKod for a robust join.
kostnadPerElev_krintegerThe municipality's cost per pupil in SEK for the given indicator.KoladaMunicipal cost measures can be affected by accounting principles and activity mix.
kostnadPerElev_aryearStatistics year for kostnadPerElev_kr.KoladaUse the year when comparing with other municipal measures.
elevPerLararedecimalPupils per teacher or full-time equivalent depending on school type and dataset.Skolverket / KoladaDefinition and measurement period can differ between school type and municipality level.
elevPerLarare_aryearExport field elevPerLarare_ar as published in Skolkoll's CSV schema.KoladaCheck measurement period, source and missing values before drawing firm conclusions from this field.
meritvardeSnittdecimalAverage merit value at municipality level.Kolada / SkolverketAn aggregated measure that does not show the spread between schools.
meritvardeSnitt_aryearStatistics year for meritvardeSnitt.Kolada / SkolverketUse the year for time comparisons.
behorighetsgrad_pctpercentEligibility rate for upper secondary, or the equivalent municipal indicator, as a percentage.Kolada / SkolverketCheck the indicator's exact definition in Kolada before publishing.
behorighetsgrad_aryearStatistics year for behorighetsgrad_pct.Kolada / SkolverketUse the year when comparing with other indicators.
antalEleverintegerNumber of pupils per the latest published statistics in the export.Skolverket / KoladaSmall counts may be suppressed for confidentiality, rounded or missing.
antalElever_aryearStatistics year for antalElever.Kolada / SkolverketThe year may differ from other indicators in the same municipality row.
andelKommunalElever_pctpercentShare of pupils in municipal schools.Kolada / SkolverketAn aggregated municipal measure that does not describe individual schools.
andelFristaendeElever_pctpercentShare of pupils in independent (non-municipal) schools.Kolada / SkolverketAn aggregated municipal measure that does not describe providers' profiles or waiting-list situations.
curl
curl -L "https://skolkoll.se/nedladdning/kommuner.csv" -o kommuner.csv
Python
import pandas as pd

df = pd.read_csv(
    "https://skolkoll.se/nedladdning/kommuner.csv",
    sep=";",
    comment="#",
    encoding="utf-8-sig",
    decimal=",",
)
print(df[["kommunKod", "kommunNamn"]].head())

Citation: Skolkoll. Municipality data - aggregated compulsory-school statistics per municipality. Retrieved from https://skolkoll.se/data/. Source: Kolada. Terms: Kolada API terms.

Historical data

Historical key metrics per municipality (compulsory school). Merit value, teacher qualifications and pupil numbers over time.

Download CSV
Rows
Several years per municipality
Version
Time-series version per the ar column.
Source
Kolada
Period
Time series per municipality and year; the ar column gives the statistics year.

Sample row

kommunKod
0180
kommunNamn
Stockholm
ar
senaste år
meritvardeSnitt
se CSV
kostnadPerElev_kr
se CSV
elevPerLarare
se CSV
Field dictionary (10 columns)

Version: Time-series version per the ar column. Source period: Time series per municipality and year; the ar column gives the statistics year.Tip: read the CSV with semicolon separator, UTF-8 BOM and a comma decimal separator.

FieldTypeDefinitionSourceLimitation
kommunKodcodeSCB's four-digit municipality code.SCB / Kolada / SkolverketRead as text so that leading zeros are preserved.
kommunNamntextThe municipality's name.Skolverket / KoladaMunicipality names should be combined with kommunKod for a robust join.
aryearStatistics year or admissions year.Kolada / GymnasieantagningenCompare only rows with the same year when analysing trends or selections.
meritvardeSnittdecimalAverage merit value at municipality level.Kolada / SkolverketAn aggregated measure that does not show the spread between schools.
kostnadPerElev_krintegerThe municipality's cost per pupil in SEK for the given indicator.KoladaMunicipal cost measures can be affected by accounting principles and activity mix.
elevPerLararedecimalPupils per teacher or full-time equivalent depending on school type and dataset.Skolverket / KoladaDefinition and measurement period can differ between school type and municipality level.
behorighetsgrad_pctpercentEligibility rate for upper secondary, or the equivalent municipal indicator, as a percentage.Kolada / SkolverketCheck the indicator's exact definition in Kolada before publishing.
antalEleverintegerNumber of pupils per the latest published statistics in the export.Skolverket / KoladaSmall counts may be suppressed for confidentiality, rounded or missing.
andelKommunalElever_pctpercentShare of pupils in municipal schools.Kolada / SkolverketAn aggregated municipal measure that does not describe individual schools.
andelFristaendeElever_pctpercentShare of pupils in independent (non-municipal) schools.Kolada / SkolverketAn aggregated municipal measure that does not describe providers' profiles or waiting-list situations.
curl
curl -L "https://skolkoll.se/nedladdning/historik.csv" -o historik.csv
Python
import pandas as pd

df = pd.read_csv(
    "https://skolkoll.se/nedladdning/historik.csv",
    sep=";",
    comment="#",
    encoding="utf-8-sig",
    decimal=",",
)
print(df[df["kommunKod"].astype(str).str.zfill(4) == "0180"].tail())

Citation: Skolkoll. Historical data - time series per municipality (compulsory school). Retrieved from https://skolkoll.se/data/. Source: Kolada. Terms: Kolada API terms.

Admissions scores

Admissions scores, applicants and admitted students per upper-secondary programme and school.

Download CSV
Rows
Programme/school combinations where admissions data exists
Version
Latest available admissions year in the ar column.
Source
Skolverket / Gymnasieantagningen
Period
Latest available admissions year in the file; the ar column gives the year.

Sample row

skolkod
exempel
skolnamn
Gymnasieskola
kommun
Kommun
program
Naturvetenskapsprogrammet
programkod
NA
ar
senaste år
Field dictionary (11 columns)

Version: Latest available admissions year in the ar column. Source period: Latest available admissions year in the file; the ar column gives the year.Tip: read the CSV with semicolon separator, UTF-8 BOM and a comma decimal separator.

FieldTypeDefinitionSourceLimitation
skolkodcodeSchool code or school-unit code in the admissions data.Skolverket / GymnasieantagningenMay be missing or differ between regional admissions sources.
skolnamntextThe school's name in the admissions data.Skolverket / GymnasieantagningenName normalisation may differ from Skolverket's school-unit register.
kommuntextMunicipality name in the admissions data.Skolverket / GymnasieantagningenMay refer to the school municipality or the admissions area's municipality depending on the source.
programtextName of the upper-secondary programme.GymnasieantagningenProgramme names can be combined with orientation and programme code for unique analysis.
programkodcodeCode for the upper-secondary programme.Gymnasieantagningen / SkolverketUse together with orientation when the programme has several variants.
inriktningtextOrientation within the upper-secondary programme.GymnasieantagningenMay be empty when admissions are reported at programme level.
aryearStatistics year or admissions year.Kolada / GymnasieantagningenCompare only rows with the same year when analysing trends or selections.
antagningspoangdecimalLowest or reported admissions score for the programme/school row.GymnasieantagningenMay refer to different selection rounds and is not a forecast for future admissions.
antagnaintegerNumber of admitted students in the reported selection.GymnasieantagningenMay be missing or change between preliminary and final selection.
sokandeintegerNumber of applicants to the programme/school row.GymnasieantagningenThe definition of applicant can vary between regions and selection rounds.
forsthandssokandeintegerNumber of first-choice applicants.GymnasieantagningenSometimes missing and should not be interpreted as a standalone popularity ranking.
curl
curl -L "https://skolkoll.se/nedladdning/antagning.csv" -o antagning.csv
Python
import pandas as pd

df = pd.read_csv(
    "https://skolkoll.se/nedladdning/antagning.csv",
    sep=";",
    comment="#",
    encoding="utf-8-sig",
    decimal=",",
)
print(df[["skolnamn", "program", "ar", "antagningspoang"]].head())

Citation: Skolkoll. Admissions - admissions scores per upper-secondary programme. Retrieved from https://skolkoll.se/data/. Source: Skolverket/Gymnasieantagningen. Licence: CC BY 4.0.

Licence terms

All data is distributed under CC BY 4.0. You may freely use, share and adapt the data, but you must credit Skolkoll as the source.

Want the data via API? See data sources or contact us.

Building an AI agent? See the AI guide for Skolkoll's open data with endpoint schema, CSV format and use cases.