Ikbenbint.nl

Indexatie aanneemsom berekenen

Bouwkosten

Beschrijving

Bereken de loon- en prijsindexatie van een aanneemsom of termijn volgens de Risicoregeling W&U 2025, een GWW-indexformule of een jaarindex, en controleer de claim van de aannemer.

Invoer velden

€
%
%
%
%
%
€

Resultaten

%
- %
(loonindex termijn - loonindex peildatum) / loonindex peildatum x 100. Formule uit art. 3 Risicoregeling W&U 2025, zonder het loonbestanddeel.
%
- %
(materiaalindex termijn - materiaalindex peildatum) / materiaalindex peildatum x 100. Formule uit art. 4 Risicoregeling W&U 2025, zonder het materiaalbestanddeel.
%
- %
Bij loon en materiaal: loonbestanddeel x stijging loonindex + materiaalbestanddeel x stijging materiaalindex. Het vaste deel telt niet mee. Bij één index: de stijging van die index.
€
- €
Bedrag x (100% - deel al verrekend) x indexstijging na drempel of eigen risico x tijdfactor. Negatief betekent een verlaging. Over dit bedrag komt btw (art. 6 Risicoregeling W&U).
€
- €
Het ingevulde bedrag plus het te verrekenen bedrag. Contract en bestek zijn leidend voor peildatum, reeks en afronding.
€
- €
Gevraagd bedrag van de aannemer min het berekende bedrag. Positief: de aannemer vraagt meer dan deze berekening. Vraag dan naar de gebruikte reeks, peilmaand en het bestanddeel.
-
Het bedrag volgt uit de indexformule van de gekozen situatie. Gebruik de reeks, peilmaand en het basisjaar uit je contract; contract en bestek zijn leidend.
-
Een verschil komt vaak door een andere indexreeks, peilmaand, basisjaar, tijdfactor of een voorlopig in plaats van definitief CBS-cijfer.
Bewaren of delen Plus

Met deze tool bereken je hoeveel je mag verrekenen voor loon- en prijsstijging op een bouwcontract, en of de indexatie die de aannemer vraagt klopt. Kies je situatie. Bij woning- en utiliteitsbouw rekent de tool volgens de Risicoregeling woning- en utiliteitsbouw 2025 van Bouwend Nederland en Techniek Nederland: per termijn (index termijn - index peildatum) / index peildatum x bestanddeel x tijdfactor x termijnbedrag, met 50% loon en 50% materiaal bij nieuwbouw en 60/40 bij overige werken, tenzij het bestek anders bepaalt. Voor GWW en onderhoud vul je de formule en reeks uit je eigen contract in.

De indexcijfers vul je zelf in. Je vindt ze op CBS StatLine: cao-lonen bouwnijverheid (85663NED), inputprijsindex nieuwbouwwoningen (85728NED), inputprijsindex GWW (86049NED) en CPI (86141NED). Neem basis en actueel altijd uit dezelfde reeks met hetzelfde basisjaar, en kijk in je contract of het voorlopige of definitieve cijfer telt. Een drempel of eigen risico neem je over uit je contract; de regeling van 2025 kent die niet meer.

De uitkomst is een controleberekening: contract en bestek zijn leidend. Rekent het bedrag mee in je meer- en minderwerk of nieuwe begroting, leg het dan vast in je termijnstaat.

Formulas:

  • h_v_loon_b = if((situatie == 'wu' || situatie == 'gww_samen'), loon_basis, 100)
  • h_v_loon_a = if((situatie == 'wu' || situatie == 'gww_samen'), loon_actueel, 100)
  • h_v_mat_b = if((situatie == 'wu' || situatie == 'gww_samen'), mat_basis, 100)
  • h_v_mat_a = if((situatie == 'wu' || situatie == 'gww_samen'), mat_actueel, 100)
  • h_v_idx_b = if((situatie == 'gww_enkel' || situatie == 'onderhoud'), index_basis, 100)
  • h_v_idx_a = if((situatie == 'gww_enkel' || situatie == 'onderhoud'), index_actueel, 100)
  • h_v_al = if((situatie == 'wu' || situatie == 'gww_samen'), aandeel_loon, 0)
  • h_v_am = if(situatie == 'gww_samen', aandeel_mat, if(situatie == 'wu', 100 - h_v_al, 0))
  • h_v_tf = if(situatie == 'wu', tijdfactor, 100)
  • h_v_dr = if(drempel_type == 'franchise' || drempel_type == 'eigen_risico', drempel_pct, 0)
  • h_ok_basis = if((situatie == 'wu' || situatie == 'gww_samen'), if(h_v_loon_b > 0 && h_v_mat_b > 0, 1, 0), if(h_v_idx_b > 0, 1, 0))
  • h_ok_gewicht = if(h_v_al < 0 || h_v_am < 0 || h_v_al + h_v_am > 100.0001, 0, 1)
  • h_s_loon = if(h_v_loon_b > 0, (h_v_loon_a - h_v_loon_b) / h_v_loon_b * 100, 0)
  • h_s_mat = if(h_v_mat_b > 0, (h_v_mat_a - h_v_mat_b) / h_v_mat_b * 100, 0)
  • h_s_idx = if(h_v_idx_b > 0, (h_v_idx_a - h_v_idx_b) / h_v_idx_b * 100, 0)
  • stijging_loon = round(h_s_loon, 2)
    (loonindex termijn - loonindex peildatum) / loonindex peildatum x 100. Formule uit art. 3 Risicoregeling W&U 2025, zonder het loonbestanddeel.
  • stijging_mat = round(h_s_mat, 2)
    (materiaalindex termijn - materiaalindex peildatum) / materiaalindex peildatum x 100. Formule uit art. 4 Risicoregeling W&U 2025, zonder het materiaalbestanddeel.
  • h_p = if(h_ok_basis == 1 && h_ok_gewicht == 1, if((situatie == 'wu' || situatie == 'gww_samen'), h_v_al / 100 * h_s_loon + h_v_am / 100 * h_s_mat, h_s_idx), 0)
  • indexstijging = round(h_p, 2)
    Bij loon en materiaal: loonbestanddeel x stijging loonindex + materiaalbestanddeel x stijging materiaalindex. Het vaste deel telt niet mee. Bij één index: de stijging van die index.
  • h_p_eff = if(drempel_type == 'franchise', if(h_p > h_v_dr, h_p - h_v_dr, if(h_p < 0 - h_v_dr, h_p + h_v_dr, 0)), if(drempel_type == 'eigen_risico', h_p * (1 - h_v_dr / 100), h_p))
  • h_grondslag = bedrag * (1 - uitgevoerd / 100)
  • te_verrekenen = round(h_grondslag * h_p_eff / 100 * h_v_tf / 100, 2)
    Bedrag x (100% - deel al verrekend) x indexstijging na drempel of eigen risico x tijdfactor. Negatief betekent een verlaging. Over dit bedrag komt btw (art. 6 Risicoregeling W&U).
  • geindexeerd_bedrag = round(bedrag + te_verrekenen, 2)
    Het ingevulde bedrag plus het te verrekenen bedrag. Contract en bestek zijn leidend voor peildatum, reeks en afronding.
  • verschil_claim = round(claim - te_verrekenen, 2)
    Gevraagd bedrag van de aannemer min het berekende bedrag. Positief: de aannemer vraagt meer dan deze berekening. Vraag dan naar de gebruikte reeks, peilmaand en het bestanddeel.
  • h_e_verr = if(round(abs(te_verrekenen), 0) >= 1000000, concat(format(floor(round(abs(te_verrekenen), 0) / 1000000), '0'), '.', if(floor((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) / 1000) < 10, '00', if(floor((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) / 1000) < 100, '0', '')), format(floor((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) / 1000), '0'), '.', if(((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) - 1000 * floor((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) / 1000)) < 10, '00', if(((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) - 1000 * floor((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) / 1000)) < 100, '0', '')), format(((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) - 1000 * floor((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) / 1000)), '0')), if(round(abs(te_verrekenen), 0) >= 1000, concat(format(floor((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) / 1000), '0'), '.', if(((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) - 1000 * floor((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) / 1000)) < 10, '00', if(((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) - 1000 * floor((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) / 1000)) < 100, '0', '')), format(((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) - 1000 * floor((round(abs(te_verrekenen), 0) - 1000000 * floor(round(abs(te_verrekenen), 0) / 1000000)) / 1000)), '0')), format(round(abs(te_verrekenen), 0), '0')))
  • h_e_diff = if(round(abs(verschil_claim), 0) >= 1000000, concat(format(floor(round(abs(verschil_claim), 0) / 1000000), '0'), '.', if(floor((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) / 1000) < 10, '00', if(floor((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) / 1000) < 100, '0', '')), format(floor((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) / 1000), '0'), '.', if(((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) - 1000 * floor((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) / 1000)) < 10, '00', if(((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) - 1000 * floor((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) / 1000)) < 100, '0', '')), format(((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) - 1000 * floor((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) / 1000)), '0')), if(round(abs(verschil_claim), 0) >= 1000, concat(format(floor((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) / 1000), '0'), '.', if(((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) - 1000 * floor((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) / 1000)) < 10, '00', if(((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) - 1000 * floor((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) / 1000)) < 100, '0', '')), format(((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) - 1000 * floor((round(abs(verschil_claim), 0) - 1000000 * floor(round(abs(verschil_claim), 0) / 1000000)) / 1000)), '0')), format(round(abs(verschil_claim), 0), '0')))
  • h_pi = round(abs(h_p_eff) * 100, 0)
  • h_t_pct = concat(if(h_p_eff < 0 && h_pi > 0, '-', ''), format(floor(h_pi / 100), '0'), ',', if(h_pi - 100 * floor(h_pi / 100) < 10, '0', ''), format(h_pi - 100 * floor(h_pi / 100), '0'))
  • oordeel = if(h_ok_basis == 0, 'Vul bij elk indexcijfer op de peildatum een waarde groter dan 0 in. De tool rekent nu met 0% stijging.', if(h_ok_gewicht == 0, 'Het loon- en materiaalbestanddeel zijn samen meer dan 100% of negatief. Pas de gewichten aan.', concat(if(te_verrekenen < 0, 'Verlaging: -€ ', 'Te verrekenen: € '), h_e_verr, ' excl. btw bij ', h_t_pct, '% indexstijging', if(drempel_type == 'geen', '.', ' na drempel of eigen risico.'))))
    Het bedrag volgt uit de indexformule van de gekozen situatie. Gebruik de reeks, peilmaand en het basisjaar uit je contract; contract en bestek zijn leidend.
  • oordeel_claim = if(abs(verschil_claim) < 1, 'Het gevraagde bedrag komt overeen met deze berekening.', concat('Het gevraagde bedrag is € ', h_e_diff, if(verschil_claim > 0, ' hoger', ' lager'), ' dan deze berekening.'))
    Een verschil komt vaak door een andere indexreeks, peilmaand, basisjaar, tijdfactor of een voorlopig in plaats van definitief CBS-cijfer.
Link gekopieerd!

Berekening informatie

Author Bint
Laatste update 2 november 2026
Parameters 15

Op jouw website?

Gebruik direct op jouw eigen site:
<script src="https://ikbenbint.nl/widget.js"
  data-berekening="indexatie-aanneemsom-berekenen">
</script>
Eigen tools maken? Maak hier jouw account

Meer over bouwkosten

Ontdek meer tools gerelateerd aan bouwkosten