Skip to content
Skip to main content
< All Topics
Print

Stock Management

The Stock Management page gives you a centralized view of every ingredient your production depends on. You can track quantities on hand, record purchases, monitor expiry dates, and let the system automatically deduct stock when you produce a batch.

To open Stock Management, navigate to /production/stock or select it from the Production hub. A back arrow in the top-left corner returns you to the main production page at any time.

The Stock Overview

At the top of the page you will find a row of summary statistics that give you an instant health check on your inventory. These cards show the total number of ingredients tracked, how many are currently in stock, how many are at low stock level, and how many are out of stock.

If you have any pending purchase orders, an additional card displays the count of orders still awaiting delivery. When any of those orders are overdue, the overdue count appears in red so you can follow up with suppliers immediately.

Two more cards may appear depending on your inventory state. An expiring soon card shows the number of stock lots that will expire within seven days, and an expired card shows lots that have already passed their expiry date.

Below the summary cards you will find filter chips that let you narrow the stock table to a specific status. The available filters are:

  • All — shows every tracked ingredient
  • Low Stock — ingredients at or below their low-stock threshold
  • Out of Stock — ingredients with zero quantity remaining
  • Expiring Soon — ingredients with lots expiring within seven days (only shown when applicable)
  • Expired — ingredients with lots past their expiry date (only shown when applicable)

Three action buttons sit alongside the filters: Add Ingredient Stock, Find Untracked, and Find Obsolete. Each of these is covered in detail below.

Adding Ingredients to Stock

Click Add Ingredient Stock to begin tracking a new ingredient. The system first checks whether any ingredients used in your recipes are not yet being tracked in stock.

If every recipe ingredient is already tracked, you will see an informational message letting you know there is nothing to add. Otherwise, you are taken to the ingredient selection page at /ingredients/select where you can pick the ingredient you want to start tracking.

After you select an ingredient, you are returned to the Stock Management page and the Edit Stock dialog opens automatically. Here you can set the initial stock level, cost per kilogram, low-stock threshold, and expiry date. Once you save, the ingredient appears in your stock table.

Recording Purchases

When you receive a delivery from a supplier, click the shopping cart icon in the Actions column of the relevant ingredient row. This opens the Quick Add Stock dialog where you record the details of the purchase.

The dialog asks for the following information:

  1. Enter the supplier name so you can trace stock back to its source.
  2. Enter a lot number for the batch you received.
  3. Set the expiry date for the lot.
  4. Enter the cost of the purchase.
  5. Enter the quantity received.
  6. Click save to add the stock to your inventory.

The purchase is recorded as a Purchase stock movement, and the ingredient’s current stock level increases by the quantity you entered. Supplier, lot, expiry, and cost information are all stored for traceability purposes.

Inline Editing

The stock table supports inline editing for two key fields so you can make quick adjustments without opening a dialog. Both the Current Stock column and the Cost per kg column contain editable text fields directly in the table row.

Simply click into the field, type the new value, and the change is saved automatically after a one-second debounce delay. The stock field shows a “g” adornment to indicate the unit is grams.

Note that the cost field is disabled for recipe-derived ingredients because their cost is calculated from sub-ingredients rather than set manually.

The stock table is sortable by clicking any column header. You can sort by ingredient name, stock level, cost per kilogram, or last restocked date. Clicking the same header again toggles between ascending and descending order.

Each row in the table is color-coded to help you spot problems at a glance:

  • Green — stock level is healthy
  • Orange — stock is low (at or below the threshold you set)
  • Red — ingredient is out of stock
  • Red highlight — ingredient has expired lots
  • Yellow highlight — ingredient has lots expiring soon

Status chips reading “Out of Stock” or “Low Stock” also appear next to the ingredient name for extra visibility. On the Last Restocked column, you will see the date of the most recent purchase along with expiry information displayed as a chip or quiet text depending on urgency.

On mobile devices, the table switches to a compact card layout. Each card shows the ingredient name, a status badge, the stock weight, cost, and expiry date in a space-efficient format.

Beyond inline editing, each row offers a full set of action buttons:

  • Quick Add Stock (shopping cart icon) — record a new purchase as described above
  • Stock History (history icon) — view all stock movements for that ingredient
  • Edit (pencil icon) — open the Edit Stock dialog to change stock level, cost, low-stock threshold, or expiry
  • Clear Stock (minus icon) — set the stock level to zero after a confirmation prompt (only available when stock is greater than zero)

Pending Orders and Expiry Alerts

If you have any purchase orders that have not yet been received, a Pending Orders section appears above the main stock table. This table shows each pending order with the ingredient name, quantity ordered, supplier, expected delivery date, and current status.

Orders are marked as either Pending or Overdue. Overdue orders — those past their expected delivery date — are highlighted in red so they stand out. Each row has a Received button that opens the Mark Received dialog where you can confirm the delivery has arrived.

Below the pending orders, an Expiring Soon Alerts section appears if any stock lots will expire within seven days. The table lists the ingredient name, remaining quantity, expiry date with a countdown in days, and the supplier.

Expiry dates are color-coded for urgency. Lots that have already expired appear in red, while lots expiring within three days or fewer appear in orange. This gives you time to use up stock before it goes to waste or to plan replacements.

How Stock Deduction Works

One of the most valuable features of Stock Management is automatic stock deduction. When you produce a batch through the production system, the application automatically calculates the weight of each ingredient used and subtracts it from your tracked stock.

The deduction process works as follows:

  1. You complete a production batch through the production logging workflow.
  2. The ProductionService reads the recipe and calculates the weight of each ingredient for the batch size produced.
  3. Each ingredient’s stock level is reduced by the calculated weight.
  4. A stock movement record of type “ProductionUse” is created for every ingredient consumed.

Stock is consumed using a FIFO (first in, first out) method. This means the oldest purchased stock is used up first, which mirrors best practices for perishable ingredient management.

If you have set costs on your ingredients, the system also calculates production cost automatically based on the cost of the stock consumed. This gives you accurate per-batch cost data without any manual bookkeeping.

Stock Movement History

Click the history icon on any ingredient row to open the Stock Detail dialog. This shows a complete chronological record of every stock movement for that ingredient, so you always know exactly how your inventory has changed over time.

Each movement record includes the date, the type of movement, the quantity changed, and any relevant details such as the supplier or production batch reference. The five movement types you may see are:

  • Purchase — stock added through a recorded purchase, with supplier, lot number, expiry date, and cost tracked
  • ProductionUse — stock automatically deducted when a batch is produced
  • Adjustment — a manual correction you have made to the stock level
  • Wastage — stock removed due to waste or spoilage
  • Expired — stock marked as expired and removed from available inventory

This history is essential for traceability. If you ever need to trace a finished product back to its ingredient sources, the movement records link production batches to specific purchase lots with supplier and lot number information.

Finding Untracked and Obsolete Ingredients

Over time your recipe collection and your stock list can drift apart. Two tools help you keep them aligned.

Click Find Untracked to open the Untracked Ingredients dialog. This scans all your recipes and identifies any ingredients that appear in at least one recipe but are not currently being tracked in stock. You can review the list and bulk-add them to stock tracking in one step. When you close the dialog, a message confirms how many ingredients were added.

Click Find Obsolete to open the Obsolete Ingredients dialog. This does the reverse: it finds ingredients you are tracking in stock that are no longer used in any recipe. You can remove these from tracking to keep your stock list clean and relevant.

Running both of these checks periodically — for example, whenever you add or retire recipes — ensures your stock tracking stays accurate and free of clutter.

Tips

  • Set a meaningful low-stock threshold for each ingredient based on how quickly you use it and how long reordering takes. This ensures the Low Stock filter warns you in time.
  • Always record purchases through the Quick Add Stock dialog rather than editing the stock level directly. This preserves supplier and lot information for traceability.
  • Use the Expiring Soon filter regularly to plan production around ingredients that need to be used up.
  • After a stocktake, use the Edit dialog or inline editing to correct any discrepancies. These are recorded as Adjustment movements in the history.
  • Run Find Untracked after adding new recipes to make sure every ingredient is covered by stock tracking.
  • If an ingredient’s cost comes from a recipe (for example, a custom base mix), the cost field will be disabled because it is calculated automatically from sub-ingredients.
  • The stock table remembers your sort preference during the session, so set it to the column you find most useful.

Related Articles