# HR-dashboard in Looker Studio [[TOC]] ## Databron voor HR-data HR-data bevat persoonsgegevens en is extra gevoelig. Kies de databron zorgvuldig: | Databron | Aanpak | |---|---| | HRIS-export (Workday, HiBob, AFAS) | Wekelijkse CSV-export naar Google Sheets | | Google Sheets (handmatig) | Voor kleine teams | | BigQuery via ETL | Voor automatische updates, beste schaalbaarheid | | HR-systeem-API via Apps Script | Directe koppeling zonder handmatige export | :::warn title="HR-data valt onder de AVG" HR-data is altijd persoonsgegeven (naam, functie, afdeling) en kan bijzondere categorieƫn bevatten (gezondheid via verzuim, soms salaris). Beperk de toegang tot het dashboard strikt tot HR, management en directie. Gebruik nooit eigenaarscredentials in combinatie met een openbaar gedeeld rapport. ::: ## Essentiƫle HR-metrics Workforce-metrics: - Headcount per afdeling, locatie en functieniveau - FTE (full-time equivalent) versus deeltijdverdeling - Gemiddelde diensttijd Verloop-metrics: - Verlooppercentage = (vertrokken medewerkers / gemiddelde headcount) x 100 - Vrijwillig versus onvrijwillig verloop - Verloopredenen uit exit-survey-data Werving-metrics: - Time-to-hire (dag aanvraag tot eerste werkdag) - Cost-per-hire - Aanvaardingsratio (aanvaarde aanbiedingen / totaal aanbiedingen) - Doorstroomratio per fase (sollicitaties, gesprekken, aanbod, aanvaard) Verzuim-metrics: - Verzuimpercentage - Verzuimfrequentie (aantal ziektedagen per medewerker per jaar) - Bradford-factor (frequent kort verzuim weegt zwaarder dan lang verzuim) ## Dashboard-structuur ### Pagina 1: Headcount-overzicht - Scorecard: totaal medewerkers, FTE, nieuw dit kwartaal, vertrokken dit kwartaal - Grafiek: headcount per afdeling (horizontaal staafdiagram) - Grafiek: headcount over tijd (tijdreeks) ### Pagina 2: Verloop - Scorecard: verlooppercentage, gemiddelde diensttijd - Grafiek: verloop per kwartaal - Tabel: vertrokken medewerkers per afdeling en reden ### Pagina 3: Werving - Scorecard: openstaande vacatures, time-to-hire, aanvaardingsratio - Grafiek: wervingstrechter (sollicitaties per fase) - Tabel: vacatures per afdeling en status ### Pagina 4: Verzuim - Scorecard: verzuimpercentage, gemiddeld aantal verzuimdagen per medewerker - Grafiek: verzuim per maand (tijdreeks) - Tabel: afdelingen met het hoogste verzuim ## Berekende velden voor HR Verlooppercentage: ``` SAFE_DIVIDE(Vertrokken_medewerkers, Gemiddelde_headcount) * 100 ``` Bradford-factor: ``` (Aantal_ziekte_episodes * Aantal_ziekte_episodes) * Totale_ziektedagen ``` Diensttijd in jaren: ``` DATE_DIFF(CURRENT_DATE(), Startdatum, DAY) / 365.25 ``` ## Privacybescherming in het dashboard - **Anonimisering**: toon geen individuele namen tenzij strikt noodzakelijk. Aggregeer naar afdeling of functieniveau. - **Kleine groepen**: bij afdelingen van minder dan 5 medewerkers kan data herleidbaar zijn tot individuen. Verberg dan de metrics. - **Toegangsbeheer**: gebruik kijkerscredentials zodat kijkers alleen data zien waartoe zij geautoriseerd zijn. - **Dataminimalisatie**: neem alleen de velden op die nodig zijn voor het doel van het dashboard. :::tip title="Echte row-level beveiliging via filter op e-mailadres" Looker Studio kent geen native row-level security, maar je kunt de databron filteren op het e-mailadres van de kijker. Hierdoor ziet bijvoorbeeld een lijnmanager alleen de rijen van de eigen afdeling. Zet in je databron een veld met het geautoriseerde e-mailadres per rij en activeer in de databroninstellingen het filter op e-mailadres. Voor BigQuery kun je dit nog strakker afdwingen met row-level security in een view, zodat de filtering aan de databasekant gebeurt en niet pas in het rapport. ::: :::howto title="Kleine groepen maskeren" 1. Maak een berekend veld: `CASE WHEN Headcount < 5 THEN "< 5" ELSE CAST(Headcount AS TEXT) END`. 2. Gebruik dit berekende veld in je visualisaties in plaats van het directe headcount-veld. 3. Controleer ook gefilterde weergaven: een combinatie van filters mag nooit terug te rekenen zijn naar een groep kleiner dan 5. ::: :::faq ### Wie mag toegang hebben tot het HR-dashboard? Minimaal HR-medewerkers, HR-management en directie. Lijnmanagers kunnen toegang krijgen tot geaggregeerde data van hun eigen afdeling, bij voorkeur via een filter op e-mailadres. Leg de toegangsregels vast in een schriftelijk beleid en in je AVG-verwerkingsregister. ### Hoe verwijder ik data van vertrokken medewerkers? Stel een retentiebeleid in voor je databron. In Google Sheets archiveer je jaarlijks naar een aparte Archief-sheet of verwijder je de rijen. In BigQuery gebruik je partition expiry voor automatische verwijdering na de retentieperiode. ### Kan ik salarisdata opnemen in Looker Studio? Technisch kan het, maar salarisdata is bijzonder gevoelig. Beperk het tot geaggregeerde bandbreedtes (salarisklassen) en geef alleen HR en directie toegang. Overweeg een aparte, nog strakker beveiligde databron voor salarisdata. ### Hoe combineer ik HR-data met Workspace-gebruik? Via BigQuery: exporteer beide bronnen naar BigQuery en join op het e-mailadres van de medewerker. Zo kun je bijvoorbeeld zien of nieuw personeel goed is onboarded aan de hand van Workspace-gebruik in de eerste 30 dagen. ### Werkt row-level security native in Looker Studio? Nee. Looker Studio heeft geen ingebouwde row-level security waarbij elke kijker andere rijen ziet via rollen. Je benadert dit met het filter op e-mailadres, of je dwingt het af in BigQuery met een row-level-securityview onder kijkerscredentials. ### Hoe houd ik het dashboard actueel zonder handwerk? Plan een wekelijkse of dagelijkse ETL naar BigQuery, of laat Apps Script de HR-systeem-API uitlezen naar Sheets op een tijdtrigger. Looker Studie ververst dan automatisch bij het openen van het rapport. :::