Finance & Control

12.000 producten, 200 winnaars: de SKU-analyse die alles veranderde

Kern van dit verhaal

Een webshop met €6,8M omzet en 12.000 actieve SKU's rapporteerde een brutomarge van 31%. Gezond, dacht de directeur. Pas toen logistiek, retours en klantenservice werden doorberekend per productcategorie bleek dat de meubelcategorie (16% van de omzet) een nettoverlies van 18% draaide, dat €340.000 aan werkkapitaal vastzat in dead stock met minder dan drie orders per jaar, en dat de top-200 SKU's 11% onder marktprijs zaten omdat de pricing gebaseerd was op een catalogus-gemiddelde dat door verliezers werd neergetrokken. De analyse vroeg ook een CLV-berekening per acquisitiekanaal — want één verlieslatende categorie bleek de meest loyale klantgroep te trekken, wat de beslissing aanzienlijk complexer maakte dan "stop ermee."

Brutomarge is het meest misleidende getal in e-commerce. Het vertelt je wat je overhoudt nadat je de inkoopprijs hebt betaald. Maar het vertelt je niet wat er daarna gebeurt: het pakket dat retour komt, de klantenservicetickets per productcategorie, de opslagkosten van traaglopende artikelen, de kortingen die worden weggeven om de voorraad te laten bewegen.

De directeur van deze webshop — actief in woonaccessoires en interieur, B2C, opgericht in 2017 — wist dat niet alle producten even winstgevend waren. Maar hij had geen idee hoe groot het verschil was, en al helemaal niet welke producten de winst maakten en welke hem jaarlijks geld kostten.

De boekhoudwerkelijkheid versus de bedrijfswerkelijkheid

De jaarrekening zag er als volgt uit:

PostBedrag% omzet
Omzet€6.800.000100%
Inkoopwaarde€4.692.00069,0%
Brutomarge€2.108.00031,0%
Logistiek (fulfillment + verzending)€952.00014,0%
Retourverwerking€340.0005,0%
Klantenservice€204.0003,0%
Marketing & overig€476.0007,0%
Netto operationele marge€136.0002,0%

Een netto marge van 2,0% op €6,8M omzet is uiterst kwetsbaar. Eén tegenvallend kwartaal, een stijging van de verzendkosten of een extra retourpiek en het bedrijf staat quitte — of maakt verlies. De directeur wist dit. Maar hij zag geen patroon, geen oorzaak, en daardoor geen oplossing.

Het probleem was dat logistiek, retours en klantenservice als één blok op de P&L stonden. Gemiddeld over alle 12.000 producten. En gemiddelden liegen altijd.

Stap 1: variabele kosten toerekenen per productcategorie

De eerste stap was het uitsplitsen van de drie variabele kostenposten naar productcategorie. Hiervoor werden drie databronnen gecombineerd: het ordermanagementsysteem (Picqer), de klantenservicesoftware (Zendesk) en de retourdata uit de webshopbackend.

De catalogus bestond uit zes categorieën. Wat eruit kwam:

Categorie Omzet­aandeel Bruto­marge Logistiek­kosten Retour­quote Retour­kosten/order Netto­marge
Wanddecoratie (posters, kunst) 28% 44% 8% 4% €1,20 +28%
Textiel (kussens, dekens) 22% 38% 11% 18% €6,40 +9%
Verlichting 19% 29% 16% 14% €9,80 +1%
Meubilair (kleine meubels) 16% 27% 22% 26% €38,00 −18%
Keukenaccessoires 10% 36% 12% 7% €2,10 +17%
Seizoens- & gelegenheidsartikelen 5% 24% 18% 31% €11,50 −22%

De meubelcategorie — 16% van de omzet, €1,1M — leverde een nettoverlies op van 18%. Elke euro omzet kostte €0,18 netto. Dat verlies werd volledig gecamoufleerd door de hoge brutomarge van wanddecoratie. De directeur groeide actief de meubelcategorie omdat de omzet steeg. Hij maakte daarmee zijn verlies groter.

−18%
Nettomarge op de meubelcategorie — de snelst groeiende productgroep in de catalogus. Op €1,1M omzet betekende dit een structureel verlies van €198.000 per jaar. De directeur investeerde actief in marketing voor deze categorie.

Waarom meubels zo zwaar verlieslatend waren

Een brutomarge van 27% klinkt laag, maar niet alarmerend. Het probleem zat in de combinatie van drie factoren die samen optellen:

Hoge logistieke kosten. Meubels zijn zwaar, groot en fragiel. Gemiddelde verzendkosten per order: €22 voor heen, plus €16 retourkosten bij een retour. Op een gemiddelde orderwaarde van €89 zijn die €22 al 24,7% van de verkoopprijs — vóór inkoop.

Een retourquote van 26%. Klanten bestellen een fauteuil, zetten hem neer en vinden de kleur toch niet passen. Of de afmetingen kloppen niet met wat de foto deed vermoeden. Elke retour kost €38 inclusief keuring, herverwerking en afschrijving op beschadigde items — en dat is conservatief. Bij producten met een orderwaarde van €89 is dat 42% van de verkoopprijs voor één op de vier orders.

Hoge klantenservice-ratio. Meubels genereerden verhoudingsgewijs driemaal zo veel supporttickets als wanddecoratie — vragen over montage, beschadigingen bij bezorging, klachten over kleurverschil met de foto. Klantenservice kostte op deze categorie effectief 6% van de omzet, versus 1,2% op wanddecoratie.

Kostenverdeling per €100 omzet — meubels vs. wanddecoratie
Meubels (orderwaarde €89 gem.)
Inkoop
€73
Logistiek
€22
Retours (26%)
€11
Klantenservice
€6
Netto resultaat
−€18
Wanddecoratie (orderwaarde €24 gem.)
Inkoop
€56
Logistiek
€8
Retours (4%)
€1
Klantenservice
€1
Netto resultaat
+€28

Stap 2: de SKU-analyse binnen de winstgevende categorieën

Wanddecoratie was de sterkste categorie — maar ook hier zat grote spreiding. Van de 3.400 actieve SKU's in die categorie leverden 180 producten samen 71% van de categorie-marge op. De overige 3.220 producten genereerden de rest, maar veroorzaakten ook 68% van de klantenservice-uren binnen de categorie: foutieve productomschrijvingen, afwijkende maten, slechte productfoto's die leidden tot verwachtingsklachten.

Dat bracht een tweede inzicht boven tafel: de 180 topproducten werden structureel ondergeprijsd. De gemiddelde verkoopprijs van die producten lag 12% onder het marktniveau — benchmarked tegen drie vergelijkbare webshops. De reden: de prijsstrategie was gebaseerd op een margedoelstelling van 31% brutomarge voor de hele catalogus. Producten die makkelijk 44% of hoger konden dragen werden teruggetrokken naar het gemiddelde, terwijl verlieslatende categorieën het gemiddelde omlaag trokken.

Het paradoxale effect van gemiddelde-gebaseerde pricing: producten die de meeste waarde leveren worden geprijsd alsof ze gemiddeld zijn. Producten die structureel verlies draaien worden niet gecorrigeerd omdat het gemiddelde "oké" lijkt. Het resultaat is een catalogus die actief de winnaars afremt en de verliezers beschermt.

De complicerende factor: CLV per acquisitiekanaal

Voordat de drie beslissingen genomen werden, was er één vraag die de analyse bijna op zijn kop zette: wat als de verlieslatende categorie de meest waardevolle klanten aantrekt?

Dit is de cruciale CLV-vraag (Customer Lifetime Value) bij productbeslissingen. Een product dat per transactie verlies maakt kan nog steeds rationeel zijn als de klant die het koopt daarna structureel hogere marges genereert via vervolgaankopen.

We analyseerden de ordergeschiedenis van klanten die hun eerste aankoop in de meubelcategorie deden versus klanten die startten met wanddecoratie of keukenaccessoires:

Eerste aankoop in categorie Gem. eerste orderwaarde Marge eerste order Gem. orders jaar 1-2 CLV 24 maanden CLV-marge 24 mnd
Wanddecoratie€28+28%3,8€94€24,80
Keukenaccessoires€42+17%4,1€148€28,40
Meubels€89−18%1,4€112€4,20
Textiel€54+9%5,2€196€31,60

De meubelklant heeft na 24 maanden een CLV-marge van slechts €4,20 — vergeleken met €28-31 voor klanten via andere entrycategorieën. De reden: meubelkopers kopen weinig na hun eerste aankoop. Ze zijn geen herhaalaankopers, en hun herhaalaankopen zijn ook niet in de hoge-margecategorieën.

Dit weerlegde de intuïtie dat "meubels als acquisitie-instrument werken." De data liet het tegendeel zien. De meubelcategorie trekt een klanttype dat structureel lage lifetime value heeft — precies het omgekeerde van wat de directeur vermoedde.

Dead stock: het werkkapitaal dat niemand ziet

De catalogusreductie had een neveneffect dat in de analyse pas laat zichtbaar werd: de 4.800 gedeactiveerde SKU's stonden niet voor niets in de catalogus. Er lag voorraad. En die voorraad had werkkapitaal gebonden dat ergens anders beter ingezet kon worden.

Berekening van de dead stock impact:

  • Gemiddelde inkoopwaarde per gedeactiveerde SKU: €68 per eenheid
  • Gemiddelde hoeveelheid op voorraad per SKU: 4,2 eenheden
  • Totale gebonden werkkapitaal: 4.800 × 4,2 × €68 = €1.370.880
  • Opslagkosten per jaar (magazijnhuur, handling): €0,48/eenheid/maand × 20.160 eenheden × 12 = €116.122

Ruim €1,37M aan werkkapitaal zat vast in producten die gemiddeld minder dan eens per vier maanden verkochten — en dan nog verlieslatend. Door uitverkoop, retour aan leverancier (waar mogelijk) en afboeking van restwaarde werden over zes maanden €610.000 aan werkkapitaal vrijgemaakt. Een deel ging naar schuldaflossing (rekening-courant bank), een deel naar extra inkoop van de top-200 winnende SKU's met lagere inkoopprijs bij hogere volumes.

Prijselasticiteitsanalyse: de methode achter de 11% verhoging

De beslissing om de top-200 SKU's gemiddeld 11% in prijs te verhogen klinkt riskant. In de praktijk was het gebaseerd op een concrete elasticiteitsanalyse — niet op intuïtie.

Stap 1: historische prijsvariaties analyseren

Elke webshop heeft periodiek prijsaanpassingen gedaan. Zelfs kleine aanpassingen (2-5%) creëren een natuurlijk experiment: hoe reageerde het volume op die prijswijziging, gecorrigeerd voor seizoensinvloed en marketingspend in dezelfde periode?

Voor 60 van de top-200 producten waren er voldoende historische datapunten om een elasticiteitsschatting te maken. Gemiddelde prijselasticiteit: −0,7. Dit betekent dat een prijsstijging van 10% leidt tot een volumedaling van 7% — een netto positief effect op omzet (omzet stijgt met 2,3%) en een significant positief effect op marge.

Stap 2: benchmarking tegen concurrenten

Voor de overige 140 producten zonder voldoende historische variatie: prijsvergelijking met drie directe concurrenten via een gestructureerde steekproef. De gemiddelde prijspositie van de top-200 was 11% onder het marktgemiddelde — wat duidt op een pricing die conservatiever is dan noodzakelijk.

Stap 3: gefaseerde invoering met monitoring

De prijsverhogingen werden niet in één keer doorgevoerd. Over zes weken werden de producten in vier batches bijgesteld, met wekelijkse monitoring van conversieratio en ordervolume per product. Bij drie producten waarbij de volumedaling hoger was dan de elasticiteitsschatting voorspelde, werd de verhoging teruggedraaid. De rest bleef staan.

De drie beslissingen die volgden

1. Meubelcategorie afbouwen, niet uitbreiden

De actieve uitbreiding van de meubelcategorie werd gestopt. Bestaande voorraad werd uitverkocht zonder bijbestelling. Voor de 40 best lopende meubel-SKU's — met een retourquote onder 15% en een orderwaarde boven €140 — werd een prijsverhoging van gemiddeld 19% doorgevoerd om de logistieke en retourkosten te dekken. Producten onder die drempel: direct gedeactiveerd. Verwacht effect: omzetdaling €400k op meubels, verliesvermindering €198k.

2. Prijsverhoging op de top-200 SKU's — gefaseerd en gemonitord

Op basis van de elasticiteitsanalyse: gemiddeld +11% op de top-200 meest winstgevende producten. Volumedaling verwacht: 7-9%. Netto marge-effect op die producten: +3,2 procentpunten gemiddeld. Werkelijke uitkomst na zes weken: volumedaling 6,4%, marge-effect +3,4pp — iets beter dan verwacht.

3. Catalogusreductie: 4.800 SKU's gedeactiveerd, €610k werkkapitaal vrijgemaakt

Producten met minder dan 3 orders in 12 maanden én negatieve nettomarge: gedeactiveerd. Effect op omzet: minimaal (1,2% van totaal). Effect op werkkapitaal: €610.000 vrijgemaakt. Effect op klantenservice: −31% ticketvolume. Effect op SEO: gemiddeld +4 posities op overblijvende productpagina's door betere page authority-verdeling.

4.800
SKU's gedeactiveerd — 40% van de totale catalogus. Gezamenlijk omzetaandeel: 1,2%. Na deactivering daalden de klantenservicetickets met 31% en verbeterden de Google-rankings van de overblijvende productpagina's met gemiddeld 4 posities.

Het resultaat na twee kwartalen

Situatie voor analyse
Omzet €6,8M
Brutomarge 31,0%
Actieve SKU's 12.000
Retourquote totaal 14,2%
Netto marge 2,0%
Netto resultaat €136.000
Situatie na twee kwartalen
Omzet €6,1M (−10%)
Brutomarge 36,4%
Actieve SKU's 7.200
Retourquote totaal 9,8%
Netto marge 6,8%
Netto resultaat €415.000

Omzet daalde met 10%. Netto resultaat steeg van €136.000 naar €415.000 — een verdrievoudiging. Niet door harder te groeien, maar door te stoppen met producten die groei simuleerden terwijl ze winst wegvraten.

Wat dit niet is

Dit is geen verhaal over het verkleinen van een bedrijf als strategie. Het is een verhaal over zichtbaarheid. De directeur van deze webshop was niet onzorgvuldig. Hij had een boekhouder, een accountant, een maandelijkse P&L. Hij keek naar zijn brutomarge en die was 31% — de norm in zijn sector.

Wat hij niet had, was iemand die de vraag stelde: welke 31% is dat precies? Die logistiekkosten opende per productcategorie in plaats van als totaalpost. Die retourdata koppelde aan SKU-niveau in plaats van er een gemiddeld percentage op los te laten.

De data bestond al. Ze stond in Picqer, in Zendesk, in de webshopbackend. Het kostte drie weken om die samen te brengen, twee weken om te analyseren, en één gesprek om drie beslissingen te nemen die het bedrijfsresultaat in twee kwartalen verdrievoedigden.

Veelgestelde vragen

Hoe bereken je de werkelijke marge per product in een webshop?
Werkelijke nettomarge per SKU = verkoopprijs − inkoopprijs − variabele logistiek (pick, pack, verzending) − (retourquote × verwerkingskosten per retour) − proportioneel aandeel klantenservice op basis van ticketvolume per categorie. De meeste webshops stoppen bij brutomarge en missen daarmee 50-70% van de werkelijke kostenstructuur. Begin met de top-20% van SKU's op omzet — daar zit 80% van het effect.
Hoe gebruik je CLV om de beslissing over verlieslatende producten te nemen?
Analyseer de ordergeschiedenis van klanten gesegmenteerd op hun eerste aankoop-categorie. Bereken per segment: gemiddeld aantal orders per 24 maanden, gemiddelde orderwaarde, gemiddelde marge per order. Vermenigvuldig voor de 24-maands CLV-marge. Als de CLV-marge van een verlieslatende acquisitiecategorie significant hoger is dan alternatieven, is het rationeel die categorie te behouden — zolang je de acquisitiekosten bewust inprijst als marketingkost.
Hoe pak je een prijselasticiteitsanalyse aan voor een webshop?
Drie methoden, in volgorde van betrouwbaarheid: (1) historische prijsvariaties analyseren — elke vorige prijsaanpassing is een natuurlijk experiment. (2) Benchmarken tegen concurrenten op identieke of vergelijkbare SKU's. (3) A/B testen met gefaseerde prijsverhogingen op een deelcatalogus. Elasticiteitswaarden van −0,5 tot −1,0 zijn normaal voor woonaccessoires — een verhoogde prijs van 10% bij elasticiteit −0,7 geeft netto omzetgroei van 3%.
Hoe groot is het werkkapitaalbeslag van dead stock en hoe bereken je dat?
Dead stock werkkapitaalbeslag = aantal gedeactiveerde SKU's × gemiddelde voorraad per SKU × gemiddelde inkoopwaarde per eenheid. Voeg hieraan toe: opslagkosten per eenheid per maand × totale eenheden × maanden op voorraad. Bij brede catalogi loopt dit snel op tot zeven cijfers aan gebonden werkkapitaal dat productief ingezet kan worden zodra de catalogus wordt opgeschoond.
Is SKU-analyse ook relevant buiten e-commerce?
Absoluut. Hetzelfde principe geldt voor elke organisatie met een breed product- of dienstenaanbod: groothandel, installatiebedrijven, softwarebedrijven met tientallen modules, trainingsbedrijven. Zodra je meer dan tien diensten of producten hebt en stuurt op een gemiddelde marge, loop je het risico dat verliezers de winnaars verhullen — en dat je actief investeert in de groei van je verlieslatende activiteiten.

Weten welke producten jouw winst maken — en welke hem wegvreten?

In een gesprek van 30 minuten kijk ik met je mee welke data je hebt en waar de analyse het meeste oplevert.

Gesprek inplannen →