Je Shopify-dashboard zegt dat je bestverkochte hoodie een brutomarge van 45 procent oplevert. Maar dat getal kent alleen de fabrieksprijs. Het is nog nooit in aanraking gekomen met de pick-and-pack-vergoeding, de maandelijkse palletopslag, de zeevracht, het importrecht of de douane-expediteur die de container heeft vrijgegeven — en al die kosten kwamen uit jouw zak voordat een enkele klant op kopen klikte. Voor grensoverschrijdende verkopers is het gat tussen dashboardmarge en werkelijke marge de plek waar winst stilletjes verdwijnt.
Grensoverschrijdend verkopen is allang geen zijproject meer: 59 procent van de wereldwijde shoppers koopt nu bij retailers buiten hun eigen land, en de grensoverschrijdende B2C-markt zal naar verwachting $2,16 biljoen bereiken in 2026. Als je internationaal verkoopt op Shopify, is het afstemmen van fulfillmentkosten en douanerechten in de product-COGS geen geavanceerde boekhouding — het is de enige manier om te weten wat je werkelijk hebt verdiend. Deze gids loopt door de drie kostenstromen in elke grensoverschrijdende order, wie het importrecht boekt onder verschillende leveringsvoorwaarden, hoe je een landed cost per SKU opbouwt, en een maandelijkse routine die elke dollar verantwoord houdt.
De drie kostenstromen in elke grensoverschrijdende order
Een binnenlandse order heeft één kostenverhaal: je hebt het product gekocht of gemaakt, en je hebt het verzonden. Een grensoverschrijdende order heeft er drie, en ze komen op drie verschillende momenten binnen.
Fulfillmentkosten zijn wat het kost om elke eenheid op te slaan, te picken, te packen en te verzenden. Als je een third-party logistics provider (3PL) gebruikt die aan Shopify is gekoppeld, valt een typische factuur uiteen in ontvangst (vaak $10–$20 per pallet), opslag (gewoonlijk rond $25 per pallet per maand, of 20–40 cent per kubieke voet), pick en pack (ongeveer $2,50 per order plus ongeveer 50 cent per extra artikel), plus verpakking, kitting en retourverwerking. Orders met meerdere artikelen kosten meer dan orders met één artikel, langzaam draaiende SKU's stapelen maand na maand opslag op, en geen van deze posten verschijnt in je Shopify-uitbetaling — ze komen binnen als een aparte maandfactuur.
Douanerechten en importbelastingen zijn wat het land van bestemming heft om je goederen binnen te laten. Shopify's Managed Markets-service kan deze berekenen, innen en afdragen bij het afrekenen, en fungeert als merchant of record voor je internationale orders, zodat de koper één landed price ziet zonder verrassingsrekening bij levering. Dat gemak gaat gepaard met een vergoeding per order, en het creëert boekhoudkundige stromen — geïnde rechten en afgedragen rechten — die door je boeken moeten lopen zonder ooit de omzet te raken.
Vracht en uitbetalingsverrekening is de timinglaag. Je Shopify-uitbetaling is een netto afwikkeling: brutoverkoop minus verwerkingskosten, terugbetalingen en aanpassingen, gestort dagen na de verkoop. Inkomende vracht, expeditiekosten en douanerekeningen komen weken later binnen. Afstemmen betekent alle drie de stromen koppelen aan dezelfde verkochte eenheden, ook al duikt het papierwerk een maand later op.
DDP of DAP: wie het recht betaalt, boekt het
Voordat je douanerechten kunt afstemmen, moet je weten van wie ze zijn. De leveringsvoorwaarden op de order bepalen dat.
Onder DDP (Delivered Duty Paid) regel jij — de verkoper — de invoerklaring en betaal jij alle rechten en belastingen. De koper krijgt de goederen zonder dat er nog iets verschuldigd is. Onder DAP (Delivered at Place) lever je de goederen op de bestemming, maar regelt de koper de klaring en betaalt de koper de rechten. (Op vrachtpapieren zie je mogelijk nog de oudere term DDU, Delivered Duty Unpaid; die betekent hetzelfde als DAP en is jaren geleden uit de officiële Incoterms-regels gehaald.)
Dit onderscheid stuurt je boeken:
- DDP-rechten zijn jouw productkosten. Ze kleven aan de verkochte eenheden en horen in de COGS, precies zoals de fabrieksprijs en inkomende vracht.
- DAP-rechten zijn nooit jouw kosten. De koper betaalt rechtstreeks aan de vervoerder of expediteur. Er gaat geen geld door jou heen, dus er komt niets in je boeken — neem ze niet "voor de volledigheid" op in de COGS.
- Bij het afrekenen geïnde rechten onder Managed Markets zijn doorstroomfondsen. Je int ze van de koper en ze worden namens jou afgedragen. Boek de inning als een verplichting (te betalen rechten), niet als omzet, en de afdracht als het vrijwaren van die verplichting, niet als een uitgave. De inning als omzet behandelen blaast zowel je omzet als je kosten met hetzelfde bedrag op en maakt elke margeratio betekenisloos.
Als je DDP- en DAP-orders door elkaar hebt — gebruikelijk wanneer je DDP verkoopt in je grootste markten en DAP overal elders — tag dan de leveringsvoorwaarden op elke order vóór maandeinde. Een enkel gemengd rechtstarief toegepast op alle internationale verkopen overschat de COGS op DAP-orders en onderschat die op DDP-orders.
Douanerechten zijn voorraadkosten, geen uitgave
Hier is de regel die de meeste kleine verkopers fout doen: importrechten op goederen die je zult doorverkopen maken deel uit van de kostprijs van de goederen, niet van een periode-uitgave. Onder U.S. GAAP definieert ASC 330 voorraadkosten als alle uitgaven die worden gedaan om een artikel in zijn bestaande staat en locatie voor verkoop te brengen — en de accounting-richtlijnen zijn expliciet dat tarieven en rechten die worden betaald om goederen te importeren voorraadkosten zijn. Ze staan op de balans in de voorraadwaarde en stromen alleen naar de COGS wanneer de eenheden worden verkocht.
Waarom dit in de praktijk belangrijk is:
- Rechten als uitgave boeken in de maand dat je ze betaalt, trekt kosten naar voren. Een douanerekening van $1.400 die in maart wordt betaald voor hoodies die tot augustus worden verkocht, moet de COGS van maart tot augustus belasten, niet de marge van maart verpletteren terwijl de zomer wordt geflatteerd.
- Rechten kapitaliseren houdt de voorraad eerlijk. Als rechten 10–20 procent van je kostprijs per eenheid zijn en je boekt ze als uitgave, dan onderschat je balans elke maand van het jaar de voorraad — en elke kredietverstrekker die meeleest ziet een dunnere activabasis dan je werkelijk bezit.
- Kleine wederverkopers zijn niet vrijgesteld van het concept. Bedrijven onder de geïndexeerde drempel van $25 miljoen bruto-ontvangsten krijgen verlichting van de complexe UNICAP-kapitalisatieregels, maar gewone aanschafkosten — aankoopprijs, vracht-in, rechten — blijven aan de voorraad kleven onder de standaard voorraadregels.
Dezelfde logica geldt voor inkomende vracht, vrachtverzekering en expeditiekosten die verband houden met het naar je magazijn brengen van goederen. Wat er niet onder valt, is alles nadat de goederen klaar zijn voor verkoop: doorlopende magazijnopslag, pick-and-pack, uitgaande verzending en retourverwerking zijn operationele uitgaven van de periode, geen productkosten. De scheidslijn is beschikbaarheid voor verkoop — kosten om voorraad verkoopklaar te maken kleven aan eenheden; kosten om verkochte eenheden op te slaan en te verplaatsen raken de maand.
Bouw de landed cost voor elke SKU
Landed cost is de werkelijke kostprijs per eenheid om een product verkoopklaar te maken: aankoopprijs plus elke toegerekende aanschafkost. De formule is eenvoudig:
Landed cost = productkost + vracht + verzekering + rechten + expeditie en behandeling, toegerekend over de eenheden.
Toerekening is waar verkopers struikelen. Een container bevat veel SKU's, maar de vrachtfactuur toont één getal. Kies één consistente methode — per eenheden, per gewicht of per waarde — en houd die het hele jaar aan. Waardetoerekening past bij catalogi met gemengde marges; gewichtstoerekening bij zware goederen; per eenheid bij zendingen met één SKU. Consistentie is belangrijker dan verfijning, want van methode wisselen midden in het jaar maakt periodevergelijkingen nutteloos.
Een uitgewerkt voorbeeld maakt dit concreet. Stel dat je 400 hoodies importeert:
| Kostencomponent | Zendingtotaal | Per eenheid |
|---|---|---|
| Fabrieksprijs ($14 per stuk) | $5.600 | $14,00 |
| Zeevracht | $1.200 | $3,00 |
| Vrachtverzekering | $100 | $0,25 |
| Importrechten en tarieven | $1.400 | $3,50 |
| Expeditie- en havengelden | $300 | $0,75 |
| Totale landed cost | $8.600 | $21,50 |
Je "echte" kostprijs per eenheid is $21,50, niet $14 — meer dan 50 procent hoger dan de fabrieksofferte. Prijs op basis van $14 en een dashboardmarge van 45 procent is werkelijk ongeveer een marge van 16 procent voordat fulfillmentkosten zelfs maar in beeld komen. Zodra landed costs als voorraadpartijen in je boeken staan, laat het volgen van hoe ze in de tijd verschuiven — terwijl vracht- en rechtstarieven bewegen — je precies zien wanneer een SKU een prijsverhoging nodig heeft. Een visueel dashboard zoals Fava maakt die verschuiving gemakkelijk te spotten over je hele catalogus.
Ververs landed costs volgens een schema, niet wanneer je eraan denkt. Vracht- en rechtstarieven bewegen constant; een landed cost die in januari één keer is berekend, is fictie tegen oktober. Herbereken per SKU minstens per kwartaal, en onmiddellijk na elke zending waarvan de vracht- of douanerekening wezenlijk anders lijkt dan de vorige.
Stem de uitbetaling af: bruto-naar-netto met fulfillmentposten
Shopify-uitbetalingsafstemming voor een grensoverschrijdende verkoper heeft één stap meer dan de binnenlandse versie: het uitbetalingsrapport is slechts het eerste van drie brondocumenten. Hier is de maandelijkse routine.
Stap 1: Ontleed elke uitbetaling bruto-naar-netto. Begin voor elke Shopify-uitbetaling in de maand bij het afwikkelingsdetail, niet bij de storting. Boek brutoverkoop naar omzet, verwerkingskosten naar een kostenrekening voor vergoedingen, terugbetalingen naar een contra-omzet- of terugbetalingsrekening, geïnde omzetbelasting en geïnde rechten naar hun te betalen rekeningen, en leid het netto door een clearingrekening die de bankstorting vervolgens op nul zet. Het clearingsaldo van elke uitbetaling moet terugkeren naar nul; een restsaldo is een ontbrekende terugbetaling, vergoeding of aanpassing.
Stap 2: Koppel de 3PL-factuur aan de zendingen van de maand. Je fulfillmentfactuur haalt niets van de uitbetalingen af — het is een losse rekening, meestal maandelijks. Splits die in zijn componenten: ontvangst en inkomende behandeling kleven aan de voorraadpartijen die ze hebben ontvangen (voeg ze toe aan de landed cost), terwijl opslag, pick-and-pack, uitgaande verzending en retouren naar operationele kostenrekeningen gaan. Koppel vervolgens de pick-and-pack-post aan orderaantallen: als je 1.200 orders hebt verzonden en er 1.200 picks plus 300 kosten voor extra artikelen in rekening zijn gebracht, moet de rekensom overeenkomen met je orderrapport binnen een kleine tolerantie voor vervangingen en gesplitste zendingen.
Stap 3: Accrueer wat nog niet is gefactureerd. Aan het einde van de maand zul je altijd niet-gefactureerde fulfillment hebben: orders die in de laatste week zijn verzonden en die de volgende 3PL-factuur zal opvangen, en containers die door de expediteur zijn vrijgegeven waarvan de rekening volgende maand komt. Schat beide op basis van recente gemiddelden en boek een accrual (debiteer de kosten- of voorraadrekening, crediteer overlopende verplichtingen), en draai die terug wanneer de echte factuur wordt geboekt. Zonder deze stap ziet de laatste week van elke maand er kunstmatig winstgevend uit.
Stap 4: Ruim de doorstroom van rechten op. Tel de bij het afrekenen geïnde rechten op tegen de rechten die via Managed Markets zijn afgedragen of aan je expediteur zijn betaald. De te betalen rekening moet elke maand naar bijna nul gaan. Een groeiend creditsaldo betekent innen die je nooit hebt afgedragen — een verplichting die je verschuldigd bent, geen winst. Een groeiend debetsaldo betekent dat je rechten uit eigen zak hebt betaald (waarschijnlijk DDP-orders) die moeten worden geherclassificeerd naar de COGS.
Stap 5: Stem vreemde valuta apart af. Grensoverschrijdende verkopers betalen leveranciers vaak in één valuta, innen in meerdere en wikkelen uitbetalingen af die naar de thuisvaluta zijn omgerekend. Boek leveranciersfacturen tegen de contante koers op de factuurdatum, boek betalingen tegen de afwikkelingskoers, en laat het verschil naar valutawinst of -verlies vallen — nooit in de COGS, waar het productmarges zou vertekenen. Hetzelfde geldt voor conversieverschillen van uitbetalingen bij Shopify.
Het boeken van deze journaalposten is eenvoudig zodra de rekeningen bestaan: een clearingrekening per kanaal, aparte kostenrekeningen voor elk vergoedingstype, en te betalen posten voor belasting en rechten. Als je je boeken in platte tekst bijhoudt, lopen de documentatie precies dit soort rekeningstructuur door.
Vijf fouten die je COGS onderschatten
1. De netto-uitbetaling als omzet boeken. Het vastleggen van de storting van $36.400 in plaats van $39.800 aan brutoverkoop onderschat de omzet en verbergt elke onderweg afgetrokken vergoeding. Je 1099-K rapporteert het bruto aan de belastingdienst; je boeken moeten daarmee overeenkomen.
2. Rechten als uitgave boeken in de maand van betaling. Een douanerekening is geen kantoorbenodigdheid. Kapitaliseer die in de voorraadpartij die ermee is vrijgegeven, en laat die de COGS bereiken naarmate die eenheden worden verkocht. Onmiddellijke uitgave schuift kosten naar de verkeerde periode en onderschat je voorraadactief.
3. Elke fulfillmentdollar in dezelfde emmer gooien. Inkomende ontvangst die goederen verkoopklaar maakt, kleeft aan eenheden; maandelijkse opslag en pick-and-pack per order zijn operationele periode-uitgaven. Ze vermengen overschat óf de COGS (opslag in productkost) óf onderschat die (ontvangst in algemene kosten). Splits de 3PL-factuur elke maand.
4. Geïnde rechten als omzet boeken. Rechten die je bij het afrekenen int en afdraagt, zijn fondsen in agentuur, geen verkopen. Ze als omzet boeken blaast je topline op en — wanneer je de afdracht als uitgave boekt — ook je kosten, waardoor margeratio's pure ruis worden. Leid ze in plaats daarvan door een te betalen rekening.
5. De laatste mijl van FX vergeten. Leveranciersfacturen in euro's, uitbetalingen omgerekend van ponden, rechten betaald in Canadese dollars — elke conversie creëert een kleine winst of verlies. Individueel triviaal, collectief materieel, en ze horen in FX-winst/-verlies, niet begraven in productkost of genegeerd in de clearingrekening.
Je maandelijkse checklist voor de grensoverschrijdende afsluiting
Loop deze checklist door voordat je de boeken elke maand afsluit:
- Elke Shopify-uitbetaling bruto-naar-netto ontleed; alle clearingrekeningen op nul
- 3PL-factuur gesplitst: inkomende kosten naar voorraadpartijen, opslag en pick-pack naar operationele kosten
- Pick-aantallen gekoppeld aan verzonden orderaantallen binnen tolerantie
- Accruals geboekt voor niet-gefactureerde fulfillment aan het einde van de maand en expediteursrekeningen
- Te betalen rechten opgeruimd: innen gekoppeld aan afdrachten, DDP-uit-eigen-zak geherclassificeerd naar COGS
- Landed costs verversd voor elke SKU met een nieuwe zending deze maand
- FX-winsten en -verliezen gescheiden van productkost
- Voorraadroll-forward klopt: beginsaldo plus aankopen en gekapitaliseerde kosten, minus COGS, is gelijk aan eindsaldo
Houd je grensoverschrijdende marges eerlijk
Het afstemmen van fulfillmentkosten en rechten is het verschil tussen een marge waarvan je hoopt dat die echt is en een die je kunt bewijzen. Beancount.io biedt plain-text accounting die je volledige transparantie en controle geeft over je financiële gegevens — geen black boxes, geen vendor lock-in. Begin gratis en zie waarom ontwikkelaars en finance-professionals overstappen op plain-text accounting.





