Dashboard

Home / Dashboard
Last sync: -- | Next: --
Sync Now
Revenue
Across all stores
Orders
Active Stores -

Revenue Overview

Tender Type Summary

Product Sales

Top Sellers

Customer Loyalty

Inventory Alerts

All Customer Reviews

Reviews Requiring Attention (1-3 Stars)

Cash Settlements

Equipment Service

Revenue
vs previous period
Orders
vs previous period
Avg Ticket Size
vs 7-day avg
Items Sold
Total units
Customer Rating (Google)
Google, GoFood, Grab Food

Store Target

Revenue Overview

Hourly Sales Heatmap

Top Sellers

Revenue by Category

Slow Movers

All Customer Reviews

Reviews Requiring Attention (1-3 Stars)

Delivery Platform Breakdown

Inventory Snapshot

View Full Inventory →

Nearby Competitors

Price Comparison

Competitor Peak Hours

Stores

Store Name Code Area Status Owner Olsera ID Manager Hours Links Opened

Store Stock Levels

Ingredient Category On Hand Re-order (days) Est. Days Remaining Status Recommendation

Stocktake History

Date Store Items Completed By Status Adjusted Reason PDF

Spill/Waste Log

Date Store Ingredient Theoretical Actual Variance Spill / Efficiency Status
Staff Checked In
0
Staff on Leave
0

Attendance Timeline

Recipe Management

Menu items, ingredients, costs and margins

Equipment Management

Espresso machines, grinders, fridges and service logs

Users / Roles

Manage users, roles and page access permissions

Connections & Data

POS integrations, Xero, and external services

Database Management

Data objects, backups, and storage management

Store Management

Store details, locations, and operating hours

All Recipes

Menu Item Category Ingredients Sell Price Net Rev Cost Cost + Spill/Waste Spill/Waste Allowance Margin Cost Mix Active Promos Availability Status Version

All Ingredients

Name Olsera Name Category Unit Purchase Unit Cost / Purchase Unit Reorder Point

Ingredients Stock

Ingredient Category Unit Cost / Unit Last Stocktake Theoretical Use Est. Stock on Hand Re-order (days) Used In Stocktake Date

▼Completed Transfers

Date From To Items Transferred By Status

Equipment Register

Asset Asset Tag Type Brand / Model Location Purchase Date Purchase Price Status Cups Produced Last Service Cups Since Service Next Service

Supplier Directory

Business Name Category Key Contact Phone Email Assigned Purchases Notes
to
■ Coffee ■ Non-Coffee ■ Pastry ■ Add-ons ■ Value Deals ■ Bundles ■ Negative margin

Top 15 — Margin %

Top 15 — Margin Value

Bottom 5 — Margin %

Bottom 5 — Margin Value

Product Detail

▶Outstanding Cash Transfers

▶Cash Shrinkage

▶Resolved Settlements

to

Store Contribution

Profit & Loss Statement

to

Balance Sheet

Cashflow Statement

▶ Categorised Bank Transactions

CFS Category Rules

Keyword rules override the default account-type category in the cashflow statement. Matched case-insensitively — first matching rule wins.

Owner Name Code Type NIB NPWP Stores

Users / Roles

User Email Role Page Access Password Owner Main Store Report Stores Status

Olsera Olsera POS

Configured

Per-store API keys are used to authenticate with the Olsera monitoring API via the Cloud Function proxy. Credentials are stored in Google Cloud Firestore.

Store API Keys
Each store requires its own Olsera app with unique credentials
Store App ID Secret Key Bearer Token Token Expiry Status
calls / seconds
Regular Scheduled Sync
to
Data Sync
Sync History ▶
Data Validation ▶ (compare transaction counts per store/month against expected)
Transaction Adjustment Rules ▼ (correct tender type misclassifications from Olsera)
When Olsera records the tender type below AND loyalty points were fully redeemed (total = Rp 0), reclassify from Cash to Free Cup. Raw Olsera data is preserved.
When Olsera records EDC or Bank Transfer but the order source identifies a delivery platform (GoFood, GrabFood, ShopeeFood), reclassify to that platform's tender type. Raw Olsera data is preserved.
Saved rules are applied by the server on every Sync Orders. To re-apply them to existing data after changing a rule, use Rebuild Derived under Data Sync above.

Xero Xero Accounting

Not Connected
calls / seconds

G GoFood (GoBiz) Merchant API

Checking…
Direct Integration — credentials managed via Firebase Secret Manager (not editable here). Use the Operations → GoFood page to manage menu, promotions, and orders.
Environment: —
App ID: —
Partner ID: —
App Secret: —
Order Relay Secret: —
Outlets configured: —

Firestore Google Cloud Firestore

Checking...

Firestore is the primary database for this application. All data is stored in the tables collection with offline persistence enabled for cross-device sync.

Console: console.firebase.google.com → coffee-commandcentre

Documents: — Cache: — Last sync: —

Google Maps Google Maps

Competitor Scanning + Menu OCR

Required for Competitor Analysis scan and menu OCR. Enable the Maps JavaScript API, Places API, and Cloud Vision API in your Google Cloud Console.

calls / seconds
calls / seconds

Email Reports

Send at Jakarta time
Not Configured
Recipients

System Architecture

Database Tables

API Connections

Data Recovery

If Firestore data was accidentally reset to defaults, use this button on the device that still has your correct data to push it back to the cloud.

Derived-Table Rebuild Failures

Logged when a post-sale rebuild of daily revenue/hourly sales/product sales/customers fails right after a sale. The 30-min scheduled sync self-heals these automatically — this list is just visibility into how often it's happening.

Loading…

Cloud Backups

Nightly at 02:00 Jakarta — 30-day retention

Loading backup list…

Store Launch Comparison

Compare store performance from day 0 — each store's launch date is normalised to the same starting point so you can see how new stores are tracking relative to established ones at the same stage.

Metric
X-axis
View
Stores

Cumulative Revenue Since Launch

Weekly Revenue Run-rate Since Launch

Store Comparison Table

Report Builder

Build a custom report from Command Centre's data — pick rows, columns and values like a pivot table, filter it, then export the result to Excel.

Report Name
Load Saved Report

Available Fields

Pick fields from any source below — combining fields from more than one automatically blends them by Date/Store.

Dimensions
Measures

Report Layout

Rows
Columns
Values
Filters

Result

Tax & Charge Settings

Menu prices are inclusive of all taxes and charges. These rates determine the breakdown of net revenue, service charge, and PBJT tax from each sale.

Tender Type Breakdown

Tender by Store

▶Transactions

Receipt # Date/Time Store Cashier Items Tender Earned Redeemed Discount Total

Promotion Effectiveness

Promo Code Type Description Uses Discount Given Revenue Influenced Avg Basket ROI

Discount Share by Promo

Active Promotions

Pricing Recommendations

Selected Period
All Time

Loyalty Transactions

Successful Nudges

Customer Segments

Visit Frequency Distribution

Customer Opportunities

Click a persona to see top opportunities

▶Completed Nudges

▶Loyalty Members

Activity Log

Timestamp User Action Module Description Changes

▾ After-Hours Alerts

Loading…
| |
Active Carts
—
Checked in right now
Cups Sold
—
In selected period
Revenue
—
In selected period
Flagged
—
Shifts over variance threshold, in period

Cart Sales

Products Sold

Loading…

Sales by Hour

Loading…

Cart Leaderboard

#CartRiderRegionCups SoldRevenue
Loading…

Live Cart Map

Cart Status and Details

CartRiderCheck-inCheck-outCupsRevenueVarianceStatusLocationPhotosDetail
Loading…

Manage Riders

NamePhoneStatus
Loading…

Rider Assignments

Only carts with status "Open" or "Pre-opening" can be assigned — a closed cart won't show up for the rider even if assigned. Don't see the cart you need? Activate it in Store Management first.
CartRiderPhoneAssigned
Loading…

Cart Settings

No longer enforced — riders check in/out on stock numbers alone and fill in photo tiles (opening stock, start business, restock, closing stock) whenever from their shift dashboard.

▼Recent Shifts

CartRiderCheck-inCheck-outVarianceStatus
Loading…

▶Rider Motivation Messages

▸ Overtime Rules

Global rule set applied to every staff.

▸ Standard Hours Per Staff

Per-staff OT rate, hours/day, and standard days/week.

▾ Excel Export — Month End Report

Three-sheet workbook: Summary (audit), By Employee (reconciliation), Detail (per-day entries). Each historical day uses the OT rules + staff schedule that were active on that day.

▾ Leave Requests

▾ Attendance Records

Backfill T&A History to System Logs
One-time operation — writes all historic check-in/out records into the Command Centre system log.

Nudge Configuration

Define personas and their classification rules. Order matters — first match wins. All conditions within a persona must be true (AND logic).

Nudge Settings

days after last nudge

Customers won't appear in the opportunities table during the suppression period. After it expires they reappear with a prior-nudge badge.

WhatsApp Send Rate Limits

Protects the sender's WhatsApp account from anti-spam flags. When a limit is reached, the WA send buttons grey out until the next slot opens. Defaults err on the conservative side — raise as your account history establishes.

sends / hour
sends / day (Jakarta)
to

Shared Appendix Variants

Feedback ask + corporate bundle pitch — appended to certain persona messages
Tokens (substituted at send time): {firstName} {drinkRef} {drinkSuggest} {sinceLine}  ·  Conditional segments: [+drinkRef: text] shown only when drinkRef is non-empty; [-drinkRef: text] shown only when drinkRef is empty. The same grammar applies to the per-persona variants inside each persona card.

Mobile View Configuration

Toggle pages for the mobile tab bar, then configure which elements are visible per page
Total Items
0
Open
0
Blocked
0
Completed
0

Development Lifecycle

Sequenced by dependencies & priority
ID Type Title Priority Status Dependencies Created
Completed (0)

User Feedback

Version History

Version Date Type Changes