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 |
OR(par1;par2) |
Logische OR |
OR([A];[B]) geeft 1 terug indien A=1 of B=1 |
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 |