Rekenregel 10042: Flexibele rekenregel

Deze rekenregel berekent het resultaat van een zelf ingegeven formule, waarbij je gebruik kunt maken van parameters, grondslagen, looncomponenten en salaristabellen.

Je kunt een kopie maken van de looncomponent 100.009.900 'Flexibele rekenregel'.

Inhoud

Volgorde waarin parameters worden verwerkt
  • Alleen als parameter 'Berekenen' (10) op Ja staat, de rekenregel verder verwerken.
  • Alleen als de leeftijd van de medewerker, rekening houdend met de gekozen methodes in parameter 12 en 14, tussen de waarde in parameter 11 en 13 ligt, de rekenregel verder verwerken.
  • Pas de formule in het formuleveld toe. Hou rekening met vervanging van lege waarden.
  • Vermenigvuldig met parameter 'Percentage' / 100.
  • Evalueer het 'Maximum' en 'Minimum' uit parameter 16 en 17.
  • Pas 'Prorata in dienst' en/of 'Prorata uit dienst' toe als parameter 18 en/of 19 op Ja staan.
  • Pas 'Afronding' toe op basis van parameter 20.
  • Pas Standaard prorata (26) toe op de velden Gewerkte dagen (27) en Werkbare dagen (28).
Berekenen Ja/Nee

Indien 'Berekenen Ja/Nee' niet is gekoppeld, of geen waarde heeft, dan wordt deze op 'Ja' gesteld. Indien 'Berekenen Ja/Nee' de waarde 'Nee' heeft dan is het resultaat 0.

Methode leeftijd

Het toetsen aan de 'Methode leeftijd van' (veld 12) en 'Methode leeftijd tot' (veld 14) wordt gedaan door de leeftijd van de medewerker te bepalen aan de hand van de opgegeven methode. Indien geen methode(n) is (zijn) ingevuld wordt getoetst met de eventueel meegegeven leeftijd. De volgende methodes zijn mogelijk:

  • 0     Op begindatum deze periode
  • 1     Op einddatum deze periode
  • 2     Op einddatum vorige periode
  • 3     Op betaaldatum van deze periode
  • 4     Op 1 januari van dit jaar
  • 5     Op 31 december van dit jaar
  • 6     Op 31 december van vorig jaar
  • 7     Precieze leeftijdbepaling
  • 8     Leeftijdbepaling o.b.v. maand waarin ‘Leeftijd tot’ bereikt wordt
  • 9     Precieze leeftijdbepaling o.b.v. maand waarin 'Leeftijd vanaf' wordt bereikt
  • 10   Leeftijdbepaling o.b.v. maand waarin leeftijd wordt bereikt
  • 11   Precieze leeftijdbepaling (werkdagen) o.b.v. maand waarin leeftijd wordt bereikt

Voor het bepalen van een factor op basis van werkdagen of kalenderdagen, wordt er voor de leeftijdsmethode 7 'Precieze leeftijdbepaling' gekeken naar parameter 27 ‘Gewerkte dagen’. De factor wordt toegepast op het eindresultaat van de looncomponent.

Of voor leeftijdsmethode 9 sprake is van een periode met een factor, wordt op dezelfde manier bepaald als bij ‘Methode leeftijd van’. In de periodes erna vindt geen berekening meer plaats. Bij leeftijdsmethode 9 wordt de factor berekend aan de hand van de volgende formule:

Factor = (A - B) / A

A = Kalenderdagen in periode volgens contract.

B = Aantal kalenderdagen vanaf de eerste dag van de maand t/m einddatum periode of einddatum contract als deze voor de einddatum van de periode ligt.

Deze factor wordt toegepast op parameter 1 ‘Dagen’ en 19 ‘Grondslag’. Bij geen herrekening is de formule:

Waarde huidige periode * Factor

Als er wel sprake is van herrekening wordt het cumulatief van beide parameters als volgt berekent:

Cumulatieve waarde exc. huidige periode + (Waarde huidige periode * Factor)

Bij leeftijdsmethode 10 wordt geen factor toegepast. De looncomponent wordt berekend t/m de periode waarin de dag valt dat de ‘Leeftijd tot’ wordt bereikt.

Prorata bij in en uit dienst

Prorata bij in en uit dienst houdt in:

Bedrag / Werkbare dagen in de periode, rekening houdend met het geldige rooster, niet rekening houdend met in- en uitdiensttreding * Werkbare dagen in periode, rekening houdend met geldige rooster, rekening houdend met in en uitdiensttreding.

Bij in en uit dienst gaan, kan worden afgeweken van de standaard prorata door middel van de velden Prorata In dienst 18) en Prorata Uit dienst (19). Prorata In dienst en Prorata Uit dienst worden bepaald aan de hand van een factor. De factor wordt berekend door de velden Teller (29) en Noemer (30) op elkaar te delen.Als Teller of Noemer niet zijn gevuld, geldt het volgende:

  • Als Teller niet is gevuld, wordt gerekend met parameter Gewerkte dagen in periode volgens contract (stamgegeven 52).
  • Als Noemer niet is gevuld, wordt gerekend met parameter Werkbare dagen in periode volgens rooster (stamgegeven 53).

Teller en Noemer hebben geen invloed op de standaard prorata.Als voor prorataberekeningen bijvoorbeeld met kalenderdagen moet worden gerekend, kan dat plaatsvinden door als Teller in te geven Kalenderdagen in periode binnen contract en als Noemer  geef je Kalenderdagen in periode volgens rooster op.

Afronding

De volgende methodes zijn aanwezig voor de 'Afronding' (20) van het eindresultaat:

Code

Omschrijving

1

Afronden op 2 decimalen

2

Afronden op gehelen

3

Afronden op gehelen naar boven

4

Afronden op gehelen naar beneden

Standaard prorata

Het veld Standaard prorata (26) heeft de volgende keuzemogelijkheden:

  • 0     Geen prorata berekening
  • 1     Prorata door middel van het werkelijke aantal dagen
  • 2     Prorata door middel van het gemiddelde aantal dagen
  • 3     Omgekeerde prorata door middel van het gemiddelde aantal dagen
  • 4     Omgekeerde prorata door middel van het gemiddelde aantal dagen, waarbij het bedrag niet negatief kan worden
  • 5     Prorata door middel van het gemiddelde aantal dagen en bij in en uit dienst door middel van het werkelijke aantal dagen
  • 6     Omgekeerde prorata met behulp van het gemiddelde aantal dagen en bij in en uit dienst door middel van het werkelijke aantal dagen

De factor wordt bepaald aan de hand van de waarde in de velden Gewerkte dagen als teller en Werkbare dagen als noemer.

Formule

Op het tabblad Formule vult Profit het veld Werking met een beschrijving van de formule. Dit gebeurt aan de hand van de tekst in het formuleveld en de omschrijving van de parameters op het tabblad Parameter. De letters die verwijzen naar de parameters in de formule worden vervangen door de omschrijving van de bijbehorende parameter: de formule 'A * B * C' toont Profit als 'Bedrag * Percentage * Factor'.

De formule-opmaak lijkt sterk op een formule zoals deze in Microsoft Excel gemaakt kunnen worden. Parameters (die gekoppeld zijn aan ‘rekenregelvelden’ met een alfanumerieke waarde) kunnen in de formule gebruikt worden.

De formule houdt rekening met de bij de invoer gegeven waarden. Via de knop Formule weergeven krijg je een kort overzicht van de mogelijkheden. De knop Controle test de formule op fouten. Je kunt op het tabblad Werking lezen wat de component doet. Per looncomponent is één formule van toepassing.

Vul een formule in. Je kunt hierbij de volgende tekens of woorden gebruiken:

  • Operatoren: * + - /
  • Haakjes ( )
  • Letters abcdefghilkl of ABCDEFGHIJKL (Let op: om iedere letter blokhaken gebruiken)
  • Spaties
  • De functies MAX (formule; formule; …), MIN (formule; formule; …), IF (formule; waarde als formule = WAAR; waarde als formule = ONWAAR), ROUND (formule; decimalen)
  • Als je de functionaliteit Meerdere dienstverbanden gebruikt, kun je ook de functie VERHOUDINGDV() gebruiken.
  • Voorbeeld IF ( MAX ( [A]; [B] ) > [C] ; [D] * [E] ; [D] / [E] )

Alleen de parameters met een letter die gebruikt worden in de formule, worden gebruikt in de berekening. Zijn nog meer parameters gekoppeld, maar niet gebruikt in de formule, dan worden deze overgeslagen.

Zijn parameters wel gebruikt in de formule, maar niet gekoppeld aan een looncomponentveld, dan wordt de waarde vervangen door een standaardwaarde, afhankelijk van de operator die ervoor staat. Staat in de formule voor een parameter een * of /, dan wordt de waarde 1, staat hier een + of -, dan wordt de waarde 0.

Voorbeeld: 

Formule = A * B + C. Als B leeg is, komt hier A * 1 + C te staan. Als C leeg is komt hier A * B + 0 te staan.

Is parameter 15 Percentage niet gevuld, dan wordt de waarde vervangen door 100%.

Ontstaat op een plaats in de formule een waarde 0 / 0, dan moet de resultaatwaarde van dat gedeelte van de formule 0 worden. De rest van de formule zal wel gewoon doorrekenen.

Voorbeeld: 

De waarde 9 - 0 / 0 + 17 resulteert in de waarde - 8.

Je kunt gebruik maken van de volgende formules:

Formule

Resultaat

Voorbeeld

ABS(par)

Geeft de absolute waarde van de parameter

ABS([A]) = 10 wanneer parameter A = -10

INT(par)

Geeft het gehele getal van de parameter (afkappen)

INT(2.3) = 2

MAX(par1;par2)

Geeft de maximale waarde van 2 parameters terug

MAX(2;3) = 3

MIN(par1;par2)

Geeft de minimale waarde van 2 parameters terug

MIN(2;3) = 2

MOD(par1;par2)

Geeft de restwaarde van de deling van parameter 1 door 2 terug

MOD(7;3) = 1

AND(par1;par2)

Logische AND

AND([A];[B]) geeft 0 terug indien A=0 en B=0
AND([A];[B]) geeft alleen 1 terug indien A=1 en B=1

OR(par1;par2)

Logische OR

OR([A];[B]) geeft 1 terug indien A=1 of B=1
OR([A];[B]) geeft alleen 0 terug indien A=0 of B=0

ROUND(par1;par2)

Afronden op par2 decimalen

ROUND(0.6666;2) geeft 0.67

IF(par1;par2;par3) 

Geeft een waarde terug afhankelijk van parameter 1

IF([A]>[B];[C];[D]) Geeft de waarde van C terug als A groter dan B; anders wordt D teruggegeven

PERIODE1(par1)

Neemt de waarde over van periode 1 of bij in dienst als dit later ligt dan periode 1

PERIODE1([A]) geeft de waarde van A uit periode 1

CUMULATIEF(par1)

Neemt de cumulatieve waarde over

CUMULATIEF([A]) geeft de cumulatieve waarde tot en met de huidige periode van A

VORIGEPERIODE(par1)

Neemt de waarde over van een looncomponent uit de vorige periode (werkt NIET bij GR)

VORIGEPERIODE([A]) geeft de waarde van A uit de vorige periode

VERHOUDINGDV(grondslag1)

Als de grondslag als DV binnenkomt, is het resultaat de waarde van de grondslag op AV Als de grondslag als AV binnenkomt, is het resultaat de waarde van de grondslag op DV

Voorbeeld zie onderstaande uitleg

WAARDENT(par1)

Haalt de NT-waarde van een grondslag op

 

WAARDEBT(par1)

Haalt de BT-waarde van een grondslag op

 

CUMVANAFUITB

Cumulatief vanaf vorige periode uitbetaling

 

CUMULATIEFDV

Kopie van cumulatief, maar neemt van het hoofddienstverband geen cumulatief mee van beëindigde dienstverbanden

 

PRORATAFACTOR

Voor gewogen berekening bijvoorbeeld als kilometers gedurende de periode wijzigen bij woon-werk, icm meerdere dienstverbanden

 

FIX(par1)

Afkappen

 

NOT(par1)

Omgekeerde waarde (de niet waarde) van een Ja/Nee

 

XOR(par1;par2)

Beide waarden moeten verschillend zijn, dan is het waar. Dus allebei waarden gelijk aan elkaar kan niet

 

FILLED(par1)

Bepaalt of de parameter een waarde heeft

Werkt alleen bij PM's waarop gemuteerd kan worden (geen stamgegevens, geen ST)

NFILLED(par2)

Bepaalt of de parameter geen waarde heeft

Werkt alleen bij PM's waarop gemuteerd kan worden (geen stamgegevens, geen ST)

MINLNCONTROLE(grondslag1, par 1)

Grondslag en parameter worden met elkaar vergeleken

 

CONTROLE(formule)

 

Blokkerende melding als resultaat binnen de haakjes <> 0 (bijvoorbeeld met een IF waarbij één resultaat 0 is)

PERIODVAL(par1)

Tot dan toe berekende waarde van de parameter in de periode per arbeidsverhouding

Parameter A = 8. In de eerste berekening van de periode is [A] = 8, maar PERIODVAL([A]) = 0. Na het accorderen wordt parameter A gecorrigeerd naar 6 en wordt de periode opnieuw berekend. Nu is [A] = 6 en PERIODVAL([A]) = 8

PERIODVALDV(par1)

Tot dan toe berekende waarde van de parameter in de periode per dienstverband

Parameter A = 8. In de eerste berekening van de periode is [A] = 8, maar PERIODVAL([A]) = 0. Na het accorderen wordt parameter A gecorrigeerd naar 6 en wordt de periode opnieuw berekend. Nu is [A] = 6 en PERIODVAL([A]) = 8

CUMULATIEFPERTERUG([P1];[P2])

Haalt de cumulatieve waarde op van LC/GR in P1 voor het aantal perioden in PM/ST P2, inclusief huidige periode

Voorbeeld zie onderstaande uitleg

Indien met Ja/Nee parameters wordt gewerkt dan moet de parameter vergeleken worden met de waarden "WAAR" of "ONWAAR".

Functie VERHOUDINGDV()

Deze functie kan alleen worden toegepast op een grondslag.

Het resultaat van deze is afhankelijk van de input:

  • Komt de grondslag binnen als DV, dan is het resultaat de waarde van de grondslag op AV
  • Komt de grondslag binnen als AV, dan is het resultaat de waarde van de grondslag op DV

Voorbeeld: 

Een vergoeding van 150 euro moet worden berekend naar rato van parttime percentage. Het parttime percentage mag op arbeidsverhouding niet meer dan 100% zijn. De medewerker werkt op DV1 60% en op DV2 45%.

Uitwerking:

De looncomponent wordt per dienstverband berekend. Waarde D = 150. Het parttime percentage telt in grondslag M.

De formule wordt dan: MIN ( 100 ; VERHOUDINGDV([M]) ) * [D] * [M] / VERHOUDINGDV([M]) / 100

De functie wordt twee keer gebruikt. In het eerste deel van de formule wordt er omgerekend naar arbeidsverhouding om het maximum te kunnen bepalen. In het tweede deel wordt dat resultaat weer teruggerekend naar dienstverband. Dit alles is volgens het principe: DV = AV * DV / AV

Als je de formule omzet in de getallen uit het voorbeeld dan krijg je het volgende:

Resultaat DV1: MIN ( 100 ; 105 ) * 150 * 60 / 105 / 100 = 85,71

Resultaat DV2: MIN ( 100 ; 105 ) * 150 * 45 / 105 / 100 = 64,29

Totaal = AV = 85,71 + 64,29 = 150

Functie WAARDENT() en WAARDEBT()

Met deze functies kun je het NT-deel of BT-deel van de waarde van een grondslag opvragen.

Voorbeeld: 

WAARDENT(Loon Sociale verzekeringen) haalt de het normale tariefdeel op van de grondslag Loon Sociale Verzekeringen.

Functie CUMULATIEFPERTERUG

Met deze functie haal je de cumulatieve waarde op van een looncomponent of grondslag (via P1) voor een aantal perioden (via P2), inclusief de huidige periode.

  • P1: hier koppel je de looncomponent of grondslag waarvan de je cumulatieve waarde op wilt halen. Je kunt geen parameter koppelen.
  • P2: hier koppel je de parameter waarmee je een aantal perioden terug wilt. Dat kan een stamgegevenparameter zijn, zoals Normaal aantal perioden in jaar. Je kunt ook zelf een waarde ingeven op een eigen parameter, eventueel via een gekoppelde salaristabel. Je kunt zoveel perioden terug als je wilt, over (meerdere) jaren heen. Een waarde in decimalen wordt rekenkundig op hele afgerond.

De waarde van P1 wordt opgehaald inclusief de huidige periode. Als je de waarde exclusief de huidige periode wilt ophalen, kan dat via de formule: CUMULATIEFPERTERUG([P1];[P2]) - [P1].

AANGIFTEWAARDE(par1) - In periodeverloning en declaratieverloning

Vanaf 2020 vervalt de sectorpremie van de WW en wordt deze vervangen door een WW laag of WW hoog. Per medewerker per aangiftetijdvak bepaal je of laag of hoog van toepassing is. Een van de voorwaarden is dat je bij medewerkers jonger dan 21 jaar WW laag mag toepassen zolang de medewerker niet meer dan 48 uur per vierweken of 52 uur per maand heeft gewerkt.

Bij een verloning per vierweken of maand is dit makkelijk te bepalen, want dan is de waarde in de loonaangifte gelijk aan de waarde van de loonperiode. Bij een verloning per week omvat de waarde in de loonaangifte vier loonperioden van een week!

Dit ontwerp beschrijft de functie die bij type periodetabel 'week' het cumulatief van de loonperioden in het aangiftetijdvak ophaalt en bij andere typen periodetabel de periodewaarde ophaalt.

Afbakening

De functie ondersteunt alleen de loontijdvakken van de loonaangifte Belastingdienst. Dit betekent dat de functie niet bruikbaar is in een berekening waarvan de aangiftetijdvak afwijkt van die van de loonaangifte.

Voorbeeld:

In de declaratieverloning is bij een weekverloning het aangiftetijdvak van de loonaangifte per vierweken, maar van de pensioenaangifte StiPP per maand. De functie is dan niet bruikbaar in de looncomponent(en) van de StiPP-berekening.

Functie parameters

De functie heet: AANGIFTEWAARDE(par1), waarvan par1:

  • parameter van type 2 'Looncomponent' of
  • grondslag

Periodewaarde of cumulatieve waarde aangiftetijdvak

Hieronder volgt een overzicht per situatie welke waarde moet worden opgehaald:

Type Pt

Periodetabel

Aangiftetijdvak

Waarde

1

Jaar

Maand

Periodewaarde

2

Halfjaar

Maand

Periodewaarde

3

Kwartaal

Maand

Periodewaarde

4

Maand

Maand

Periodewaarde

5

4 weken

4 weken

Periodewaarde

6

Week

4 weken

Cumulatieve waarde aangiftetijdvak

7

2 weken

nvt

nvt

10

Halve maand

nvt

nvt

Conclusie: Als Type Pt = 6

dan par1 = Cumulatieve waarde aangiftetijdvak par1,

anders par1 = periodewaarde par1, waarbij par1 = 0 als par1 zichzelf is

Cumulatieve waarde aangiftetijdvak par1

Bepalen eerste- en laatste periode in aangiftetijdvak

[Laatste periode in aangiftetijdvak]:

a * 4, waarbij:

a = [Huidig periodenummer] / 4, afgerond op gehelen naar boven

Als [Periodes in jaar] = 53 EN [Huidig periodenummer] > 48 dan [Laatste periode in aangiftetijdvak] = 53

[Eerste periode in aangiftetijdvak] = [Laatste periode in aangiftetijdvak] - 3

Als [Periodes in jaar] = 53 EN [Huidig periodenummer] > 48 dan [Eerste periode in aangiftetijdvak] = 49

Declaratieverloning

Formule:

Cumulatief par1 van alle verwerkte declaraties vanaf [Eerste periode in aangiftetijdvak] t/m [Laatste periode in aangiftetijdvak]

, waarbij de cumulatieve waarde par1 INCLUSIEF de waarde van de huidige periode is, tenzij par1 zichzelf is.

Periodeverloning

Formule:

Cumulatief par1 van alle verwerkte perioden vanaf [Eerste periode in aangiftetijdvak] t/m [Huidig periodenummer]

, waarbij de cumulatieve waarde par1 INCLUSIEF de waarde van de huidige periode is, tenzij par1 zichzelf is.

Arbeidsverhouding/dienstverband

Als de looncomponent berekenmethode 'Arbeidsverhouding' heeft, wordt het cumulatief opgehaald van alle dienstverbanden van de medewerker binnen dezelfde arbeidsverhouding. Bij een berekenmethode per dienstverband wordt het cumulatief binnen het dienstverband opgehaald.

Voorbeelden

Bij 4-wekenverloning

 

1

2

3

4

5

6

Par1

100

100

100

100

100

100

Aangiftewaarde(par1)

100

100

100

100

100

100

Bij weekverloning in periodeverloning

 

1

2

3

4

5

6

Par1

100

100

100

100

100

100

Aangiftewaarde(par1)

100

200

300

400

100

200

Bij weekverloning in declaratieverloning

De volgorde van verwerken: 2,3,4,6,5,1

 

1

2

3

4

5

6

Par1

100

100

100

100

100

100

Aangiftewaarde(par1)

400

100

200

300

200

100

Bij weekverloning in declaratieverloning 2

De volgorde van verwerken: 1,2a,4,6,5,2b (=vervanger van 2a)

 

1

2a

2b

4

5

6

Par1

100

100

100

100

100

100

Aangiftewaarde(par1)

100

200

300

300

200

100

Bij weekverloning in declaratieverloning 3a

Nu is par1 zichzelf. De volgorde van verwerken: 1,2a,4,6,5,2b (=vervanger van 2a)

 

1

2a

2b

4

5

6

Par1

100

100

100

100

100

100

Aangiftewaarde(par1)

0

100

200

200

100

00

Bij weekverloning in declaratieverloning 3b

Nu is par1 zichzelf. De volgorde van verwerken: 1,2.1,4,6,5,2.2 (=aanvullend op 2.1)

 

1

2.12.1

2.2

44

5

66

Par1

100

100

100

100

100

100

Aangiftewaarde(par1)Aangiftewaarde(par1)

0

100

200

200200

100

00

Zie ook