# Vektis open data zorgkosten

Wat de basisverzekering per jaar uitbetaalt, verdeeld over 26 kostensoorten zoals ziekenhuiszorg, medicijnen, huisarts en ggz. Per gemeente (leeftijd in klassen van 5 jaar) en per postcodegebied van drie cijfers (per leeftijdsjaar), voor alle verzekerden. Kostenjaren 2011 tot en met 2024.

- Uitgever: Vektis
- Gebied: Nederland · Laagste detail: postcode (3 cijfers) en gemeente
- Periode: 2011 – 2024 · Ververst: jaarlijks
- Toegang: Open · Licentie: Vektis-voorwaarden: niet-commercieel, bronvermelding (bron: Vektis)
- Koppelsleutels: gemeentenaam, postcode (3 cijfers), leeftijdsklasse, geslacht
- Status: ok (2026-07-20) · kostenjaar 2024, gemeentebestand
- URL: https://www.vektis.nl/zorgprisma/open-databestanden

## Wat kun je ermee?
- **Zorgkosten per inwoner in jouw gemeente.** Tel per gemeente alle kostenrubrieken op en deel door het aantal verzekerdejaren. Zet je gemeente naast het landelijke cijfer en naast buurgemeenten.
- **Waar gaat het geld naartoe na je 65e?.** Zet per leeftijdsklasse de kosten per verzekerdejaar uit, per kostensoort. Je ziet waar medicijnen, ziekenhuis en wijkverpleging het zwaarst gaan wegen.
- **Corrigeer voor vergrijzing.** Een gemeente met veel ouderen heeft vanzelf hogere kosten. Bereken wat elke gemeente zou kosten met de landelijke leeftijdsopbouw en vergelijk pas dan.
- **Ggz-kosten en inkomen per postcodegebied.** Koppel de postcode3-cijfers aan inkomensgegevens en kijk of de kosten voor ggz-consulten oplopen in armere gebieden. Pas op met kleine gebieden en met de rubrieken die van naam veranderden.

## Zo verwerk je het
1. **Lees de bijsluiter.** Daarin staan de definities van alle kostenrubrieken, hoe de restcategorie werkt en welke kosten nog ontbreken.
   `https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs%20per%20pagina/Open%20Data%20Bestanden/2024/Bijsluiter%20bij%20de%20Vektis%20Open%20Databestanden%20Zorgverzekeringswet%202011%20-%202024.pdf`
2. **Download één jaar per gemeente.** Een CSV met puntkomma's. Het gemeentebestand 2024 is 2,9 MB met 12.992 rijen (342 gemeenten, twee geslachten, 19 leeftijdsklassen). Het postcodebestand is 21,8 MB.
   `https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs%20per%20pagina/Open%20Data%20Bestanden/2024/Vektis%20Open%20Databestand%20Zorgverzekeringswet%202024%20-%20gemeente.csv`
3. **Haal de restcategorie eruit.** De rij zonder geslacht, leeftijd en gemeente is de restcategorie: groepjes van minder dan 10 personen en verzekerden met onbekende kenmerken. In 2024 waren dat 412.394 verzekerden. Tel die mee voor het landelijke totaal, niet per gemeente.
4. **Deel door verzekerdejaren, niet door personen.** aantal_verzekerdejaren weegt mee hoe lang iemand verzekerd was of in de gemeente woonde. Wie in de loop van het jaar geboren werd, overleed of verhuisde, telt maar voor een deel.
5. **Koppel gemeenten op naam.** Er staat geen gemeentecode in, alleen de naam in hoofdletters ('AA EN HUNZE'). Het bestand 2024 volgt de gemeentelijke indeling van 2026. Maak een vertaaltabel naar de GM-code.

## Interessante koppelingen
- Hangen zorgkosten samen met inkomen? → [cbs-kwb](https://www.opendataindex.nl/bron/cbs-kwb.md) via gemeente (naam naar GM-code). De kerncijfers geven inkomen en leeftijdsopbouw per gemeente. Vergelijk eerst gemeenten met een gelijke leeftijdsopbouw.
- Waar in Nederland zijn de kosten per verzekerde het hoogst? → [pdok-wijkenbuurten](https://www.opendataindex.nl/bron/pdok-wijkenbuurten.md) via gemeente. Gebruik de gemeentegrenzen van hetzelfde jaar als de indeling in het bestand (2026 voor kostenjaar 2024).

## Vergelijkbare bronnen
- [waarstaatjegemeente](https://www.opendataindex.nl/bron/waarstaatjegemeente.md): Het dashboard Zorggebruik toont cijfers per gemeente al bewerkt en in grafieken, uit verschillende bronnen.
- [cbs-statline](https://www.opendataindex.nl/bron/cbs-statline.md): Het CBS publiceert de totale zorguitgaven van Nederland, ook buiten de basisverzekering, maar niet per gemeente en leeftijd.

## Waar je op moet letten
- **Niet voor commercieel gebruik.** De bestanden zijn voor persoonlijk gebruik en onderzoek. Doorverkopen en commercieel gebruik zijn niet toegestaan. Vermeld altijd 'bron: Vektis'.
- **Alleen wat via de verzekeraar loopt.** Kosten die je zelf betaalt zonder te declareren en wettelijke eigen bijdragen staan er niet in. Het eigen risico dat de verzekeraar eerst betaalde en daarna terugvroeg, staat er wel in.
- **Twee jaar declaraties, niet alles.** Per kostenjaar zijn declaraties over 8 kwartalen meegenomen. Voor specialistische ggz is dan ongeveer 90% binnen. Grensoverschrijdende zorg is onvolledig. Negatieve bedragen zijn correcties.
- **Kostenrubrieken veranderen.** De ggz-rubriek heette tot en met 2013 tweedelijns-ggz en daarna tot en met 2021 specialistische ggz. Vanaf 2022 zijn er nieuwe rubrieken voor consulten, verblijf en overige prestaties. Huisarts-MDZ bestaat pas vanaf 2015. Controleer de kolommen per jaar.
- **Leeftijdsklassen sorteren slecht.** De klassen zijn tekst met dubbele spaties ('0 t/m  4 jaar', '5 t/m  9 jaar'). Alfabetisch komt '10 t/m 14' vóór '5 t/m 9'. Maak er zelf een getal van.

## API (Bestanden (CSV))

- Basis: https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs%20per%20pagina/Open%20Data%20Bestanden
- Toegang: Geen sleutel of account nodig (getest)
- Formaten: csv
- Omvang: 12992 rijen in het gemeentebestand 2024 (2,9 MB); het postcode3-bestand is 21,8 MB (ervaring)
- Filteren: Geen filters: hele bestanden. Het nieuwste jaar vind je door het vaste pad met dalende jaartallen te proberen (HEAD).; 

### Endpoints
- `GET /{jaar}/Vektis%20Open%20Databestand%20Zorgverzekeringswet%20{jaar}%20-%20gemeente.csv`: Kosten per gemeente, geslacht en leeftijdsklasse van 5 jaar, kostenjaren 2017 tot en met 2024 (2024: Last-Modified 20 juli 2026).
- `GET /{jaar}/Vektis%20Open%20Databestand%20Zorgverzekeringswet%20{jaar}%20-%20postcode3.csv`: Kosten per postcodegebied van drie cijfers, geslacht en leeftijd in jaren, 2017 tot en met 2024 (2024: 21,8 MB).
- `GET /Gemeentebestanden%202011-2016/Vektis%20Open%20Databestand%20Zorgverzekeringswet%20{jaar}%20-%20gemeente.csv`: Gemeentebestanden 2011 tot en met 2016 (andere map).
- `GET /Oud/Vektis%20Open%20Databestand%20Zorgverzekeringswet%20{jaar}%20-%20postcode3.csv`: Postcode3-bestanden 2011 tot en met 2016 (map Oud).
- `GET /2020/Vektis%20Open%20Databestand%20Zorgverzekeringswet%202020%20-%20gemeente_versie2.csv`: Uitzondering: 2020 heet _versie2 (gemeente én postcode3).

### Parameters
- `jaar`: Kostenjaar 2011 tot en met 2024; één bestand per jaar en per indeling. 2025 bestond op 16 okt 2026 nog niet (404); volgende levering medio 2027. (getest)

### Kolommen in het CSV-bestand 2024 (selectie) (10)
`geslacht` tekst, `leeftijdsklasse` tekst, `gemeentenaam` tekst, `aantal_bsn` getal, `aantal_verzekerdejaren` getal, `kosten_medisch_specialistische_z` getal, `kosten_farmacie` getal, `kosten_huisarts_inschrijftarief` getal, `kosten_consulten_ggz` getal, `kosten_overig` getal

### Limieten en valkuilen
- Geen sleutel en geen limiet; gewone bestanden met Last-Modified en Accept-Ranges (Range geeft 206). (getest)
- Eerste datarij is de restcategorie: geslacht, leeftijd en gemeente leeg (2024: 412.394 verzekerden). Meetellen voor het landelijke totaal, niet per gemeente. (getest)
- Puntkomma als scheidingsteken, punt als decimaalteken, CRLF-regeleinden, geen BOM. (getest)
- Kolommen verschillen per jaar: 2011 heeft hoofdletters en volle namen (KOSTEN_MEDISCH_SPECIALISTISCHE_ZORG, KOSTEN_TWEEDELIJNS_GGZ), 2024 kleine letters afgekapt op 32 tekens en andere ggz-rubrieken. Controleer de kop per jaar. (getest)
- Gemeentenamen koppelen aan CBS-codes gaat op naam met een paar aliassen (BERGEN LB = Bergen (L.), NUENEN CA = Nuenen, Gerwen en Nederwetten). (ervaring)
- Kosten zijn declaraties over 8 kwartalen; negatieve bedragen zijn correcties. Specialistische ggz is ongeveer 90% compleet. (ervaring)
- robots.txt staat alles toe voor gewone user-agents; alleen AGB-registerpagina's zijn verboden voor AI-crawlers. (getest)

### Voorbeeld
```
https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs%20per%20pagina/Open%20Data%20Bestanden/2024/Vektis%20Open%20Databestand%20Zorgverzekeringswet%202024%20-%20gemeente.csv
```

## Zo haal je het op

### curl
```bash
curl -o vektis-2024-gemeente.csv "https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs%20per%20pagina/Open%20Data%20Bestanden/2024/Vektis%20Open%20Databestand%20Zorgverzekeringswet%202024%20-%20gemeente.csv"
```

### python
```python
import pandas as pd

url = ("https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs%20per%20pagina/"
       "Open%20Data%20Bestanden/2024/Vektis%20Open%20Databestand%20Zorgverzekeringswet%202024%20-%20gemeente.csv")
df = pd.read_csv(url, sep=";")
df = df[df["gemeentenaam"].notna()]          # restcategorie eruit
kosten = df.filter(like="kosten_").sum(axis=1)
per_gemeente = (kosten.groupby(df["gemeentenaam"]).sum()
                / df.groupby("gemeentenaam")["aantal_verzekerdejaren"].sum())
print(per_gemeente.sort_values().round(0).tail(5))   # euro per verzekerdejaar
```

## Wat je ermee kunt bouwen
- [Zorgkosten-vergelijker per gemeente](https://www.opendataindex.nl/bouwen/zorgkosten-vergelijker.md): Een tool die laat zien wat de basisverzekering per inwoner uitgeeft in jouw gemeente, per zorgsoort, en hoe dat zich verhoudt tot de rest van Nederland, ook na correctie voor leeftijd.


## Voorbeelden met echte cijfers (2)

Per voorbeeld de bevinding, de peildatum en de aanroep die precies deze cijfers ophaalt.

- **Zorgkosten in de basisverzekering per soort zorg: het meest Medisch-specialistische zorg (31.273 miljoen euro), dan Geneesmiddelen (farmacie) en Ggz, consulten** (2024). Tabel Zvw 2024 gemeente. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/vektis-zorgkosten-per-rubriek)
  - `https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs%20per%20pagina/Open%20Data%20Bestanden/2024/Vektis%20Open%20Databestand%20Zorgverzekeringswet%202024%20-%20gemeente.csv`
- **Zorgkosten in de basisverzekering per verzekerde: het hoogst in Heerlen en 1 andere gemeente (4.520 euro), het laagst in Urk (2.601 euro)** (2024). Tabel Zvw 2024 gemeente. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/vektis-zorgkosten-per-verzekerde)
  - `https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs%20per%20pagina/Open%20Data%20Bestanden/2024/Vektis%20Open%20Databestand%20Zorgverzekeringswet%202024%20-%20gemeente.csv`
