Skip to main content

Food and Beverage (F&B): Cost of Goods Sold (COGS) & Inventory

Written by Nisha Ravi (NR)

Introduction

F&B businesses use up ingredients and packaging every day, so knowing how much stock was actually consumed is key to knowing how much profit was really made. This guide explains what Cost of Goods Sold (COGS) is, how inventory works for F&B businesses in Bukku, and walks through two ways to calculate COGS each month, with a full example for each.

If you haven't set up your sales recording yet, start with Food and Beverage (F&B): Recording Sales, which covers the different ways to record sales in Bukku.

Understanding Cost of Goods Sold (COGS)

Cost of Goods Sold (COGS) is the direct cost of the goods you sold to customers. For F&B businesses, this typically includes:

  • Raw materials, such as chicken, vegetables, sauces, milk and coffee beans

  • Packaging and labelling items, such as cups, lids, takeaway boxes, bags and stickers

In short, COGS is the stock you used up during the period:

Cost of Goods Sold = Opening Stock + Purchases − Closing Stock

Example: A café starts the month with no stock and buys RM500 of coffee beans, RM300 of milk and RM200 of cups and lids, totalling RM1,000. At month-end, RM300 worth of stock is still unused.

RM0 + RM1,000 − RM300 = RM700 COGS, which is the stock used to make the month's sales.

Why Cost of Goods Sold (COGS) Matters

Accurate COGS helps you:

  • See your actual profit, not just your sales

  • Monitor how much stock is being used

  • Spot excessive wastage or spoilage early

  • Make better pricing and purchasing decisions

Since F&B businesses use stock continuously, your COGS is only as accurate as your closing inventory value. That's why regular stock counts are part of both methods in this guide.

Choosing Your Inventory Method

Most F&B businesses use the Periodic Inventory Method, where stock usage is worked out through stock counts at the end of each period rather than deducted with every sale.

This is because selling one cup of coffee doesn't deduct the coffee beans, milk, cup and lid used to make it, and selling one plate of chicken rice doesn't deduct the chicken, rice, sauces or packaging. Bukku records the sale, while the stock used is determined by a periodic stock count. The closing inventory value from that count is then used to calculate COGS.

There are two ways to apply the Periodic Method in Bukku. Choose the one that suits your business, then follow its guide below.

Option 1:

Without Inventory Tracking

Option 2:

With Inventory Tracking

Best for

Businesses that want the simplest workflow with minimal data entry

Businesses that want Bukku to help track and value stock

Stock items in Bukku

Not created; purchases are recorded to an account only

Created as inventory items, with quantities on each purchase

Unit cost

Worked out by you, outside Bukku

Calculated by Bukku using Weighted Average Cost (WACC)

Inventory reports

Not available

Available, to help value closing stock

Closing inventory value

Calculated in your own records, then entered into Bukku

Taken from Bukku's Inventory Summary report after a stock adjustment

Physical stock count

Required

Required

Option 1: Periodic Method Without Inventory Tracking

With this method, stock items aren't tracked in Bukku. Purchases are recorded straight to the Purchases account, and you work out the closing inventory value in your own records after a physical stock count.

Situation: ABC Chicken Rice Stall uses this method. In January 2026:

  • Inventory purchases totalled RM5,000

  • Sales totalled RM12,000

  • After a month-end stock count, closing inventory was valued at RM800


Step 1: Record Inventory Purchases

Purchases > Bills > +New

Record each supplier invoice as its own Purchase Bill, coded to the Purchases account. For a chicken rice stall, this typically covers chicken, rice, vegetables, sauces, cooking ingredients, takeaway containers, plastic bags and disposable cutlery.

Example: ABC Chicken Rice Stall's purchases for January 2026 totalled RM5,000, made up of several supplier invoices received throughout the month. One of them is shown below.

Step 2: Record Sales

Sales > Invoices > +New

Record your sales using any of the methods covered in Food and Beverage (F&B): Recording Sales.

Example: Sales for January 2026 totalled RM12,000, recorded as a monthly sales summary invoice.

Step 3: Count Your Stock at Month-End

At the end of the month, count the stock you have left. You can use your own inventory worksheet or spreadsheet for this.

Example: The stock count on 31 January 2026 found:

Inventory Item

Quantity Counted

Chicken

15 kg

Rice

30 kg

Sauces

10 bottles

Packaging Materials

500 units

Step 4: Work Out the Closing Inventory Value

Value the stock you counted, using your own costing records, such as supplier invoices or an inventory spreadsheet.

Inventory Item

Quantity

Unit Cost (RM)

Inventory Value (RM)

Chicken

15 kg

10.00

150.00

Rice

30 kg

5.00

150.00

Sauces

10 bottles

10.00

100.00

Packaging Materials

500 units

0.80

400.00

Total Closing Inventory

800.00

Step 5: Enter the Closing Inventory Value

Stock > Periodic Values

Enter RM800 under the 01/2026 column for the Inventory account. Bukku then calculates COGS for January automatically.

Double Entry:

  • Debit Inventory RM800

  • Credit Inventory – Stock Closing RM800

Step 6: Check the Results in Your Reports

Reports > All Reports > Profit & Loss

The January 2026 Profit & Loss now shows COGS of RM4,200 (RM5,000 purchases − RM800 closing inventory), giving a gross profit of RM7,800.


Reports > All Reports > Balance Sheet

The Balance Sheet as at 31 January 2026 shows the RM800 closing inventory under Current Assets.

📌 Next month: Repeat these steps every month. January's closing inventory becomes February's opening inventory, so February's COGS is RM800 + February purchases − February closing inventory.

Option 2: Periodic Method With Inventory Tracking

With this method, your raw materials and packaging are set up as inventory items in Bukku. Bukku tracks the quantity and Weighted Average Cost of each item, and its inventory reports help you value your closing stock after a physical count.

This suits coffee shops, bubble tea outlets, bakeries, dessert shops, and restaurants with structured stock-keeping.

Situation: ABC Coffee House uses this method. In January 2026:

  • Inventory purchases totalled RM5,000

  • Sales totalled RM12,000

  • After a month-end stock count and stock adjustment, closing inventory was valued at RM800

To keep the example easy to follow, the steps below track four items: coffee beans, fresh milk, cups and lids.


Step 1: Create Your Inventory Items

Products & Services > +New

Create each raw material and packaging item separately, and turn on Track Inventory. The Inventory Account defaults to 1002 Inventory, the inventory account on your Balance Sheet.

For a coffee shop, this typically includes coffee beans, milk, tea leaves, syrups, sugar, flour, cups, lids, straws and other packaging.

📌 Only track what you buy, not what you sell. Finished products such as a latte or a slice of cake aren't created as inventory items, because Bukku doesn't convert ingredients into finished products. Tracking focuses on the raw materials and packaging used in your operations.

Step 2: Record Inventory Purchases

Purchases > Bills > +New

Record each supplier invoice as its own Purchase Bill. On each line, select the inventory item created in Step 1, then enter the quantity and unit price from the supplier invoice.

Example: ABC Coffee House received two supplier invoices for the four items in January 2026. The first one (BL-00009, 15 January) is shown below.

Once saved, Bukku adds the quantities to stock and updates each item's weighted average cost. You can see these movements anytime under Reports > All Reports > Inventory Reports > Inventory Detail.

Step 3: Record Sales

Sales > Invoices > +New

Record your sales using any of the methods covered in Food and Beverage (F&B): Recording Sales.

Example: Sales for January 2026 totalled RM12,000, recorded as a monthly sales summary invoice.

📌 Recording sales doesn't reduce your inventory quantities. Selling a cup of coffee won't deduct the beans, milk, cup or lid used to make it, so the stock count and stock adjustment in the next two steps are what bring your quantities up to date.

Step 4: Count Your Stock at Month-End

At the end of each month (or year), count the stock you have left. These counts are compared against the quantities in Bukku in the next step.

Example: The stock count on 31 January 2026 found:

Inventory Item

Quantity Counted

Coffee Beans

10 kg

Fresh Milk

30 litres

Cups

500 units

Lids

500 units

Step 5: Adjust Stock to Match Your Count

Stock > Adjustments > +New

Record a Stock Adjustment to bring Bukku's quantities in line with what you counted. For each item, enter the difference as a negative quantity.

Inventory Item

Quantity in Bukku (from Step 2)

Quantity Counted (from Step 4)

Quantity to Adjust

Coffee Beans

20 kg

10 kg

−10 kg

Fresh Milk

50 litres

30 litres

−20 litres

Cups

700 units

500 units

−200 units

Lids

700 units

500 units

−200 units

You only need to enter the quantity. The Unit Cost and Amount fields are locked, and Bukku values the adjustment at each item's weighted average cost automatically.

📌 A Stock Adjustment updates your inventory quantities and values only. It doesn't create a journal entry or affect your Profit & Loss. COGS is updated in Step 7 below.

Step 6: Get the Closing Inventory Value

Reports > All Reports > Inventory Reports

Two reports are useful here:

Inventory Detail shows how each item's closing quantity and value were reached, from the purchase bills through to the stock adjustment.


Inventory Summary shows each item's closing quantity and value, and the total closing inventory value. This total is the figure you'll enter in Step 7.

In this example, the four items are valued at RM150 (coffee beans), RM150 (fresh milk), RM200 (cups) and RM300 (lids), for a total closing inventory of RM800.

Step 7: Enter the Closing Inventory Value

Stock > Periodic Values

Enter the total from the Inventory Summary, RM800, under the 01/2026 column for the Inventory account. Bukku then uses this value, together with your opening inventory and purchases, to calculate COGS for January.

Double Entry:

  • Debit Inventory RM800

  • Credit Inventory – Stock Closing RM800

📌 Why enter the value again? The Inventory Summary values your stock, but it doesn't post anything to your accounts. The Periodic Value is what updates COGS in your Profit & Loss and the Inventory balance on your Balance Sheet.

Step 8: Check the Results in Your Reports

Reports > All Reports > Profit & Loss

The January 2026 Profit & Loss now shows COGS of RM4,200 (RM5,000 purchases − RM800 closing inventory), giving a gross profit of RM7,800.


The Balance Sheet as at 31 January 2026 shows the RM800 closing inventory under Current Assets.

📌 Next month: Repeat these steps every month. January's closing inventory becomes February's opening inventory, so February's COGS is RM800 + February purchases − February closing inventory.

Did this answer your question?