Data Engineering6 min read29 April 2026

Building a Simple Analytics Dashboard for Your Automation Stack

A practical guide to building a lightweight analytics dashboard for a service business — tools, metrics, and the step-by-step setup process.

H

Haroon Mohamed

AI Automation & Lead Generation

Why most automation stacks lack good dashboards

Most small businesses try to get their metrics from the CRM dashboard. GoHighLevel has one. HubSpot has one. Both are functional but limited:

  • Can't combine data from multiple tools
  • Can't compare periods side-by-side easily
  • Can't customize reports deeply
  • Don't show the specific metrics YOU care about

A purpose-built dashboard solves this. And in 2026, building one is cheaper and faster than ever.


What metrics actually matter for a service business

Before building the dashboard, decide what to track. The 8 metrics that matter for most service businesses:

  1. Lead count (by source, by day/week/month)
  2. Appointment set rate (leads → booked calls)
  3. Show rate (booked → attended)
  4. Close rate (attended → customer)
  5. Revenue by period (weekly, monthly, quarterly)
  6. Customer acquisition cost (ad spend ÷ customers)
  7. Average deal size
  8. Sales cycle length (lead → customer)

Skip vanity metrics (email opens, social impressions) until these 8 are dialed in.


Architecture options

Option 1: Supabase + Metabase

Stack:

  • Supabase (database): $0-$25/month
  • Metabase (visualization): $0 self-hosted, or $85+/month cloud
  • Make.com / n8n to push data from CRM → Supabase

Best for: Technical operators who want full customization.

Option 2: Google Sheets + Looker Studio (formerly Data Studio)

Stack:

  • Google Sheets (data): Free
  • Looker Studio (visualization): Free
  • Zapier / Make to push CRM data to Sheets

Best for: Non-technical operators who want a quick dashboard without databases.

Option 3: Airtable + Airtable Interface

Stack:

  • Airtable (database + UI): $20-$45/user/month
  • Native Airtable Interface Designer

Best for: Teams already using Airtable, moderate customization needs.

Option 4: GoHighLevel Dashboard (no extra tools)

If your data is all in GHL: the built-in dashboard is passable. Limited customization but zero additional cost.

Best for: Minimal setup, willing to accept limited reporting depth.


Recommended approach for most small businesses

Supabase + Metabase (self-hosted on VPS).

Why:

  • Free or near-free ($5-$30/month depending on deployment)
  • Handles any data size you'll realistically hit
  • Metabase is polished, user-friendly for non-technical team members once built
  • Postgres under the hood means SQL queries work for advanced cases

Step-by-step setup

Step 1: Define the data model

In Supabase, create tables for:

  • leads (id, source, created_at, status, email, phone)
  • appointments (id, lead_id, scheduled_at, status, showed)
  • deals (id, lead_id, amount, stage, closed_at)
  • ad_spend (id, source, date, amount)

The schema depends on your business. Keep it simple — start with 4-6 tables.

Step 2: Pipe data in

Set up a Make.com or n8n workflow that:

  • Webhook from GHL/HubSpot on new lead → insert into leads
  • Webhook on appointment booked → insert into appointments
  • Webhook on deal stage change → update deals
  • Scheduled pull from Facebook Ads / Google Ads API → upsert into ad_spend

Time: 2-4 hours to set up 4-5 flows.

Step 3: Set up Metabase

Self-hosted (Docker on VPS):

docker run -d -p 3000:3000 \
  --name metabase \
  -e "MB_DB_TYPE=h2" \
  metabase/metabase

Or with PostgreSQL as its own database for production.

Cloud: Metabase Cloud at $85/month for Starter, $500/month for Pro.

Free self-hosted is the right choice for small operations. $5/month VPS hosts Metabase comfortably.

Step 4: Connect Metabase to Supabase

In Metabase: Admin → Databases → Add Database → PostgreSQL.

Enter Supabase connection details (host, port 6543 for pooled connection, database name, credentials). Save.

Step 5: Build your first questions (Metabase queries)

Metabase calls them "questions." Each is a query + visualization.

Example questions to build first:

"Leads this week"

  • Table: leads
  • Filter: created_at >= start of week
  • Visualization: number (total count)

"Leads by source this month"

  • Table: leads
  • Filter: created_at within this month
  • Group by: source
  • Visualization: bar chart

"Appointment set rate"

  • Formula: appointments_booked / leads created in same period
  • Visualization: line chart over time

"Monthly revenue"

  • Table: deals
  • Filter: stage = 'closed-won', closed_at within month
  • Sum: amount
  • Visualization: number + trend

Step 6: Assemble into a dashboard

In Metabase: New Dashboard → Add questions. Arrange visually. Add date filters.

Share the dashboard URL with your team (or embed in Notion, your internal intranet, etc.).


Example dashboard layout

Top row (big numbers):

  • This Week's Leads: 47
  • Appointments Set: 18 (38% rate)
  • Revenue This Month: $14,320
  • Pipeline Value: $52,100

Middle row (trends):

  • Leads by day (last 30 days) — line chart
  • Revenue by week (last 12 weeks) — bar chart

Bottom row (breakdowns):

  • Leads by source — pie or bar chart
  • Appointments by day of week — bar chart
  • Close rate by source — table

Dashboard principles

1. One screen, one glance. If the dashboard requires scrolling or zooming, it's too complex. Pick the 6-10 most important metrics.

2. Compare to something. A number alone means little. Compare to last week, last month, target, or industry benchmark.

3. Show trends, not just snapshots. "47 leads this week" is less useful than "47 leads this week (+10% vs. last week)."

4. Make it refresh. If data is stale, people stop trusting the dashboard. Metabase auto-refreshes every X minutes.

5. Design for the decision you'll make. Each metric should answer a "what should we do about this?" question. If you can't articulate the action a metric should trigger, remove it.


Common mistakes

1. Building dashboards before tracking the data. You need the data infrastructure before the UI. Set up data flow first, dashboard second.

2. Too many metrics. 20 charts on one dashboard = nobody reads any of them. 6-10 is the sweet spot.

3. Vanity metrics. "Total website visitors" feels good but rarely drives decisions. "Visitors who filled out the contact form" is actionable.

4. No source of truth. If your dashboard shows a different lead count than your CRM, trust breaks. Make sure the pipeline is reliable (idempotent inserts, proper error handling).

5. Never updating the dashboard. Your business changes. Dashboard should evolve. Revisit quarterly: what's still useful? What should be added?


Alternatives to building it yourself

If Supabase + Metabase feels like too much:

  • Databox: $0-$300/month. Pre-built integrations with HubSpot, GHL (via Zapier), Google Analytics. Less flexible but faster to set up.
  • Geckoboard: $39-$119/month. Similar to Databox.
  • Hockeystack: $249+/month. More modern, B2B focus.
  • Funnel.io: Pricing varies. Focuses on marketing data.

For a zero-setup option, these work. You sacrifice customization for speed.


Time investment

  • First dashboard (3-5 questions): 4-8 hours if you know your data
  • Full business dashboard (8-10 questions): 2-3 days including data pipeline
  • Ongoing maintenance: 1-2 hours/month

Sources

Pricing from metabase.com/pricing, supabase.com/pricing, databox.com/pricing, and other mentioned tools' public pricing pages as of April 2026. Dashboard design principles are from industry-standard data viz practices (Stephen Few's work, Tufte's principles adapted for business). Architecture examples are based on deployments across client projects.

Need help designing a dashboard specific to your business and data? Let's talk — usually a 1-2 week engagement from data pipeline to final dashboard.

Need This Built?

Ready to implement this for your business?

Everything in this article reflects real systems I've built and operated. Let's talk about yours.

H

Haroon Mohamed

Full-stack automation, AI, and lead generation specialist. 2+ years running 13+ concurrent client campaigns using GoHighLevel, multiple AI voice providers, Zapier, APIs, and custom data pipelines. Founder of HMX Zone.

ShareShare on X →