Managing Operational Risk: Proven Strategies & Best Practices
Jun 30, 2025 in Industry Overview
Learn effective methods for managing operational risk. Discover key frameworks, controls, and culture tips to protect your business today.
Not a member? Sign up now
Understanding waste per recipe using optimization techniques
Daniel Azevedo on Oct 1, 2021
During recent years Artificial Intelligence has been applied to almost all domains and industries to improve or solve specific problems identified by humans. One example is the industry of Food and Beverages, where AI models are being used for different purposes:
This last point is particularly important as statistics say that, in the US, 5% to 10% of the food purchased by restaurants is wasted, which corresponds to direct cuts in the restaurant’s profit. This waste can be the result of inefficiency in the management of the chain store, bad estimations of the ingredients needed for a given dish, oversized portions, and a high variety of menus, which require a wider set of different ingredients.
To reduce food waste and increase restaurant profits, in this post, we will discuss an approach to estimate the food waste (per ingredient) based on the restaurant orders and respective dish recipes.
This will allow a more clear perception of the contribution that each dish makes to the total food waste produced by the restaurant. Also, through a forecast of the actual quantity of ingredients required, we can avoid the need to overbuy groceries.
In order to estimate the food waste of a restaurant, we essentially need to know:
So, the overall ingredients used by the kitchen team can be structured as follows (from now on referred as matrix K):
Where we have, based on the restaurant recipes, the expected amount of each ingredient used for the different dishes that the restaurant serves.
However, for each dish and each ingredient we will have some associated waste (that can be zero). Thus, the overall food waste can be represented as follows (from now on referred as matrix Ɛ):
Where Ɛi, j corresponds to the amount of ingredient j of dish i that was wasted.
Thus, in order to determine the waste the kitchen is producing, per dish and ingredient, we need to learn the values of matrix Ɛ.
To do that, we can start by modeling the problem as follows:
Where,
From the restaurant’s historical data we can use the grocery receipts for determining the total amount of ingredients bought (Consumption) and the history of orders for computing Nd . This way, knowing the variables Nd , Kd and Consumption, we can train a Machine Learning model to learn the matrix Ɛ, based on the previous equation.
After the model learns the matrix Ɛ, we can make some detailed analysis:
Based on these points, some actions can be taken in order to improve the restaurant profit and environmental footprint, like reviewing the cooking process of the dishes with the greater waste, removing dishes or menus where the wasting percentage is significant (which results in reduced profit margins) or investing more on dishes/ingredients where the waste is lower.
In a more complex, and perhaps, realistic scenario, we can formulate the problem considering multiple kitchen teams that work simultaneously in different restaurants and share the same food supply. In that case, we would have the following scenario:
Where N_xd corresponds to the number of meals of dish d made by team x and Ɛ_xd to the waste derived from confection of dish d by team x. In this case, each kitchen team will have an individual Ɛ matrix that contains the waste weights of that specific team.
This scenario allows some more complex analysis, like:
One of the action points where we can use this formulation, is to make a more accurate forecast of the amount of each ingredient needed for the next D days. To do that, we just need to directly apply the formulation with the learned matrix Ɛ.
For instance, if we expect to have 25 orders of Hamburgers and 20 orders of Steak and Baked potatoes for the next 5 days, based on the tables above, the expected consumption of ingredient Beef would be:
25 * (K2,2 +Ɛ2,2) + 20 * (K0,2 +Ɛ0,2)
Which corresponds to:
25 * (0.15 + 0.08) + 20 * (0.3 + 0.12) = 14.15 Kg
In this hypothetical scenario, we would need to buy 14.15 Kg of beef, assuming that, after training the model, we concluded that making a dish of Hamburger and Steak and Baked potato would led to an average waste of 80g (K2,2) and 120g (K0,2) of beef, respectively.
Every action towards reducing our impact on the environment is valuable, even more so if it can help to optimize our business. Therefore, reducing waste in restaurants is a great way to improve profitability and contribute to a more sustainable environment.
With that in mind, in this post, we propose an approach for determining the wastes produced in a restaurant at a dish and ingredient level, based on the recipes and the history of restaurant groceries.
This can help perform a more accurate forecast of the groceries needed based on the expected orders in the following days and also create a more realistic idea of which ingredients and dishes are contributing to more waste, so that the restaurants can take action to reduce waste.
As always, if you have any other ideas about how to reduce food wasting, make sure to reach us!
Like this story?
Special offers, latest news and quality content in your inbox.
Jun 30, 2025 in Industry Overview
Learn effective methods for managing operational risk. Discover key frameworks, controls, and culture tips to protect your business today.
Jun 30, 2025 in Industry Overview
Learn how bottleneck analysis can help you find and resolve constraints efficiently. Discover tips for effective bottleneck analysis today!
Jun 5, 2025 in Industry Overview
Master quality control automation with proven strategies that drive real results. Discover practical insights from industry leaders.
Cookie | Duration | Description |
---|---|---|
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |