Business Performance Dashboard for Multi-Brand FnB Operations

Business Intelligence · BigQuery · Looker Studio · Dashboard Analytics

BigQuery-Powered Business Performance Dashboard for Multi-Brand FnB Operations

This project focused on building a business performance dashboard for a multi-brand FnB operation using BigQuery and Looker Studio. The dashboard was designed to monitor revenue, transactions, average transaction value, basket size, menu performance, operational efficiency, staff performance, payment behavior, sales channel contribution, and outlet-level performance across multiple brands, cities, and branches.

BigQuery Looker Studio Data Cleaning Dashboard Design Business Intelligence
Business Performance Dashboard Preview

Business Performance Dashboard overview showing revenue, transactions, average transaction value, basket size, city performance, brand contribution, and payment distribution.

Project Overview

This dashboard project was developed to help stakeholders understand overall business performance across several FnB brands and outlets. The main objective was to transform raw point-of-sale transaction data into a structured, interactive, and business-ready dashboard that could support daily monitoring, brand comparison, outlet evaluation, menu analysis, and operational decision-making.

Instead of connecting raw spreadsheet data directly into the dashboard, I designed a cleaner data architecture in BigQuery. The workflow separated raw data, cleaned data, and dashboard-ready data into different layers to make the dashboard more scalable, consistent, and easier to maintain.

Dashboard Scope

Total Revenue

Rp 16.02B

Transactions

198K+

Items Sold

1.03M+

Operational Days

136 Days

Business Problem

The business had transaction data from multiple brands, cities, branches, menu categories, payment methods, and sales channels. However, the data needed to be transformed into an interactive reporting system that could answer operational and strategic questions quickly.

Key questions the dashboard needed to answer:

  • Which brands, cities, and branches contributed the most revenue?
  • How did revenue and transactions change over time?
  • Which menu items were the strongest revenue drivers?
  • Which outlets had high traffic but low spending per transaction?
  • How did customer spending behavior differ across brands?
  • Which payment methods and sales channels were most frequently used?
  • When were the busiest operational hours and days?
  • How did staff performance and POS cycle time affect operations?

Data Architecture

BigQuery to Looker Studio Pipeline

📁

CSV / Drive Source

Initial POS transaction data source.

🧱

Staging Table

Temporary backfill layer for safe raw CSV loading.

🗄️

Partitioned Raw Table

Final POS landing table partitioned by sales date.

🧹

Clean View

Cleaning, standardization, and derived fields layer.

📊

Looker Studio

Interactive dashboard and visualization layer.

The dashboard was connected to a dashboard-ready BigQuery source instead of raw spreadsheet data.

BigQuery Setup

The BigQuery architecture was designed with a clean production-style structure. The raw POS data was first loaded into a temporary staging table, then transformed into a final raw_transactions table that only contains original POS columns. This raw table was partitioned by sales_date and clustered by key business dimensions such as brand, city, store name, and payment method.

Derived dashboard fields such as revenue segment, billable quantity, online food channel, reporting week, basket tier, and POS cycle time were not stored directly in the raw table. Instead, these fields were created in a cleaning view named vw_clean, then materialized into mv_dashboard_detail as the dashboard-ready source for Looker Studio.

BigQuery Architecture
Drive / CSV Initial Load
        ↓
raw_transactions_staging
        ↓
raw_transactions
        ↓
vw_clean
        ↓
mv_dashboard_detail
        ↓
Looker Studio Dashboard

Dashboard Page Breakdown

The dashboard was divided into several pages to separate high-level business monitoring, operational analysis, menu performance, brand-level drilldown, and sales contribution tracking. Each page was designed with a specific analytical purpose so users could explore the business from both strategic and operational perspectives.

Page 01

Business Performance Dashboard

Business Performance Dashboard Screenshot

Screenshot of the Business Performance Dashboard page.

This page serves as the main executive overview of the business. It summarizes overall performance across all brands, cities, branches, and transaction channels. The purpose of this page is to help stakeholders quickly understand the company’s current business condition through core KPIs and high-level visual comparisons.

  • Main KPIs: Total Revenue, Total Transactions, Average Transaction Value, Basket Size, Average Daily Revenue, Total Unit Sold, and Average Selling Price.
  • Business comparison: Revenue by city, revenue by brand, branch performance, and weekly revenue trend.
  • Customer behavior: Payment method distribution, spending tier, basket tier, visit purpose, and sales channel contribution.
  • Analytical purpose: To identify the strongest revenue contributors and monitor overall business health from one centralized page.

Page 02

Operational and Staff Performance

Operational and Staff Performance Dashboard Screenshot

Screenshot of the Operational and Staff Performance page.

This page focuses on operational efficiency and staff-related performance. While the first page explains business results, this page helps users understand how operations perform behind those results, including traffic patterns, waiter productivity, table usage, and transaction processing time.

  • Staff monitoring: Waiter leaderboard, active waiters, and revenue contribution by staff.
  • Operational timing: Daily traffic heatmap, weekday vs weekend pattern, and peak transaction hours.
  • Table usage: Most-used table sections and detailed table usage distribution.
  • Efficiency metric: Average POS cycle time to evaluate how long transactions take from order to completion.
  • Analytical purpose: To support staffing decisions, operational scheduling, and peak-hour preparation.

Page 03

Menu Performance Analysis

Menu Performance Analysis Dashboard Screenshot

Screenshot of the Menu Performance Analysis page.

This page analyzes menu-level performance across brands and categories. It was designed to help the business understand which menu items generate the most revenue, which products sell frequently, which items underperform, and how menu performance differs by transaction type and sales channel.

  • Menu KPIs: Total menu revenue, total transaction, average selling price, average unit per bill, total unit sold, and discount amount.
  • Top menu analysis: Top menu by revenue and top menu by quantity sold.
  • Underperforming menu: Menu items with lower sales performance that may need review, promotion, or bundling strategy.
  • Menu matrix: Classification of menu items into performance groups such as Star Menu, Popular Menu, Premium Menu, and Low Performer.
  • Analytical purpose: To support menu optimization, product prioritization, bundling strategy, and promotional planning.

Page 04

Page Performance Per Brand

Warung Makan Gula Padi Performance Dashboard Screenshot

Screenshot of the Warung Makan Gula Padi Performance page (Example 1 Page).

  • Brand KPIs: Revenue, transactions, average transaction value, basket size, average daily revenue, and total items sold.
  • City comparison: Performance comparison across Bandung, Garut, and Tasikmalaya.
  • Menu and category analysis: Revenue contribution by menu category, top menu, and underperforming menu.
  • Customer behavior: Spending tier, basket tier, payment method, visit purpose, and online food channel usage.
  • Analytical purpose: To monitor the main revenue-driving brand and identify city-level performance differences.

Key Metrics Used

Metric Purpose
Total Revenue Measures overall business sales performance.
Total Transactions Counts unique bills or transaction volume.
Average Transaction Value Shows average customer spending per transaction.
Basket Size Measures average number of items purchased per bill.
Average Selling Price Evaluates average price per item sold.
Average Daily Revenue Tracks daily revenue productivity.
POS Cycle Time Measures operational transaction processing time.
Discount Rate Analyzes discount impact on billing and revenue.

Dashboard Metric Logic

Several calculated metrics were prepared in Looker Studio using the dashboard-ready BigQuery source. These metrics were designed to keep KPI definitions consistent across dashboard pages.

Metric Definitions
Total Revenue
= SUM(nett_sales)

Total Transactions
= COUNT_DISTINCT(bill_number)

Average Transaction Value
= SUM(nett_sales) / COUNT_DISTINCT(bill_number)

Basket Size
= SUM(billable_qty) / COUNT_DISTINCT(bill_number)

Average Daily Revenue
= SUM(nett_sales) / COUNT_DISTINCT(sales_date)

Total Items Sold
= SUM(billable_qty)

Average Selling Price
= SUM(nett_sales) / SUM(billable_qty)

Discount Rate
= ABS(SUM(discount)) / (SUM(nett_sales) + ABS(SUM(discount)))

Average POS Cycle Time
= (SUM(pos_cycle_sec_weight) / COUNT_DISTINCT(bill_number)) / 60

Analytical Value

The dashboard was not only built to display KPIs, but also to help stakeholders understand performance drivers across revenue, operations, menu contribution, customer behavior, and brand-level growth opportunities.

  • Helped centralize business performance monitoring across multiple brands and outlets.
  • Enabled comparison between brands, cities, branches, menu categories, and sales channels.
  • Supported operational planning through traffic heatmap, staff performance, and POS cycle time analysis.
  • Provided menu-level visibility for product evaluation, bundling strategy, and promotion planning.
  • Turned raw POS transaction data into an interactive dashboard that could support daily business decision-making.

Output and Impact

The final dashboard provided a centralized performance monitoring system that allowed business users to evaluate performance from multiple perspectives. It helped convert raw POS transaction records into structured insights for management, operations, and marketing decision-making.

  • Created a dashboard-ready BigQuery source for Looker Studio.
  • Reduced dependency on raw spreadsheet-based reporting.
  • Enabled multi-brand and multi-outlet performance comparison.
  • Supported operational monitoring through staff, table, and POS cycle time analysis.
  • Provided menu-level insights for identifying top performers and underperformers.
  • Helped users understand business performance across revenue, operations, menu, brand, and sales contribution perspectives.

Tools and Technologies

Google BigQuery Looker Studio SQL Python Google Colab Data Cleaning Business Intelligence Dashboard Design

Key Learnings

This project strengthened my understanding of how to build a dashboard not only as a visualization tool, but also as a structured analytics product. The most important part was designing the data flow properly before building the dashboard interface.

  • Learned how to separate raw data, cleaned data, and dashboard-ready data in BigQuery.
  • Built a partitioned and clustered raw transaction table for better data structure.
  • Created derived fields in a clean view instead of modifying the raw table directly.
  • Designed business metrics that remain consistent across multiple dashboard pages.
  • Translated operational and sales data into a structured dashboard for business users.
  • Learned how to design dashboard pages for different stakeholder needs, including management, operations, marketing, and product/menu teams.