> ## Documentation Index
> Fetch the complete documentation index at: https://help.kwentra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Recipe Sales Report

> Shows the real cost of every dish sold, from the stock each sale used, grouped by outlet.

Shows the real cost of every dish sold, from the stock the sale used.

### **Business Value**

* Shows a real food cost. Every dish used to show 0.00.
* Cost matches your stock records and your accounts.
* Runs for all outlets at once, or only the ones you choose.
* Groups dishes by outlet, with subtotals and a grand total.
* Treats wasted refunds and returned refunds differently in the cost.

### **Use Cases**

* Cost controller compares food cost to sales for each outlet in one run.
* F\&B manager finds a dish that was fully wasted: full cost and no sales.
* Finance matches the report's cost to the value posted in the accounts.

### **How It Works**

| **Where:** Back Office → Inventory → Reports → Recipe Sales |
| - |

The report was called **Recipe report**, and its **Cost** column showed 0.00 on every row. Cost now comes from the stock the sale used. The recipe is not read.

#### **The Example Below**

Every figure on this page uses one setup.

**Mixed Grill** is a non-stock menu item. It sells for **120.00**. Its recipe makes **4** portions.

| Ingredient | Store | Qty per recipe | Stock price | Cost per dish |
| - | - | - | - | - |
| Chicken | Butchery | 2 kg | 80.00 / kg | 40.00 |
| Flour | Main Store | 0.5 kg | 20.00 / kg | 2.50 |
| Cola | Beverage Store | 1 litre | 15.00 / litre | 3.75 |

One dish sells for **120.00** and costs **46.25** to make.

* It is sold **6** times in the period, on **two** invoice lines.
* It is sold from **Outlet INC**. That outlet has none of the ingredients.
* The sales use 3 kg of Chicken, 0.75 kg of Flour and 1.5 litres of Cola.

The row shows Sales qty **6**, Sales value **720.00** and Cost **277.50**. Before, Cost showed **0.00**.

#### **Running the Report**

* **From date / To date:** the period of the sales. A sale belongs to the period of its audit date.
* **Store:** the outlet where the dish was **sold**. It was called *Store id*.
* **Export options:** choose a file type, then **Download**, **Preview** or **Print**.

Two things about **Store** have changed:

* **It is now optional.** Leave it empty to see all outlets. Choose one or more to see only those.
* **It filters by the selling outlet only.** A dish shows no matter which store its ingredients come from.

Invoices that are not fully paid are left out, as before.

#### **How the Cost Is Calculated**

| **Cost** = quantity used × stock price. The price is from the store and the day of the usage. The report adds up every usage line linked to the dish's invoice lines in the period. |
| - |

* The example row costs 277.50. That is (3 × 80.00) + (0.75 × 20.00) + (1.5 × 15.00).
* **The recipe is not read.** If you change a recipe after a sale, that sale's cost stays the same.
* **The cost matches the accounts.** It uses the same usage lines the accounts posted.
* One invoice line or six gives the same cost.

Each stock usage line created by a sale records **its invoice line**. This link lets the report cost each dish. A usage line with no link does not come from a sale. It was entered by hand or created by a store settlement.

#### **Report Columns**

| Column | Description | Example |
| - | - | - |
| **Item** | The dish that was sold | Mixed Grill |
| **Unit** | The dish's own unit | Portion |
| **Sales qty** | How many were sold in the period | 6 |
| **Sales value** | The amount on the invoice lines. The report does not work it out again. | 720.00 |
| **Cost** | The value of the stock those sales used | 277.50 |

Sales value is **before discounts**. Compare it with Cost only for sales with no discount.

#### **How Refunds Are Treated**

A refund always lowers Sales qty. Only a **returned** refund gives the ingredients back.

| Refund reason | Sales qty | Cost |
| - | - | - |
| **Returned** | Goes down | **Goes down** — the ingredients went back |
| **Wasted** | Goes down | **No change** — the ingredients were still used |

* A **returned** refund creates a second usage with negative quantities. The two usages cancel out.
* A **wasted** refund creates no usage. The dish is not sold, but its ingredients are gone.
* Sell 5 dishes twice and return 2 each time: Sales qty **6**, Cost **277.50**. Six sold, six used.
* Sell 5 dishes twice and waste 3 each time: Sales qty **4**, Cost **462.50**. Four sold, ten used.

**Rows with zeros still show.**

* A dish fully refunded as *wasted* shows Sales qty 0 and Sales value 0.00, with its full Cost.
* A dish fully refunded as *returned* shows zero in all three columns.
* Only a dish with **no linked usage at all** is left out.

#### **Grouping and the Report Header**

* Dishes are **grouped under the outlet that sold them**. Each group has the same five columns.
* Each outlet group has totals for **Sales qty**, **Sales value** and **Cost**. A **grand total** ends the report.
* The header shows **From date**, **To date** and the chosen **Stores** by name. If you choose no store, it says all outlets are included.

#### **Usages Created by a Sale Cannot Be Rejected**

You cannot reject a stock usage that came from a POS sale:

| Message | When it appears |
| - | - |
| *Stock Usage 123 came from a POS sale and cannot be rejected.* | You reject a usage created by the POS, on its own screen or in a bulk rejection |

* **To undo a sale, refund it.** The refund creates its own reverse usage.
* Usages entered by hand can still be rejected, as before.
* A bulk rejection rejects the usages entered by hand. It skips the ones created by a sale.

#### **The Report's New Name**

The report is renamed **Recipe Sales** in the Inventory reports list and in its heading. **Its address does not change.** Old links still open it.

| **Note:** If you scheduled this report with the old `store_id` parameter, change it to the new **Store** parameter. |
| - |

#### **Periods Before This Change**

Usage lines created before this change have no link to an invoice line. **Sales made before this change do not show.** A report for an earlier period returns no rows.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.