Een ABC-analyse verdeelt je producten in drie klassen op basis van hoeveel ze bijdragen aan een gekozen waarde, meestal omzet of brutowinst over een vaste periode. A-producten zijn de paar artikelen die samen zo'n 80% van die waarde opleveren, B-producten de volgende 15% en C-producten de laatste 5%. Het is het Pareto-principe toegepast op je assortiment, en het laat zien waar strakke controle en extra aandacht zich terugbetalen.
Voorraadteams gebruiken de klassen voor bestelregels, veiligheidsvoorraad en tellingen. Voor een webshop bepaalt dezelfde rangorde ook waar het werk aan productdata als eerste heen gaat: welke productpagina's nu complete attributen, extra foto's en vertalingen krijgen, en welke kunnen wachten of uit het assortiment gaan. Hieronder vind je de formule, een rekenvoorbeeld met 14 producten op twee manieren gerangschikt, de XYZ-analyse voor schommelende vraag en de valkuilen die een product in de verkeerde klasse zetten.
De ABC-analyse berekenen in vijf stappen
Er bestaat geen officiële grens. Het ABC-rapport van Shopify deelt A-producten in rond 80% van de omzet, B rond 15% en C rond 5%, terwijl het schoolvoorbeeld op Wikipedia 70%, 25% en 5% gebruikt. Kies je grenzen één keer en houd ze vast, zodat een klasse elk kwartaal hetzelfde betekent.
- Kies de waarde en de periode. Omzet, brutowinst of verkochte stuks, over een periode die lang genoeg is om losse grote orders uit te middelen: 8 tot 13 weken voor een snel draaiend assortiment, 12 maanden voor een seizoensassortiment.
- Haal één regel per product op met die waarde uit je webshop of orderexport. Trek retouren en terugbetalingen eraf waar dat kan, anders lijkt een product dat vaak terugkomt sterker dan het is.
- Sorteer de regels van hoog naar laag.
- Bereken het cumulatieve aandeel per regel: het lopende totaal gedeeld door het eindtotaal.
- Wijs de klasse toe. A zolang het cumulatieve aandeel 80% of minder is, B tot en met 95%, C voor de rest.
In een spreadsheet zijn dat drie kolommen: aandeel = waarde / SOM(waarde), cumulatief = vorige cumulatief + aandeel, en een ALS-formule op de cumulatieve kolom voor de klasse. De klasse is zo goed als de waardekolom, dus het meeste werk zit in stap 2.
Rekenvoorbeeld: 14 outdoorproducten op omzet en op winst
Een fictieve outdoorwinkel verkocht in acht weken voor EUR 100.000 aan 14 producten. De tabel rangschikt ze op omzet en doet daarna hetzelfde op brutowinst (omzet maal brutomarge, in totaal EUR 43.780), met dezelfde grenzen van 80% en 95%.
ABC-klassen voor 14 outdoorproducten, op omzet en op brutowinst
| Merino thermoshirt | 24.000 | 24,0% | A | 55% | 13.200 | A |
|---|---|---|---|---|---|---|
| Waterdichte wandeljas | 19.500 | 43,5% | A | 45% | 8.775 | A |
| Trailrunschoenen | 15.000 | 58,5% | A | 30% | 4.500 | A |
| Trekkingrugzak 60 L | 12.500 | 71,0% | A | 40% | 5.000 | A |
| Donzen slaapzak | 9.000 | 80,0% | A | 25% | 2.250 | B |
| Thermosfles 1 L | 5.500 | 85,5% | B | 50% | 2.750 | A |
| Wandelstokken (paar) | 4.000 | 89,5% | B | 45% | 1.800 | B |
| Hoofdlamp 400 lm | 3.000 | 92,5% | B | 35% | 1.050 | B |
| Merino wandelsokken 3-pack | 2.500 | 95,0% | B | 65% | 1.625 | B |
| Titanium kampeermok | 1.800 | 96,8% | C | 55% | 990 | C |
| Drybag 10 L | 1.400 | 98,2% | C | 60% | 840 | C |
| Gamaschen | 900 | 99,1% | C | 50% | 450 | C |
| Opvouwbare spork | 500 | 99,6% | C | 70% | 350 | C |
| Kaartkompas | 400 | 100,0% | C | 50% | 200 | C |
Op omzet maken vijf producten 80% van de verkoop. Op brutowinst stijgt de thermosfles van 1 liter naar A dankzij zijn marge van 50%, en zakt de donzen slaapzak naar B: EUR 9.000 omzet tegen 25% marge laat EUR 2.250 brutowinst over, minder dan de EUR 2.750 van de fles. Met maar 14 producten is A ruim een derde van het assortiment; in een catalogus met een lange staart van langzame verkopers is het een veel kleiner deel van het aantal SKU's.
Omzet, brutowinst of aantallen: waarop rangschik je?
Omzet is de standaard omdat elke webshop die heeft. Het rapport van Shopify rekent volgens de Help Center-pagina met de verkoopprijs van artikelen, zonder kortingen en zonder naar de kostprijs te kijken. Een product met veel korting lijkt daardoor sterker dan wat het werkelijk opbracht, en een bestseller met een lage marge telt even zwaar als een product met een hoge marge.
- Omzet past bij voorraad- en servicekeuzes: een A-product dat uitverkocht raakt, kost de meeste verkopen.
- Brutowinst past bij keuzes over tijd en geld: contentwerk, advertentiebudget en assortimentsrondes. Je hebt dan een kostprijs per product nodig. Wil je ook kanaalkosten en andere variabele kosten meenemen, rangschik dan op contributiemarge.
- Verkochte aantallen passen bij magazijnwerk: welke producten de dichtstbijzijnde picklocatie krijgen en hoe vaak je een locatie telt.
Veel teams draaien twee rangordes en handelen op de verschillen. Een product dat A is op omzet en C op winst is een prijs- of inkoopvraag, geen contentvraag. Rangschik je per categorie in plaats van over de hele winkel, dan krijgt je assortimentsplanning per categorie een lijst van trekkers en achterblijvers.
XYZ-analyse: hoe voorspelbaar is de vraag?
ABC zegt hoeveel een product waard is. XYZ zegt hoe voorspelbaar de vraag is. Neem de verkochte stuks per week, deel de standaarddeviatie door het gemiddelde en je hebt de variatiecoëfficiënt (VC). Een lage VC betekent stabiele vraag, een hoge VC pieken of weken zonder verkoop.
Ook voor XYZ bestaat geen vaste grens, en planningstools kiezen elk hun eigen grenzen. Dit voorbeeld gebruikt X onder 0,5, Y van 0,5 tot 1,0 en Z vanaf 1,0. Zie die grenzen als een eerste keuze en test ze op je eigen verkoophistorie: valt bijna elk product in Z, dan liggen ze te laag voor jouw assortiment. Toegepast op drie producten uit het voorbeeld over dezelfde acht weken (standaarddeviatie van de populatie, STDEV.P in Excel):
- Merino thermoshirt: 40, 44, 38, 42, 41, 39, 43 en 41 stuks. Gemiddelde 41, standaarddeviatie 1,9, VC 0,05: AX.
- Hoofdlamp 400 lm: 14, 2, 9, 17, 2, 10, 4 en 14 stuks. Gemiddelde 9, standaarddeviatie 5,5, VC 0,61: BY.
- Donzen slaapzak: 2, 9, 0, 0, 14, 3, 0 en 4 stuks. Gemiddelde 4, standaarddeviatie 4,7, VC 1,18: AZ op omzet, BZ op winst.
Haal bekende seizoenspatronen eruit voordat je de VC berekent, anders belandt elk winterproduct in Z. Vergelijk elke week met dezelfde week vorig jaar, of bereken de VC alleen binnen het seizoen, zodat de klasse over grilligheid gaat en niet over de kalender.
De ABC-XYZ-matrix: negen combinaties en hun aanpak
Als je de twee rangordes kruist, krijg je negen vakken. De voorraadregels hieronder zijn gangbare startpunten; stem ze af op je levertijden en op wat een lege plank je kost.
ABC-XYZ-matrix: voorraadaanpak per vak
| A | Automatisch bijbestellen, lage veiligheidsvoorraad, vaak tellen | Voorspellen met seizoenspatroon, wekelijks voorraad bekijken | Buffervoorraad of bestellen op bevestigde vraag; zoek uit wat de pieken veroorzaakt |
|---|---|---|---|
| B | Standaard bestelpunten, maandelijks bekijken | Periodiek bekijken met een gemiddelde buffer | Bestellen op vraag waar de levertijd van de leverancier dat toelaat |
| C | In grote partijen inkopen, weinig aandacht | Minimale voorraad, kandidaat voor bundels | Op bestelling inkopen, dropshippen of uit het assortiment |
Productdata volgt dezelfde logica. AX-producten verkopen elke week, dus een gat in hun productpagina kost elke week omzet. AZ-producten hebben complete data nodig vóór de piek, niet erna: een slaapzak die de ene week 14 keer verkoopt en de volgende week niet, moet online staan, vertaald zijn en in elke feed zitten voordat het koud wordt.
A-, B- en C-producten anders behandelen in je catalogus
De meeste voorraadgidsen stoppen bij bestelregels. Voor een webshop is de rangorde ook een werklijst voor productdata, want een ontbrekende maattabel of een leeg materiaalveld kost het meest bij de producten die het meest verkopen.
A-producten: complete data op elk kanaal, als eerste gecontroleerd
A-producten krijgen de volledige behandeling en een vaste controle, zodat er niets ongemerkt misgaat op de productpagina's die je omzet dragen.
Checklist productdata voor A-producten
B-producten: vul de attributen waarop klanten filteren en vergelijken
B-producten zijn de volgende laag en hebben de meeste kans om door te groeien. Vul de attributen die je filters en vergelijkingstabellen gebruiken, zodat het product verschijnt als een klant een lijst verfijnt, en zorg dat het op elk kanaal staat. Hier zit meestal het grootste gat: in het rapport Staat van productdata van WISEPIM had de mediane catalogus die attributen gebruikte, ze bij binnenkomst op 1,9% van de producten ingevuld.
C-producten: sjablonen, bundels of afscheid
C-producten leveren samen 5% van de waarde, dus ze krijgen de goedkoopste aanpak die nog klopt: omschrijvingen die met een sjabloon uit attributen worden opgebouwd, één goede foto, en alleen een plek in feeds als ze door de basiscontroles komen. Kijk voordat je er een schrapt wat het voor andere producten doet. Een spork die bij de helft van de slaapzakken wordt meegekocht, kan A-omzet beschermen. De rest is kandidaat voor SKU-rationalisatie.
Wat de outdoorwinkel na de rangorde van zijn 14 producten verandert
Terug naar het voorbeeld. De rangorde levert pas iets op als er een korte lijst wijzigingen uit komt, met een eigenaar en een datum. Voor deze winkel ziet de lijst na één ronde er zo uit:
- Merino thermoshirt (AX): de stabielste verkoper en de grootste winstpost. Controleer elke maand de maat- en pasvormgegevens, wasvoorschriften en vertalingen, en zet automatisch bijbestellen aan. Niets nieuws bouwen, alleen beschermen.
- Thermosfles (B op omzet, A op winst): geef hem meer aandacht. Hij krijgt de A-checklist, een eigen titel per marktplaats, en is een logische aanvulling naast de jas en de rugzak.
- Donzen slaapzak (AZ op omzet, BZ op winst): zet hem compleet online voor de herfst, bestel alleen voor de koude maanden op basis van de verwachting, en bespreek de marge van 25% met de leverancier voor het volgende seizoen.
- Hoofdlamp (BY): vul de attributen waarop klanten vergelijken, zoals lumen, type batterij, lichtbereik en waterdichtheidsklasse, zodat hij in filters naast de concurrerende modellen verschijnt.
- Spork en kompas (C): houd de spork als de orderdata laten zien dat hij met slaapzakken wordt meegekocht; geef beide een sjabloonomschrijving uit attributen en één foto, en besteed er verder geen tijd aan.
Vijf wijzigingen met elk een eigenaar is een beter resultaat van een ABC-ronde dan een spreadsheet vol kleuren. Volgend kwartaal laat dezelfde rangorde zien of de fles in A is gebleven en of de marge op de slaapzak beter is geworden.
Vijf manieren waarop een ABC-rangorde je misleidt
- Uitverkochte producten. Een product dat drie van de acht weken niet op voorraad was, verkocht minder omdat het niet kon verkopen. Bekijk de sell-through rate en het aantal dagen op voorraad voordat je het lager indeelt.
- Nieuwe producten. Een introductie met vier weken historie valt standaard in C. Houd nieuwe artikelen in een aparte klasse tot ze een volledige periode hebben.
- Seizoen. Een periode van acht weken in het voorjaar zet slaapzakken laag. Rangschik seizoensproducten over het hele seizoen of over 12 maanden.
- Hoofdproduct of variant. Rangschik je varianten, dan valt een sterk model uiteen in veel C-maten; rangschik je hoofdproducten, dan verdwijnt een kleur die niet verkoopt uit beeld. Rangschik op het niveau waarop je beslist: het model voor content, de variant voor voorraad.
- Aanvullende producten. Een C-accessoire dat in veel A-orders zit, houdt die orders compleet. Kijk welke producten samen worden gekocht voordat je het uit het assortiment haalt.
ABC-klassen opslaan als productdata
Draai de rangorde maandelijks of per kwartaal opnieuw met dezelfde waarde, periode en grenzen, en bewaar de vorige klasse naast de nieuwe. Een product dat van B naar A gaat is een signaal; een product dat van A naar C zakt is een alarm. Een klasse die alleen in een spreadsheet staat, gebruik je één keer. Sla je hem op als twee productattributen, bijvoorbeeld abc_klasse en xyz_klasse, dan kun je er filters, werklijsten en advertentiecampagnes op baseren.
Google Shopping laat zien waarom. Met custom labels groepeer je producten voor biedingen en rapportages in Performance Max-, Shopping- en Demand Gen-campagnes: vijf labels, custom_label_0 tot en met custom_label_4, elke waarde 1 tot 100 tekens, maximaal 1.000 unieke waarden per label. Koppel abc_klasse aan een van die labels en je kunt hoger bieden op A-producten en de uitgaven aan C beperken. Klanten zien de labels nooit.
WISEPIM is geen voorraadsysteem: het houdt geen voorraad bij, plaatst geen inkooporders en berekent geen ABC-klassen. Het is wel de plek waar de klasse naast de rest van je productdata kan staan: importeer de klassekolom uit je spreadsheet met een CSV-import die alleen bestaande producten bijwerkt, filter je catalogus erop om verrijking en kwaliteitsfixes eerst op A-producten te draaien, en koppel de klasse aan een custom label in een Google Shopping-feed in Feed Hub. Voor het beeld per categorie zet Category Insights de verkoop per categorie naast de datakwaliteit van wat er besteld is.
Voor de voorraadkant leest de pagina Inkoopplanning in de analytics van WISEPIM orders en voorraadstanden uit gekoppelde winkels, zet producten op volgorde van het aantal dagen voorraad dat ze bij het recente verkooptempo nog hebben, en stelt een bestelhoeveelheid voor op basis van je levertijd en veiligheidsvoorraad. Bestellen doe je zelf. De pagina rangschikt op urgentie, niet op waarde, dus ze vult een ABC-klasse aan in plaats van die te vervangen: een A-product dat nu besteld moet worden, pak je als eerste op. Wil je omloopsnelheid zelf omrekenen naar dagen voorraad, gebruik dan de voorraadrotatie calculator.

