Answering "how are we doing?" used to mean opening Shopify, Meta, the subscription app, and GA4, then reconciling them in your head. I built one dashboard the CEO opens every morning. It shows revenue, customers, retention, and where buyers come from, refreshed hourly and accurate to the cent.
A CEO running a young subscription brand needs three answers, fast: Is it growing? Where do customers come from? Do they stay? Every tool had a piece of the answer, and each one told a slightly different story. The job was to give him one place to look, and a reason to trust it.
Every page answers one question in plain English: "Where the money actually comes from", "Billing cycles reached", "Does the channel that won them predict whether they stay?"
So: The CEO reads the dashboard like a briefing, not a spreadsheet.
The front page leads with a short queue of what needs attention today, such as a payment issue or a data source that has gone stale, instead of a wall of totals.
So: Important things get handled the same week instead of being discovered a month later.
Each figure has a "why this number?" note and a label: Verified, Estimated, Corrected, or Partial. Each data source shows its real health and turns red when it stops updating.
So: Trust without a meeting. The CEO knows what he can act on without asking.
Eleven pages in four groups. Each one opens with the single figure it is judged on, and whether that figure is where it should be:
The whole business in one read: headline figures, an "across the business" line for every page, what bills next, what needs doing today, and what a trial customer is worth.
A searchable order book. Open any order to see how it happened: every ad and visit that led to it, which one gets the credit, and whether it started a subscription.
Traffic and customer journeys, email performance, total ad spend, and separate Meta and Google Ads pages, all judged on store-verified orders.
Who is subscribed and what bills next, customer history, and a data-health page confirming all 10 sources are answering, updated every hour.
A good-looking dashboard that’s wrong is worse than none. Before anyone relied on it, I reconciled it order by order against Shopify's payment records and Meta's billing, and traced every gap to a root cause:
Revenue now reflects discounts and what was actually paid.
Multi-item orders are counted once.
Refunds and chargebacks come off revenue.
Shipping income is part of revenue.
Internal tests never count as customers.
Orders are bucketed in the store’s own timezone.
A missing API permission was fixed, with an alert if spend ever stops updating.
The store’s ledger, not the ad pixel, owns the order count.
Blank UTMs no longer push paid traffic into "direct".
Business figures (revenue, spend, conversion and retention rates) stay private at my employer’s request. Happy to walk through the real work on a call.
n8n pipeline, hourly · Shopify Admin API (payments, refunds, attribution field) · Seal Subscriptions · Meta Marketing API · GA4 · Brevo and more (10 sources) → 11-page dashboard: decision queue, unit economics, eligibility-adjusted cohort retention, first/last-touch attribution, creative performance, lifecycle segments, and a sample-data preview mode for sharing the design safely.
I'd write the reconciliation check before the first chart. A daily test that dashboard revenue equals Shopify payments would have caught most issues on day one.