Tracker voor leveranciersprijsgeschiedenis: MOQ, levertijd en kosten
Bouw een tracker voor leveranciersprijsgeschiedenis om offertes, MOQ en levertijd te vergelijken en de beste optie te kiezen op basis van totale kosten en levertijd.

Welk probleem lost een prijsgeschiedenis-tracker eigenlijk op
Inkoopbeslissingen worden vaak gemaakt met maar de helft van het verhaal. De laatste offerte ligt begraven in e-mail, de “laatste” spreadsheet staat op iemands laptop en de details die écht uitmaken (MOQ, levertijd, verzendvoorwaarden, betaalvoorwaarden) verspreiden zich over PDF's en chatgesprekken.
Dat rommelige geheel doet ertoe omdat offertes niet stabiel zijn. Voor hetzelfde artikel passen leveranciers de eenheidsprijs, MOQ, levertijd, verpakking, betaalvoorwaarden en verzendveronderstellingen aan. Als je alleen het nummer van vandaag ziet, mis je patronen zoals “goedkoop, maar levert altijd twee weken later” of “prijs steeg 12% na de eerste bestelling”.
Slechte keuzes blijken later en kosten meestal meer dan het prijsverschil tussen twee offertes. Een lage eenheidsprijs kan leiden tot out-of-stock, productievertraging, spoedvracht, kwaliteitsdisputen of stille margedruk wanneer je steeds aanjaagt om deadlines te halen.
Een tracker verdient zich terug wanneer hij vragen binnen enkele seconden beantwoordt:
- Wat betaalden we de vorige keer voor dit exacte artikel en deze hoeveelheid?
- Hoe heeft de levertijd van deze leverancier zich ontwikkeld over de afgelopen offertes?
- Wat is de echte geleverde kost bij onze gebruikelijke bestelhoeveelheid (niet alleen de eenheidsprijs)?
- Welke leverancier is consequent betrouwbaar, niet slechts af en toe het goedkoopst?
- Wat is er veranderd ten opzichte van de vorige offerte?
Voorbeeld: je krijgt twee offertes voor hetzelfde component. Leverancier A is 8% goedkoper maar vereist een hogere MOQ en geeft een levertijd van 6 weken. Leverancier B is iets duurder, past in je cashplan en levert meestal in 2 weken. Zonder historie is het makkelijk om voor de lagere prijs te gaan. Met historie zie je dat Leverancier A vaak uitloopt en betaalde luchtvracht veroorzaakt, waardoor ze in praktijk de duurste optie worden.
Welke data je per leveranciersofferte moet vastleggen
De tracker is zo goed als de velden die je opslaat. Leg de offerte vast zoals hij werd aangeboden (niet alleen het “beste” nummer) zodat je later beslissingen kunt verklaren en afwijkingen kunt signaleren, zoals langzaam oplopende levertijden of opduikende vergoedingen.
Begin met prijsinformatie op een manier die verwarring voorkomt:
- Eenheidsprijs
- Prijsbreekhoeveelheid (vaak de MOQ)
- Extende prijs bij die breek (zodat je niet elke keer in je hoofd hoeft te rekenen)
Levertijd heeft ook twee vormen nodig:
- De opgegeven levertijd (bijv. “4–6 weken”)
- De beloofde verzend- of leverdatum op de offerte
Data zijn waar planning op draait. Het opgegeven bereik is later nog nuttig wanneer je beloften aan de realiteit vergelijkt.
Om totale kostenvergelijkingen eerlijk te maken, leg de extra's vast die de werkelijke uitgaven veranderen:
- Verzendvoorwaarden en geschatte vracht (wie betaalt, hoe het wordt verzonden en de kosten)
- Douane-/belastingsaannames (indien bekend), bestemming land/haven
- Valuta (en de gebruikte wisselkoers als je converteert)
- Betaalvoorwaarden (Net 30, vooruit, aanbetaling gesplitst)
- Verpakkings-, etikettering-, inspectie- of toolingnotities (eenmalig of per bestelling)
Koppel tenslotte performance terug aan dezelfde leverancier en hetzelfde artikel: vertraagde leveringen ten opzichte van beloofde datum, kwaliteitsissues (retouren/defecten) en communicatiesnelheid. Dit kan met eenvoudige tags of counters.
Één regel is het belangrijkst: overschrijf oude offertes niet. Behandel elke offerte als een nieuwe versie met datum, wie hem ontving en de bron (e-mail, portal, call). Dat geeft je echte historie in plaats van een voortdurend bewerkt snapshot.
Hoe offertes eerlijk te vergelijken (regels voor kosten en snelheid)
Een tracker helpt alleen als elke offerte met dezelfde regels wordt vergeleken. Anders is de “goedkoopste” optie vaak degene met ontbrekende kosten of een onrealistische leverbelofte.
Kostregels die eerlijk blijven
Definieer één simpele, consistente “totale kost” die inkoop en finance beiden accepteren. Stop niet bij de eenheidsprijs. Gebruik een herhaalbare schatting die de gebruikelijke extra's bevat:
- Eenheidsprijs bij de geoffreerde breek
- Vracht/verzending (of een placeholder-schatting als onbekend)
- Douane-/belasting-/inklaringkosten (indien van toepassing)
- Verpakkings-/etiketterings-/inspectiekosten
- Betaalkosten (overschrijving/kaart/platform) wanneer materieel
Normaliseer daarna de basics voordat je rangschikt:
- Meeteenheden (per stuk vs per doos van 50)
- Verpakkingsformaten
- Valuta (met de wisselkoersregel die je gebruikt)
MOQ is de gebruikelijke valstrik. Vergelijk leveranciers op je verwachte bestelhoeveelheid, niet op de laag die er op papier het beste uitziet. Als je doorgaans 800 stuks koopt, moet een offerte met MOQ 2.000 geprijsd worden op 2.000 stuks (want dat is wat je zou moeten betalen) of duidelijk als niet werkbaar voor die bestelling worden gemarkeerd.
Snelheidsregels en tie-breakers
Voor leveringssnelheid leg je levertijd vast in dagen en een concrete readiness-/verzenddatum. Levertijdbereiken kunnen vaag zijn, maar een datum dwingt duidelijkheid af.
Voorbeeld: Leverancier A is $1,90/stuk met 30 dagen levertijd en MOQ 500. Leverancier B is $2,05/stuk met 10 dagen levertijd en MOQ 1.000. Als je volgende maand 600 stuks nodig hebt, dwingt de MOQ van B je 1.000 te kopen. Dat verandert de “echte” uitgave en kan het snelheidsvoordeel doen vervallen.
Als totalen dicht bij elkaar liggen, bepaal tie-breakers van tevoren: stiptheid, betaalvoorwaarden en leveranciersstatus (preferred/approved). Het doel is consistentie, zodat kopers niet elke aankoop opnieuw de logica uitvinden.
Een eenvoudig datamodel dat bruikbaar blijft naarmate je groeit
De tracker blijft betrouwbaar als het datamodel saai, consistent en moeilijk “bijna” in te vullen is. Sla elke offerte op op dezelfde manier en koppel hem aan wat er later gebeurde.
Vijf kernrecords dekken de meeste teams:
- Products/SKUs: SKU-code, naam, belangrijke specs, meeteenheid, goedgekeurde leveranciers
- Suppliers: juridische naam, contacten, regio, standaardvaluta, standaardvoorwaarden
- Quotes: leverancier, product, eenheidsprijs, MOQ, levertijd, offertedatum, geldigheidsvenster, kernveronderstellingen
- Orders/Shipments: wat je plaatste en ontving (data, hoeveelheden, betaalde prijs, leveringsuitkomst)
- Attachments/Audit log: offerte-PDFs/e-mails/screenshots, plus wie wat bewerkte en wanneer
Houd Quotes los van Orders. Quotes zijn beloften. Orders zijn realiteit. Door ze te koppelen kun je de kloof meten tussen geoffreerde levertijd en daadwerkelijke levering, of geoffreerde prijs en factuurprijs.
Een paar kleine keuzes voorkomen chaos bij hogere volumes:
- Gebruik een unieke ID voor elke offerte
- Sla data op als echte datums (geoffreerd op, geldig tot, verwacht verzenddatum)
- Houd valuta expliciet en bewaar een FX-rate als je converteert
- Behandel MOQ en levertijd als getallen (vermijd indien mogelijk vrije tekst)
- Lock bewerkingen na goedkeuring, maar sta opmerkingen toe
Stapsgewijs: bouw de tracker workflow
De workflow heeft één taak: het toevoegen van een nieuwe offerte moet sneller zijn dan zoeken in e-mail.
Begin met één “Nieuwe Offerte”-formulier dat de velden afdwingt die mensen vaak overslaan: leverancier, SKU, valuta, eenheidsprijs, MOQ, levertijd, offertedatum en vervaldatum. Voeg verzending en vaste kosten toe als je die hebt.
Na het opslaan bereken je automatisch de totale kost voor een paar hoeveelheden die passen bij je kooppatroon (bijvoorbeeld: MOQ, typische bestelhoeveelheid en een bulk-hoeveelheid). Dit voorkomt de klassieke fout waarbij Leverancier A goedkoper lijkt totdat je je realiseert dat hun MOQ je dwingt veel meer te kopen.
Per SKU toon je een eenvoudige gerangschikte weergave op basis van regels die je kiest (bijv. laagste totale kost bij typische hoeveelheid, daarna snelste levering als tie-breaker).
Twee vangrails houden rangschikking eerlijk:
- Verlopen offertes zijn duidelijk gemarkeerd (en kunnen een refresh-taak triggeren)
- Als iemand kiest voor een niet-top-gerangschikte leverancier, vult diegene een korte reden in (kwaliteit, voorraadrisico, voorwaarden, relatie)
Dat ene “reden”-veld verandert een intuïtieve keuze in een beslissing die je later kunt reviewen.
Bestaande offertehistorie in het systeem krijgen
Historie helpt alleen als die netjes wordt ingevoerd. Begin met de bronnen die je al vertrouwt: spreadsheets, ERP-exports en e-mailthreads. Je hoeft dag één niet perfect te zijn; je hebt genoeg geschiedenis nodig om prijs- en levertijdpatronen te zien.
Voor CSV-imports: houd één bestand per batch (bijv. één maand RFQ's). Normaliseer eenheden en valuta voordat je importeert. “$12 per doos van 10” en “$1,20 per eenheid” mogen niet als twee niet-gerelateerde prijzen binnenkomen.
E-mail- en telefonoffertes hebben een snelle handmatige route nodig. Een kort formulier verslaat meestal kopiëren naar een spreadsheet. Hou je aan de velden die beslissingen veranderen: leverancier, SKU, datum, prijs, valuta, MOQ, levertijd, geldigheid en verzendvoorwaarden.
Duplicaten komen vaak voor wanneer dezelfde offerte wordt doorgestuurd of opnieuw gestuurd. Een praktische unieke check is leverancier + SKU + offertedatum + MOQ (en verzendvoorwaarden als die de kosten wezenlijk veranderen). Als een waarschijnlijk duplicaat wordt gedetecteerd, laat de gebruiker kiezen: update het bestaande record of sla een nieuwe revisie op.
Bewaar genoeg “broncontext” om later te verifiëren: referentienummer, e-mail subject/threadnaam en bestandsnaam van de bijlage.
Voer vóór vertrouwen in de geïmporteerde data een paar snelle controles uit op veelvoorkomende fouten:
- Levertijd ontbreekt of staat als “ASAP”
- MOQ is 10x off ten opzichte van het gebruikelijke bereik van de leverancier
- Valuta komt niet overeen met de normale facturering van de leverancier
- Prijs ingevoerd zonder eenheid (per stuk vs per karton)
- Verlopen offertes geïmporteerd alsof ze actueel zijn
Voorbeeld: als een inkoper “14” ingeeft voor levertijd, laat diegene kiezen tussen dagen of weken. Die ene prompt voorkomt weken van misleidende vergelijkingen.
Rapporten en weergaven die mensen dagelijks gebruiken
Weergaven moeten echte vragen snel beantwoorden: “Moet ik nu nabestellen?”, “Wie loopt uit op levertijd?”, “Is deze offerte echt goedkoper als we alles mee rekenen?” Bouw een kleine set schermen die mensen blijven gebruiken.
Begin met deze:
- Per-SKU prijstrend: eenheidsprijs in de tijd, plus totale kost per eenheid (eenheid + vracht + douane + overige kosten)
- Per-SKU offertetijdlijn: elke offerte met leverancier, MOQ, levertijd, geldigheid en kernaanmerkingen
- Leverancier prestatieoverzicht: on-time rate, gemiddelde levertijd per lane/regio, aantal prijsstijgingen
- Side-by-side vergelijking: filter op regio, MOQ-bereik, valuta en actualiteit, en sorteer op totale kost of leveringssnelheid
- Laatste beslissing snapshot: winnaar, runner-up en de vastgelegde reden
Alerts werken het beste als ze specifiek en per categorie aanpasbaar zijn. Bijvoorbeeld: “Eenheidsprijs meer dan 5% omhoog vs laatst geaccepteerde offerte” of “Levertijd verschoof meer dan 7 dagen over de laatste 3 offertes.”
Opgeslagen weergaven maken het gereedschap snel. Twee die meestal blijven hangen zijn “Deze maand nabestellen” (SKU's onder de reorder point met geldige offertes) en “Nieuwe leverancier review” (leveranciers met beperkte historie).
Veelgemaakte fouten die de tracker misleidend maken
De meeste “slechte ranglijsten” ontstaan omdat het systeem context verliest en mensen de output toch vertrouwen.
De grootste fout is het overschrijven van oude offertes. Als je de offerte van vorige maand vervangt door het nummer van vandaag, verlies je de trend en kun je niet verklaren waarom een leverancier plots “beter” of “slechter” lijkt.
Een andere valkuil is alleen de eenheidsprijs vergelijken. Een lagere eenheidsprijs kan irrelevant zijn als de MOQ extra voorraad afdwingt, of als vracht en douane de landed cost boven het alternatief duwen.
Normalisatiefouten ondermijnen ook het vertrouwen. Als de ene inkoper “per kg” invoert en een ander “per stuk”, lijkt de rekensom precies maar is hij fout. Ontbrekende geldigheidsdata maken dat je verlopen prijzen gebruikt in huidige beslissingen.
Tenslotte drift de ranglijst als je daadwerkelijke leverprestaties negeert. Als Leverancier A 10 dagen belooft maar in 18 levert, moet je tracker dat leren, anders blijft hij de verkeerde optie aanraden.
Praktische oplossingen:
- Sla elke offerte als nieuw record op met timestamp en bron
- Vergelijk total landed cost, inclusief MOQ-impact en vracht
- Normaliseer valuta, eenheden en verpakkingsformaten vóór rangschikking
- Vereis geldigheidsdatums en markeer verlopen offertes duidelijk
- Leg beloofd versus daadwerkelijk vast en gebruik performance in scoring
Snel checklist voordat je de ranglijst vertrouwt
Voordat je een “beste optie” samenvatting naar een manager stuurt, doe een korte sanity-check. Het kost minuten en voorkomt beslissingen op basis van onvolledige data.
Zorg dat elk offerte-record compleet en vergelijkbaar is:
- SKU/partnr., leverancier, offertedatum, meeteenheid, valuta, geldigheid/expiry
- MOQ is vastgelegd en je vergelijkt op een duidelijk gekozen hoeveelheid (bijv. 500 stuks)
- Levertijd is in dagen en (waar mogelijk) heb je ook een beloofde verzend-/klaar-datum
- Totale kost bevat items die je werkelijk betaalt (vracht, verpakking, tooling, bank/makelaar-kosten waar relevant)
- Je rangschikkingsregel is opgeschreven en elke keer op dezelfde manier toegepast
Controleer daarna consistentie. Als de ene leverancier per 1.000 stuks offert en een ander per stuk, is de ranglijst fout tenzij je eenheden normaliseert. Hetzelfde geldt voor valuta: kies één wisselkoersregel (spotrate op offertedatum of een maandelijkse rate) en houd je eraan.
Wees ook realistisch over actualiteit. Een offerte van 10 maanden geleden is nuttig voor een trend, maar weerspiegelt zelden de huidige markt.
Voorbeeld: kiezen tussen lage prijs en snelle levering
Je moet een snelbewegend SKU aanvullen: 1.000 stuks per maand. Je hebt nog 10 dagen voorraad en een stockout kost ongeveer $800 per dag aan gemiste verkoop en expediting.
Twee leveranciers antwoorden:
Leverancier A biedt een lagere eenheidsprijs: $4,50, maar de MOQ is 3.000 stuks en levertijd is 30 dagen. Verzendkosten $600 per order.
Leverancier B is duurder met $5,10, maar de MOQ is 1.000 stuks en levertijd 10 dagen. Verzendkosten $400 per order.
Als je alleen eenheidsprijs vergelijkt wint A. Maar de totale landed cost per eenheid voor de order die je daadwerkelijk moet plaatsen ziet er zo uit:
- Leverancier A: (3.000 x $4,50 + $600) / 3.000 = $4,70 per stuk, plus gebonden cash in extra voorraad
- Leverancier B: (1.000 x $5,10 + $400) / 1.000 = $5,50 per stuk
Tel timing erbij. Met slechts 10 dagen voorraad arriveert A pas over 30 dagen, wat ongeveer 20 dagen out-of-stock betekent tenzij je een overbruggingsoptie vindt. Bij $800 per dag is 20 dagen ongeveer $16.000 aan stockout-impact. Dat overstijgt ruimschoots het $800 verschil in eenheidsprijs tussen deze orders.
Dus de beste keuze vandaag is waarschijnlijk Leverancier B, ook al is de eenheidsprijs hoger. Volgende maand, als je 40 dagen dekking hebt, kan Leverancier A weer aantrekkelijker worden.
Wanneer je een offerte goedkeurt, leg dan een korte beslisnotitie vast zodat latere reviews niet op herinnering vertrouwen:
- Voorraad en verwacht verbruik
- De “moet aankomen voor” datum die je gebruikte
- Aangenomen stockout-kosten of expeditie-optie
- Wat de beslissing de volgende keer zou veranderen (dekking, MOQ-flexibiliteit)
Volgende stappen: uitrollen zonder inkoop te vertragen
Behandel de uitrol als een pilot, niet als een grote systeemwijziging. De tracker helpt alleen als kopers hem tijdens echt werk kunnen gebruiken.
Begin met een kleine, hoge-impact set: ongeveer 20 top-SKU's (of de onderdelen die het meeste pijn geven) en rond de 5 leveranciers. Dat houdt de eerste pass schoon, maakt hiaten zichtbaar en laat je de vergelijkregels afstemmen voordat iedereen op de ranking vertrouwt.
Kom vroeg overeen over twee zaken: één scoringsmethode en één set verplichte velden. Als mensen een offerte kunnen opslaan zonder levertijd, MOQ, valuta en geldigheid, raakt de database snel gevuld maar de output is onbetrouwbaar.
Een lichte uitrolplanning:
- Week 1: alleen nieuwe offertes vastleggen voor pilot-SKU's en leveranciers
- Week 2: resultaten met kopers reviewen en verwarrende velden of regels aanpassen
- Week 3: goedkeuring toevoegen waar het telt (hoge bestedingen of nieuwe leverancier)
- Week 4: de SKU-lijst uitbreiden op basis van wat het team daadwerkelijk bestelt
Herinneringen voor verlopen offertes, alerts voor levertijdpieken en een wekelijkse samenvatting van “beste huidige opties” houden het momentum zonder extra werk.
Als je de tracker als interne app bouwt, is AppMaster (appmaster.io) één manier om de database, formulieren en dashboards te maken zonder te programmeren, terwijl je toch productieklare backend, web- en mobiele apps kunt genereren wanneer dat nodig is.
FAQ
Een prijsgeschiedenis-tracker bewaart elke leveranciersofferte als een gedateerd record zodat je later appels met appels kunt vergelijken. Het voorkomt beslissingen op basis van slechts één “huidig” getal en helpt patronen te ontdekken zoals stijgende MOQ's, langere levertijden of sluipende extra kosten.
Gebruik hem als offertes vaak veranderen, meerdere mensen dezelfde onderdelen kopen of je context verliest in e-mail en spreadsheets. Hij is vooral nuttig wanneer MOQ, levertijd en verzendvoorwaarden regelmatig bepalen of een “goedkope” offerte praktisch uitvoerbaar is.
Begin met de velden die beslissingen veranderen: leverancier, SKU/onderdeelnr., offertedatum, valuta, eenheidsprijs, MOQ of prijsbreek, levertijd en geldigheid/expiry. Voeg verzendvoorwaarden en vaste kosten toe zodra je kunt, zodat vergelijkingen weerspiegelen wat je daadwerkelijk betaalt.
Behandel elke offerte als een nieuwe versie en overschrijf de oude niet. Als een leverancier een update stuurt, sla die dan op als een apart record met eigen datum en bron zodat je kunt uitleggen wat er veranderd is en wanneer.
Vergelijk de total landed cost op de hoeveelheid die je daadwerkelijk zou bestellen, niet alleen de beste prijslaag. Als MOQ je dwingt meer te kopen dan je nodig hebt, reken dat dan mee en markeer de offerte als onpraktisch voor die aankoop.
Leg levertijd vast als een aantal dagen en leg wanneer mogelijk ook een beloofde verzend- of leverdatum vast. Dat maakt plannen makkelijker en later kun je beloofde versus daadwerkelijke levering vergelijken om niet steeds leveranciers te kiezen die deadlines missen.
Kies één consistente wisselkoersregel en sla de valuta op bij elke offerte. Als je converteert, bewaar dan de gebruikte FX-rate zodat anderen de berekening kunnen reproduceren en kunnen zien of veranderingen door prijs of door valuta komen.
Sla de offerte op zoals aangeboden, inclusief kosten en voorwaarden, en definieer één standaardberekening voor “total cost” die je team elke keer gebruikt. Zelfs een eenvoudige schatting is beter dan het negeren van vracht, douane, verpakking of betaalkosten die de werkelijke uitgaven vaak veranderen.
Volg beloofde datum versus daadwerkelijke leverdatum en voeg basis kwaliteits- en communicatienotities toe gekoppeld aan orders. Zelfs een lichte scoring helpt voorkomen dat je leveranciers beloont die wel scherp offreren maar vertragingen, geschillen of herhaalde expediting veroorzaken.
Bouw het als een kleine interne app met een “Nieuwe Offerte”-formulier, een per-SKU vergelijkingsweergave en een audittrail voor bijlagen en bewerkingen. No-code tools zoals AppMaster (appmaster.io) kunnen de database, formulieren en dashboards versnellen terwijl je toch productieklare apps kunt uitrollen als de workflow groeit.


