Four places account for most of it: yield (recipes costed on raw weight when the usable yield is lower), portioning drift (plates quietly outgrowing the recipe card), purchasing creep (invoice prices rising while recipes stay costed at old prices), and waste — spoilage, over-production and un-costed specials. Each has a different fix, which is why naming the cause matters more than knowing the percentage.
From Five Nights to a Tighter Restaurant P&L: Food Cost, Labour, Rent, the Platform's Cut and the Weekly Read — the full reading, with the method behind this answer.