Heatmap
For: spotting patterns that flat charts miss β which Tuesday afternoon is suddenly your best window? When: monthly or quarterly review.
A 7-day Γ 24-hour grid where colour intensity tracks the selected metric averaged over the period. Each cell shows the average value for that weekday-hour combination across every week in the range, accounting for how many of each weekday actually fell in the period.
What's on screen
- Heatmap grid: rows are days of the week (MondayβSunday), columns are hours (0β23). Dimmer cells are quieter; brighter cells are busier.
- Tap a cell: exact average value for that day-of-week Γ hour.
- Metric toggle: three options β
Net Sales (default), Orders, Lines Sent. Net Sales displays as currency; Orders and Lines Sent display as rounded integers. Lines Sent measures kitchen lines dispatched, independent of payment.
Reading it
The heatmap surfaces the structural rhythm of your business: lunchtime peak MonβFri, dinner peak on weekends, dead zones mid-afternoon. Switch to Lines Sent to see kitchen load pattern separately from revenue β useful when you have high-volume low-ticket periods that don't show up strongly on the sales view. Use the pattern to plan staffing, kitchen prep, and promotions around off-peak windows.
Hourly Sales
For: managers tuning staffing or understanding traffic patterns. When: at end of day, or during the day in retrospect.
Breaks the day down into 24 hourly buckets, each with sales, order count, and a comparison against the same hour the previous week.
What's on screen
- Hero KPI: net sales for the day, vs last week.
- Secondary KPIs: total orders, average order value.
- Hourly bar chart: net sales per hour.
- Detail table: hour, orders, net, last-week net, percent change. The peak hour is flagged with a flame icon.
Reading it
Look for hours that consistently underperform vs the prior week β they often point to staffing gaps or service issues. The flame highlights your busiest hour, useful for planning prep and rotation breaks.
Items by Category
For: another level of menu rollup, often used alongside Items by Group. When: weekly or monthly review.
Categories are the next-finest cut beneath groups (e.g. inside the "Drinks" group: Coffee, Tea, Soft Drinks, Wine).
What's on screen
- Hero KPI:
Total Sales for the period. No comparison percentage.
- Secondary KPIs:
Items Sold, Categories (distinct category count).
- Bar chart: top 8 categories by sales. Y-axis uses compact currency (e.g.
$4.4k).
- Categories table:
Category, Qty, Sales. Tap a row to filter the products table to that category; tap again or press Clear filter to reset.
- Products table:
Product, Qty, Sales. Shows all products when no category is selected; filtered to the tapped category otherwise.
Reading it
Use categories to find the specific part of a group that's moving. If "Drinks" is up but you don't know why, tap that row in the categories table β the product list below immediately narrows to just Drinks items so you can see which ones are driving it.
Items by Group
For: tracking the performance of menu sections (Drinks, Mains, Desserts) rather than individual items. When: weekly or monthly review.
Aggregates every product by the report group it belongs to, sums sales and quantities, and ranks the groups.
What's on screen
- Hero KPI:
Total Sales for the period. No comparison percentage.
- Secondary KPIs:
Items Sold, Groups (distinct group count).
- Bar chart: top 8 groups by sales. Y-axis uses compact currency (e.g.
$4.4k).
- Groups table:
Group, Qty, Sales. Tap a row to filter the products table to that group; tap again or press Clear filter to reset.
- Products table:
Product, Qty, Sales. Shows all products when no group is selected; filtered to the tapped group otherwise.
Reading it
Group-level numbers move more slowly than individual products and are usually a better indicator of strategic shifts. A drop in "Hot Drinks" share over a month is worth investigating; a single-day dip in one specific item often isn't. Tap a group row to drill straight into its products without leaving the screen.
Items by Staff
For: shift performance, upsell tracking, identifying top performers. When: weekly review or end of shift.
Sums every product sold by each staff member across the selected period.
What's on screen
- Hero KPI:
Total Sales for the period. No comparison percentage.
- Secondary KPIs:
Items Sold, Staffs (distinct staff count).
- Bar chart: top 8 staff by sales. Y-axis uses compact currency (e.g.
$4.4k).
- Staff table:
Staff, Qty, Sales. Tap a row to filter the products table to that staff member; tap again or press Clear filter to reset.
- Products table:
Product, Qty, Sales. Shows all products when no staff member is selected; filtered to the tapped staff member otherwise.
Reading it
Use this for coaching and recognition rather than crude leaderboards. Tap a staff row to see exactly which items they sold β useful when coaching around upsell opportunities or investigating a low-ticket shift.
Kitchen Categories
For: pinpointing which kitchen station is the bottleneck. When: end of day or weekly review.
Same wait-time numbers as the headline kitchen report, but split per kitchen category (Grill, Cold Bar, Pastry, etc.).
What's on screen
- Summary KPIs: total lines, open lines, recalls.
- Category table: average wait, max wait, open lines, completed (Done), and recalls per kitchen station. Sorted with the slowest stations at the top β that's the question the screen exists to answer.
Reading it
If Cold Bar averages 4 minutes and Grill averages 12, the answer to "why is the kitchen slow today" is rarely "the kitchen" β it's the Grill specifically. Use this view to direct staffing or process changes at the right station.
Kitchen Recalls
For: tracking kitchen quality issues. When: daily review.
A "recall" is when an order was marked ready, then sent back β usually because something was wrong (missing item, wrong cook, allergen mismatch). High recall rates are a leading indicator of customer dissatisfaction.
What's on screen
- Hero KPI: total recalls in the period.
- Secondary KPIs: recall rate (recalls Γ· completed lines), total lines.
- Recall list: ranked per product β product name, category, recall count, completed-line count, and recall rate. Rate is amber under 5% and red at 5%+.
Reading it
The list ranks the worst-offending products, not individual recall events β so a product that recalls four times sits above one that recalled twice, even if those two were dramatic. Watch the rate column more than the count: a high-volume product with a 1% rate is healthy; a low-volume product with a 20% rate is a recipe or process problem.
Kitchen Wait Times
For: kitchen managers, troubleshooting service slowdowns. When: live or end of day.
Tracks the time between an order hitting the kitchen and being marked ready. The trend chart is a single-series weighted average across all categories β each period bucket is weighted by completed-line count so a single slow order doesn't distort the picture.
What's on screen
- Hero KPI:
Avg Wait β weighted average wait time for the period.
- Secondary KPIs:
Min Wait, Max Wait, Lines.
- Bar chart: weighted avg wait per period bucket (day or hour depending on the selected range).
Reading it
Spikes in avg wait that line up with high line counts are expected capacity pressure. Spikes that don't correspond to volume usually point at staffing, equipment, or a workflow problem. Drill into Kitchen Categories to isolate which station is responsible.
Order Types
For: understanding channel mix and where your revenue actually comes from. When: weekly or monthly review.
Breaks down sales and order count by orderTypeCode (dine-in, takeaway, delivery, kiosk, online, etc.).
What's on screen
- Hero KPI: total net sales for the period.
- Secondary KPIs: order count, number of distinct channels.
- Per-type rows: colour-coded label, net sales, share-of-total bar, order count, tips, and percent of total.
Reading it
Order-type mix shifts seasonally and during promotions. If a type's share drops unexpectedly week-over-week, that's a flag β staffing, marketing, or platform integration may be off.
Kitchen Stats
For: kitchen managers needing the one-screen overview. When: end of shift, daily review.
The aggregate kitchen view, with a configurable trend chart for whichever metric you're chasing, plus category and product breakdowns.
What's on screen
- Hero KPI:
Avg wait time for the period.
- Secondary KPIs:
Total lines, Open, Recalls, Min wait, Max wait.
- Metric selector: six options β
Avg Wait Time, Min Wait Time, Max Wait Time, Completed Lines, Open Lines, Recalls. Default: Avg Wait Time.
- Group by selector:
Category or None. When set to Category, the chart renders one bar series per kitchen category; when None, a single series.
- Bar chart: redraws when either selector changes. Wait metrics aggregate across categories per period bucket (max for category group, weighted avg for none); count metrics sum.
- Categories table:
Category, the selected metric value, Open, Done. Tap a row to filter the products table to that category; tap again or press Clear filter to reset.
- Products table:
Product, the selected metric value. Shows all products when no category is selected; filtered to the tapped category otherwise.
Reading it
Use Kitchen Stats as a starting point β if a number looks off, drill into the specific report (Wait Times, Recalls, Categories) to find the cause. Tap a category row to narrow the product table immediately without leaving the screen.
Orders
For: managers checking on specific transactions, support investigations. When: any period.
Lists every order in the selected period with status, total, and time. Tap an order to see the full detail β line items, payments, and activity log.
What's on screen
- Hero KPI: total sales for the period.
- Secondary KPIs: order count, cancellations.
- Live-unpaid alert: amber card that surfaces only when there are open
unpaid orders, with the count and dollar value.
- Order list: chronological β time, order number, status, total. Tap any
row for the full breakdown (line items, payments, activity log).
Reading it
Orders is the drill-in surface β most days you'll start in another report (Pace, Daily Sales) and come here to investigate a specific order or hour.
The list is capped at the most recent 1,000 orders. If your period spans more, narrow the date range.
Pace
For: floor managers, owners. When: live, during a trading day.
Shows today's hourly net sales next to a baseline computed from the same weekday over the previous four weeks. Lets you see at a glance whether you're tracking ahead, on, or behind a typical day.
What's on screen
- Hero KPI:
Net Sales Β· Today So Far (when viewing today) or Net Sales Β· Day (when viewing any other day), with the percent vs the trailing-4-week same-weekday average.
- Pace card: a coloured "Ahead of pace" / "Behind pace" callout with the dollar gap and the typical baseline value for this point in the day.
- Secondary KPIs: orders (with vs-baseline change), average order value.
- Hourly bars: today's net sales by hour. The pace comparison is conveyed by the hero KPI and the pace card β the chart itself is a single series.
Reading it
The hero percent and the pace card are the at-a-glance signal. If you're behind, scan the hourly bars for the hour that fell short β usually a staffing, weather, or kitchen-wait spike maps onto it.
The vs-baseline comparison gets noisier earlier in the day; a single quiet hour skews it. After lunch service it's a steadier read.
POS Pairing
For: managers setting up or replacing a POS terminal. When: a POS device needs to be paired to a site for the first time, or an existing pairing needs to be reset.
This is a tool, not a report. It mints a single-use setup token scoped to the site shown in the header and renders it as a fullscreen QR code. The POS device scans the code to complete authentication β no manual credential entry required.
What's on screen
- Token description: confirms which site the code is scoped to and reminds you codes expire after 5 minutes.
- QR code: fills most of the card. Generated automatically on open and whenever the site selection changes β no extra tap needed.
- Countdown ("Expires in m:ss"): ticks down in real time from 5:00. Driven by the server-returned expiry timestamp, not a local timer, so clock skew on the device doesn't cause a premature or late cutoff.
- Expired state: when the timer hits zero the QR is replaced by "Code expired / Tap below to generate a fresh code."
- Generate new code button (refresh icon): mints a new token at any time β before or after expiry. Disabled while a mint is in flight.
- Share button (share icon): rasterises the QR to a PNG and opens the system share sheet (AirDrop, Messages, Files, etc.). Only enabled while a valid, unexpired token is on screen β disabled during loading, after expiry, and while a share is already in progress.
- Helper text (below card): "Open the POS app and scan the code above to pair this device."
- Error state: if the mint call fails, the card shows the error message in place of the QR.
Reading it
Open this screen, hand or face the device toward the POS terminal, and let the terminal scan. The whole flow should take under ten seconds. If the terminal is slow to scan and the code expires, tap Generate new code β no need to restart.
If you switch the site selector while the screen is open, a fresh token is minted automatically for the new site. Don't reuse a code across sites; each token is scoped at mint time.
QR Redirects
For: floor managers and operators handling QR stickers. When: a sticker needs to point somewhere new, a fresh sticker needs wiring up before it goes out, or you're staring at a code in the wild and need to know what it is.
This is a tool, not a report. Every sticker resolves through a short code that you control; this screen is how you list, search, scan, and edit those codes. The code itself is permanent β once printed you change the destination, never the code.
What's on screen
- Search field: filters the list as you type, case-insensitive over name and code.
- Scan button (camera icon): opens a fullscreen scanner. Decode a sticker and the app either opens the matching redirect for editing, opens the create form pre-seeded with that code, or shows a red banner if the code belongs to another organisation (Dismiss to clear).
- New button (+ icon): opens the create form with a freshly generated 8-character code.
- Redirects list: alphabetical by name. Header has a Show inactive (N) switch on the right that only appears when inactive redirects exist; defaults to active-only. Each row shows name, an ACTIVE/INACTIVE pill, the code and type (Table ordering / Manual URL), and the current target URL. Tap a row to edit; long-press to preview its QR.
- Empty state: tells you why β search hit nothing, only inactive entries exist, or the org has no redirects yet.
The edit modal
- Name β internal label, e.g. "Front door QR".
- Code β locked after creation; auto-generated for new redirects.
- Type β Table ordering (Dnero-hosted) or Manual URL (any link).
- Domain β only shown when the org has 2+ domains; required when shown. Single-domain orgs auto-bind silently.
- Site β pre-fills from the header's currently-selected site for new redirects. If you only have one site under the chosen domain it's pinned automatically.
- Menu β "Use site default" is the fallback; auto-selects when the site has exactly one menu.
- Table β "No table" is the fallback; auto-selects when the site has exactly one table.
- Target URL β only shown for Manual type; for Table ordering it's generated on save.
- Active β switch off to disable without deleting the code.
The QR preview
Long-press a row to fullscreen the QR for that redirect's URL. Useful for holding the screen up against a printed sticker for visual confirmation, or scanning it from another device for a quick test. The preview also exposes:
- Share (top-left): rasterises the QR to a PNG and opens the system share sheet β AirDrop, Messages, Files, etc. Use this to send a sticker design to a printer or to drop a one-off code into a chat without printing anything.
- URL (under the code): tap to open the destination in your browser.
- Close (top-right X).
Reading it
Reach for this when a sticker is in the wrong place, not when you're looking at numbers. Common moves: a printer mis-mapped a batch and you scan each sticker to repoint it, a guest's table changes and you swap the table number, or a campaign sticker is coming down so you flip it inactive.
If you're holding a physical sticker, scan it β that's the fastest path and tells you immediately whether the code is yours, free, or owned by another org. If you're working from a name, search. If you need a different code, create a new redirect and reprint; never try to edit the code on an existing entry.
Daily Sales
For: owners reviewing weekly or monthly performance. When: any multi-day period.
Plots one bar per day across the chosen range, with totals for the full period. Days with no orders are hidden from the table.
What's on screen
- Hero KPI:
Net Sales β total net sales for the period. No comparison percentage.
- Secondary KPIs:
Orders, Tips, Avg Order.
- Daily bar chart: each day's net sales. Y-axis uses compact currency (e.g.
$4.4k).
- Detail table:
Date, Orders, Net, Tips.
Reading it
A weekly view shows you which days of the week pull their weight. A monthly view exposes trend β are you on a growth trajectory, or a slow decline? Compare the same period across consecutive months for a clean read.
Sent Volume
For: kitchen managers and ops leads. When: you need to understand throughput and load on the kitchen, regardless of whether orders are paid or how much they're worth.
Lines sent counts every order line dispatched to the kitchen display or printer. It moves independently of revenue β a $5 item and a $50 item each add one line. Use it to gauge prep demand, spot volume spikes, and correlate kitchen load with staffing.
What's on screen
- Hero KPI:
Lines Sent β total kitchen lines sent for the selected period. No comparison percentage.
- Granularity toggle:
Hourly (default) or Daily. Hourly materialises all 24 hours per date so quiet periods show as zero bars rather than gaps. Daily rolls all hours up to a single bar per calendar date.
- Bar chart: single-series bars coloured in the accent colour. X-axis is time (hour label in Hourly mode,
MMM d date in Daily mode). Y-axis is line count.
- Table: two columns β
Time (Hourly) or Date (Daily) and Lines Sent. Rows match every bar in the chart, including zero-count hours in Hourly mode.
- Empty state: "No kitchen lines sent for this period." shown when the dataset is empty.
Reading it
A tall bar at a specific hour means the kitchen was under the most load at that moment β not necessarily when the most revenue came in. Compare Hourly view across multiple days to identify recurring crunch windows and schedule prep or extra staff accordingly. Switch to Daily to see which days of the period were heaviest overall and whether volume is trending up or down across the range.
Slow Movers
For: menu pruning, spotting items losing momentum. When: monthly or quarterly review.
This is decline-focused, not bottom-of-list. Products are filtered to those with meaningful sales in the prior period that have either dropped or vanished this period β items that didn't sell either side aren't "slow", they're irrelevant. Ranked by largest percent decline, capped at the top 50.
What's on screen
- Decline list: rank, product name, current-period sales and units, percent change vs the prior equal-length period (a red delta pill), and category.
- No-declines state: an empty card if every product with prior sales held steady or grew.
Reading it
A product near the top is bleeding share fast β investigate before it disappears. Genuine seasonal items will surface here too, so cross-reference with the same period last year before deciding to cut anything.
Top Products
For: menu engineering, identifying winners. When: weekly or monthly review.
Lists the top products in the selected period, ranked by quantity sold (or revenue, via toggle), with a comparison to the prior period.
What's on screen
- Hero KPI: total product sales for the period.
- Secondary KPIs: items sold, distinct product count.
- Ranked list: rank, product name, current-period sales and units, and a percent-change pill vs the prior equal-length period. Capped at the top 50.
- Sort toggle: three modes β By Sales, By Qty, and Top Movers (sorted by largest percent gain vs the prior period).
Reading it
The default By Sales view answers "what's working right now". Switch to Top Movers to surface step-changes β a small menu or photo tweak often shows up as a sharp climber long before it dominates the sales list. Watch sharp drops in high-margin items too; the percent pill makes them easy to spot.