Wat is de volgorde en werking van aggregatie in Swing?

Gewijzigd op Ma, 2 Feb om 5:48 PM

Inleiding

In Swing wordt aggregatie toegepast wanneer data niet op het gevraagde niveau beschikbaar is. Swing kan gegevens dan automatisch doortellen naar een hoger niveau.

Swing kent drie vormen van aggregatie:

  1. Gebiedsaggregatie
  2. Periodeaggregatie
  3. Dimensieaggregatie

Deze FAQ beschrijft de werking, uitzonderingen en prioriteitsregels.

1. Gebiedsaggregatie

Met gebiedsaggregatie wordt een relatie gelegd tussen meerdere gebiedsniveaus, zodat data kan worden opgeteld naar een hoger gebiedsniveau (oudergebied).

Voorbeelden van gebiedsniveaus die via een gebiedsaggregatie aan elkaar kunnen worden gekoppeld:

buurten → wijken → gemeenten → provincies → landsdelen → Nederland

1. Ingelezen data op het doelgebied heeft altijd voorrang

  • Als data is ingelezen op het gebiedsniveau waarnaar wordt geaggregeerd, wordt altijd de ingelezen data getoond.

2. Bij meerdere aggregatieroutes kiest Swing:

  • de kortste aggregatieroute;
  • als aggregatieroutes even lang zijn: de route met het minste aantal gebieden.

Voorbeeld: data op gemeenten- en provincieniveau; welke data staat er per gebiedsniveau?

GebiedsniveauAggregatie naarData ingelezen?Welke data wordt per niveau getoond?
gemeenten→ provinciesjagemeentedata
provincies→ landsdelenjaprovinciedata
landsdelen→ Nederlandneegeaggregeerde provinciedata
Nederlandn.v.t.neetotaal provinciedata
Toelichting: Swing kiest de kortste route om tot het totaal van Nederland te komen. In dit voorbeeld loopt die route via provincies (provincies → landsdelen → Nederland).

Alternatieve snellere routes

Als de volgende aggregatieroute wordt toegevoegd: Gemeenten → Nederland,

dan wordt Nederland opgebouwd uit gemeentelijke data, omdat dit de kortste route is.

Verborgen gebieden

In de geoitem-tabel kunnen gebieden op hide worden gezet:

  • Deze zijn niet zichtbaar in Swing Viewer.
  • Maar worden wel meegenomen in de aggregatie.

Gevolg: het totaal op een ouderniveau kan afwijken van de zichtbare som van de onderliggende gebieden.

2. Periodeaggregatie

Swing past automatisch deze periodeaggregaties toe: maand → kwartaal → halfjaar → jaar.

Periodeoptelling geldt uitsluitend voor onderwerpen met: period type = pending.

Bij onderwerpen met: period type = stock worden periodes niet opgeteld. Swing toont dan altijd de data van de eerste beschikbare periode binnen het jaar (bijv. januari).

Kortste aggregatieroute geldt ook bij periodeaggregatie

Als data op meerdere periodeniveaus beschikbaar is, gebruikt Swing de kortste route.

Voorbeeld: data is ingelezen op maand- en kwartaalniveau → op jaarniveau wordt het totaal van de kwartalen getoond.

RecordPeriodeGebiedsniveauPeriodeniveauWaardeWelke waarde wordt getoond bij Nederland-jaarniveau?
1m1y2026Nederlandmaand100niet gebruikt (lagere prioriteit)
2q1y20226Nederlandkwartaal
200Swing toont de geaggregeerde kwartaaldata
Toelichting: als data van verschillende periodeniveaus tot verschillende totalen leiden, dient de data ook op jaarniveau te worden ingelezen.

3. Dimensieaggregatie

Bij dimensieaggregaties kunnen situaties optreden die bij gebruikers vragen kunnen oproepen. Deze situaties worden hieronder met een voorbeeld toegelicht.

3.1 Aggregatie naar hetzelfde dimensieniveau (alternatieve indelingen)

Meerdere dimensieniveaus kunnen niet naar hetzelfde dimensieniveau aggregeren.

De prioriteit van de dimensieaggregatie is gebaseerd op:

  • de volgorde van de ingelezen records;
  • alternatieve routes worden niet gebruikt.

Voorbeeld: data op 1-jaars- en op 5-jaarsleeftijdsklassen; welke waarde staat er bij 10-jaarsleeftijdsklassen?

RecordPeriodeGebiedsniveauNiveauWaardeWelke waarde wordt getoond bij dimensieniveau 10 jaar?
12026Nederland1 jaar100Swing toont de geaggregeerde waarde van het 1e record
22026Nederland5 jaar200niet gebruikt (lagere prioriteit)
Toelichting: de waarde van 5 jaar wordt alleen getoond wanneer dit niveau wordt geselecteerd.

3.2 Aggregatie over meerdere dimensieniveaus (keten)

Bij aggregatieketens zoals leeftijdsklasseindelingen (1-jaars → 5-jaars → 10-jaars) geldt dat Swing alleen kan aggregeren vanaf het laagste dimensieniveau.

Hogere dimensieniveaus worden niet gebruikt als alternatieve aggregatie wanneer data op het laagste niveau ontbreekt.

Voorbeeld: in 2025 is data aanwezig op 1-jaarsniveau en 5-jaarsniveau; in 2026 ontbreekt data op 1-jaarsniveau. Welke waarde staat er bij 10-jaarsleeftijdsklassen?

RecordPeriodeGebiedsniveauNiveauWaardeWelke waarde wordt getoond bij dimensieniveau 10 jaar?
12025Nederland1 jaar100Swing toont de geaggregeerde waarde op basis van 1-jaarsniveau
22025Nederland5 jaar200niet gebruikt (lagere prioriteit)
32026Nederland5 jaar200data ontbreekt op het laagste niveau (1 jaar); Swing kan geen waarde tonen bij 10 jaarsleeftijdsklassen.
Toelichting: Zonder data op 1-jaarsniveau kan Swing geen waarde op 10-jaarsniveau afleiden.

Trendbreuken en randtotalen

Wanneer is dimensieaggregatie niet zinvol en moet data op meerdere niveaus worden ingelezen?

  • 1-jaarsleeftijdsklassen zijn alleen beschikbaar op hogere gebiedsniveaus (onthullingspreventie).
  • Detaildata kan afgerond zijn, terwijl geaggregeerde klassen exacte waarden bevatten.
  • Door een wijziging in de methodiek is data in een andere indeling beschikbaar (trendbreuk).

In deze situaties moeten randtotalen worden ingelezen voor een correcte weergave op ieder niveau.

Meer informatie: zie kubushandleiding.

4. Prioriteit tussen aggregatietypen

Als meerdere aggregaties tegelijk mogelijk zijn, geldt de volgende prioritering:

  1. Gebiedsaggregatie
  2. Dimensieaggregatie
  3. Periodeaggregatie

Situatie 1: gebiedsaggregatie vs. periodeaggregatie

Voorbeeld: data op Nederland-maandniveau en gemeente-jaarniveau; welke data staat er bij Nederland-jaarniveau?

RecordPeriodeGebiedsniveauPeriodeniveauWelke aggregatie heeft voorrang?
1m1y2026Nederlandmaandniet gebruikt (lagere prioriteit)
22026gemeentenjaargebiedsaggregatie heeft voorrang
Resultaat: Nederland-jaarniveau = totaal gemeenten

Situatie 2: gebiedsaggregatie vs. dimensieaggregatie

Voorbeeld: randtotalen op gemeenteniveau en dimensie-items op Nederlandniveau; welke data staat er bij Nederland-jaarniveau?

RecordPeriodeNiveauGebiedsniveauPeriodeniveauWelke aggregatie heeft voorrang?
12026randtotaalgemeentenjaargebiedsaggregatie heeft voorrang
22026dimensie-itemsNederlandjaarniet gebruikt (lagere prioriteit)
Resultaat: Nederland-jaarniveau = totaal gemeenten

Situatie 3: dimensieaggregatie vs. periodeaggregatie

Voorbeeld: kubusdata op jaarniveau en randtotalen op maandniveau; welke data staat er bij Nederland-jaarniveau?

RecordPeriodeNiveauGebiedsniveauPeriodeniveauWelke aggregatie heeft voorrang?
12026dimensie-itemsNederlandjaardimensieaggregatie heeft voorrang
2m1y2026randtotaalNederlandmaandniet gebruikt (lagere prioriteit)
Resultaat: Nederland-jaarniveau = totaal dimensie-items

Samenvattend

  • Ingelezen data heeft voorrang op geaggregeerde data.
  • Gebiedsaggregatie heeft hoogste prioriteit.
  • Kortste aggregatieroute heeft voorrang.
  • Dimensieaggregatie combineert geen parallelle routes → randtotalen zijn hier essentieel.
  • Periodeaggregatie telt alleen op bij period type = pending.