How the business is doing, and what to fix first.
Eleven pages, from the till to the bank. Start here for overall health, then open any page from the menu, or follow a score or card to the evidence behind it.
Outlet scorecard
Each outlet over the selected months. Click an outlet name to focus every page on it, or a score to open its page.
POS, delivery orders, GL and budget workbook, payroll register, bank statement, reviews export. Thresholds are listed under Notes & method.
Nine areas, most urgent first
Where each ringgit of revenue went
Selected months, as a share of revenue. Outlet costs first, then HQ, depreciation and interest; what is left is profit before tax.
GL_Journal_Lines_2026-01_to_2026-09.csv by account.
Revenue and profit, month by month
Revenue, outlet EBITDA and profit before tax, January to September. Selected months are shaded.
GL; profit before tax after HQ costs, depreciation and loan interest.
Monthly and yearly results
How did each month compare, and where will the year land against budget?
What this says
- —
Any month, any outlet, every P&L line
Choose how to break the numbers down, then open any row to go a level deeper. Click a column heading to rank by it. The outlet and month filters at the top apply. Every row is compared with the budget.
Month explorer
Month, outlet and P&L line against budget. Revenue counts as plus and costs as minus, so each month or outlet total is its outlet EBITDA.
GL_Journal_Lines_2026-01_to_2026-09.csv; Budget_FY2026_Management.xlsx.
The trends behind the numbers
Revenue by month, actual vs budget
GL revenue excluding SST. October to December show the budget only.
GL_Journal_Lines_2026-01_to_2026-09.csv; Budget_FY2026_Management.xlsx (Jan–Dec).
Outlet EBITDA by month, actual vs budget
Revenue less outlet costs, before HQ costs.
GL; Budget_FY2026_Management.xlsx.
Revenue for the year so far, against budget
Running total from January. The outlook adds the October to December budget to the actual to date.
GL; Budget_FY2026_Management.xlsx.
Revenue by outlet, month by month
GL revenue for each outlet, January to September.
GL tracking by outlet.
Budget hit rate by outlet and month
Actual as a share of budget. Blue is ahead of budget, orange behind; the deeper the colour, the bigger the gap.
GL; Budget_FY2026_Management.xlsx.
Month by month
Each month with its change on the month before (▲▼), then the year to date and the full-year budget. Months in the period you selected are shaded. Best and worst months for net sales and EBITDA are coloured.
POS_DailySummary and POS_SalesLines, FoodRun and MakanGo orders, GL, budget workbook, reviews export, bank statement.
Morning brief
What happened yesterday, and what needs doing before 8am?
WhatsApp message for 8am the next morning
—
POS_DailySummary, POS_SalesLines, FoodRun_Orders, MakanGo_OrderReport, BankStatement_CurrentAccount, Supplier_Invoice_Lines. Change the day in the filter bar.
Exception rules that fired
Every day in the selected months (Jul–Sep line detail): an outlet 15% or more below the same day last week, a card or QR settlement not received by the next business day, a cash deposit below POS cash since the last deposit, and a supplier price up 5% or more. Click a row to open that day's brief.
POS_DailySummary, BankStatement_CurrentAccount, Supplier_Invoice_Lines.
Sales performance
Are we selling more, and where and when does the money come in?
What this says
- —
Every ringgit of sales, down to the day
Choose how to break the numbers down, then open any row to go a level deeper. Click a column heading to rank by it. The outlet and month filters at the top apply.
Sales explorer
Outlet, channel, month and day, or any order you pick. Each row shows its change on the period before, its share of the level above, and its trend from January.
POS_DailySummary and POS_SalesLines; FoodRun and MakanGo order reports.
Menu explorer
Every item sold from July: quantity, price, recipe cost and gross margin, by category, outlet and channel.
POS_SalesLines (Jul–Sep), FoodRun order items, Menu_Master_with_Recipe_Cost.csv.
The trends behind the numbers
Daily net sales vs same day last week
Net sales excluding 6% SST, each day against the same weekday seven days earlier.
POS_SalesLines_2026-07/08/09.csv, POS_DailySummary (before 1 Jul), FoodRun_Orders, MakanGo_OrderReport Q1–Q3.
When the money comes in
Net sales by hour and weekday, Jul–Sep only (the months with line detail). Darker is busier. FoodRun hours converted from UTC to Malaysia time.
POS_SalesLines (Time), FoodRun_Orders (UTC+8), MakanGo_OrderReport_2026Q3.csv.
Top 15 items by net sales
Jul–Sep. In-store lines plus FoodRun items; MakanGo exports no item detail.
POS_SalesLines, FoodRun_Orders (Items).
Top 15 items by gross margin
Net sales less units × recipe cost; margin % in brackets.
as left, plus Menu_Master_with_Recipe_Cost.csv.
Payment mix
Jul–Sep share of net sales by how the customer paid. Delivery is paid in the app.
POS_SalesLines (Payment Method), FoodRun and MakanGo order files.
Channel mix by outlet
Share of each outlet's net sales by channel. Click an outlet to filter the page.
POS (Order Type), FoodRun_Orders, MakanGo_OrderReport.
Net sales by channel, month by month
January to September, for the channels picked above. Selected months are shaded.
POS_DailySummary and POS_SalesLines; FoodRun and MakanGo order reports.
The average day, by weekday
Net sales on an average Monday, Tuesday and so on, in the selected months.
POS and delivery orders.
Outlets ranked by net sales
Selected months, with the change on the same number of days just before. Click an outlet to focus on it.
POS and delivery orders.
Delivery payout check
Did FoodRun and MakanGo pay us everything they owe?
What this says
- —
Every delivery order, by app, outlet and day
Choose how to break the numbers down, then open any row to go a level deeper. Click a column heading to rank by it. The outlet and month filters at the top apply.
Delivery explorer
Orders, basket value and everything the apps take, down to a single day for each outlet.
FoodRun_Orders and MakanGo_OrderReport, all nine months.
What the apps owe, order by order
Orders delivered but never paid out, and cancelled orders that were still charged fees. Open a row to see each order.
Order reports matched to payout statements and the bank.
The trends behind the numbers
Every payout: orders vs statement vs bank
Every payout
Expected = sum of order-level net earnings tagged with that payout. Statement = the platform's payout file. Bank = the credit on the statement. Payouts are company-wide, so this table ignores the outlet filter.
FoodRun_Orders, FoodRun_Payout_Statements (store rows; ALL STORES rows used only to check), MakanGo_OrderReport Q1–Q3, MakanGo_Settlement_Summary, BankStatement_CurrentAccount.
Platform fees as % of basket
Commission, payment fees and tax on fees, for orders not cancelled.
FoodRun_Orders, MakanGo_OrderReport.
Fees % by outlet
Click an outlet to filter the page.
FoodRun_Orders, MakanGo_OrderReport.
Claims to raise
Delivered orders with no payout reference after their week was paid, and cancelled orders that still carry a fee.
FoodRun_Orders (Payout Ref, Order Status), MakanGo_OrderReport (settlement_id, status).
Draft emails to the platforms
Draft emails
Delivery orders by month
Orders delivered on each app, January to September.
FoodRun_Orders and MakanGo_OrderReport, cancelled orders left out.
Where each ringgit of the delivery basket goes
Selected months: what the apps keep and what reaches Kopi Kita.
FoodRun and MakanGo order reports, fee columns.
Customers and reviews
What are customers saying, and what changed?
What this says
- —
Every review, by outlet, theme and rating
Choose how to break the numbers down, then open any row to go a level deeper. Click a column heading to rank by it. The outlet and month filters at the top apply. Search the review text for a word such as cold, slow or rude.
Review explorer
Ratings, low-star share and reply times by outlet, theme, stars, language or month. The last level lists the reviews themselves.
Reviews_Export_2026-01_to_2026-09.json.
The trends behind the numbers
By outlet
Click an outlet to filter the page.
Reviews_Export_2026-01_to_2026-09.json (times converted to Malaysia time).
Themes in 1–3 star reviews
Keyword rules in English and Malay, up to two themes a review.
Reviews export (text).
Five recent reviews to act on
Reviews export. Reviewer names are left out.
Reply templates
Templates
Slow service (EN) Thank you for telling us, and we're sorry you waited so long. We were short-handed that day and have changed our rota so it doesn't happen again. Please let us make it up to you on your next visit. (BM) Terima kasih atas maklum balas anda, dan kami mohon maaf kerana anda terpaksa menunggu lama. Kami kekurangan staf pada hari itu dan telah menyusun semula jadual kerja. Kami harap dapat melayan anda dengan lebih baik pada kunjungan seterusnya.
Wrong order (EN) We're sorry your order came out wrong. That shouldn't happen. We've shared this with the team and now double-check every order before it leaves the counter. Show this reply at the counter next time and your drink is on us. (BM) Kami mohon maaf kerana pesanan anda tersilap. Kami telah berkongsi perkara ini dengan pasukan dan kini menyemak setiap pesanan sebelum diserahkan. Tunjukkan balasan ini di kaunter pada kunjungan akan datang untuk minuman percuma.
Positive review (EN) Thank you so much! We're glad you enjoyed it, and the team will be happy to hear it. See you again soon. (BM) Terima kasih banyak! Kami gembira anda menikmatinya, dan pasukan kami pasti seronok mendengarnya. Jumpa lagi!
Average rating by outlet, month by month
Every review, January to September.
Reviews_Export_2026-01_to_2026-09.json.
How the stars split
Reviews in the selected months by star rating, for each outlet.
Reviews export.
Food cost and wastage
Where is food cost leaking: prices, waste or usage?
Three biggest money leaks
- —
Every invoice line, waste entry and stock count
Choose how to break the numbers down, then open any row to go a level deeper. Click a column heading to rank by it. The outlet and month filters at the top apply.
Purchases explorer
What was bought, from whom, for which outlet and at what price. The last level lists the invoice lines.
Supplier_Invoice_Lines_2026.csv and Supplier_Master.csv.
Food cost by outlet and month
Actual food cost from the stock counts against sales and against what the recipes say it should be.
Stock_Count_MonthEnd_2026.xlsx, supplier invoices, POS item sales.
Waste explorer
Every waste log entry by reason, item and outlet. The last level lists the entries.
Wastage_Log_Form_Responses_Jul-Sep2026.csv.
The trends behind the numbers
Actual vs theoretical food cost % of net sales
Actual = opening stock + purchases − closing stock. Theoretical = units sold × recipe cost, Jul–Sep only (needs item detail), measured against the sales that have item detail.
Stock_Count_MonthEnd_2026.xlsx, Supplier_Invoice_Lines_2026.csv, POS_SalesLines, FoodRun_Orders, Menu_Master_with_Recipe_Cost.csv.
Purchases by supplier
Supplier_Invoice_Lines_2026.csv (ties to AP_Bills_2026 bill by bill).
Supplier prices that moved 5% or more
Supplier_Invoice_Lines_2026.csv (median unit price per invoice date).
Logged waste by item
Jul–Sep form entries. Not all waste gets logged.
Wastage_Log_Form_Responses_Jul-Sep2026.csv, item names standardised.
Logged waste by outlet and weekday
Wastage_Log_Form_Responses; 182 entries had no value and are estimated from the median unit value of that item.
Food cost % by outlet, month by month
Actual food cost from the stock counts, as a share of net sales.
Stock_Count_MonthEnd_2026.xlsx and Supplier_Invoice_Lines_2026.csv.
Purchases by category, month by month
Supplier invoices by what was bought.
Supplier_Invoice_Lines_2026.csv.
Labour productivity
Do staff hours fit the trade, and what does overtime cost?
What this says
- —
Every payslip and every shift
Choose how to break the numbers down, then open any row to go a level deeper. Click a column heading to rank by it. The outlet and month filters at the top apply.
Payroll explorer
Pay, overtime and employer contributions by outlet, position and employee. The last level lists each monthly payslip.
Payroll_Register_2026-01_to_2026-09.csv and HR_Employee_Master.csv.
Shift explorer
Hours, overtime and leave by outlet, employee and month. The last level lists each clock-in.
Attendance_ClockIn_2026-07_to_2026-09.csv.
Hours against sales, day by day
Labour hours and sales per labour hour for each outlet and day.
Clock-in records and POS sales.
The trends behind the numbers
Approved overtime hours per week
Attendance_ClockIn_2026-07_to_2026-09.csv (OT Approved).
Average review rating per week
Reviews_Export_2026-01_to_2026-09.json.
Sales per labour hour by daypart
Jul–Sep. Net sales in the daypart ÷ staff hours on the clock in it. Low means more staff than the trade needs.
Attendance (clock in/out spread by hour; 22 missing clock-outs set to a standard shift), POS_SalesLines and delivery orders by hour.
Staff cost % of net sales by month
Gross pay plus employer EPF, SOCSO and EIS from the payroll register.
Payroll_Register_2026-01_to_2026-09.csv, sales as above.
Headcount, joiners, leavers and overtime cost
By outlet
Payroll_Register, HR_Employee_Master (Date Joined, Date Resigned). Attendance overtime matches payroll OT Hrs for every employee and month in Jul–Sep.
Payroll cost by month
What the payroll costs the business: pay, overtime and employer contributions. HQ is included when all outlets are shown.
Payroll_Register_2026-01_to_2026-09.csv.
Headcount by outlet, month by month
Staff on the payroll each month.
Payroll register.
Financial reporting
Is the business making the profit it planned, is it solvent, and is profit turning into cash?
Variance commentary
- —
What the statements say
- —
Profit and loss, month by month
Every GL account rolled up to the management lines. Open a line to see the accounts under it. The first four columns compare the months you selected with the budget; the nine months follow.
GL_Journal_Lines_2026-01_to_2026-09.csv (opening journal excluded) mapped through Chart_of_Accounts.csv; budget from Budget_FY2026_Management.xlsx. The budget has no depreciation, interest or HQ lines.
Selected months against budget, and the last month against the one before
Favourable variances are positive. HQ costs sit on their own line when all outlets are shown.
GL mapped to management lines; Budget_FY2026_Management.xlsx (RM'000 × 1,000).
Any account, down to its journal lines
Every GL line except the opening balances. Break it down by statement line, account, outlet, month or journal type; open an account and a month to see the journal lines behind it. Search for a supplier, reference or description.
Ledger explorer
Debits, credits and the movement on each account. Movement is in the account’s natural direction, so income and costs both show as positive.
GL_Journal_Lines_2026-01_to_2026-09.csv and Chart_of_Accounts.csv.
From budgeted to actual outlet EBITDA
Each line's variance moves EBITDA up or down from the budget. Green adds profit, red takes it away.
EBITDA bridge, selected months
GL against Budget_FY2026_Management.xlsx.
EBITDA variance by outlet and line
Which outlet and which line moved EBITDA most against budget.
GL against budget. Positive is favourable.
How much of each ringgit is kept
Margins month by month against the budget, and how the cost base is made up.
Margins by month
Gross margin and outlet EBITDA margin, with their budgets dashed, and prime cost (cost of sales plus staff) as a share of revenue.
GL; budget workbook.
Cost structure by month
Each outlet cost line as a share of revenue; the top band is the EBITDA that is left.
GL.
Where revenue comes from
Revenue by stream from the GL sales accounts, and what discounts, refunds and the delivery apps take back.
Revenue by stream, month by month
Gross sales by channel before discounts and refunds.
GL accounts 4010, 4020, 4030 and 4031.
What the delivery apps keep
Commission, SST on fees, promotions we funded and refunds, as a share of delivery sales.
GL accounts 6420, 6421, 6430 and 6440 against 4030 and 4031.
What comes off in-store sales
Discounts and refunds, and card and QR merchant fees, as a share of gross in-store sales.
GL accounts 4080, 4085 and 6410 against 4010 and 4020.
Which outlets earn the money
Each outlet's P&L in the selected months, its margin month by month, and its result against budget. Click an outlet to focus every page on it.
Outlet P&L, selected months
Costs as a share of each outlet's revenue; app fees as a share of its delivery sales. Rent cover is EBITDA before rent divided by rent. Best and weakest outlet on each measure are coloured.
GL tracking by outlet; budget workbook.
Outlet EBITDA, actual vs budget
Selected months. Click an outlet to focus the dashboard on it.
GL, budget workbook.
EBITDA margin by outlet, month by month
Outlet EBITDA as a share of its revenue.
GL.
The cost accounts, largest first
Every expense account in the selected months, with its change against the same number of months just before.
Expense accounts, selected months
Outlets and HQ together, or the outlet you picked. Hover a bar for the share of revenue and the change.
GL accounts 5010 to 6710.
HQ overheads
Costs with no outlet tracking: head office salaries, rent, software, professional fees, insurance and loan interest.
GL lines with a blank outlet tracking code.
What the company owns and owes
Company level, at the end of each month, from every GL balance including the opening balances brought forward from 31 Dec 2025. The ratios use the last month you selected.
Balance sheet at each month end
Assets less liabilities equal equity at every month end. Open a line to see its accounts.
GL_Journal_Lines_2026-01_to_2026-09.csv, all journals; Chart_of_Accounts.csv. The term loan is shown in full as non-current because the GL does not split out the current portion.
Cash, working capital and net assets
Month ends. Working capital is current assets less current liabilities.
GL balances.
What funds the assets
At the last selected month end: assets by type, and the liabilities and equity that fund them.
GL balances.
Where the cash came from and went
Company level, direct method, from every line of the bank statement. Each month ties from the opening to the closing balance.
BankStatement_CurrentAccount_2026-01..09, every line classified by its description. Loan repayments include interest.
Cash walk, selected months
Opening bank balance, what came in and went out, and the closing balance.
Bank statement.
Profit against operating cash flow
Profit before tax and the cash that trading brought in after paying suppliers, staff, rent, taxes and SST, month by month.
GL and bank statement.
SST, payroll deductions and tax instalments
What was charged, what was paid and what is owed at the last selected month end.
SST charged and paid by month
Service tax charged on sales in the month, and the bi-monthly payments to customs.
GL 2210 Service Tax Payable; bank statement SST payments.
Owed to the authorities and the bank
Balances at the last selected month end, and when they fall due.
GL balances; due dates follow the payment pattern in the bank statement.
Cash and settlement check
Did every ringgit taken at the till reach the bank?
What this says
- —
Every day’s takings against the bank
Choose how to break the numbers down, then open any row to go a level deeper. Click a column heading to rank by it. The outlet and month filters at the top apply.
Settlement explorer
What the till took and what reached the bank, by outlet, payment method, month and day.
POS_DailySummary and the bank statements.
The trends behind the numbers
POS takings against money in the bank
Card: settled next business day by sale date. QR & eWallet: PayHub settles the next calendar day. Cash: POS cash less petty cash paid from takings, against CDM deposits. Click a row to filter by outlet.
POS_DailySummary (Cash, Card, DuitNow QR, eWallet), BankStatement (CR SETTLEMENT MID, PAYHUB, CDM CASH DEPOSIT), GL account 6520 petty cash.
Running cash difference by outlet
Cumulative deposits minus (POS cash less petty cash) since 1 Jan. Below zero means less cash reached the bank than the till recorded. Petty cash is booked at month end, so the line steps up each month end.
POS_DailySummary (Cash), BankStatement (CDM CASH DEPOSIT), GL 6520.
Deposits furthest below POS cash
Each deposit against POS cash since the previous deposit (before petty cash, which is not dated by day).
POS_DailySummary, BankStatement.
Deposit gap by weekday of deposit
Average gap per deposit. A gap that sits on one weekday points to one routine or one shift.
POS_DailySummary, BankStatement.
Card and QR settlements against the till, month by month
What the bank received as a share of POS takings, for days that have settled. The gap is the merchant fee; a flat line means the fee rate held. Cash is on the running chart above, because deposits cross month ends.
POS_DailySummary and the bank statement.
Cash flow and payables
How much cash do we have, and what is coming due?
What this says
- —
Every bank line and every supplier bill
Choose how to break the numbers down, then open any row to go a level deeper. Click a column heading to rank by it. The outlet and month filters at the top apply. Search for a reference, supplier or bill number.
Bank explorer
Money in and out by category, counterparty, outlet and month. The last level lists the bank lines.
BankStatement_CurrentAccount_2026-01 to 2026-09.
Supplier bills explorer
Every bill by supplier and how promptly it was paid. The last level lists the bills.
AP_Bills_2026.csv.
The trends behind the numbers
Bank balance, actual and 13-week forecast
Daily closing balance to 30 Sep, then the forecast weekly closing balance from 1 Oct.
BankStatement_CurrentAccount_2026-01..09 (balances roll month to month to the sen).
13-week cash forecast from 1 Oct
Week by week
Trading inflows and supplier payments at the average of the last 8 weeks; payroll on the last working day; EPF, SOCSO/EIS, PCB and CP204 on the 15th; rent on the 1st; loan on the 5th; SST for the Sep–Oct taxable period at the last SST amount, due 30 Nov.
BankStatement patterns. A forecast, not actuals.
Trade payables ageing at 30 Sep
AP_Bills_2026.csv (Balance Due, Due Date); total ties to GL 2010 Trade Payables.
How late each supplier is paid
Average days from due date to payment, on paid bills.
AP_Bills_2026.csv, Supplier_Master.csv.
Money in and out of the bank by month
By category
BankStatement_CurrentAccount, every line classified by its description (none left as other).
Notes and method
Where every number comes from, how it is worked out, and the checks run on the raw files.
How the numbers are worked out
- Net sales exclude 6% SST. In-store: line net after discounts and refunds (ties to POS_DailySummary to the sen once 209 duplicate lines across the monthly exports are removed). Delivery: basket ÷ 1.06 for orders not cancelled.
- Receipts: completed in-store receipts plus delivered app orders. Before 1 Jul in-store figures come from the daily summary, which does not split receipts by dine-in and takeaway.
- Control checks run on the raw files: bank opening + transactions = closing for all nine months and each month opens where the last closed; GL debits equal credits for every journal; GL bank 1010 = RM 608,663.25 = bank statement; GL trade payables = open AP bills = RM 118,791.25; every supplier invoice ties to its AP bill; FoodRun store rows add up to the ALL STORES rows.
- Outlet names are mapped across systems: POS (including “KK MidValley” from 1 Aug), FoodRun, MakanGo, GL tracking, HR branch codes (BGR, SBG, CJY, MVM), the wastage form and the review place IDs.
- Scorecard thresholds, per outlet over the selected months. Sales: green at or above the same number of days just before, amber down to −3%, red below. EBITDA: green at or above budget, amber down to −5% of budget, red below. Cost of sales and staff cost % of revenue (GL): green within 0.5 points of the budget ratio, amber within 1.5 points, red beyond. Cash: cash deposited against POS cash less petty cash, as on the Cash & settlement page; amber below −RM 100, red below −RM 500. Delivery: unpaid or wrongly charged orders dated in the period; amber above RM 50, red above RM 500. Rating: green 4.2★ and up, amber from 3.9★, red below.
- Full-year outlook = actual Jan–Sep plus the budget for Oct–Dec. There is no 2025 data in the pack, so the yearly comparison is against the FY2026 budget, not last year.
- Financial reporting. The income statement takes every GL journal except the opening balances, rolled up through the chart of accounts. The balance sheet adds the opening balances brought forward from 31 Dec 2025 and every journal to each month end; profit for the year to date is shown as its own line in equity, and assets less liabilities equal equity at every month end. The cash flow statement is the bank statement by category (direct method) and ties from opening to closing balance each month. Ratios: current ratio = current assets ÷ current liabilities; quick ratio leaves out stock and CP204 tax prepaid; stock days and payable days use the last three selected months of cost of sales and purchases; return on equity annualises profit before tax to the last selected month and divides by average equity.
- Deep-dive explorers. Each one starts from the raw records (journal lines, supplier invoice lines, bills, bank lines, payslips, clock-ins, waste entries, reviews, delivery orders by day) and adds them up for whatever breakdown is picked, so every total ties to the record list under it. Each file was checked against the totals used elsewhere on the dashboard: GL P&L RM 8,118,219.65, food purchases RM 1,353,623.88, gross pay RM 1,094,623.33, delivery net payout RM 515,746.44 and 19,434 orders, and 23,040.7 clocked hours. Change compares the selected months with the same number of months just before; a month row compares with the month before and a day row with the same weekday a week earlier. Employees appear by employee number and position, not by name.
- SST is paid every two months, by the end of the month after each two-month period (Jan–Feb by 31 Mar, and so on), as the bank statement shows. The Sep–Oct amount is therefore due by 30 Nov 2026.