Food cost berekenen voor restaurants: de complete gids
Food cost percentage = (inkoopwaarde verkochte producten ÷ omzet) × 100. Maar dat getal op zichzelf zegt bijna niets. Een restaurant met 31% totale food cost kan op gerechtniveau zes verlieslatende items verbergen achter twaalf sterke marges. De echte analyse begint bij de food cost variance: het verschil tussen theoretische en werkelijke kosten, uitgesplitst naar een prijs-effect, een volume-effect en een mix-effect. Pas als je die drie componenten uit elkaar trekt, weet je welke knop je moet draaien — en het antwoord is zelden alleen "portioner strikter."
Een casual dining restaurant in Amsterdam had een food cost van 31,4% over het afgelopen kwartaal. Zit binnen de norm. Niets aan de hand — zo redeneerde de eigenaar. Totdat we per gerecht gingen kijken en ontdekten dat achter dat gemiddelde zes gerechten verborgen zaten met een food cost boven de 44%, die volledig gecompenseerd werden door vier high-margin items. Het restaurant draaide in feite twee aparte businesses: een winstgevende en een verlieslatende. Het gemiddelde verborg allebei.
Dit artikel gaat verder dan de basisformule. Het laat zien hoe je food cost variance uitsplitst naar drie componenten, hoe yield-correctie werkt bij vlees en vis met leverancierswisselingen, en wat je concreet doet als de analyse wijst op een mix-probleem in plaats van een inkoopprobleem.
De basisformule — en waarom die onvoldoende is
Food cost percentage wordt op twee niveaus berekend: voor het hele restaurant en per gerecht. Beide heb je nodig — maar ze stellen heel verschillende vragen.
Het restaurant-niveau geeft je het gemiddelde. Het gerecht-niveau geeft je de oorzaak. Maar zolang je niet weet welke oorzaak — prijs, portie of mix — kun je niet gericht ingrijpen.
Normen per restauranttype
| Concept | Gezonde food cost | Aandachtgrens | Typische valkuil |
|---|---|---|---|
| Fine dining | 28 – 32% | > 36% | Dagverse producten met hoge yield-variatie |
| Casual dining | 30 – 34% | > 38% | Mix-effect door hoge verkoop goedkope items |
| Fastcasual / bistro | 25 – 30% | > 34% | Portioneringsfouten bij hoog volume |
| Bedrijfscatering | 32 – 38% | > 42% | Contractprijzen die niet geïndexeerd zijn |
| Bakkerij / lunch | 28 – 34% | > 38% | Verspilling door te grote productie runs |
Food cost variance: de drie componenten die je moet uit elkaar trekken
Het verschil tussen theoretische food cost (wat je zou moeten kosten bij perfecte uitvoering) en werkelijke food cost (wat je daadwerkelijk uitgeeft) heet de food cost variance. Een variance van 2–3% is acceptabel. Daarboven is altijd een specifieke oorzaak aan te wijzen — maar die oorzaak is niet altijd dezelfde.
Er zijn precies drie mechanismen die een variance veroorzaken, en ze vragen elk een andere reactie:
Component 1: het prijseffect
De werkelijke inkoopprijs wijkt af van de prijs waarmee de theoretische cost is berekend. Dit is de meest zichtbare oorzaak — en ook de meest misleidende, omdat ondernemers hem gebruiken om andere variances te maskeren. Bereken het prijseffect als:
Bij het Amsterdam-restaurant zagen we dat zalmprijzen in het kwartaal met 14% waren gestegen. De theoretische receptuurcost was niet bijgewerkt. Op een verkoopvolume van 420 porties zalm (€19,50 per portie) leidde dit tot een prijseffect van +€840 in het kwartaal — op zichzelf behapbaar. Maar gecombineerd met de andere twee effecten vertelde dit een ander verhaal.
Component 2: het volume-effect (portionering + verspilling)
Het werkelijk verbruikte volume wijkt af van het theoretisch benodigde volume. Dit omvat portioneringsfouten, verspilling door slechte mis-en-place planning, personeelsmaaltijden, proefpotten en niet-geregistreerde consumptie.
In het Amsterdam-restaurant bleek het volume-effect bij vlees structureel positief: gemiddeld 18 gram per portie meer dan de receptuur voorschreef. Op 380 porties entrecôte per kwartaal en een inkoopprijs van €28/kg is dat: 0,018 kg × 380 × €28 = €191 aan extra kosten. Klein op zichzelf, maar structureel en volledig stuurbaar.
Component 3: het mix-effect
Dit is het lastigste effect — en het meest onderschatte. De verkochte productmix wijkt af van de aangenomen mix waarmee de theoretische food cost berekend is. Als gasten vaker kiezen voor low-margin gerechten en minder voor high-margin items, stijgt de totale food cost zonder dat er iets mis is met portionering of inkoop.
In Amsterdam: de risotto (food cost 42%) werd door een speciale aanbieding op social media ineens 60% vaker besteld dan historisch normaal, terwijl de pasta (food cost 26%) corresponderende daalde. Mix-effect over het kwartaal: +€1.620. Niet zichtbaar zonder de uitsplitsing.
Yield-analyse: de berekening die de meeste chefs fout doen
Yield is het percentage van een ingekocht product dat bruikbaar is na schoonmaken, snijden of bereiden. Het klinkt eenvoudig. Maar in de praktijk zijn er drie subtiliteiten die de berekening systematisch fout doen gaan.
Subtiliteit 1: yield verschilt per leverancier
Een zalmfilet van leverancier A heeft een yield van 91% (weinig graat, nette snit). Dezelfde filet van leverancier B heeft een yield van 84% door een andere snijwijze. Als je inkoopprijs A is €18,50/kg en prijs B is €17,20/kg, lijkt B goedkoper. Maar de effectieve kosten per netto kilogram bruikbaar product zijn:
- Leverancier A: €18,50 ÷ 0,91 = €20,33/kg netto
- Leverancier B: €17,20 ÷ 0,84 = €20,48/kg netto
Leverancier B is per bruikbaar kilogram duurder — ondanks de lagere factuurprijs. Dit type vergelijking wordt zelden gemaakt, omdat inkoop op brutoprijzen vergelijkt terwijl de keuken op netto gewichten werkt.
Subtiliteit 2: yield verandert met seizoen
Asperges hebben in april een yield van 72%, in mei 78%. Courgette loopt in de zomer op naar 90%, daalt in de herfst naar 82%. Als je receptuurcosts op vaste yield-percentages zijn gebaseerd, en je koopt seizoensgebonden, is je theoretische food cost structureel verkeerd — niet door portioneringsfouten maar door een verkeerde aanname.
Subtiliteit 3: kookverlies telt mee
Vlees verliest bij bereiden 20-35% gewicht door kookverlies (vochtverlies bij verhitting). Een entrecôte van 250g bruto, yield 94% na schoonmaken (235g netto), verliest bij medium-rare bereiden nog eens 22%: uiteindelijk 183g op het bord. De werkelijke effectieve yield is niet 94% maar 73%. Op een inkoopprijs van €28/kg is de kostprijs per portie niet €6,58 maar €9,56.
| Product | Brutogew. | Yield schoonmaken | Kookverlies | Effectief nettogew. | Inkoopprijs/kg | Werkelijke kostprijs |
|---|---|---|---|---|---|---|
| Entrecôte | 250g | 94% | 22% | 183g | €28,00 | €7,00 |
| Zalmfilet (leverancier A) | 220g | 91% | 12% | 176g | €18,50 | €4,07 |
| Zalmfilet (leverancier B) | 220g | 84% | 12% | 163g | €17,20 | €4,04 |
| Asperge (april) | 180g | 72% | 8% | 119g | €6,80 | €1,22 |
| Asperge (mei) | 180g | 78% | 8% | 133g | €5,40 | €0,97 |
De conclusie over de zalmfilets: leverancier B is per portie marginaal goedkoper (€4,04 vs. €4,07) — maar pas nadat je kookverlies meerekent. Zonder die stap had de inkoper de verkeerde conclusie getrokken.
Menu engineering: het vierkwadrantenmodel dat de prioriteit bepaalt
Zodra je food cost per gerecht hebt berekend, combineer je die met verkoopvolume in een menu engineering matrix. Dit model stamt oorspronkelijk van Kasavana & Smith (1982), maar is in de praktijk het meest bruikbare instrument om te bepalen wáár je actie nodig is.
| Kwadrant | Populair? | Hoge marge? | Naam | Actie |
|---|---|---|---|---|
| I | Ja | Ja | Stars | Beschermen, eventueel prijs verhogen |
| II | Ja | Nee | Plowhorses | Prijs verhogen of food cost reduceren |
| III | Nee | Ja | Puzzles | Zichtbaarheid vergroten, verkooptraining |
| IV | Nee | Nee | Dogs | Verwijderen of radicaal herformuleren |
Bij het Amsterdam-restaurant was de risotto een Plowhorse: hoog verkoopvolume (favoriet van gasten), maar food cost van 42%. De reactie was niet "risotto van de kaart" — dat zou omzet kosten. De reactie was: food cost reduceren door deelcomponenten te herformuleren (goedkopere truffelpasta, kleiner portiegewicht van de Parmezaan die achteraf geraspt wordt) én prijs met €1,50 verhogen. Gecombineerd effect: food cost daalde naar 34%, marge per portie steeg met €2,40.
Categorie-analyse: splits food cost per productgroep
Een totaal food cost van 31% verbergt de werkelijkheid. Splits altijd per productcategorie — want elke categorie heeft zijn eigen dynamiek, leveranciers en sturingsknoppen:
- Eiwitten (vlees, vis, gevogelte): hoogste inkoopprijs, sterkste yield-variatie, meeste inkoopkracht bij volume-consolidatie. Dit is waar 60-70% van de food cost zit bij een gemiddeld restaurant.
- Zuivel en eieren: stabiele prijzen, lage yield-variatie. Een hoge food cost hier wijst bijna altijd op portioneringsfouten of slordig gebruik.
- Verse groenten en kruiden: sterk seizoensgebonden, hoge yield-variatie. Vergelijk werkelijk gebruik met theoretisch per seizoen — niet op jaarbasis.
- Droge waren (pasta, rijst, sausbases): lage kostprijs per portie, maar hoog volume. Kleine portioneringsafwijkingen worden hier pas zichtbaar bij analyse over langere periode.
De meest effectieve manier: bereken food cost variance per categorie per maand, en zoek de categorie met de hoogste onverklaarbare variance. Dat is je startpunt voor de diepere analyse.
Wat dit vraagt dat een standaard boekhouding niet geeft
Een P&L geeft je de totale inkoopkosten. Een kassasysteem geeft je de totale omzet. De food cost percentage kun je met die twee cijfers berekenen. Maar de variance-uitsplitsing, de yield-analyse per leverancier, het mix-effect en de menu engineering matrix — die vragen om een laag die de standaard boekhouding niet heeft.
Je hebt nodig: receptuurregistratie per gerecht (met yield-factoren), periodieke voorraadtellingen per categorie, en een koppeling tussen kassadata (aantallen verkocht per gerecht) en inkoopdata (volume en prijs per product). Zijn die drie aanwezig? Dan is de analyse maakbaar. Ontbreekt er één? Dan werk je op aannames — en aannames kosten uiteindelijk geld.
Veelgestelde vragen
Weten wat jouw food cost werkelijk kost?
In een kennismaking van 30 minuten kijken we samen naar jouw cijfers — van inkoopfactuur tot menuprijs.
Gesprek inplannen →