Dashboard

Home / Dashboard
Revenue
Across all stores
Orders
Active Stores -
Staff On Duty -

Revenue Overview

Top Sellers

Product Sales

Store Status

Customer Loyalty

Inventory Alerts

All Customer Reviews

Reviews Requiring Attention (1-3 Stars)

Cash Settlements

Equipment Service

Promotion Performance

Delivery Platforms

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

Revenue Overview

Hourly Sales Heatmap (Last 7 Days)

Top Sellers

Revenue by Category

Slow Movers

All Customer Reviews

Reviews Requiring Attention (1-3 Stars)

Staff Overview

Order Fulfilment

Delivery Platform Breakdown

Inventory Snapshot

View Full Inventory →

Store Comparison

Store Revenue Orders Avg Ticket Best Seller Staff Fulfilment Status

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

Spill/Waste Log

Date Store Ingredient Theoretical Actual Variance Spill / Efficiency Status

Staff Directory

Name Staff # Olsera Role CC Role Store Status Shift

Shift Schedule

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 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

Operating Expense Detail

Owner Name Code Type NIB NPWP Stores

Users / Roles

User Email Role Page Access Password Owner Store Status

Complete these steps in order at month-end to ensure all data is reconciled and synced across systems.

1Sync Olsera POS Data

What it does: Pulls transaction data from the Olsera POS system for the selected date range across all configured stores. Fetches order details, payment methods, line items, customer data, and loyalty points. Runs on the server (Cloud Function) so you can close the browser during sync.

Sync Orders: Incrementally syncs new orders only (skips already-synced order IDs). Splits into weekly chunks per store — each gets the full server time budget.

Force checkbox: Bypasses the sync index and re-fetches ALL orders in the date range, including ones already synced. Use when order details are incomplete (e.g. after a budget timeout) or data looks wrong.

When to use: Run at month-end to capture all transactions. Set dates to the full month. After sync, check the dashboard to verify totals match Olsera.

Warning: Large date ranges with Force enabled will re-fetch all orders and may take 30-60 minutes due to Olsera API rate limits (429 throttling). Do not run Force unless needed.

to

2Apply Transaction Adjustments

What it does: Applies payment correction rules to transactions in the selected date range. Two rule types are available:

Apply Rules: Opens a confirmation modal showing which rules will run. Points Burn reclassifies loyalty redemptions as free cups and deducts the drink value from cash expected. Delivery Override reclassifies EDC/transfer payments as GoFood/Grab/Shopee when the order source indicates delivery. Rules are configured on the API & Connections page.

Rollback: Reverts all rule-applied adjustments in the date range back to original Olsera values. Use if rules were applied incorrectly or rules have been updated and need re-applying.

Warning: Apply Rules modifies transaction payment methods and amounts. Always run after Olsera sync (Step 1) and before Cash Reconciliation (Step 5). Rollback will undo all adjustments — you must re-apply rules after rolling back.

to

3Sync All Data to Firestore

What it does: Manages the cloud backup of all local data tables to Google Cloud Firestore.

Audit Data: Read-only check — scans all tables and shows which are in Firestore, their last updated time (WIB), and flags any that are stale (>24h for frequently-updated tables). Does not modify anything.

Force Sync All: Writes ALL local data tables to Firestore via REST API. Large tables are automatically chunked. Essential before switching computers or after major data changes.

Cleanup Legacy Docs: One-time maintenance — deletes orphaned short-name documents from Firestore left over from the old dual-namespace system. Only needs to be run once.

Warning: Force Sync overwrites Firestore with local data. If another user has made changes on a different device, their changes will be overwritten. Cleanup Legacy Docs permanently deletes old documents — run Audit first to verify data is healthy.

4Xero Accounting Sync

What it does: Syncs financial data from Xero accounting. Three actions available:

Sync Chart of Accounts: Pulls all account codes and names from Xero. Maps them to P&L sections (revenue, COGS, OpEx) for reporting. Only needed when new accounts are added in Xero.

Sync Bank Transactions: Pulls all bank deposits from Xero. These are matched against pending cash settlements in Step 5. Must be run before cash reconciliation.

Pull P&L: Pulls the profit and loss report for the selected date range. If the range spans multiple months, automatically splits into individual monthly pulls and stores each separately. Used for the P&L page.

Warning: Xero token refreshes automatically. If sync fails with an auth error, go to API & Connections and re-connect to Xero. P&L data overwrites existing data for the selected months — ensure Xero entries are finalised before pulling.

to

5Cash Reconciliation

What it does: Matches pending cash settlements (from Olsera transactions) against bank deposits (from Xero) to confirm that cash was received.

Auto-Reconcile Matched: Scans all pending settlements and finds high-confidence matches — same amount within 0-5 days. Matched items are automatically marked as "confirmed". Ambiguous matches (multiple candidates, >5 day gap) are flagged for manual review on the Cash Management page.

Rollback: Reverts auto-reconciled settlements in the selected date range back to "pending". Use if reconciliation was run with incorrect or incomplete Xero bank data and needs to be re-done.

Warning: Run Steps 1, 2, and 4 (Sync Bank Transactions) BEFORE reconciling. Auto-reconcile marks settlements as confirmed — once confirmed, they are protected from overwrites. Rollback date range must be set to target only the period you want to undo.

to

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
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.
Apply rules, rollback, and scheduling available on the Month-End Operations page.

Xero Xero Accounting

Not Connected
calls / seconds

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.comcoffee-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

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.

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

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

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

Mobile View Configuration

Toggle which pages and components are visible on mobile devices
Total Items
0
Open
0
Blocked
0
Completed
0

Development Lifecycle

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

Version History

Version Date Type Changes