What this dashboard is for
The Trends dashboard is your historical view. It answers one question across every time horizon: "How has this outlet's performance moved over weeks, months, years, days, or by weekday?"
Open it when you want to see direction and rhythm, not the live state of today. For real-time pace use the Today dashboard; Trends is for the long view.
The core concept: timeframes
Every chart on Trends is split by timeframe — the parts of the day you have configured for the outlet (for example Breakfast 6–11am, Lunch 11am–4pm, Dinner 4pm onwards). Each order is attributed to one timeframe based on the time the order was placed in Bangkok time and the timeframes you defined on the outlet.
If you have not configured timeframes on the outlet, every order is grouped under Total. If an outlet has timeframes set, the top 9 by revenue are kept and anything else falls into Other. There is also a flat Overall avg line drawn on most charts as a reference — that is the average of the whole-outlet weekly total across the entire range, regardless of timeframe.
At the top of every tab there is a timeframe picker table (click a row to filter the rest of the tab to that timeframe; click again to clear). The picker uses the same attribution logic the charts use.
The five tabs
Weekly — bars and lines grouped by week (Monday-to-Sunday in Bangkok time).
Monthly — grouped by calendar month.
Yearly — grouped by calendar year.
Daily — one bar per business day. Useful for spotting individual outliers.
Weekday — collapsed to seven buckets, Monday through Sunday. Shows the typical rhythm of your week.
The four "time-bucket" tabs (Weekly, Monthly, Yearly, Daily) have the same seven charts in the same order. The Weekday tab has the same seven metrics, just collapsed to day-of-week.
Weekly tab
1. Weekly Revenue
Stacked bars: one bar per week, segmented by timeframe. The flat line on top is the Overall avg — the average weekly total across the whole range.
Each coloured segment is one timeframe's contribution to that week's revenue.
The flat reference line is the same for every bar — it is the average of weekly totals, drawn so you can see at a glance which weeks landed above or below your normal week.
Reading it: tall bars above the line are strong weeks; short bars below are quiet ones. If a single timeframe segment is growing or shrinking faster than the others, that is where the movement is coming from.
How it's calculated: closed orders only (status = 'complete'). Each order's revenue is its total field, summed by the week of reportingDate. Bangkok time.
2. Weekly Orders
Same shape as Weekly Revenue, but counting orders instead of revenue. One bar per week, stacked by timeframe.
Reading it: compare to the Revenue chart above. If revenue is climbing but orders are flat, your average ticket is going up. If orders are climbing but revenue is flat, you are selling more, smaller orders.
How it's calculated: count of closed orders (one per cheque) by week of reportingDate.
3. Weekly Guest Count | Dine-In Only
Number of guests served per week, restricted to dine-in orders. The guest count is whatever your staff entered on the order at the POS.
How it's calculated: sum of guestCount on closed dine-in orders (channelType = 'dine-in'). Takeaway, delivery, and partner orders are excluded — they don't have a meaningful guest count.
4. Weekly AOV
Average order value per week, drawn as a line. One line per timeframe, plus an overall reference.
How it's calculated: revenue ÷ orders, per timeframe per week. Closed orders only.
Reading it: a rising AOV means each cheque is getting bigger — either guests are buying more items or the menu mix has shifted to higher-priced items. A falling AOV usually means more cheaper orders (often takeaway or partner).
5. Weekly Items per Order
Average number of items on a cheque per week.
How it's calculated: total confirmed items (order_items.status = 'confirmed' — cancelled items excluded) ÷ number of closed orders, per timeframe per week.
6. Weekly Revenue per Guest | Dine-In Only
How much each individual guest spent on average, dine-in only.
How it's calculated: dine-in revenue ÷ sum of guestCount, per timeframe per week. Cheques where staff did not enter a guest count don't contribute to the denominator.
7. Weekly Items per Guest | Dine-In Only
Average number of items consumed per guest. Dine-in only.
How it's calculated: confirmed items on dine-in cheques ÷ total guest count, per timeframe per week.
Monthly tab
Same seven charts as Weekly, grouped by calendar month instead of week. Read them the same way — they smooth out week-to-week noise and show seasonal direction.
1. Monthly Revenue
2. Monthly Orders
3. Monthly Guest Count | Dine-In Only
4. Monthly AOV
5. Monthly Items per Order
6. Monthly Revenue per Guest | Dine-In Only
7. Monthly Items per Guest | Dine-In Only
Yearly tab
Same seven charts, one bar per calendar year. Most useful for outlets with two or more years of trading.
1. Yearly Revenue
2. Yearly Orders
3. Yearly Guest Count | Dine-In Only
4. Yearly AOV
5. Yearly Items per Order
6. Yearly Revenue per Guest | Dine-In Only
7. Yearly Items per Guest | Dine-In Only
Daily tab
One bar per business day. Use this tab when you want to spot specific outlier days — a public holiday, a private event, a closure, a service failure.
1. Daily Revenue
2. Daily Orders
3. Daily Guest Count | Dine-In Only
4. Daily AOV
5. Daily Items per Order
6. Daily Revenue per Guest | Dine-In Only
7. Daily Items per Guest | Dine-In Only
Weekday tab
The same seven metrics, collapsed to day-of-week. Every Monday in the range is averaged together, every Tuesday together, and so on. This is the only tab where the bars are not a date — they are Monday through Sunday.
Use this when you are planning staffing, deciding which day to close on, or asking "is Wednesday always this quiet, or just this week?"
1. Revenue | by Weekday
Average revenue per Monday, per Tuesday, … per Sunday — computed across all weeks in the selected date range.
How it's calculated: total revenue per weekday ÷ number of that weekday in the range. So if your range covers eight Tuesdays and total Tuesday revenue is 800,000, this chart shows 100,000.
2. Orders | by Weekday
3. Guest Count | by Weekday | Dine-In Only
4. AOV | by Weekday
5. Items per Order | by Weekday
6. Revenue per Guest | by Weekday | Dine-In Only
7. Items per Guest | by Weekday | Dine-In Only
How the numbers are defined
What counts as an order — only orders with
status = 'complete'. Voided, cancelled, and still-open tabs are excluded.What counts as an item — only
order_itemswithstatus = 'confirmed'. Cancelled items inside an otherwise complete order are not counted.Date field —
reportingDate, the business day the order is attributed to. For outlets with late-night service this can differ from the calendar date of the timestamp.Timezone — Asia/Bangkok for all weekday and time-of-day calculations.
Timeframe attribution — each order is matched to the outlet's configured timeframe whose start/end clock-time window contains the order's
orderDate. Overnight timeframes (e.g. 22:00 → 02:00) are handled correctly. If no timeframes are configured, every order falls under "Total".Top 9 timeframes — only the top 9 timeframes by revenue are shown as their own segment; the rest are folded into "Other".
Filters
The dashboard has three filters at the top of every tab:
Reporting Date — the date range. Defaults vary by tab.
Outlet — pinned to your outlet when the dashboard is embedded in the Papaya merchant portal. You don't need to set it.
Timeframe — click a row in the timeframe picker table at the top of the tab to filter every chart on that tab to that single timeframe. Click again to clear.
What this dashboard does NOT show
Today's live state (use the Today dashboard).
Breakdowns by channel — that's the Channels dashboard.
Item-level or category-level performance — use Items and Categories.
Margin or cost data — that lives in the Inventory module.
Multi-outlet comparison — use Outlets or Group KPIs.
Customer reviews — use the Reviews dashboard.



































