๐Ÿ“Š Master Metabase Business Intelligence

FKTI - Fakhruddin Khambaty Training Institute

Self-Service Analytics Made Beautiful and Simple

0% Complete

๐ŸŽฏ Welcome to Metabase Business Intelligence!

What You'll Learn

  • โœ… Metabase setup and database connections
  • โœ… Creating interactive questions and dashboards
  • โœ… Advanced visualization techniques and charts
  • โœ… User permissions and access control
  • โœ… Embedding dashboards in applications
  • โœ… SQL querying and custom expressions
  • โœ… Alerts and automated reporting
  • โœ… Enterprise deployment and scaling

๐Ÿ‘ถ In one sentence

Metabase is a tool that lets you ask questions about your data (with clicks or SQL), build dashboards, and share them with your teamโ€”no coding required for basic use.

๐Ÿšซ Common Mistakes in Metabase

  • Heavy queries on the main DB โ€” Point Metabase at a replica or warehouse; avoid slowing production with ad-hoc queries.
  • No filters on big tables โ€” Add date or key filters so dashboards don't scan entire tables and time out.
  • Sharing dashboards without checking permissions โ€” Set up groups and data permissions so users only see what they're allowed to.

Why Metabase?

Metabase democratizes data by making business intelligence accessible to everyone, not just technical users. It's trusted by data-driven organizations like:

  • ๐Ÿฆ Nubank - serving 70M+ customers with real-time financial dashboards
  • ๐Ÿš— Tesla - manufacturing analytics and quality control reporting
  • ๐ŸŽฏ Mailchimp - marketing campaign performance and user engagement
  • ๐Ÿช Shopify - merchant success metrics and e-commerce insights
  • ๐ŸŽฌ Twitch - streaming analytics and creator performance tracking
  • ๐Ÿ“ฑ GitLab - product usage analytics and DevOps metrics

๐Ÿ“ธ Screenshot: Metabase Dashboard Overview

Modern Metabase dashboard showing sales performance with interactive charts, filters, and real-time data updates.

Sales Performance Dashboard - Q4 2024
$2.4M Total Revenue +18% vs Q3
15,234 Orders +22% vs Q3
$158 Avg Order Value -3% vs Q3

๐ŸŒŸ Real-World Success Story

Nubank's Data Democracy Revolution

Challenge: Nubank, Latin America's largest fintech, needed to democratize data access across 5,000+ employees while maintaining security and compliance in a regulated industry.

Before Metabase:

  • ๐Ÿ“Š **Data requests took 2-3 days** - analysts were bottlenecked
  • ๐Ÿ“ˆ **Only 50 people** could access data insights
  • ๐Ÿ’ฐ **$500K annually** on enterprise BI licenses
  • ๐Ÿ”’ **Compliance challenges** with data access tracking

After Metabase Implementation:

  • โšก **Self-service analytics** - instant insights for all teams
  • ๐Ÿ‘ฅ **3,000+ active users** across the organization
  • ๐Ÿ’ธ **80% cost reduction** compared to enterprise BI tools
  • ๐Ÿ›ก๏ธ **Full audit trails** for regulatory compliance
  • ๐Ÿ“ฑ **Mobile-first dashboards** for executive team
  • ๐Ÿš€ **2x faster product iterations** with real-time metrics

Results: Nubank now serves 70M+ customers with data-driven decisions made in minutes, not days, leading to better product outcomes and customer satisfaction.

๐Ÿ” Metabase vs Traditional BI Tools

Feature Metabase Tableau Power BI Looker
Setup Time โœ… 30 minutes ๐Ÿ”ถ 2-4 weeks ๐Ÿ”ถ 1-2 weeks ๐Ÿ”ถ 4-8 weeks
User Friendliness โœ… Extremely simple โŒ Steep learning curve ๐Ÿ”ถ Moderate complexity ๐Ÿ”ถ Technical users only
Cost (Annual) โœ… $0-$500/user โŒ $840-$2,100/user ๐Ÿ”ถ $120-$240/user โŒ $5,000-$25,000/user
Open Source โœ… Core features free โŒ Proprietary only โŒ Microsoft ecosystem โŒ Google Cloud only
Mobile Experience โœ… Native mobile app ๐Ÿ”ถ Limited mobile ๐Ÿ”ถ Basic mobile app ๐Ÿ”ถ Web responsive
Embedding โœ… Easy iframe/JS ๐Ÿ”ถ Complex setup ๐Ÿ”ถ Power BI Embedded โœ… API-first design
SQL Support โœ… Full SQL editor ๐Ÿ”ถ Custom SQL limited ๐Ÿ”ถ DAX and M language โœ… LookML + SQL

๐Ÿ“œ The Story Behind Metabase

2014

๐ŸŒฑ The Problem That Started It All

Sameer Al-Sakran and Tom Robinson were working at different startups and experiencing the same frustration:

  • ๐Ÿ“Š **Business users constantly asking** for reports and data
  • โฐ **Hours spent creating** one-off SQL queries and charts
  • ๐Ÿ’ฐ **Enterprise BI tools too expensive** for small companies
  • ๐Ÿค” **"Why is accessing data so hard?"**

The Daily Struggle

Sameer's experience: "I spent 4 hours every Monday creating the same weekly reports for different teams. There had to be a better way."

2015

๐Ÿ’ก The Vision Takes Shape

Sameer and Tom decided to solve the problem themselves:

  • ๐ŸŽฏ **"Business intelligence for everyone"** - not just data analysts
  • ๐Ÿ’ป **Web-first approach** - no desktop software required
  • ๐Ÿš€ **Easy setup** - connect and start exploring in minutes
  • ๐Ÿ’ฐ **Open source model** - democratize access to BI tools

๐Ÿ“ธ Screenshot: Early Metabase Wireframes

Original design mockups showing the simple, clean interface philosophy that became Metabase.

2016

๐Ÿš€ Metabase 0.1 Launch

First public release of Metabase as open source:

  • ๐ŸŒ **Open sourced on GitHub** - immediate community interest
  • ๐Ÿ“Š **Visual query builder** - no SQL required for basic questions
  • ๐Ÿ”Œ **Multiple database support** - MySQL, PostgreSQL, MongoDB
  • ๐Ÿ“ˆ **Simple charting** - bar charts, line graphs, tables
Early Metabase Installation:
# Original installation method
wget http://downloads.metabase.com/v0.1.0/metabase.jar
java -jar metabase.jar
2017

๐Ÿ“ˆ Rapid Community Growth

Metabase gained unexpected traction in the open source community:

  • ๐ŸŒŸ **10,000+ GitHub stars** in first year
  • ๐Ÿ‘ฅ **Active community** contributing features and bug fixes
  • ๐Ÿ”Œ **New database adapters** added by community
  • ๐Ÿ“ฑ **Mobile-responsive** design improvements

First Enterprise Adoption

Success story: A mid-size e-commerce company replaced their $100K/year Tableau license with Metabase, enabling 10x more users to access data insights.

2018

๐Ÿ’ฐ Series A Funding

Institutional investment to scale the team and product:

  • ๐Ÿ’ต **$8M Series A** led by NEA
  • ๐Ÿ‘ฅ **Team expansion** from 4 to 15 people
  • ๐Ÿข **Enterprise features** development begins
  • โ˜๏ธ **Metabase Cloud** beta launched

๐Ÿ“ธ Screenshot: Metabase v0.30 Interface

Refined Metabase interface showing improved dashboard builder and visualization options.

2019

๐Ÿ” Enterprise Edition Launch

Addressing enterprise needs while maintaining open source core:

  • ๐Ÿ›ก๏ธ **Advanced permissions** and access controls
  • ๐Ÿ‘ฅ **SSO integration** with SAML and LDAP
  • ๐Ÿ“Š **White-label embedding** capabilities
  • ๐Ÿ“ž **Priority support** for enterprise customers
2020

๐Ÿ† Market Recognition

Industry acknowledgment of Metabase's impact:

  • ๐Ÿ“Š **50,000+ companies** using Metabase worldwide
  • ๐Ÿ† **"Best Open Source BI Tool"** awards
  • ๐ŸŒ **Global community** with translations in 20+ languages
  • ๐Ÿ“ฑ **Native mobile app** for iOS and Android

COVID-19 Impact Response

Community support: Metabase offered free enterprise licenses to healthcare organizations and small businesses affected by the pandemic, helping them track critical metrics during uncertain times.

2021

๐Ÿ’ฐ Series B Growth

Major funding round to accelerate product development:

  • ๐Ÿ’ต **$30M Series B** led by Nexus Venture Partners
  • ๐Ÿš€ **Performance improvements** for large datasets
  • ๐Ÿ” **Advanced analytics** features (cohort analysis, funnels)
  • ๐ŸŒ **Multi-language support** expansion
2022-2023

๐Ÿค– AI and Advanced Features

Modern capabilities for the evolving data landscape:

  • ๐Ÿง  **AI-powered insights** and anomaly detection
  • โšก **Real-time dashboards** with streaming data
  • ๐Ÿ”„ **Advanced embedding** with SDK and APIs
  • ๐Ÿ“Š **Custom visualizations** and chart types
  • ๐ŸŽฏ **Metabase Collections** - organized data governance

๐Ÿ“ธ Screenshot: Modern Metabase Interface

Current Metabase dashboard showing AI insights, custom visualizations, and mobile-optimized design.

2024

๐ŸŒŸ Current Innovation

Cutting-edge features and market leadership:

  • ๐ŸŽจ **No-code dashboard builder** with drag-and-drop
  • ๐Ÿ”— **Native integrations** with modern data stack tools
  • โšก **Sub-second query performance** with caching improvements
  • ๐ŸŒ **100+ database connectors** and growing
  • ๐Ÿ‘ฅ **500,000+ active installations** worldwide

๐Ÿ“Š Metabase Impact Today

500K+
Active Installations
25M+
Questions Asked Daily
40K+
GitHub Stars
100+
Database Connectors

โš™๏ธ Complete Metabase Installation Guide

Quick Start - Get Running in 5 Minutes

1

Download Metabase JAR File

The simplest way to start with Metabase

# Download latest Metabase
wget http://downloads.metabase.com/latest/metabase.jar

# Or using curl
curl -O http://downloads.metabase.com/latest/metabase.jar

# File size: ~300MB
# Java 8+ required
๐Ÿ“‹ System Requirements:
  • โ˜• **Java 8 or higher** (OpenJDK recommended)
  • ๐Ÿ’พ **1GB RAM minimum** (2GB+ recommended)
  • ๐Ÿ’ฝ **1GB disk space** (plus space for data)
  • ๐ŸŒ **Network access** to your databases

๐Ÿ“ธ Screenshot: Metabase Download Page

Official Metabase downloads page showing latest version and installation options.

2

Launch Metabase

# Start Metabase (default port 3000)
java -jar metabase.jar

# Custom port
java -jar metabase.jar -Dserver.port=8080

# Expected output:
# Setting up Metabase...
# Metabase Initialization Complete
# Metabase started on port 3000
โฑ๏ธ Startup Process:
0-30s: Initializing database (H2 by default)
30-60s: Setting up core services
60-90s: Starting web server
90s+: Ready for setup at localhost:3000
3

Complete Initial Setup

Open your browser and navigate to http://localhost:3000

๐ŸŽฏ Setup Wizard Steps:
๐Ÿ“ Step 1: Create Admin Account
Your first name
Your last name
admin@yourcompany.com
Strong password (8+ chars)
๐Ÿข Step 2: Organization Info
Your organization name
๐Ÿ“Š Step 3: Usage Analytics (Optional)
โœ… Help improve Metabase (recommended)

๐Ÿ“ธ Screenshot: Metabase Setup Wizard

Initial setup screen showing account creation form and organization settings.

4

Connect Your First Database

๐Ÿ”Œ Supported Databases (Popular):
๐ŸŸข PostgreSQL

Host, Port, Database, Username, Password

๐Ÿ”ต MySQL

Host, Port, Database, Username, Password

๐Ÿ”ด SQL Server

Host, Port, Database, Username, Password

๐ŸŸก MongoDB

Host, Port, Database, Username, Password

๐Ÿ“ Example PostgreSQL Connection:
localhost or your-db-server.com
5432 (PostgreSQL default)
your_database_name
your_db_username
your_db_password
๐Ÿ’ก Enterprise Tip

Multiple environments: Companies like Shopify connect separate databases for production (read-only), staging (full access), and analytics warehouse (optimized for BI queries).

5

Create Your First Question

๐ŸŽฏ Try These Beginner Questions:
๐Ÿ“Š Simple Count Query

Question: "How many customers do we have?"

  1. Click "New" โ†’ "Question"
  2. Select your database โ†’ customers table
  3. Choose "Raw Data" โ†’ "Count"
  4. Click "Visualize"
๐Ÿ“ˆ Time Series Query

Question: "How many orders per month this year?"

  1. Select orders table
  2. Count of orders
  3. Group by created_date (Month)
  4. Filter: created_date is in the current year

๐Ÿ“ธ Screenshot: Question Builder Interface

Metabase question builder showing intuitive drag-and-drop interface for creating queries.

Docker Installation (Recommended for Development)

1

Run Metabase with Docker

# Simple Docker run
docker run -d -p 3000:3000 --name metabase metabase/metabase

# With volume for data persistence
docker run -d -p 3000:3000 \
  -v ~/metabase-data:/metabase-data \
  -e "MB_DB_FILE=/metabase-data/metabase.db" \
  --name metabase metabase/metabase
2

Docker Compose Setup (Production-like)

# docker-compose.yml
version: '3.8'
services:
  metabase:
    image: metabase/metabase:latest
    ports:
      - "3000:3000"
    environment:
      MB_DB_TYPE: postgres
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 5432
      MB_DB_USER: metabase
      MB_DB_PASS: secure_password
      MB_DB_HOST: postgres
    depends_on:
      - postgres
    
  postgres:
    image: postgres:13
    environment:
      POSTGRES_DB: metabase
      POSTGRES_USER: metabase
      POSTGRES_PASSWORD: secure_password
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

๐Ÿ“š Metabase Fundamentals

๐ŸŽฏ Core Concepts

Understanding Metabase's key concepts will help you build effective analytics solutions.

โ“ Questions

The fundamental unit in Metabase. Questions are queries that can be saved, shared, and reused.

  • ๐Ÿ“Š **Simple Questions** - Built with the query builder
  • ๐Ÿ“ **SQL Questions** - Written in raw SQL
  • ๐Ÿ”„ **Parameterized Questions** - Dynamic with user inputs

๐Ÿ“Š Dashboards

Collections of questions displayed together with filters and interactions.

  • ๐ŸŽจ **Layout control** - Drag and drop positioning
  • ๐Ÿ”— **Cross-filtering** - Questions interact with each other
  • ๐Ÿ“ฑ **Mobile responsive** - Automatic optimization

๐Ÿ“ Collections

Organizational structure for questions, dashboards, and other items.

  • ๐Ÿ‘ฅ **Permissions** - Control who sees what
  • ๐Ÿ“‹ **Organization** - Folder-like structure
  • ๐Ÿท๏ธ **Tagging** - Additional categorization

๐Ÿ“ Your First Question

Let's create a simple question to understand how Metabase works:

1

Create a Simple Question

  1. Click "New" โ†’ "Question"
  2. Choose "Simple Question"
  3. Select your data source (e.g., "Orders" table)
  4. Choose "Raw Data" to see all records
  5. Click "Visualize"

๐Ÿ“ธ Screenshot: Question Builder Interface

Metabase question builder showing table selection and basic query options.

2

Add Summarization

  1. Click "Summarize" button
  2. Choose "Count" to count rows
  3. Group by a date field (e.g., "Created At")
  4. Select "Month" for the date grouping
  5. Click "Done"

Result: A line chart showing count of orders by month

๐ŸŒŸ Real-World Context

Twitch's Approach: Twitch uses similar simple questions to track daily active streamers, viewer engagement, and content performance across different game categories, enabling creators and partners to make data-driven content decisions.

๐Ÿ”ฌ Try It Yourself

Exercise 1: Sales Analysis

  1. Create a question showing total revenue by month
  2. Add a filter for the current year
  3. Change the visualization to a bar chart
  4. Save the question as "Monthly Revenue 2024"
  5. Add it to a new dashboard

๐Ÿ“Š Dashboard Creation and Management

๐Ÿ—๏ธ Dashboard Design Principles

Effective dashboards tell a story with data and guide users to actionable insights.

๐Ÿ‘๏ธ Visual Hierarchy

  • ๐Ÿ“Š **Most important metrics** at the top
  • ๐Ÿ” **Supporting details** below main KPIs
  • ๐Ÿ“ **Consistent sizing** for similar importance
  • ๐ŸŽจ **Color coding** for status and categories

๐Ÿ“ฑ Mobile-First Design

  • ๐Ÿ“ **Responsive layouts** that work on phones
  • ๐Ÿ‘† **Touch-friendly** interactions
  • ๐Ÿ“Š **Simplified charts** for small screens
  • ๐Ÿ”— **Drill-down navigation** for details

โšก Performance Considerations

  • ๐Ÿš€ **Limit questions** per dashboard (< 20)
  • ๐Ÿ“Š **Pre-aggregate data** when possible
  • โฐ **Cache expensive queries** appropriately
  • ๐Ÿ”„ **Refresh schedules** based on data freshness needs

๐Ÿ“ธ Screenshot: Executive Sales Dashboard

Metabase - Executive Sales Dashboard
Monthly Revenue
$2.8M
โ†— +18%
New Customers
1,247
โ†— +12%
Avg Order Value
$156
โ†˜ -3%
Conversion Rate
3.2%
โ†— +0.4%
Revenue Trend (6 months)
Top Product Categories
Electronics
Home
Clothing
Books
Sales by Region
๐Ÿ‡บ๐Ÿ‡ธ North America: 45%
๐Ÿ‡ช๐Ÿ‡บ Europe: 30%
๐Ÿ‡ฆ๐Ÿ‡บ Asia Pacific: 25%
Customer Acquisition
Organic: 40%
Paid: 35%
Referral: 25%
Performance Alerts
๐ŸŸข Revenue target met
๐ŸŸก AOV declining
๐Ÿ”ต New campaign launched

๐Ÿ› ๏ธ Building Your First Dashboard

1. ๐Ÿ“‹ Planning Phase

๐ŸŽฏ Define Your Audience
  • ๐Ÿ‘ฅ **Who** will use this dashboard?
  • ๐Ÿ“Š **What** decisions will they make?
  • โฐ **When** will they check it?
  • ๐Ÿ“ฑ **Where** will they access it?
๐Ÿ“Š Key Metrics Selection

Example: E-commerce Executive Dashboard

  • ๐Ÿ’ฐ **Revenue**: Daily, weekly, monthly trends
  • ๐Ÿ›’ **Orders**: Count, average value, conversion rate
  • ๐Ÿ‘ฅ **Customers**: New vs returning, lifetime value
  • ๐Ÿ“ฆ **Products**: Top performers, inventory levels
  • ๐ŸŒ **Geography**: Revenue by region/country

2. ๐Ÿ—๏ธ Construction Phase

๐Ÿ“Š Create Core Questions
-- Revenue by Day (SQL Question)
SELECT 
    DATE(order_date) as date,
    SUM(total_amount) as daily_revenue,
    COUNT(*) as order_count
FROM orders 
WHERE order_date >= '2024-01-01'
GROUP BY DATE(order_date)
ORDER BY date;
๐Ÿ“ˆ Visualization Selection
Data Type Best Visualization Use Case
Time series Line chart Revenue trends over time
Categories Bar chart Sales by product category
Proportions Pie chart Traffic source breakdown
Single metric Number card Total revenue, user count
Geographic Map Sales by region/country

3. ๐ŸŽจ Layout and Polish

๐Ÿ“ Grid Layout
  • Use Metabase's 18-column grid system
  • KPI cards: 3-6 columns wide
  • Charts: 6-12 columns wide
  • Tables: 12-18 columns wide
๐ŸŽจ Color and Branding
  • Use consistent color schemes
  • Brand colors for key metrics
  • Red/green for good/bad performance
  • Neutral colors for supporting data

๐Ÿš€ Advanced Dashboard Features

๐Ÿ” Dashboard Filters

Allow users to slice and dice data interactively:

-- SQL with dashboard parameters
SELECT 
    product_category,
    SUM(revenue) as total_revenue
FROM sales 
WHERE date_created >= {{start_date}}
    AND date_created <= {{end_date}}
    AND region = {{selected_region}}
GROUP BY product_category
ORDER BY total_revenue DESC;
  • ๐Ÿ“… **Date range pickers** for time-based analysis
  • ๐Ÿ“‹ **Dropdown filters** for categories
  • ๐Ÿ”ข **Number filters** for thresholds
  • ๐Ÿ“ **Location filters** for geographic data

๐Ÿ”— Cross-Filtering

Enable questions to interact with each other:

  • Click on a chart element to filter other questions
  • Hover to highlight related data points
  • Drill-down from summary to detail views
  • Breadcrumb navigation for complex filters

๐Ÿ“ธ Screenshot: Cross-Filtering in Action

Dashboard showing how clicking on a pie chart segment filters the adjacent table and time series chart.

๐Ÿ“ฑ Auto-Refresh and Subscriptions

Keep data current and deliver insights proactively:

  • โฐ **Auto-refresh** dashboards every 15 minutes to 24 hours
  • ๐Ÿ“ง **Email subscriptions** with PDF attachments
  • ๐Ÿ“ฑ **Slack integration** for alerts and updates
  • ๐Ÿšจ **Conditional alerts** when metrics exceed thresholds

๐ŸŒŸ Real-World Dashboard Examples

๐ŸŽฎ Gaming Company KPI Dashboard

Discord's Analytics Approach:

๐Ÿ“Š Top Row - Key Metrics (Full Width)
  • ๐Ÿ’ฐ Daily Active Revenue (DAR)
  • ๐Ÿ‘ฅ Daily Active Users (DAU)
  • โฑ๏ธ Average Session Duration
  • ๐Ÿ”„ Retention Rate (Day 1, 7, 30)
๐Ÿ“ˆ Middle Section - Trends (Half Width Each)
  • ๐Ÿ“Š **Left:** DAU/MAU trends over 90 days
  • ๐Ÿ’ฐ **Right:** Revenue trends with forecasting
๐Ÿ” Bottom Section - Drill-Downs (Third Width Each)
  • ๐ŸŒ Revenue by geographic region
  • ๐Ÿ“ฑ Usage by platform (mobile/desktop/web)
  • ๐ŸŽฏ Top performing features/channels

๐Ÿ“ˆ Charts and Visualizations

๐ŸŽจ Choosing the Right Chart Type

The right visualization makes complex data instantly understandable. Here's a comprehensive guide to Metabase's chart options:

๐Ÿ“Š Comparison Charts

๐Ÿ“Š Bar Charts

Best for: Comparing categories or ranking items

Data requirements: 1 dimension + 1-3 metrics

Example use cases:

  • Sales by product category
  • Employee performance rankings
  • Website traffic by source
  • Revenue by sales region
โš™๏ธ Configuration Tips
  • Limit to 10-15 bars for readability
  • Use horizontal bars for long category names
  • Sort by value for ranking scenarios
  • Add data labels for precise values

๐Ÿ“ธ Screenshot: Sales by Product Category Bar Chart

Metabase - Sales Performance Dashboard
Revenue by Product Category (Q4 2024)
Electronics
$2.4M
Home & Garden
$1.8M
Clothing
$1.4M
Books
$960K
Sports
$720K
๐Ÿ“ˆ Electronics leading with 35% of total revenue ๐Ÿ”ฝ Filtered: This Quarter
๐Ÿฅง Pie Charts

Best for: Showing parts of a whole (proportions)

Data requirements: 1 dimension, values that sum to 100%

Example use cases:

  • Market share distribution
  • Budget allocation by department
  • Traffic source breakdown
  • Customer segment distribution
โš ๏ธ Use Sparingly
  • Limit to 5-7 slices maximum
  • Combine small slices into "Other"
  • Consider donut charts for modern look
  • Avoid 3D effects (distort perception)

๐Ÿ“ธ Screenshot: Traffic Source Breakdown Pie Chart

Metabase - Website Analytics Dashboard
Traffic Sources Distribution (Last 30 Days)
Organic Search (45%) 12,580 visits
Paid Search (25%) 6,989 visits
Social Media (20%) 5,591 visits
Direct (10%) 2,795 visits
๐ŸŽฏ SEO strategies driving 70% of traffic

๐Ÿ“ˆ Time Series Charts

๐Ÿ“ˆ Line Charts

Best for: Showing trends and changes over time

Data requirements: Date/time field + 1-5 metrics

Example use cases:

  • Revenue growth over months
  • Website visitors daily trends
  • Stock price movements
  • Temperature variations
๐Ÿ“Š Advanced Features
  • Multiple series for comparison
  • Trend lines and forecasting
  • Area charts for cumulative data
  • Annotations for key events

๐Ÿ“ธ Screenshot: Revenue Growth Line Chart

Metabase - Financial Performance Dashboard
Monthly Revenue Growth (2024)
$3.0M $2.5M $2.0M $1.5M $1.0M
Jan Feb Mar Apr May Jun Jul Aug Sep
Actual Revenue
Target ($2.0M)
๐Ÿ“ˆ 42% growth from Q1 to Q3 ๐ŸŽฏ Exceeded target by $750K in September
๐Ÿ“Š Area Charts

Best for: Cumulative values and stacked categories over time

Example use cases:

  • Revenue breakdown by product line
  • User acquisition by channel
  • Cumulative sales targets
  • Resource usage over time

๐Ÿ”ข Single Value Charts

๐Ÿท๏ธ Number Cards

Best for: Highlighting key performance indicators (KPIs)

Design tips:

  • Large, bold numbers for easy scanning
  • Include percentage change indicators
  • Use color coding (green/red) for performance
  • Add context with subtitles or comparisons
๐ŸŽฏ Gauge Charts

Best for: Progress toward goals or targets

Example use cases:

  • Sales quota achievement
  • Project completion percentage
  • Performance scores (0-100)
  • Customer satisfaction ratings

๐Ÿ—บ๏ธ Geographic Visualizations

๐ŸŒ Region Maps

Best for: Geographic distribution of data

Data requirements: Country/state/region + metric

Configuration:

  • Color intensity represents values
  • Hover tooltips for detailed data
  • Support for country, state, and custom regions
  • Drill-down to more specific geographies
๐Ÿ“ Pin Maps

Best for: Specific locations with coordinates

Example use cases:

  • Store locations with sales data
  • Customer distribution
  • Delivery routes and times
  • Event locations and attendance

๐Ÿ“‹ Data Tables

๐Ÿ“Š Enhanced Tables

Best for: Detailed data exploration and lookup

Features:

  • Sortable columns
  • Search and filtering
  • Conditional formatting
  • Column totals and summaries
  • Export to CSV/Excel
  • Cell-level drill-down

๐Ÿš€ Advanced Visualization Techniques

๐Ÿ”„ Combo Charts

Combine different chart types to show related metrics:

Example: Revenue and Conversion Rate
  • ๐Ÿ“Š **Bar chart** for monthly revenue (left y-axis)
  • ๐Ÿ“ˆ **Line chart** for conversion rate (right y-axis)
  • ๐ŸŽฏ **Shows relationship** between volume and efficiency
-- Data for combo chart
SELECT 
    DATE_TRUNC('month', order_date) as month,
    SUM(total_amount) as revenue,
    COUNT(*) * 100.0 / COUNT(DISTINCT session_id) as conversion_rate
FROM orders o
LEFT JOIN sessions s ON o.session_id = s.id
GROUP BY month
ORDER BY month;

๐Ÿ“Š Conditional Formatting

Use colors and formatting to highlight important data points:

๐ŸŽจ Color Rules
  • ๐Ÿ”ด **Red**: Values below target (< 90%)
  • ๐ŸŸก **Yellow**: Close to target (90-100%)
  • ๐ŸŸข **Green**: Above target (> 100%)
๐Ÿ“Š Progress Bars
  • Visual representation of goal completion
  • Embedded in table cells
  • Custom color schemes

๐Ÿ” Interactive Features

Enable users to explore data dynamically:

  • ๐Ÿ–ฑ๏ธ **Click-through actions** to related dashboards
  • ๐Ÿ”Ž **Zoom and pan** for detailed exploration
  • ๐Ÿ“ฑ **Touch gestures** on mobile devices
  • ๐Ÿ”— **URL parameters** for bookmarkable states

โœ… Visualization Best Practices

๐ŸŽฏ Clarity and Focus

  • One primary message per chart
  • Remove unnecessary elements (chart junk)
  • Use clear, descriptive titles
  • Provide context with subtitles

๐ŸŽจ Color Strategy

  • Consistent color scheme across dashboards
  • Use brand colors for key metrics
  • Avoid red-green combinations (colorblind friendly)
  • Reserve bright colors for important data

๐Ÿ“ฑ Mobile Optimization

  • Test on actual mobile devices
  • Use larger fonts and touch targets
  • Simplify complex charts for small screens
  • Consider vertical layouts

โšก Performance

  • Limit data points in line charts (< 100 points)
  • Use aggregated data when possible
  • Cache expensive queries
  • Consider chart complexity vs. load time

โš™๏ธ Metabase Administration

๐Ÿ‘ฅ User Management and Permissions

Proper user management ensures data security while enabling self-service analytics across your organization.

๐Ÿข User Roles and Responsibilities

๐Ÿ‘‘ Administrator
  • Full system access and configuration
  • User management and permissions
  • Database connections and settings
  • Instance monitoring and maintenance
๐ŸŽฏ Curator
  • Manage collections and organization
  • Review and approve public questions
  • Data model management
  • Quality control and governance
๐Ÿ“Š Analyst
  • Create and share questions/dashboards
  • Access to assigned databases
  • SQL query capabilities
  • Collection management within scope
๐Ÿ‘€ Viewer
  • View shared dashboards and questions
  • Export data (if permitted)
  • Basic filtering and interactions
  • No creation or editing capabilities

๐Ÿ”’ Setting Up Permissions

๐Ÿ—„๏ธ Database Permissions
Permission Level Can Do Use Case
๐Ÿšซ No Access Cannot see database Sensitive production data
๐Ÿ‘€ Sandboxed Row-level restrictions Multi-tenant applications
๐Ÿ“Š Query Builder Only GUI queries, no SQL Business users, non-technical
๐Ÿ“ Native Query Full SQL access Analysts, data scientists
๐Ÿ“ Collection Permissions
  • ๐Ÿ” **View**: See items in collection
  • ๐Ÿ“ **Curate**: Edit and organize items
  • ๐Ÿ‘‘ **Manage**: Full control including permissions
๐Ÿ—๏ธ Recommended Structure
๐Ÿ“ Company Analytics
โ”œโ”€โ”€ ๐Ÿ“ Executive (Admin only)
โ”‚   โ”œโ”€โ”€ ๐Ÿ“Š CEO Dashboard
โ”‚   โ””โ”€โ”€ ๐Ÿ“Š Board Metrics
โ”œโ”€โ”€ ๐Ÿ“ Sales (Sales team curate)
โ”‚   โ”œโ”€โ”€ ๐Ÿ“Š Sales Performance
โ”‚   โ””โ”€โ”€ ๐Ÿ“Š Pipeline Analysis
โ”œโ”€โ”€ ๐Ÿ“ Marketing (Marketing team curate)
โ”‚   โ”œโ”€โ”€ ๐Ÿ“Š Campaign Results
โ”‚   โ””โ”€โ”€ ๐Ÿ“Š Lead Generation
โ””โ”€โ”€ ๐Ÿ“ Public (Everyone can view)
    โ”œโ”€โ”€ ๐Ÿ“Š Company KPIs
    โ””โ”€โ”€ ๐Ÿ“Š General Metrics

๐Ÿ–๏ธ Data Sandboxing

Control what data users can see based on their attributes or group membership.

๐Ÿข Multi-Tenant Example

Scenario: SaaS platform with multiple customer organizations

Setup:

  1. Add user attribute: customer_id
  2. Create sandbox filter: Customer ID = {{customer_id}}
  3. Apply to tables: orders, users, analytics
  4. Users only see their organization's data
๐ŸŒ Regional Access Example

Scenario: Sales reps should only see their region's data

Setup:

  1. Add user attribute: sales_region
  2. Create sandbox filter: Region = {{sales_region}}
  3. Apply to sales tables
  4. Regional managers see only their territory

๐Ÿ”ง System Configuration

๐Ÿ“Š Database Management

๐Ÿ”Œ Connection Management
  • Add/remove database connections
  • Test connection health
  • Configure connection pooling
  • Set up read replicas for performance
๐Ÿ—๏ธ Data Model Curation
  • Hide/show tables and fields
  • Create friendly field names
  • Set up field types and descriptions
  • Configure foreign key relationships
๐Ÿ“‹ Data Model Best Practices
-- Example: Clean up field names
Orders table:
โ”œโ”€โ”€ customer_id โ†’ "Customer"
โ”œโ”€โ”€ order_date โ†’ "Order Date"  
โ”œโ”€โ”€ total_amount โ†’ "Total ($)"
โ”œโ”€โ”€ status โ†’ "Order Status"
โ””โ”€โ”€ created_at โ†’ [HIDDEN]

โšก Performance Optimization

๐Ÿ—„๏ธ Caching Configuration
  • Question result caching (1-24 hours)
  • Database schema caching
  • Dashboard cache policies
  • Cache invalidation strategies
โฑ๏ธ Query Timeout Settings
  • Maximum query execution time
  • Database-specific timeouts
  • Resource limiting for heavy queries
  • Async query processing
๐Ÿ“Š Performance Monitoring
-- Query performance analysis
Admin โ†’ Tools โ†’ Query Performance
- Slowest queries by execution time
- Most frequently run queries
- Cache hit rates by question
- Database connection utilization

๐Ÿ”’ Security Settings

๐Ÿ” Authentication
  • LDAP/Active Directory integration
  • SAML SSO configuration
  • Google/GitHub OAuth setup
  • Multi-factor authentication
๐Ÿ›ก๏ธ Security Policies
  • Password complexity requirements
  • Session timeout settings
  • IP address restrictions
  • Audit logging configuration

๐Ÿ“Š Monitoring and Maintenance

๐Ÿ“ˆ Usage Analytics

Understanding how your Metabase instance is being used helps optimize performance and user experience.

๐Ÿ” Key Metrics to Monitor
  • ๐Ÿ‘ฅ **Active users** (daily, weekly, monthly)
  • โ“ **Question creation** and usage patterns
  • ๐Ÿ“Š **Dashboard views** and interaction rates
  • ๐Ÿ—„๏ธ **Database query volume** and performance
  • โฑ๏ธ **Response times** for different query types
  • ๐Ÿ’พ **System resource** usage (CPU, memory, disk)
๐Ÿ“Š Usage Analysis Queries
-- Most popular dashboards by views
SELECT 
    d.name as dashboard_name,
    COUNT(dv.id) as total_views,
    COUNT(DISTINCT dv.user_id) as unique_viewers,
    AVG(dv.duration_ms / 1000.0) as avg_view_time_seconds
FROM dashboards d
LEFT JOIN dashboard_views dv ON d.id = dv.dashboard_id
WHERE dv.timestamp >= NOW() - INTERVAL '30 days'
GROUP BY d.id, d.name
ORDER BY total_views DESC
LIMIT 20;

๐Ÿšจ Alerting and Notifications

โš ๏ธ System Alerts
  • Database connection failures
  • High query error rates
  • System resource exhaustion
  • Backup failures
๐Ÿ“Š Data Quality Alerts
  • Data freshness issues
  • Unexpected value ranges
  • Missing data scenarios
  • Schema changes

๐Ÿข Enterprise Administration

๐Ÿ”„ High Availability Setup

โš–๏ธ Load Balancing
  • Multiple Metabase instances behind load balancer
  • Shared application database (PostgreSQL/MySQL)
  • Session affinity for WebSocket connections
  • Health check endpoints
๐Ÿ’พ Database Clustering
  • Read replicas for analytics workloads
  • Connection pooling and failover
  • Backup and disaster recovery
  • Cross-region replication

๐Ÿ” Advanced Security

๐Ÿ›ก๏ธ Audit and Compliance
  • Complete audit trails
  • SOC 2 compliance support
  • GDPR data handling
  • Custom retention policies
๐Ÿ”’ Enterprise SSO
  • Advanced SAML configurations
  • Just-in-time user provisioning
  • Group-based permission mapping
  • Custom authentication flows

โšก Advanced Metabase Features

๐Ÿ“ Custom SQL and Advanced Queries

While Metabase's query builder handles most use cases, SQL questions give you unlimited flexibility for complex analytics.

๐Ÿ”— Joining Multiple Tables

-- Customer lifetime value with detailed breakdown
SELECT 
    c.customer_id,
    c.first_name || ' ' || c.last_name as customer_name,
    c.signup_date,
    COUNT(DISTINCT o.order_id) as total_orders,
    SUM(o.total_amount) as lifetime_value,
    AVG(o.total_amount) as avg_order_value,
    -- Customer tier based on lifetime value
    CASE 
        WHEN SUM(o.total_amount) >= 10000 THEN 'Platinum'
        WHEN SUM(o.total_amount) >= 5000 THEN 'Gold'  
        WHEN SUM(o.total_amount) >= 1000 THEN 'Silver'
        ELSE 'Bronze'
    END as customer_tier,
    -- Recency analysis
    DATE_PART('days', CURRENT_DATE - MAX(o.order_date)) as days_since_last_order,
    -- Frequency analysis  
    CASE 
        WHEN DATE_PART('days', CURRENT_DATE - c.signup_date) > 0 THEN
            COUNT(DISTINCT o.order_id)::float / 
            (DATE_PART('days', CURRENT_DATE - c.signup_date) / 30.0)
        ELSE 0
    END as orders_per_month
FROM customers c
LEFT JOIN orders o ON c.customer_id = o.customer_id
WHERE c.signup_date >= '2023-01-01'
GROUP BY c.customer_id, c.first_name, c.last_name, c.signup_date
HAVING COUNT(DISTINCT o.order_id) > 0
ORDER BY lifetime_value DESC;

Shopify's Usage: Similar queries help Shopify merchants understand their customer base, enabling personalized marketing campaigns and retention strategies.

๐Ÿ“Š Window Functions for Advanced Analytics

-- Cohort retention analysis
WITH monthly_cohorts AS (
    SELECT 
        customer_id,
        DATE_TRUNC('month', first_order_date) as cohort_month,
        DATE_TRUNC('month', order_date) as order_month
    FROM (
        SELECT 
            o.customer_id,
            o.order_date,
            MIN(o.order_date) OVER (PARTITION BY o.customer_id) as first_order_date
        FROM orders o
    ) t
),
cohort_data AS (
    SELECT 
        cohort_month,
        order_month,
        DATE_PART('month', AGE(order_month, cohort_month)) as month_number,
        COUNT(DISTINCT customer_id) as customers
    FROM monthly_cohorts
    GROUP BY cohort_month, order_month
),
cohort_sizes AS (
    SELECT 
        cohort_month,
        COUNT(DISTINCT customer_id) as cohort_size
    FROM monthly_cohorts
    WHERE cohort_month = order_month
    GROUP BY cohort_month
)
SELECT 
    cd.cohort_month,
    cs.cohort_size,
    cd.month_number,
    cd.customers as retained_customers,
    ROUND(cd.customers * 100.0 / cs.cohort_size, 2) as retention_rate
FROM cohort_data cd
JOIN cohort_sizes cs ON cd.cohort_month = cs.cohort_month
WHERE cd.month_number <= 12  -- First 12 months
ORDER BY cd.cohort_month, cd.month_number;

๐Ÿ“ˆ Time Series Analysis

-- Revenue growth with moving averages and year-over-year comparison
WITH daily_revenue AS (
    SELECT 
        DATE(order_date) as date,
        SUM(total_amount) as daily_revenue
    FROM orders
    WHERE order_date >= '2022-01-01'
    GROUP BY DATE(order_date)
),
enriched_data AS (
    SELECT 
        date,
        daily_revenue,
        -- 7-day moving average
        AVG(daily_revenue) OVER (
            ORDER BY date 
            ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
        ) as ma_7day,
        -- 30-day moving average
        AVG(daily_revenue) OVER (
            ORDER BY date 
            ROWS BETWEEN 29 PRECEDING AND CURRENT ROW
        ) as ma_30day,
        -- Year-over-year comparison
        LAG(daily_revenue, 365) OVER (ORDER BY date) as revenue_previous_year,
        -- Month-over-month growth
        LAG(daily_revenue, 30) OVER (ORDER BY date) as revenue_previous_month
    FROM daily_revenue
)
SELECT 
    date,
    daily_revenue,
    ROUND(ma_7day, 2) as moving_avg_7day,
    ROUND(ma_30day, 2) as moving_avg_30day,
    revenue_previous_year,
    CASE 
        WHEN revenue_previous_year > 0 THEN
            ROUND((daily_revenue - revenue_previous_year) * 100.0 / revenue_previous_year, 2)
        ELSE NULL
    END as yoy_growth_percent,
    CASE 
        WHEN revenue_previous_month > 0 THEN
            ROUND((daily_revenue - revenue_previous_month) * 100.0 / revenue_previous_month, 2)
        ELSE NULL
    END as mom_growth_percent
FROM enriched_data
WHERE date >= '2023-01-01'
ORDER BY date;

๐Ÿ”— Embedding and Integration

Embed Metabase dashboards and questions directly into your applications for seamless user experiences.

๐ŸŒ Public Embeds

Share dashboards and questions publicly without requiring login.

๐Ÿ“Š IFrame Embedding




๐ŸŽจ Styling and Customization
  • Hide Metabase branding (Pro feature)
  • Custom color themes
  • Responsive sizing
  • Parameter passing via URL

๐Ÿ” Signed Embeds (Enterprise)

Secure embedding with user-specific data access and authentication.

๐Ÿ”’ Server-Side Token Generation
// Node.js example for generating signed embed URL
const jwt = require('jsonwebtoken');
const METABASE_SITE_URL = 'https://metabase.company.com';
const METABASE_SECRET_KEY = process.env.METABASE_SECRET_KEY;

function generateEmbedUrl(dashboardId, params = {}) {
    const payload = {
        resource: { dashboard: dashboardId },
        params: params,
        exp: Math.round(Date.now() / 1000) + (10 * 60) // 10 minute expiration
    };
    
    const token = jwt.sign(payload, METABASE_SECRET_KEY);
    return `${METABASE_SITE_URL}/embed/dashboard/${token}#bordered=true&titled=true`;
}

// Usage in your application
app.get('/dashboard/:userId', (req, res) => {
    const userParams = {
        customer_id: req.user.customerId,
        region: req.user.region
    };
    
    const embedUrl = generateEmbedUrl(123, userParams);
    res.render('dashboard', { embedUrl });
});
โœจ Advanced Features
  • User-specific data filtering
  • Dynamic parameter injection
  • Token expiration for security
  • Click-through actions to your app

๐Ÿ”Œ API Integration

Programmatically access Metabase data and functionality via REST API.

๐Ÿ“Š Question Results API
# Python example using Metabase API
import requests
import json

class MetabaseAPI:
    def __init__(self, url, username, password):
        self.url = url
        self.session_token = self._authenticate(username, password)
    
    def _authenticate(self, username, password):
        auth_url = f"{self.url}/api/session"
        response = requests.post(auth_url, json={
            "username": username,
            "password": password
        })
        return response.json()['id']
    
    def run_question(self, question_id, parameters=None):
        headers = {'X-Metabase-Session': self.session_token}
        
        if parameters:
            # Run with parameters
            url = f"{self.url}/api/card/{question_id}/query"
            response = requests.post(url, json={"parameters": parameters}, headers=headers)
        else:
            # Run without parameters
            url = f"{self.url}/api/card/{question_id}/query"
            response = requests.post(url, headers=headers)
        
        return response.json()['data']

# Usage example
mb = MetabaseAPI('https://metabase.company.com', 'user@company.com', 'password')
results = mb.run_question(42, [{"type": "date/range", "target": ["dimension", ["field-id", 123]], "value": "2024-01-01~2024-12-31"}])
print(json.dumps(results['rows'], indent=2))

๐Ÿš€ Performance Optimization

๐Ÿ’พ Caching Strategies

๐Ÿ”„ Multi-Level Caching
  • **Question results**: 1-24 hours based on data freshness
  • **Dashboard cache**: Composite caching for multiple questions
  • **Database metadata**: Schema information caching
  • **Application cache**: Redis/Memcached for high-traffic instances
โš™๏ธ Cache Configuration Best Practices
  • ๐Ÿ“Š **Real-time data**: 5-15 minute cache
  • ๐Ÿ“ˆ **Daily reports**: 4-24 hour cache
  • ๐Ÿ“‹ **Historical analysis**: 24+ hour cache
  • ๐Ÿ”„ **Reference data**: Cache until schema changes

๐Ÿ“Š Query Optimization

โšก Performance Tips
  • Use database indexes on frequently filtered columns
  • Limit result sets with appropriate WHERE clauses
  • Pre-aggregate data in materialized views
  • Use column-based filtering instead of row-level functions
๐Ÿš€ Before vs After Optimization
-- SLOW: Function on every row
SELECT customer_id, EXTRACT(YEAR FROM order_date) as year, SUM(amount)
FROM orders 
WHERE EXTRACT(YEAR FROM order_date) = 2024
GROUP BY customer_id, EXTRACT(YEAR FROM order_date);

-- FAST: Index-friendly date comparison
SELECT customer_id, 2024 as year, SUM(amount)
FROM orders 
WHERE order_date >= '2024-01-01' 
  AND order_date < '2025-01-01'
GROUP BY customer_id;

๐Ÿ—๏ธ Data Architecture

๐Ÿ“Š Analytics-Optimized Schema
  • **Star schema**: Fact tables with dimension lookups
  • **Columnstore indexes**: For analytical queries
  • **Partitioning**: By date for large time-series data
  • **Read replicas**: Separate analytics from transactional load

๐Ÿ’ก Real-World Metabase Projects

๐Ÿช Project 1: E-commerce Analytics Suite

Build a comprehensive analytics platform for an e-commerce business with customer insights, product performance, and operational metrics.

๐Ÿ“Š Dashboard Portfolio

๐ŸŽฏ Executive Dashboard
  • Daily/weekly/monthly revenue trends
  • Customer acquisition and retention rates
  • Average order value and conversion rates
  • Geographic performance breakdown
๐Ÿ›’ Product Analytics
  • Best and worst performing products
  • Inventory turnover rates
  • Category performance analysis
  • Product recommendation effectiveness
๐Ÿ‘ฅ Customer Intelligence
  • Customer lifetime value segments
  • Cohort retention analysis
  • Purchase behavior patterns
  • Churn prediction and prevention

๐Ÿ—๏ธ Implementation Approach

  1. **Data Integration**: Connect to e-commerce platform APIs, payment processors, and customer support systems
  2. **Data Modeling**: Create clean, normalized tables with proper relationships
  3. **Question Library**: Build reusable questions for common metrics
  4. **Dashboard Design**: Create role-specific dashboards with appropriate permissions
  5. **Automation**: Set up email subscriptions and Slack notifications
  6. **Training**: Onboard business users with hands-on workshops

๐ŸŽฏ Expected Business Impact

  • ๐Ÿ“ˆ **20% increase** in marketing ROI through better campaign targeting
  • ๐Ÿ’ฐ **15% reduction** in customer acquisition cost
  • ๐Ÿ”„ **25% improvement** in inventory turnover
  • โฐ **5 hours/week saved** on manual reporting

๐Ÿฅ Project 2: Healthcare Operations Dashboard

Design a comprehensive healthcare management system with patient flow tracking, resource utilization, and quality metrics.

๐Ÿฅ Key Features

  • ๐Ÿš‘ **Real-time patient tracking** through admission to discharge
  • ๐Ÿ‘จโ€โšš **Staff utilization** and scheduling optimization
  • ๐Ÿ›๏ธ **Bed occupancy** and resource availability
  • ๐Ÿ’Š **Medication tracking** and inventory management
  • ๐Ÿ“Š **Quality metrics** and regulatory compliance
  • ๐Ÿ’ฐ **Financial performance** and billing analytics

๐Ÿ”’ HIPAA Compliance Features

  • Row-level security for patient data
  • Audit logging for all data access
  • Role-based permissions by department
  • Data masking for non-clinical users

๐ŸŽ“ Project 3: Educational Institution Analytics

Create a student performance and institutional effectiveness platform for universities and schools.

๐Ÿ“š Academic Metrics

  • ๐Ÿ“ˆ **Student performance** tracking and early warning systems
  • ๐ŸŽฏ **Course effectiveness** and instructor evaluation
  • ๐Ÿ“Š **Enrollment trends** and capacity planning
  • ๐Ÿ’ฐ **Financial aid** distribution and effectiveness
  • ๐Ÿ† **Graduation rates** and career outcomes
  • ๐Ÿ“ฑ **Digital engagement** with online learning platforms

๐ŸŽฏ Hands-On Metabase Exercises

๐Ÿ”ฐ Exercise 1: Building Your First Analytics Dashboard

Beginner Level

๐ŸŽฏ Objective

Create a comprehensive business dashboard using Metabase's query builder and visualization tools.

๐Ÿ“Š Scenario

You're the analytics lead for a growing online bookstore. The CEO wants a dashboard to track key business metrics and make data-driven decisions.

๐Ÿ“‹ Tasks

  1. Connect to the sample bookstore database
  2. Create questions for the following metrics:
    • ๐Ÿ“š Total books sold this month
    • ๐Ÿ’ฐ Revenue trend over the last 6 months
    • ๐Ÿ“ˆ Top 10 bestselling books
    • ๐ŸŒ Sales by geographic region
    • ๐Ÿ‘ฅ Customer acquisition trend
  3. Design a dashboard layout with proper visual hierarchy
  4. Add interactive filters for date ranges and regions
  5. Set up automatic email delivery for weekly updates
  6. Share the dashboard with different user groups

โœ… Success Criteria

  • Dashboard loads in under 5 seconds
  • All visualizations are appropriate for the data type
  • Filters work correctly across all questions
  • Mobile layout is readable and functional
  • Email subscriptions deliver successfully

๐Ÿ“Š Exercise 2: Advanced SQL Analytics

Intermediate Level

๐ŸŽฏ Objective

Build sophisticated analytics using custom SQL queries, including cohort analysis, funnel analysis, and predictive metrics.

๐Ÿ’ช Analytics Challenges

  1. **Customer Cohort Analysis**: Track monthly customer retention rates
  2. **Purchase Funnel**: Analyze conversion rates from browse to purchase
  3. **RFM Segmentation**: Segment customers by Recency, Frequency, and Monetary value
  4. **Seasonal Trends**: Identify seasonal patterns in sales data
  5. **Churn Prediction**: Calculate probability of customer churn

๐Ÿš€ Starter SQL Templates

-- Cohort Analysis Template
WITH first_purchase AS (
  SELECT 
    customer_id,
    MIN(order_date) as first_purchase_date
  FROM orders
  GROUP BY customer_id
),
cohort_months AS (
  -- Your code here: Create monthly cohorts
  -- Hint: Use DATE_TRUNC and calculate month differences
)
-- Complete the cohort retention calculation

-- RFM Analysis Template  
WITH rfm_calc AS (
  SELECT 
    customer_id,
    MAX(order_date) as last_order_date,
    COUNT(*) as frequency,
    SUM(total_amount) as monetary_value
  FROM orders
  WHERE order_date >= CURRENT_DATE - INTERVAL '12 months'
  GROUP BY customer_id
)
-- Your code here: Calculate RFM scores and segments

๐Ÿข Exercise 3: Enterprise Deployment

Advanced Level

๐ŸŽฏ Objective

Set up a production-ready Metabase instance with proper security, performance optimization, and governance.

๐Ÿ”ง Implementation Requirements

  1. **Infrastructure Setup**:
    • Docker-based deployment with load balancing
    • PostgreSQL backend for application data
    • SSL/TLS encryption for all connections
    • Backup and disaster recovery plan
  2. **Security Configuration**:
    • SAML SSO integration with Active Directory
    • Row-level security for multi-tenant data
    • Audit logging and compliance reporting
    • Data encryption at rest and in transit
  3. **Performance Optimization**:
    • Query caching strategy implementation
    • Database read replica configuration
    • Performance monitoring and alerting
    • Resource usage optimization
  4. **Governance Framework**:
    • Data governance policies and procedures
    • User training and onboarding program
    • Content organization and approval workflow
    • Usage analytics and adoption tracking

๐Ÿ“Š Evaluation Metrics

  • System uptime and reliability (>99.5%)
  • Query performance (95% under 5 seconds)
  • User adoption rate (>80% monthly active users)
  • Security compliance score
  • Cost optimization vs. baseline

๐Ÿ“š Learning Resources and Next Steps

๐Ÿ› ๏ธ Tools and Integrations

  • Database connectors and drivers
  • Third-party visualization plugins
  • API clients and SDKs
  • Monitoring and alerting tools

๐ŸŽฏ Practice Datasets

  • **Sample E-commerce**: Orders, customers, products
  • **Financial Services**: Transactions, accounts, investments
  • **Healthcare**: Patient records, treatments, outcomes
  • **Education**: Student performance, courses, enrollments
  • **SaaS Metrics**: Users, subscriptions, usage analytics

๐Ÿš€ Advanced Topics

  • Custom visualization development
  • Advanced embedding patterns
  • Performance optimization techniques
  • Multi-tenant architecture design
  • Enterprise security implementation

๐Ÿ† Recommended Certification Path

  1. ๐Ÿ”ฐ **Metabase Fundamentals** - Dashboard creation and basic analytics
  2. ๐Ÿ“Š **Advanced Analytics** - SQL mastery and complex visualizations
  3. โš™๏ธ **Administration** - User management, permissions, and performance
  4. ๐Ÿข **Enterprise Deployment** - Production setup and governance
  5. ๐Ÿš€ **Specialization** - Embedding, API integration, or industry-specific analytics

๐Ÿ’ญ Short reflection

In one sentence: why is it important to define row-level or column-level permissions in Metabase before sharing a dashboard with stakeholders?

โœ… CORE (Must know)

  • Connect to DB; create questions (SQL or builder); save as questions.
  • Build dashboards with filters; share and set permissions.
  • Visualizations: line, bar, table, pivot; customize and embed when needed.

๐Ÿ“š NON-CORE (Good to know)

  • Pulses, embedding, audit; Metabase Cloud.