Ikbenbint.nl

Moet ik Europees aanbesteden? (drempelbedragen 2026–2027)

Regelgeving & Vergunningen

Beschrijving

Check of je opdracht boven de Europese aanbestedingsdrempel van 2026–2027 valt. Raam de waarde met looptijd, verlengingen en opties en toets de percelenregeling.

Invoer velden

€
€
jaar
jaar
€
€
€
€

Resultaten

€
- €
Excl. btw, inclusief verlengingen en opties (art. 2.13 t/m 2.22 Aanbestedingswet 2012). Per jaar: jaarbedrag x (looptijd + verlengingen). Maandbedrag zonder vaste looptijd: x 48 maanden.
€
- €
Drempel van 1 januari 2026 t/m 31 december 2027, excl. btw, volgens PIANOo en de gedelegeerde verordeningen (EU) 2025/2150, 2025/2151 en 2025/2152. Let op: voor sommige defensieleveringen van het Rijk gelden andere drempels.
€
- €
Geraamde waarde min de drempel. Positief = boven de drempel, negatief = ruimte tot de drempel.
-
Europees aanbesteden geldt vanaf een geraamde waarde gelijk aan of hoger dan de drempel. Onder de drempel gelden je eigen inkoopbeleid, de Gids Proportionaliteit en bij een duidelijk grensoverschrijdend belang de beginselen van transparantie en gelijke behandeling.
-
Art. 2.18 en 2.19 Aanbestedingswet 2012 (PIANOo): bij een opdracht boven de drempel mag je percelen onder € 80.000 (diensten, leveringen) of € 1.000.000 (werken) uitzonderen, zolang ze samen maximaal 20% van de totale waarde zijn.
Bewaren of delen Plus

Met deze tool check je of je opdracht boven de Europese aanbestedingsdrempel valt. Kies wie er inkoopt en wat voor opdracht het is, en raam de waarde. Dat doe je altijd excl. btw en over de hele looptijd, inclusief alle verlengingen en opties uit de stukken. Ken je alleen een maandbedrag en ligt de looptijd niet vast, dan telt de wet 48 maanden. Een opdracht opknippen om onder de drempel te blijven mag niet.

De drempels gelden van 1 januari 2026 tot en met 31 december 2027: werken en concessies € 5.404.000, leveringen en diensten € 140.000 (Rijk), € 216.000 (decentraal) of € 432.000 (speciale sectoren), sociale en andere specifieke diensten € 750.000 of € 1.000.000 in de speciale sectoren. Bron: PIANOo, Drempelbedragen Europees aanbesteden, en de ramingsregels in art. 2.13 tot en met 2.22 Aanbestedingswet 2012. Wil je kleine percelen nationaal gunnen, dan toetst de tool ook de percelenregeling.

Deze check is een eerste inschatting en geen juridisch advies. Je eigen inkoopbeleid en de wet zijn leidend. Twijfel je, vraag het dan na bij je inkoopadviseur of het PIANOo Vragenloket. Volgende stap: kies de procedure en de gunningscriteria.

Formulas:

  • h_v_totaal = if(raming == 'totaal', waarde_totaal, 0)
  • h_v_jaar = if(raming == 'jaar', jaarbedrag * (looptijd + verlenging), 0)
  • h_v_maand = if(raming == 'maand', maandbedrag * 48, 0)
  • h_v_psom = if(percelen == 'ja', perceel_som, 0)
  • h_v_pmax = if(percelen == 'ja', perceel_max, 0)
  • h_ruw = h_v_totaal + h_v_jaar + h_v_maand + opties
  • h_waarde = if(h_ruw > 0, h_ruw, 0)
  • h_drempel = if(opdracht == 'werken' || opdracht == 'concessie', 5404000, if(opdracht == 'sas', if(dienst == 'speciaal', 1000000, 750000), if(dienst == 'centraal', 140000, if(dienst == 'decentraal', 216000, 432000))))
  • h_boven = if(h_waarde >= h_drempel, 1, 0)
  • h_verschil = h_waarde - h_drempel
  • h_absverschil = abs(h_verschil)
  • h_pgrens = if(opdracht == 'werken', 1000000, 80000)
  • h_pct = if(h_waarde > 0, h_v_psom / h_waarde * 100, 0)
  • h_t_waarde = if(round(h_waarde, 0) >= 1000000, concat(format(floor(round(h_waarde, 0) / 1000000), '0'), '.', concat(if(floor((round(h_waarde, 0) - 1000000 * floor(round(h_waarde, 0) / 1000000)) / 1000) < 100, '0', ''), if(floor((round(h_waarde, 0) - 1000000 * floor(round(h_waarde, 0) / 1000000)) / 1000) < 10, '0', ''), format(floor((round(h_waarde, 0) - 1000000 * floor(round(h_waarde, 0) / 1000000)) / 1000), '0')), '.', concat(if((round(h_waarde, 0) - 1000 * floor(round(h_waarde, 0) / 1000)) < 100, '0', ''), if((round(h_waarde, 0) - 1000 * floor(round(h_waarde, 0) / 1000)) < 10, '0', ''), format((round(h_waarde, 0) - 1000 * floor(round(h_waarde, 0) / 1000)), '0'))), if(round(h_waarde, 0) >= 1000, concat(format(floor(round(h_waarde, 0) / 1000), '0'), '.', concat(if((round(h_waarde, 0) - 1000 * floor(round(h_waarde, 0) / 1000)) < 100, '0', ''), if((round(h_waarde, 0) - 1000 * floor(round(h_waarde, 0) / 1000)) < 10, '0', ''), format((round(h_waarde, 0) - 1000 * floor(round(h_waarde, 0) / 1000)), '0'))), format(round(h_waarde, 0), '0')))
  • h_t_drempel = if(round(h_drempel, 0) >= 1000000, concat(format(floor(round(h_drempel, 0) / 1000000), '0'), '.', concat(if(floor((round(h_drempel, 0) - 1000000 * floor(round(h_drempel, 0) / 1000000)) / 1000) < 100, '0', ''), if(floor((round(h_drempel, 0) - 1000000 * floor(round(h_drempel, 0) / 1000000)) / 1000) < 10, '0', ''), format(floor((round(h_drempel, 0) - 1000000 * floor(round(h_drempel, 0) / 1000000)) / 1000), '0')), '.', concat(if((round(h_drempel, 0) - 1000 * floor(round(h_drempel, 0) / 1000)) < 100, '0', ''), if((round(h_drempel, 0) - 1000 * floor(round(h_drempel, 0) / 1000)) < 10, '0', ''), format((round(h_drempel, 0) - 1000 * floor(round(h_drempel, 0) / 1000)), '0'))), if(round(h_drempel, 0) >= 1000, concat(format(floor(round(h_drempel, 0) / 1000), '0'), '.', concat(if((round(h_drempel, 0) - 1000 * floor(round(h_drempel, 0) / 1000)) < 100, '0', ''), if((round(h_drempel, 0) - 1000 * floor(round(h_drempel, 0) / 1000)) < 10, '0', ''), format((round(h_drempel, 0) - 1000 * floor(round(h_drempel, 0) / 1000)), '0'))), format(round(h_drempel, 0), '0')))
  • h_t_verschil = if(round(h_absverschil, 0) >= 1000000, concat(format(floor(round(h_absverschil, 0) / 1000000), '0'), '.', concat(if(floor((round(h_absverschil, 0) - 1000000 * floor(round(h_absverschil, 0) / 1000000)) / 1000) < 100, '0', ''), if(floor((round(h_absverschil, 0) - 1000000 * floor(round(h_absverschil, 0) / 1000000)) / 1000) < 10, '0', ''), format(floor((round(h_absverschil, 0) - 1000000 * floor(round(h_absverschil, 0) / 1000000)) / 1000), '0')), '.', concat(if((round(h_absverschil, 0) - 1000 * floor(round(h_absverschil, 0) / 1000)) < 100, '0', ''), if((round(h_absverschil, 0) - 1000 * floor(round(h_absverschil, 0) / 1000)) < 10, '0', ''), format((round(h_absverschil, 0) - 1000 * floor(round(h_absverschil, 0) / 1000)), '0'))), if(round(h_absverschil, 0) >= 1000, concat(format(floor(round(h_absverschil, 0) / 1000), '0'), '.', concat(if((round(h_absverschil, 0) - 1000 * floor(round(h_absverschil, 0) / 1000)) < 100, '0', ''), if((round(h_absverschil, 0) - 1000 * floor(round(h_absverschil, 0) / 1000)) < 10, '0', ''), format((round(h_absverschil, 0) - 1000 * floor(round(h_absverschil, 0) / 1000)), '0'))), format(round(h_absverschil, 0), '0')))
  • h_t_pgrens = if(round(h_pgrens, 0) >= 1000000, concat(format(floor(round(h_pgrens, 0) / 1000000), '0'), '.', concat(if(floor((round(h_pgrens, 0) - 1000000 * floor(round(h_pgrens, 0) / 1000000)) / 1000) < 100, '0', ''), if(floor((round(h_pgrens, 0) - 1000000 * floor(round(h_pgrens, 0) / 1000000)) / 1000) < 10, '0', ''), format(floor((round(h_pgrens, 0) - 1000000 * floor(round(h_pgrens, 0) / 1000000)) / 1000), '0')), '.', concat(if((round(h_pgrens, 0) - 1000 * floor(round(h_pgrens, 0) / 1000)) < 100, '0', ''), if((round(h_pgrens, 0) - 1000 * floor(round(h_pgrens, 0) / 1000)) < 10, '0', ''), format((round(h_pgrens, 0) - 1000 * floor(round(h_pgrens, 0) / 1000)), '0'))), if(round(h_pgrens, 0) >= 1000, concat(format(floor(round(h_pgrens, 0) / 1000), '0'), '.', concat(if((round(h_pgrens, 0) - 1000 * floor(round(h_pgrens, 0) / 1000)) < 100, '0', ''), if((round(h_pgrens, 0) - 1000 * floor(round(h_pgrens, 0) / 1000)) < 10, '0', ''), format((round(h_pgrens, 0) - 1000 * floor(round(h_pgrens, 0) / 1000)), '0'))), format(round(h_pgrens, 0), '0')))
  • h_t_pct = concat(format(floor(round(abs(h_pct) * 10, 0) / 10), '0'), ',', format(round(abs(h_pct) * 10, 0) - 10 * floor(round(abs(h_pct) * 10, 0) / 10), '0'))
  • h_hint = if(dienst == 'speciaal', ' Volg je eigen inkoopbeleid.', ' Volg je inkoopbeleid en de Gids Proportionaliteit.')
  • geraamde_waarde = round(h_waarde, 0)
    Excl. btw, inclusief verlengingen en opties (art. 2.13 t/m 2.22 Aanbestedingswet 2012). Per jaar: jaarbedrag x (looptijd + verlengingen). Maandbedrag zonder vaste looptijd: x 48 maanden.
  • drempel = h_drempel
    Drempel van 1 januari 2026 t/m 31 december 2027, excl. btw, volgens PIANOo en de gedelegeerde verordeningen (EU) 2025/2150, 2025/2151 en 2025/2152. Let op: voor sommige defensieleveringen van het Rijk gelden andere drempels.
  • verschil = round(h_verschil, 0)
    Geraamde waarde min de drempel. Positief = boven de drempel, negatief = ruimte tot de drempel.
  • oordeel = if(h_boven == 1, concat('Ja, Europees aanbesteden: € ', h_t_waarde, if(h_verschil > 0, concat(' ligt € ', h_t_verschil, ' boven'), ' ligt precies op'), ' de drempel van € ', h_t_drempel, '.', if(opdracht == 'sas', ' Het verlichte SAS-regime geldt.', '')), concat('Nee, niet Europees: € ', h_t_waarde, ' ligt € ', h_t_verschil, ' onder de drempel van € ', h_t_drempel, '.', h_hint))
    Europees aanbesteden geldt vanaf een geraamde waarde gelijk aan of hoger dan de drempel. Onder de drempel gelden je eigen inkoopbeleid, de Gids Proportionaliteit en bij een duidelijk grensoverschrijdend belang de beginselen van transparantie en gelijke behandeling.
  • percelen_oordeel = if(opdracht == 'concessie', 'Percelenregeling: deze tool toetst die niet voor concessies. Kijk in deel 2a van de Aanbestedingswet.', if(h_boven == 0, 'Percelenregeling niet nodig: de hele opdracht ligt al onder de drempel.', if(h_v_pmax < h_pgrens && h_v_psom <= 0.2 * h_waarde, concat('Voldoet: grootste perceel onder € ', h_t_pgrens, ' en samen ', h_t_pct, '% van de waarde (max 20%). Die mag je buiten de Europese procedure gunnen.'), if(h_v_pmax >= h_pgrens, concat('Voldoet niet: het grootste perceel is niet lager dan € ', h_t_pgrens, '. Dat perceel moet Europees.'), concat('Voldoet niet: de percelen zijn samen ', h_t_pct, '% van de waarde, meer dan 20%.')))))
    Art. 2.18 en 2.19 Aanbestedingswet 2012 (PIANOo): bij een opdracht boven de drempel mag je percelen onder € 80.000 (diensten, leveringen) of € 1.000.000 (werken) uitzonderen, zolang ze samen maximaal 20% van de totale waarde zijn.
Link gekopieerd!

Berekening informatie

Author Bint
Laatste update 2 november 2026
Parameters 12

Op jouw website?

Gebruik direct op jouw eigen site:
<script src="https://ikbenbint.nl/widget.js"
  data-berekening="moet-ik-europees-aanbesteden-drempelbedragen-2026-2027">
</script>
Eigen tools maken? Maak hier jouw account

Meer over regelgeving & vergunningen

Ontdek meer tools gerelateerd aan regelgeving & vergunningen