Skip to content

Ingredients & Recipes ​

Overview ​

The recipe model tracks the raw materials you use, not the finished items. When you sell a latte, Rewardly subtracts the beans and milk it used — not "one latte".

This is the right choice for cafés, restaurants, and bars. For packaged goods you sell as-is, use Inventory instead.

How it works ​

Three pieces work together:

PieceWhat it is
IngredientsYour raw materials — beans, milk, cups, syrup.
Ingredient BundlesA recipe — the list of ingredients (and amounts) that make one product.
Ingredient InventoriesThe stock count of each ingredient, per outlet.

When a product with a recipe is sold, each ingredient in its bundle is reduced by the recipe amount.

Ingredient stock changes are written through a shared movement model. The current stock count and the transaction ledger are updated together, so a stock-take, manual transaction, or received stock order all follow the same rules. See Ingredient Stock Architecture.

Default setup ​

Bean & Brew example: track beans and milk so a sold latte depletes both.

1. Create your ingredients

In Stock Control → Ingredient (/ingredients), click Create for each raw material:

  • Name — e.g. Coffee Beans
  • Suppliers — who supplies it (pick at least one — see Suppliers)
  • Outlets — which branches stock it
  • Unit — g, kg, ml, l, pcs, and so on
  • Unit price — your cost per unit
  • Category — Raw Material, Packaging, Seasoning, or Other

2. Create a recipe (Ingredient Bundle)

In Stock Control → Ingredient Bundle (/ingredient-bundles), click Create:

  • Name — e.g. Latte Recipe
  • Ingredient items — add a row per ingredient with the quantity used (e.g. Coffee Beans — 18, Milk — 200)

Then use Assign Products on the bundle to link the recipe to the Latte product, and tick Track for it. Or open the product and, in its Cost & Recipe section, choose the recipe and switch on Ingredient tracking. A product with a recipe but tracking off deducts nothing when it is sold: its ingredients come off only when a batch of it is recorded in Make Stock on the POS.

3. Set your starting stock

In Stock Control → Ingredient Inventory (/ingredient-inventories), set the current stock of each ingredient at each outlet.

After an ingredient inventory row is created, the outlet and ingredient are locked on that row. To correct stock, update current stock; Rewardly records the change as an inventory-count transaction.

If a sale deducts an ingredient at an outlet that has no inventory row for it yet, Rewardly creates the row at a negative count.

Stock Control → Ingredients → Create form

Advanced options ​

Field / featureWhat it does
Low Alert Stock AtA threshold on an ingredient. At or below it, the ingredient shows a red Low Stock badge on the POS Inventory tab. No notification is sent. (This is the only low-stock alert in Rewardly.)
Has tax / Tax rateRecords tax on the ingredient's cost.
On VoidChooses what happens to the ingredient stock when a sale is voided — Add back to stock returns it, Add to wastage leaves it deducted but records it as waste, Do nothing leaves it deducted with no record. Required on every ingredient; defaults to Add back to stock.
Bulk outlet assignmentAdd or remove outlets across many ingredients at once.
CSV export / Smart ImportExport the ingredient list, or bulk-upload from a spreadsheet.

Purchase prices ​

Stock Control → Ingredient Inventory (/ingredient-inventories) shows two prices next to Current Stock, for each ingredient at each outlet:

ColumnWhat it shows
Average purchase priceWhat this outlet has paid per unit, averaged over its stock. Each stock order received is averaged with the stock already on hand.
Latest purchase priceThe unit price on the most recent stock order received for it at this outlet.

Stock and both prices name the ingredient's unit, for example 18,000 ml and SGD 0.0027 / ml. While the list is filtered to one outlet or one ingredient, that column is left out.

Both are per ingredient unit and before tax, and neither can be typed: only receiving a stock order changes them. An ingredient that has never been received on a stock order at that outlet shows a dash in both. A line received at a price of 0 counts toward the average and leaves the latest price as it was.

These are the prices a recipe is costed at. Which of the two a sale uses is the Price used to cost each sale setting; where an outlet has neither yet, the ingredient's own Unit price is used. A product's Cost & Recipe section shows the result, line by line.