More Remodels OS
Private Command Center
Supabase connection
Create allowed users in Supabase Auth. Do not enable open public signup for this private tracker.
Custom range
Executive Dashboard
High-level overview of agency performance.
Gross Revenue
$791
Setup fees + appointments
Gross Profit
$429
Revenue − all ad spend
Profit Margin
54.2%
Profit ÷ Revenue
Active Clients
3
Out of 3 total
Avg Rev/Client
$264
Revenue ÷ active clients
Revenue Growth
Net Whop revenue · All Time
Clients Signed
New clients by Client Since date · All Time
Gross Profit Trend
Revenue minus B2B + B2C ad spend · All Time
Revenue vs Total Ad Spend
Gross revenue compared with all ad spend · All Time
BROAD
AD SPEND
$362
LEADS
22
BOOKED
15
SHOWED
6
CLOSED
0
BOOKING RATE
68.2%
Booked ÷ Leads
SHOW RATE
40%
Showed ÷ Booked
CLOSE RATE
0%
Closed ÷ Showed
COST PER LEAD
$16.45
Spend ÷ Leads
COST PER BOOKING
$24.13
Spend ÷ Booked
COST PER SHOW
$60.32
Spend ÷ Showed
COST PER CLOSE (CAC)
$0.00
Spend ÷ Closed
Ad-Level Breakdown
Performance of each individual ad in this ad set.
Ad NameStatusSpendLeadsBookedShowedClosedCPLCPBACPSACAC
A5 (Selfie Video) $287.38 17 11 4 0 $16.90 $26.13 $71.84
A4 (Person Marker) $23.77 0 0 0 0
A6 (UGC Video) $42.89 5 4 2 0 $8.58 $10.72 $21.45
A3 (Testimonial) $0.48 0 0 0 0
A2 (Graphic Designer) $3.13 0 0 0 0
A1 (Tombstone) $4.29 0 0 0 0
Client Fulfillment
B2C campaign performance across all active clients.
Total B2C Spend
$0
Across all B2C campaigns
Total Shows Generated
0
$0.00 Average Cost Per Show
Appointment Revenue
$0
From showed appointments
Delivery Profit
$0
B2C Revenue - B2C Spend
Delivery Profit Margin
0%
Delivery Profit ÷ Delivery Revenue
Active Clients 3
ClientStatusClient SinceB2C SpendShowsRevenueProfitDetails
Melvin Morales
Countertops · Boston, Massachusetts
Onboarding Jun 19, 2026 $00 $0 $0 Details
Jo&Je Kitchens and Countertops LLC
Countertops · Milwaukee, Wisconsin
Onboarding Jun 19, 2026 $00 $0 $0 Details
Granite Men LLC
Countertops · Denver, Colorado
Onboarding Jun 19, 2026 $00 $0 $0 Details
Past Clients 0
ClientStatusClient SinceB2C SpendShowsRevenueProfitDetails
No past clients yet.
Transactions
Recent payments and revenue history.
Total Volume
$0
Maximum
Successful Payments
0
Cleared via Whop
Failed Payments
0
Declined or unsuccessful
Refunds
0
$0 returned
DateClientTypeAmountStatus
Architecture & Data
How your data flows from Meta, GHL, Whop, and Make into this dashboard.
Data Flow
📘 Meta Ads ⚡ Make.com ⛁ Supabase ▲ This App
📗 GoHighLevel ⚡ Make.com ⛁ Supabase
💳 Whop ⚡ Make.com ⛁ Supabase
Supabase is the single source of truth. The app only ever reads from Supabase — so a Meta or GHL outage never breaks your dashboard. Make.com keeps Supabase fed on a schedule and via real-time webhooks.
Database Tables
How Data Gets In
1
Meta ad data → meta_metrics
Make.com pulls spend, leads, impressions, CPL per campaign & ad set every few hours and writes to meta_metrics \u2014 split by B2B (acquisition) and B2C (fulfillment) account.
2
GHL appointments → appointments / leads
When a contact books or shows in GHL, a webhook → Make → writes to appointments and leads, so booked/showed counts stay current.
3
Revenue → transactions (dated)
Each cleared Whop payment writes one dated row to transactions (client_id, type, amount, created_at). Appointment payments build each client's revenue ledger; setup fees count toward Executive revenue only.
4
You add clients by hand
Anything not auto-synced (a new client, a negotiated setup fee) you add on the Clients page. It saves straight to Supabase.
5
Date range filter
Every figure carries a date (transaction created_at, meta_metrics date). The top-bar picker (Maximum / 24h / 7d / 30d / Custom) filters the whole tracker to that window. Clients & Pipeline show current state and ignore the range.
Settings
Connect Supabase, confirm billing rules, and wire Meta/GHL/Whop data.
Sample data
The app is showing realistic demo numbers so you can see how every page calculates. Clear it when you're ready to use your own data — connecting Supabase with live rows clears it automatically.
1. Connect Supabase
Find these in Supabase → Project Settings → API. Never paste a service-role or secret key here. Add Supabase Auth before hosting this tracker publicly.
Make Refresh Connection
Paste the custom webhook URL for the Make refresh scenario. The top-right Refresh Data button will trigger it on demand.
Not configured
2. Run this SQL
Paste into Supabase → SQL Editor → Run. Creates all tables.
3. What I need from you
4. Data map