Hoe het automatisch invullen zijn keuze maakt
De engine loopt je posities één voor één langs, gooit iedereen eruit die niet mag en geeft de rest een cijfer. Dit is welke regels dat zijn, in welke volgorde, en waarom iemand afvalt.
Wanneer gebruik je dit
Je kijkt naar een voorstel van het automatisch invullen en je denkt: waarom staat híj daar, en waarom staat zij er niet? Dit artikel legt de redenering uit. Niet omdat je hem moet kunnen navolgen, maar omdat je een voorstel dat je niet begrijpt terecht niet vertrouwt.
De opzet in het kort
De engine vult de posities van één dag uit één dagtemplate. Voor elke positie doet hij twee dingen:
- Iedereen die niet mag, valt af — met één zin waarom.
- Wie overblijft krijgt een cijfer van 0 tot 100. De hoogste wint.
Daarna volgen nog twee rondes die het geheel bijschaven; die staan in De herstelronde en de budgetronde.
Alles wat de engine besluit is een voorstel. Er ontstaat geen enkele dienst zonder dat jij op een knop drukt.
In welke volgorde de posities worden gevuld
Op prioriteit, laag eerst. Heeft een positie prioriteit 10 en een andere 100, dan wordt de eerste als eerste gevuld en heeft die dus de ruimste keuze. Bij gelijke prioriteit telt de volgorde die je zelf aan de posities hebt gegeven.
Dat is de reden dat prioriteit ertoe doet: je beste kok kan maar op één plek staan, en de positie die als eerste aan de beurt is, krijgt hem.
Waarom iemand afvalt
De redenen worden op volgorde nagelopen. De eerste die opgaat, is de reden die je op het scherm ziet — ook als er nog drie andere zouden gelden.
1. Ranking te laag. Elke positie heeft een minimale ranking (1 tot 5). Wie daaronder zit, valt af. Iemand die nog nooit beoordeeld is, telt als 3, en dat staat er dan bij: ranking 3 (niet beoordeeld, telt als 3) < minimaal 4.
2. Te duur. Heeft de positie een maximum uurloon, dan valt iedereen daarboven af. Is van iemand het uurloon helemaal niet bekend, dan valt hij óók af — Morris gokt niet dat het wel meevalt.
3. Goedgekeurd verlof op die dag. Aanvragen die nog in behandeling zijn tellen hier niet mee; die blokkeren dus niets.
4. Beschikbaarheid. Wie die dag zelf op Niet beschikbaar heeft gezet, valt af. Heeft iemand tijden opgegeven, dan moet de positie daar helemaal binnen vallen: alleen beschikbaar 17:00–23:00, positie loopt 12:00–20:00. Heeft iemand niets ingevuld, dan is dat alleen een reden als Beschikbaarheid verplicht aan staat. Standaard staat die uit — zolang bijna niemand zijn beschikbaarheid invult, zou anders iedereen afvallen en lijkt de engine kapot.
5. Al ingeroosterd. Wie die dag al een dienst heeft, valt af, ook als die dienst in tijd niet botst: staat al ingeroosterd (17:00–23:00). Een dienst op een ándere dag telt alleen als hij overlapt — bijvoorbeeld een sluitdienst die tot na middernacht doorloopt.
6. Eigen weekmaximum. Een medewerker kan in het portaal zelf aangeven hooguit hoeveel dagen per week hij ingeroosterd wil worden. Zit hij daar al aan, dan valt hij af: staat al 4 dagen in deze week (eigen maximum 4/week). De week loopt van maandag tot en met zondag.
7. Te weinig rust. Tussen twee diensten moet Minimale rusttijd zitten, standaard 11 uur, precies zoals de Arbeidstijdenwet aanhoudt. Morris rekent dat over de dagrand heen, dus een sluitdienst tot 01:00 en een lunchdienst om 11:00 de volgende dag botsen gewoon: minder dan 11 uur rust rond de dienst van 2026-09-13 (10u00).
8. Arbeidstijdenwet voor jongeren. Staat er een geboortedatum in het dossier, dan gelden er grenzen:
- 15 jaar of jonger — niet werken na 19:00, hooguit 8 uur per dag;
- 16 of 17 jaar — niet werken na 23:00, hooguit 9 uur per dag.
Staat er geen geboortedatum, dan gelden deze grenzen niet. Vul die dus in.
9. Te veel uren. Twee plafonds tegelijk:
- Maximum per week — een harde grens, standaard 40 uur;
- Marge boven contracturen — standaard 8 uur. Iemand met een contract van 20 uur komt dus niet boven de 28 uit.
Beide worden berekend inclusief de positie waar hij nu voor in aanmerking komt, en exclusief pauze.
Hoe de winnaar wordt gekozen
Wie overblijft, krijgt drie deelcijfers van 0 tot 100:
- Ranking. Een 1 wordt 0, een 5 wordt 100.
- Eerlijkheid. Hoe vol zijn week al is, afgezet tegen zijn contracturen (of tegen het weekmaximum als er geen contracturen bekend zijn). Wie nog weinig staat, scoort hoog. Wie al aan zijn uren zit, scoort 0.
- Kosten. De goedkoopste kandidaat van die dag krijgt 100, de duurste 0. Is er geen verschil, of is een uurloon onbekend, dan telt dit onderdeel neutraal mee met 50 — anders zou een ontbrekend uurloon iemand stilzwijgend bevoordelen.
Die drie worden gewogen volgens de Strategie onder Rooster › Roosterengine:
| Strategie | ranking | eerlijkheid | kosten |
|---|---|---|---|
| Kwaliteit | 70 | 20 | 10 |
| Gebalanceerd | 50 | 30 | 20 |
| Kosten | 25 | 25 | 50 |
Gebalanceerd is de standaard. De weging staat naast de keuzelijst op het scherm, zodat je ziet wat je omzet.
Gelijkspel. Twee kandidaten met exact dezelfde score: dan wint wie de afgelopen vier weken het minst is ingezet. Blijft het gelijk, dan alfabetisch op naam. Die laatste stap lijkt willekeurig, maar is er juist om willekeur uit te sluiten — zie hieronder.
De uren tellen meteen mee
Zodra iemand op een positie wordt gezet, worden de uren van die positie (duur min pauze) meteen bij zijn week opgeteld. De volgende positie ziet dus dat hij al voller zit.
Dat heeft twee zichtbare gevolgen binnen dezelfde dag:
- zijn eerlijkheidscijfer zakt, dus bij de volgende positie schuift hij naar achteren in de rij;
- hij kan zelfs over zijn weekplafond komen en dáárom afvallen — terwijl hij bij de vorige positie nog gewoon meedeed.
Zo verdeelt de engine het werk over de dag in plaats van je beste kracht op alle posities tegelijk te willen zetten.
Waarom een positie leeg blijft
Blijft er niemand over, dan schrijft de engine één zin op de positie:
- 0 kandidaten met ranking ≥ 4 beschikbaar — als iedereen op ranking afviel;
- geen enkele kandidaat voldeed — vaakst: goedgekeurd verlof op deze dag (6×) — met de reden die het vaakst voorkwam;
- geen medewerkers bekend voor deze vestiging — er is niemand om uit te kiezen;
- onbruikbare tijden op deze positie — de begin- of eindtijd van de positie is niet te lezen.
Op het conceptscherm kun je per positie uitklappen wie er allemaal afviel en waarom. Dat is de snelste manier om te zien of je instellingen te streng staan.
Dezelfde invoer geeft altijd hetzelfde voorstel
De rekenkern kent geen toeval en geen klok. Er zit geen willekeur in, hij kijkt nergens hoe laat het is, en elke lijst — posities, medewerkers, bestaande diensten — wordt in een vaste volgorde gezet voordat er iets gebeurt.
Dat is geen detail. Het betekent:
- Twee keer berekenen geeft twee keer hetzelfde. Klik je opnieuw op Opnieuw berekenen en er komt iets anders uit, dan is er iets in de gegevens veranderd: verlof, beschikbaarheid, een dienst elders in de week, een uurloon, een ranking, of een instelling.
- Je kunt een voorstel navertellen. Wat er staat, volgt uit wat er in de dossiers en het rooster stond op het moment van berekenen.
De dag waarvoor gerekend wordt, komt van buiten binnen. De controle of die dag niet te ver vooruit ligt (Hoe ver vooruit invullen, standaard 14 dagen) of al geweest is, gebeurt vóór de berekening — daar wordt wél naar de kalender gekeken.
Let op
- Ranking is een oordeel over een medewerker en blijft binnen de leiding. Het komt nooit in een medewerkerscherm of in een antwoord aan de medewerker terecht, ook niet in dat van hemzelf.
- Geen ranking is niet hetzelfde als een lage ranking. Niet ingevuld telt als 3, dus wie je nooit hebt beoordeeld, komt vanzelf op middelmatig uit.
- Ontbrekende gegevens sturen het voorstel. Geen uurloon betekent afvallen op posities met een loonplafond en een neutrale 50 op kosten. Geen geboortedatum betekent geen jongerengrenzen. Geen contracturen betekent dat de eerlijkheid tegen het weekmaximum wordt gemeten.
- Zet de rusttijd niet zomaar lager. Doe je dat toch, dan vraagt Morris eerst om een bevestiging waarin de elf uur van de Arbeidstijdenwet genoemd wordt.
Verwante artikelen
Bijgewerkt op 26 augustus 2026