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.
Verification note: This post was re-reviewed in May 2026. Public tool pricing, compliance rules, and platform capabilities should be checked against the source list at the end before making budget, legal, or deployment decisions. Private client metrics are not published unless they are safe, public, and verifiable.
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:
- Lead count (by source, by day/week/month)
- Appointment set rate (leads -> booked calls)
- Show rate (booked -> attended)
- Close rate (attended -> customer)
- Revenue by period (weekly, monthly, quarterly)
- Customer acquisition cost (ad spend ÷ customers)
- Average deal size
- 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.
Sources and verification
This article was reviewed in May 2026. Vendor pricing, platform features, ad policies, and telemarketing rules change often, so operational or budget decisions should be checked against the current source pages below before implementation.
- Supabase securing your API
- Supabase Row Level Security
- Supabase Data API hardening
- Vercel pricing and usage
Private client metrics, lead counts, appointment counts, cost reductions, and revenue examples are intentionally removed, softened, or framed as modeled examples unless they can be verified publicly without exposing client data.
Need this built?
Turn this reading into a scoped operating system.
Use the intake to send the business context first, then the build conversation can stay focused on the workflow that needs to change.
Related articles
Data Normalization for CRM Contacts: Fixing the Mess Before It Gets Worse
> Verification note: This post was re-reviewed in May 2026. Public tool pricing, compliance rules, and platform capabiliti...
18 Apr 2026 / 7 min read
Large CRM Data Pipeline Case Study: Privacy-Safe Architecture Notes
18 Nov 2025
8 min
read