De brief is verstuurd, de nieuwe tarieven staan vast en op 1 januari gaat het in. Zes weken later belt een klant over een factuur die nog het oude bedrag toont. Je duikt in je administratie en vindt er nog elf.
Dat is geen fout in je indexatie. Dat is een fout in het doorvoeren: het tarief stond op meer plekken vast dan je had geteld. Deze gids gaat over die tweede helft van de klus, de helft waarover geen enkele leveranciershandleiding schrijft, omdat elke leverancier alleen zijn eigen module documenteert en niemand het geheel.
Ik ga ervan uit dat het besluit al staat. Je weet welk percentage je rekent, per wanneer, en je voorwaarden of contracten laten het toe. De aankondiging is ruim voor de ingangsdatum de deur uit. Voor consumentenklanten is dat laatste geen vormvereiste maar een harde grens: je mag binnen drie maanden na het afsluiten van een abonnement de prijs niet verhogen zonder dat de klant mag opzeggen, en de klant hoort vooraf te weten wat de nieuwe prijs wordt en per wanneer. Vanaf hier is het administratief werk met precies één toets: klopt het bedrag op de eerste factuur na de ingangsdatum.
Wat "doorvoeren" precies is
Een prijsindexatie doorvoeren is het bijwerken van elke plek in je systemen waar een tarief vastligt, zodat de eerste factuur na de ingangsdatum vanzelf het nieuwe bedrag draagt. Het besluit gaat over het percentage, de aankondiging over de communicatie, het doorvoeren over je administratie. Alleen dat laatste bepaalt wat de klant werkelijk betaalt.
Het gaat mis omdat één tarief zelden op één plek staat. In een doorsnee administratie ligt hetzelfde uurtarief vast in het artikel- of dienstenbestand, in een prijsafspraak die alleen voor één klant geldt, in de regels van een lopend abonnement, in een terugkerende factuur, in een offerte die nog geldig is, en in de prijslijst op je website of in de kassa. Werk je alleen het artikelbestand bij, dan overschrijft die klantspecifieke prijsafspraak de verhoging bij de eerstvolgende factuurronde stilletjes weer.
Dat is de reden dat de handleiding van je pakket je hier niet redt. Die beschrijft keurig hoe de abonnementenmodule werkt. Zij weet niets van je webshop, je offertemap of het contract dat de vorige accountmanager op een vaste prijs zette.
Welk indexcijfer neem je, en van welke maand
Het percentage zelf valt buiten deze gids, maar één keuze eromheen raakt het doorvoeren direct: de peildatum. Verwijst je clausule naar de consumentenprijsindex van het CBS, dan maakt de maand die je aanwijst een echt verschil. In juli 2026 waren consumentengoederen en -diensten 3,2 procent duurder dan een jaar eerder, terwijl diezelfde jaarmutatie over de eerste zeven maanden van 2026 schommelde tussen 2,4 en 3,5 procent. Wie "de CPI van oktober" in zijn voorwaarden heeft staan, rekent dus met een ander getal dan wie "het gemiddelde over het afgelopen jaar" schreef. Let er ook op dat het CBS de reeks vanaf 2026 op een nieuw basisjaar publiceert, 2025=100 in plaats van 2015=100. Aan de percentages verandert dat niets, aan de indexcijfers zelf wel.
Leg die keuze eenmalig vast: het cijfer, de maand waar het bij hoort, en de datum waarop je het ophaalde. Bij de eerste klant die belt is dat het verschil tussen een uitleg van tien seconden en een discussie van een half uur.
Wat je nodig hebt voordat je één prijs aanpast
Een vastgelegd besluit. Percentage, ingangsdatum en peildatum in één document, niet verspreid over drie mailtjes.
Een systeeminventaris. Elk systeem dat een bedrag naar een klant kan sturen of tonen, met de naam van degene die het beheert.
Toegang met exportrechten. Je moet regels uit je pakket kunnen halen, niet alleen bekijken. Een csv-export volstaat; API-toegang maakt het herhaalbaar.
Een contractregister met ingangsdatum, looptijd en prijsclausule per klant. Heb je dat niet, dan is dit het moment om het te maken. Je kunt de ingangsdatum, de opzegtermijn en de prijsafspraak per contract in een vast schema laten uitlezen in plaats van tachtig pdf's open te klikken.
Tijd op het juiste moment. Het doe-venster loopt van oktober tot december. Wil je per 1 januari in, dan moet de aankondiging ruim daarvoor de deur uit en heb je de weken erna nodig voor het systeemwerk.
De werkstroom in één beeld
De stappen
Een prijsindexatie doorvoeren doe je in acht stappen: van een inventarisatie van elke plek waar een tarief vastligt, via de klantspecifieke prijsafspraken, de abonnementen, de contracten met een eigen clausule en de prijzen die klanten zelf zien, naar een verschillenrapport dat na de eerste factuurronde aantoont dat elke klant het nieuwe bedrag betaalt.
Dit zijn de acht stappen, in deze volgorde.
1. Tel de plekken waar een tarief vastligt
Begin niet in je boekhouding maar op een leeg vel. Voor een dienstverlenend bedrijf komt de lijst meestal op zes plekken uit: het artikel- of dienstenbestand, de klantspecifieke prijsafspraken, de abonnementen, de terugkerende facturen, de openstaande offertes, en de prijslijst op de website of in de kassa. Noteer per plek wie hem beheert en of er een bulkactie voor bestaat.
Deze lijst is je scope. Alles wat er niet op staat, staat op 2 januari nog op het oude tarief.
2. Bouw één tariefreferentie
Eén regel per combinatie van klant en dienst: huidig tarief, nieuw tarief, ingangsdatum, en de plek waar dat tarief vandaan komt. Een spreadsheet is prima, mits hij van één bron is afgeleid en niet met de hand is overgetikt. Heb je je artikelen, eenheidsprijzen en staffels al in één catalogus staan die je offertes voedt, dan is dat je vertrekpunt.
Die referentie is later je controle-instrument. Zonder hem kun je in februari niet vaststellen of een factuurregel klopt, alleen dat hij bestaat.
3. Vis de klantspecifieke prijsafspraken eruit
Hier zit de grootste stille lek, en dit is precies de stap die de meeste bedrijven overslaan. Een prijsafspraak is een artikelprijs die alleen voor één klant geldt en die de algemene prijs overrulet. In Exact Online haal je ze via de REST API op als SalesItemPrices: per regel een Account, een Item, een Price, en de velden waarin StartDate en EndDate samen bepalen of de prijs actief is. Filter op alles zonder einddatum of met een einddatum ná je ingangsdatum. Dat is exact de lijst klanten die het oude bedrag blijven betalen, hoe netjes je het artikelbestand ook hebt bijgewerkt.
Zet ze daarna niet blind allemaal om. Een prijsafspraak is er meestal met een reden: een volumeafspraak, een goedmaker, een oud contract. Loop de lijst langs je contractregister en beslis per regel. Mag je indexeren, dan zet je de einddatum op de dag vóór de ingangsdatum en maak je een nieuwe afspraak met het nieuwe bedrag, zodat de historie blijft kloppen. Mag je niet, dan gaat die klant met de reden erbij op je uitzonderingslijst.
4. Werk de abonnementen en terugkerende facturen bij
Nu pas komen de bulkacties in beeld, en die verschillen sterk per pakket.
In AFAS Profit zitten er twee naast elkaar. Via Abonnementen, Beheer, Collectief wijzigen pas je de prijzen van een selectie abonnementen aan met een percentage, met een afrondingsoptie erbij. Ernaast staat de actie Abonnementen herwaarderen, waarbij Profit de abonnementswaarde berekent vanaf de ingevoerde peildatum. Gaan je nieuwe prijzen per 1 januari in, dan zet je die peildatum ook op 1 januari.
In Moneybird zit een onderscheid dat veel gebruikers nooit bewust hebben gemaakt. Wijzig je een productprijs, dan gaat die wijziging mee naar de abonnementen waarin dat product zit, maar bestaande periodieke facturen worden niet automatisch aangepast. Zoek dus eerst uit welke terugkerende klanten op een abonnement staan en welke op een periodieke factuur. De eerste groep loopt vanzelf mee, de tweede pas je per stuk aan.
In Exact Online werk je de abonnementsregels bij via SubscriptionLines, met per regel een UnitPrice en een FromDate en ToDate. Sluit de oude regel af op de dag vóór de ingangsdatum en open een nieuwe met het nieuwe bedrag, in plaats van het bedrag op de bestaande regel te overschrijven. Zo houdt je historie stand als een klant vraagt wat hij vorig jaar betaalde.
Factureer je via Stripe, dan maak je een nieuw Price-object en vervang je de prijs op de abonnementsregel. Let op de valkuil in de API: geef je het id van de bestaande regel niet mee, dan wordt de nieuwe prijs náást de oude gezet en zijn beide prijzen actief op het abonnement. Voor een jaarlijkse indexatie wil je bijna altijd dat het nieuwe bedrag pas bij de volgende periode ingaat, dus zet je de verrekening over de resterende dagen uit of laat je de wijziging via een subscription schedule op het einde van de periode landen.
5. Zet de contracten met een eigen clausule apart
Meerjarige contracten en raamovereenkomsten hebben vaak hun eigen bepaling: een andere index, een andere peildatum, een maximumpercentage, of een vaste prijs voor de hele looptijd. Die mogen niet mee in de bulkactie.
Loop je contractregister langs en geef elk contract één van drie uitkomsten: mee in de standaard, apart met een eigen percentage, of dit jaar niet. Leg die laatste categorie vast met de reden en het jaar waarin hij vervalt, anders staat diezelfde klant volgend jaar opnieuw ten onrechte buiten de indexatie. Loopt er al een renewal-trigger die 60 tot 90 dagen voor het einde van een contract afgaat, dan is dat de logische plek om de indexatiemelding aan te hangen.
6. Werk de buitenkant bij: webshop, kassa en openstaande offertes
Prijzen die klanten zelf zien, zijn de pijnlijkste om te vergeten. Een webshop die in januari nog het tarief van vorig jaar toont, ondermijnt je hele aankondiging.
In WooCommerce gaat dat via Producten, de selectie aanvinken, Bulkacties, Bewerken, en dan de optie om de bestaande prijs met een percentage te verhogen. Ken de grens van die functie: hij werkt het best bij eenvoudige producten en kan variabele of gegroepeerde producten niet aan. Variaties werk je apart bij, en geplande kortingsacties vallen er helemaal buiten.
Heb je een kassa, dan ligt daar een eigen prijslijst, en die is zelden zo bulk-vriendelijk als je hoopt. In Lightspeed Retail (X-Series) vink je onder Catalog, Products je artikelen aan en kies je Update products, Edit prices. In dat scherm pas je de markup, de marge of de verkoopprijs van je hele selectie aan met behoud van de inkoopprijs. Een knop die de bestaande verkoopprijs met 3,2 procent verhoogt, zit er niet: je typt een nieuwe verkoopprijs, of je rekent via marge en markup terug vanaf de inkoopprijs. Voor honderden artikelen loopt de route daarom via de spreadsheet: exporteren met Export list, de nieuwe prijs in een kolom uitrekenen, terugzetten met Import. Haal daarbij de voorraadkolommen uit het bestand voordat je importeert en laat de ID-kolom staan, anders zet je met je nieuwe prijzen ook de voorraadstanden van het exportmoment terug.
De grootste aanname in dit hoekje is dat kassa en webshop dezelfde prijs tonen zodra je er één bijwerkt. Dat klopt alleen als ze uit dezelfde catalogus lezen. Bij Shopify deelt de kassa standaard de productprijs met de webshop, maar met Retail markets kun je via catalogi in de winkel een andere prijs voeren dan online, mits je POS Pro of Shopify Plus hebt. Bestaat zo'n catalogus, dan overrulet die aan de kassa de productprijs die je zojuist verhoogde, precies zoals een klantspecifieke prijsafspraak dat in je boekhouding doet. Zoek dus eerst uit welke prijslijst aan de kassa leidend is, en voer daarna pas ergens een percentage in.
Openstaande offertes zijn de laatste blinde vlek. Een offerte die je in november verstuurde met een geldigheid van 60 dagen, kan in januari nog geaccepteerd worden tegen het oude tarief. Trek een lijst van elke offerte waarvan de geldigheid over de ingangsdatum heen loopt en kies bewust: eerbiedigen en dat vastleggen, of vóór 1 januari opnieuw versturen met de nieuwe bedragen.
7. Draai droog op een concept-factuurronde
Voordat de echte ronde loopt, genereer je de facturen als concept en leg je een steekproef van twintig regels naast je tariefreferentie. Neem daarin bewust de lastige gevallen mee: een klant met een prijsafspraak, een klant met staffelkorting, een uitzonderingsklant, en een kwartaalfactuur.
Vindt de steekproef één fout, dan zitten er meestal meer van dezelfde soort. Zoek de oorzaak voordat je de ronde vrijgeeft.
8. Bewijs het na de eerste echte factuurronde
Dit is de stap die van een indexatie een afgeronde klus maakt. Exporteer alle factuurregels van de eerste ronde na de ingangsdatum, leg ze naast je tariefreferentie en filter op elke regel waar het gefactureerde bedrag afwijkt van het verwachte bedrag. Dat verschillenrapport is je bewijs dat iedereen mee is, en tegelijk je werklijst.
Herhaal de controle na de tweede ronde, want jaar- en kwartaalabonnementen komen pas later langs. Een jaarcontract dat in maart verlengt, draagt pas in maart voor het eerst het nieuwe tarief. Reken in januari ook op meer vragen en tragere betalingen dan normaal: openstaande facturen automatisch laten opvolgen scheelt je dan een handmatige belronde bovenop het correctiewerk.
Wat elk pakket wel en niet voor je doet
| Systeem | Bulkactie voor prijzen | Wat automatisch meegaat | Wat achterblijft |
|---|---|---|---|
| AFAS Profit | Abonnementen collectief wijzigen met een percentage en afronding, plus Abonnementen herwaarderen per peildatum | De geselecteerde abonnementen, vanaf de peildatum | Alles buiten je selectie; de collectieve wijziging is niet ongedaan te maken |
| Exact Online | Artikelprijzen en prijslijsten; via de REST API SalesItemPrices en SubscriptionLines | Nieuwe orders en facturen die de algemene artikelprijs gebruiken | Klantspecifieke prijsafspraken met een lopende einddatum overrulen die nieuwe prijs |
| Moneybird | Prijs op productniveau aanpassen | Abonnementen waarin dat product zit, vanaf de volgende factuur | Bestaande periodieke facturen; die pas je per stuk aan |
| Stripe Billing | Nieuw Price-object maken en per abonnementsregel vervangen | Niets; elk abonnement werk je apart bij | Vergeet je het regel-id, dan staat de nieuwe prijs náást de oude |
| WooCommerce | Producten, Bulkacties, Bewerken, bestaande prijs met een percentage verhogen | Eenvoudige producten in je selectie | Variabele en gegroepeerde producten, variaties en geplande acties |
| Lightspeed Retail (X-Series) | Catalog, Products, Update products, Edit prices op je selectie; grotere aantallen via Export list, spreadsheet en Import | De aangevinkte producten, of elke rij in je importbestand | Een percentage op de bestaande verkoopprijs bestaat niet; die reken je zelf uit. Voorraadkolommen moet je uit het importbestand halen |
| Shopify POS | Prijs op productniveau; per winkel afwijkend via Retail markets en catalogi (POS Pro of Plus) | Webshop en kassa tegelijk, zolang beide de productprijs gebruiken | Een catalogusprijs per winkel overrulet aan de kassa de productprijs |
Functies gecontroleerd in augustus 2026 tegen de documentatie van de leveranciers zelf.
Valkuilen die je pas op de factuur ziet
Je werkt het artikelbestand bij en denkt dat je klaar bent. De algemene prijs is de zichtbaarste plek en zelden de beslissende. Mitigatie: draai stap 3 altijd vóór stap 4, zodat je weet hoeveel klanten een eigen prijs hebben voordat je de bulkactie afvuurt.
Het systeem rekent op factuurdatum in plaats van op leverperiode. Een factuur die je op 5 januari verstuurt over de maand december hoort het oude tarief te dragen. Mitigatie: controleer in je proefdraai expliciet één factuur die over de jaargrens heen loopt en kijk welk tarief hij pakt.
De bulkactie is niet terug te draaien. Bij het collectief wijzigen van abonnementen waarschuwt AFAS dat de wijziging direct wordt verwerkt en niet ongedaan gemaakt kan worden. Mitigatie: exporteer de huidige regels vlak voor de actie, zodat je een herstelbestand hebt in plaats van een reconstructie.
Afronding die per systeem verschilt. 3,2 procent op 137,45 euro is 141,8484: het ene pakket maakt daar 141,85 van, het andere kapt af op 141,84. Belangrijker nog is de plek waar een systeem afrondt. Rondt het ene elke factuurregel af en het andere pas het factuurtotaal, dan lopen twintig regels een paar cent uiteen; indexeert het ene het bedrag exclusief btw en rekent het daarna terug naar inclusief terwijl het andere direct op het inclusiefbedrag rekent, dan verschilt de uitkomst opnieuw. Op een verzamelfactuur wordt dat een centenverschil dat je debiteurenbeheer weken bezighoudt. Mitigatie: rond af op één plek, in je tariefreferentie, en zet het afgeronde bedrag de systemen in.
Een uitzonderingslijst zonder reden en zonder vervaldatum. Elke klant die dit jaar niet meegaat, gaat volgend jaar ook niet mee, simpelweg omdat niemand meer weet waarom hij erop stond. Mitigatie: leg per uitzondering de grond en de einddatum vast, en zet die lijst in oktober als eerste op tafel.
Naverrekenen met terugwerkende kracht. Ontdek je in maart dat elf klanten drie maanden te weinig betaalden, dan is alsnog nafactureren juridisch vaak lastig en commercieel altijd duur. Mitigatie: pak het verschil vooruit in plaats van achteruit, en accepteer de gemiste maanden als de prijs van een controle die je te laat deed.
Zelf, pakketfunctie of eigen werkstroom
De eerlijke afweging gaat niet over hoe groot je bent, maar over hoeveel plekken en hoeveel uitzonderingen je hebt.
| Aanpak | Past bij | Wat je zelf doet | Waar het breekt |
|---|---|---|---|
| Met de hand, één keer per jaar | Eén pakket, minder dan ongeveer vijftig tariefdragers, nauwelijks afwijkende afspraken | Alles, met een afvinklijst per klant | Zodra er een tweede systeem bij komt, of iemand anders het volgend jaar doet |
| De bulkfunctie van je pakket plus een uitzonderingslijst | Eén of twee systemen, vijftig tot een paar honderd abonnementen, een handvol afwijkende contracten | Selecteren, percentage invoeren, uitzonderingen apart afhandelen | Bij prijsafspraken per klant, en bij alles buiten dat ene pakket |
| Een eigen indexatie-werkstroom over je systemen heen | Drie of meer plekken met tarieven, honderden klanten, of tientallen afwijkende clausules | Het besluit en de uitzonderingen; de rest draait als script of flow | Zelden, mits je hem elk jaar draait en het verschillenrapport ook echt leest |
Mijn vuistregel: zolang je het in één middag met de hand kunt doen én je kunt uitleggen hoe je het volgend jaar precies zo herhaalt, doe het met de hand. Zodra het tweede systeem in beeld komt, is het geen klus meer maar een proces, en dan verdient het een vaste vorm. De grootste winst zit niet in de bulkactie zelf, die duurt vijf minuten, maar in de inventarisatie ervoor en het verschillenrapport erna.
Op hoeveel plekken ligt bij jou een tarief vast?
Uitgewerkt voorbeeld: 214 serviceabonnementen, 3,2 procent per 1 januari
Neem een installatie- en onderhoudsbedrijf met 214 lopende serviceabonnementen in Exact Online, gemiddeld 145 euro per maand. Verder 38 klanten met een klantspecifieke prijsafspraak, 6 meerjarige raamcontracten, 9 openstaande offertes en een webshop met onderdelen. De indexatie is 3,2 procent per 1 januari, aangekondigd in de tweede week van november.
Wat er op het spel staat. 214 abonnementen van gemiddeld 145 euro is 31.030 euro per maand, oftewel 372.360 euro per jaar. 3,2 procent daarvan is ongeveer 11.900 euro extra op jaarbasis.
Wat de inventarisatie oplevert. De 38 prijsafspraken blijken samen goed voor 5.510 euro per maand. Zonder ze bij te werken loopt daar ongeveer 2.100 euro per jaar aan indexatie weg: bijna een vijfde van de hele opbrengst, bij nog geen een op de vijf klanten. Van de 6 raamcontracten hebben er 3 een eigen bepaling (de CPI van oktober, met een maximum van 5 procent), lopen er 2 tegen een vaste prijs tot het einde van de looptijd en mogen die dit jaar niet mee, en verloopt er 1 in maart. Van de 9 openstaande offertes lopen er 4 met hun geldigheidsduur over 1 januari heen; die gaan opnieuw de deur uit met de nieuwe bedragen.
Het werk. De tariefreferentie kost een ochtend, vooral omdat de webshopprijzen niet uit hetzelfde bestand kwamen als de abonnementsprijzen. De bulkactie op de abonnementen kost tien minuten. De 38 prijsafspraken kosten een middag, omdat elke afspraak langs het contract moet: einddatum op 31 december, nieuwe afspraak per 1 januari. De 5 uitzonderingen krijgen een regel met de reden en het jaar waarin ze weer meedoen.
De controle. In de factuurronde van januari staan 7 van de 214 regels nog op het oude bedrag: 5 prijsafspraken waarvan de einddatum per ongeluk op 31 december 2027 stond in plaats van 2026, en 2 abonnementen die in december waren overgezet naar een nieuw artikel dat niet in de selectie zat. In geld stelt dat weinig voor, ongeveer 390 euro op jaarbasis. Als bewijs stelt het alles voor: zonder dat verschillenrapport had niemand het gezien, en had dezelfde fout volgend jaar gewoon opnieuw meegelopen.
De klus is pas af als de factuur het zegt
Een indexatie voelt af op het moment dat de brief verstuurd is. Dat is precies het moment waarop de meeste omzet nog niet verhoogd is en niemand dat weet.
De ondernemers bij wie dit jaar na jaar soepel gaat, hebben zelden een duurder pakket. Zij hebben een lijst van plekken waar een tarief kan staan, en een rapport dat na de eerste factuurronde zegt of het er ook echt staat. Dat is het hele geheim, en het kost in oktober twee uur om aan te leggen.
Veelgestelde vragen
Nooit meer klanten op het oude tarief
Ik denk met je mee over hoe je indexatie hoort te lopen, ontwerp de controle erop en bouw hem end to end in je eigen systemen, van de inventarisatie tot het verschillenrapport.
Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.
