Inventory and food costing

Ingredients, recipes, purchase orders, waste logs, and stock depletion.

Inventory is where a restaurant platform either becomes useful or stays decorative.

Openfront Restaurant already includes the core pieces you need to connect menu sales to ingredient cost and stock movement.

What is in the inventory layer

Ingredients

Ingredients track:

  • stock quantity
  • unit of measure
  • category
  • par level
  • reorder point and reorder quantity
  • cost per unit
  • vendor
  • storage location
  • expiration date and SKU

Recipes

Recipes link menu items to their ingredient usage. Each recipe can store:

  • the linked menu item
  • ingredient list as structured JSON
  • yield
  • prep time
  • instructions
  • total cost
  • cost per serving
  • food cost percentage

Purchasing and waste

The platform also includes:

  • vendors
  • inventory locations
  • purchase orders
  • stock movements
  • waste logs

The practical workflow

Create ingredients first

Add your raw materials with unit, cost, vendor, and baseline stock information.

Build recipes for menu items

Create a recipe record, link it to a menu item, and add the ingredients that make up that dish.

Review food cost

Once the recipe is in place, the app can calculate total cost, cost per serving, and food cost percentage.

Complete real orders

When an order is completed and a linked recipe exists, the order hooks can deplete ingredient stock automatically and write stock-movement records.

Track purchasing and waste

Use purchase orders to manage restocking and waste logs to understand where margin is leaking.

Why this part matters

A lot of restaurant software stops at "we sold the burger." The better question is whether you sold it at a number that still makes sense once the bun, beef, cheese, labor, and waste are all in the picture.

This build is already moving in that direction.

Current strengths

  • ingredient records are detailed enough for real kitchen use
  • recipes already calculate cost metrics
  • waste has a dedicated model and screen
  • purchase orders have a useful workflow and status model
  • completed orders can write stock movement automatically

Current gaps

  • recipe ingredients are stored as JSON today, so this layer works best when your team is comfortable with structured admin data
  • unit conversion and purchasing normalization still have room to grow
  • the value of this module jumps once you commit to keeping recipe data current

The inventory module is already worth documenting because it does real work. It just gets much better as your operational discipline improves.

On this page