Medusa has no built-in analytics dashboard. Zero. There is no admin panel graph showing your revenue trend, no conversion funnel, no average order value chart. When you choose Medusa, you are also choosing to build your analytics stack — and that is either a serious problem or a significant advantage, depending on how seriously you take data.
What “No Built-In Analytics” Actually Means
This is worth stating precisely, because people misread it.
Medusa does store your order data. Your orders, customers, products, and transactions live in a PostgreSQL database you control. The data is there. What Medusa doesn’t do is visualize it or expose it through a pre-built reporting UI.
So when you log into Medusa’s admin panel, you see orders, products, and customers. You don’t see a revenue dashboard, a cohort analysis, a traffic-to-conversion funnel, or anything that answers “how is my store doing.”
For most businesses, that gap needs filling before the store launches — not after.
The Three Analytics Layers You Need
A production Medusa analytics setup has three distinct layers, and confusing them leads to gaps.
Layer 1: Storefront behavior (what people do before checkout) This is page views, sessions, product views, add-to-cart rates, checkout initiation, and abandonment by step. You capture this on the frontend — your Next.js storefront — using browser-side tracking.
Layer 2: Transactional data (what orders happen) Revenue, GMV, AOV, refunds, items per order, discount usage, payment method distribution. This comes from Medusa’s backend database, not from browser tracking. You need to either push it to an analytics platform via events, or pull it via a direct database query.
Layer 3: Customer and retention data (who buys and whether they come back) LTV by cohort, repeat purchase rate, customer segments by spend tier, churn by acquisition channel. This requires connecting order data to customer records over time — typically done in a BI tool or a data warehouse.
Shopify gives you some of Layer 1 and most of Layer 2 in their built-in analytics. Layer 3 requires Shopify’s Advanced plan ($299/month) or Plus. With Medusa, you build all three yourself — but you can build them properly.
Option 1: Google Analytics 4 (GA4)
GA4 is the most common starting point for Medusa analytics, and it covers Layer 1 well if you implement ecommerce events correctly.
The standard GA4 ecommerce event set:
view_item— product page viewadd_to_cart— add to cart eventbegin_checkout— checkout initiatedadd_shipping_info— shipping step completedadd_payment_info— payment step completedpurchase— order completed
Implementing these on a Next.js Medusa storefront takes 2–3 days of frontend development. You can use gtag.js directly or use a wrapper library like @next/third-parties. Either approach works; direct gtag.js is lighter and gives you more control.
What GA4 covers well: Funnel visualization, traffic source attribution, device segmentation, geographic performance, checkout abandonment by step.
What GA4 does not cover: Backend order data (you need to send purchase events from your backend to avoid client-side blocking gaps), LTV cohorts, deep customer segmentation, custom business metrics.
Cost: GA4 is free. Implementation costs $1,500–$4,000 for proper ecommerce tracking setup, including server-side purchase events to close the attribution gap from ad blockers.
Option 2: Segment (Customer Data Platform)
Segment sits between your Medusa store and all downstream analytics tools. You send events to Segment once; Segment routes them to GA4, Mixpanel, Klaviyo, Amplitude, your data warehouse, and anywhere else you need.
The advantage is one implementation for multiple tools. The disadvantage is cost and complexity — Segment’s Team plan starts at $120/month and scales with event volume.
A Medusa + Segment stack typically looks like:
- Segment tracks all storefront events (same GA4 event list above)
- Segment also receives server-side events from Medusa’s order webhooks (order.placed, order.completed, order.refunded)
- Segment routes to GA4 for web analytics, Klaviyo for email segmentation, and BigQuery or Snowflake for the data warehouse
This setup runs $500–$1,500/month in infrastructure depending on event volume and the tools connected. Implementation takes 2–4 weeks and costs $8,000–$20,000 if done properly.
For high-volume stores or businesses where marketing attribution is critical, Segment is worth it. For a $500K GMV store, GA4 with proper server-side events is probably sufficient.
Option 3: Direct Database Reporting
Because Medusa runs on PostgreSQL, you can query your own database directly. This is the most powerful option for transactional data and the cheapest.
Connecting tools like Metabase, Redash, or Retool to your Medusa PostgreSQL database gives you a custom BI interface where you can write SQL queries against your actual order data. Revenue by product, AOV by acquisition channel (if you’re passing UTMs through), cohort LTV, inventory turnover — all of it from your own data.
What this covers well: Any transactional metric, any custom business logic, any aggregation you can write a SQL query for.
What this doesn’t cover: Storefront behavior (clicks, scrolls, add-to-cart) — that’s browser-side data that doesn’t live in the Medusa database. You still need GA4 or Segment for the pre-purchase funnel.
Cost: Metabase Community is free. Metabase Cloud starts at $500/month for a hosted setup. Implementation — schema documentation, building dashboards, writing core queries — takes 1–2 weeks and costs $3,000–$8,000.
How This Compares to Shopify’s Built-In Reporting
Shopify’s analytics dashboard is genuinely good — for a hosted platform. Here’s what you get by plan:
| Feature | Shopify Basic ($39/mo) | Shopify Standard ($105/mo) | Shopify Advanced ($299/mo) | Medusa (self-built) |
|---|---|---|---|---|
| Sales dashboard | Yes | Yes | Yes | Build it |
| Finance reports | Limited | Yes | Yes | Full (your DB) |
| Customer reports | No | Yes | Yes | Full (your DB) |
| Custom reports | No | No | Yes | Full (SQL) |
| Third-party BI | Via export | Via export | Via export | Direct connection |
| Marketing attribution | GA4 add-on | GA4 add-on | GA4 add-on | GA4 or Segment |
| LTV cohorts | No | No | Yes | Build it |
Shopify’s advantage: it’s there on day one with no engineering work. The basic reports — sales by day, top products, sessions — are available immediately.
Medusa’s advantage: your analytics isn’t constrained by what a platform vendor decided to include. Every metric you need, built to your specification, connected to every tool you use. If Shopify’s reporting ceiling is a problem you’ve actually hit, Medusa is a real solution.
For the broader cost comparison between Shopify and Medusa at different revenue levels, see the true cost of Shopify at scale.
What a Proper Medusa Analytics Setup Costs
Here’s the realistic budget for analytics, by business stage:
Early stage ($0–$500K GMV) Setup: GA4 with ecommerce events, basic server-side purchase tracking. Cost: $2,000–$4,000 one-time implementation. Zero ongoing tool cost. Covers: Funnel, conversion rate, traffic attribution, revenue tracking.
Growth stage ($500K–$2M GMV) Setup: GA4 + Metabase or Retool connected to Medusa PostgreSQL. Server-side GA4 events. Klaviyo for email segmentation connected via Segment or direct API. Cost: $8,000–$15,000 implementation. $200–$600/month in tools. Covers: Everything above plus customer cohorts, LTV tracking, custom business metrics.
Scale stage ($2M+ GMV) Setup: Full Segment CDP, data warehouse (BigQuery or Snowflake), custom dashboards, GA4, and dedicated attribution tooling. Cost: $20,000–$50,000 implementation. $1,000–$3,000/month in infrastructure. Covers: Full attribution modeling, multi-channel cohorts, predictive LTV, custom KPIs at every level.
The honest comparison: if you’re at $500K GMV, Shopify Advanced at $299/month gives you decent built-in reporting for $3,600/year with no implementation cost. A proper Medusa analytics setup at that stage costs $8,000–$15,000 upfront. The Medusa setup is more powerful and more flexible — but you’re paying an implementation cost to get there.
If you’re already on Medusa for the right reasons (checkout control, platform fee elimination, ownership), the analytics cost is worth absorbing. If analytics gaps are why you’re considering Medusa, that’s not the right reason.
Setting Up GA4 on a Medusa Store: The Key Points
Implementation mistakes in GA4 for Medusa stores are common. The ones that matter most:
Use server-side purchase events. Client-side purchase events are blocked by ~25–30% of users via ad blockers. Send a server-side event from Medusa’s order.placed webhook to GA4’s Measurement Protocol. This closes the attribution gap and gives you accurate revenue numbers.
Pass order IDs to GA4. Include the Medusa order ID in your GA4 purchase event. This lets you cross-reference GA4 transactions against your database to identify discrepancies.
Track checkout steps with begin_checkout, add_shipping_info, add_payment_info. This is what gives you step-level abandonment data — the most actionable metric in your funnel.
Set up custom dimensions for business-relevant data. Customer type (new vs returning), product category, discount code usage — these aren’t in GA4’s default ecommerce schema. Add them as custom dimensions in the first week, not as an afterthought.
For stores running custom WooCommerce development alongside a Medusa storefront, or migrating between platforms, the analytics migration is its own project — plan for 2–4 weeks of parallel tracking before you cut over.
The Best Starting Point
If you’re launching a new Medusa store, the minimum viable analytics setup is:
- GA4 with full ecommerce event tracking on the storefront
- Server-side purchase events via Medusa webhooks
- Metabase connected to your Medusa PostgreSQL for ad hoc order queries
That costs $3,000–$6,000 to implement and gives you 90% of what Shopify’s built-in analytics provides — with the ability to extend in any direction you need.
Add Segment and a data warehouse when you’re generating enough data that the warehouse cost is justified — typically $2M+ GMV, or whenever you have meaningful multi-channel marketing spend where attribution matters.
See our fixed-price packages for how analytics setup fits into a full Medusa build engagement.
FAQ
Does Medusa have any native analytics features at all? Medusa’s admin panel shows basic order and customer data — you can see individual orders, customer details, and product inventory. There are no charts, no revenue graphs, and no aggregate reporting. It’s a management interface, not an analytics tool.
Can I connect Shopify’s analytics tools to a Medusa store? No — Shopify’s analytics are Shopify-specific. But the tools Shopify integrates with (GA4, Klaviyo, Meta Pixel) all work with Medusa. You’re not locked out of any analytics tool by choosing Medusa — you’re just responsible for implementing the integrations yourself.
How do I track abandoned carts in Medusa?
Cart abandonment in Medusa requires a combination of frontend event tracking (GA4’s begin_checkout event) and backend cart data. Medusa stores carts in the database, so you can query carts that were created but not completed. For email-based cart recovery, you connect Klaviyo or a similar tool via Medusa’s webhook system.
Is Google Analytics 4 accurate enough for serious ecommerce reporting? With server-side purchase events and proper event schema, GA4 is accurate enough for most ecommerce decisions. The persistent accuracy limitation is attribution — GA4’s default attribution models have known gaps in cross-device and cross-session journeys. For high-stakes media spend decisions, a dedicated attribution tool (Triple Whale, Northbeam) is more reliable.
What happens to my analytics data if I migrate off Medusa later? Your GA4 data lives in Google’s infrastructure — it’s not tied to Medusa. Your Medusa database data is in PostgreSQL you own; you export it and take it with you. The one gap is if you’ve built custom BI dashboards against the Medusa schema — those would need to be rebuilt for a new platform’s schema. That’s a legitimate migration cost to plan for.
Do I need a developer to maintain my analytics setup, or can I manage it myself? Initial implementation requires a developer. Day-to-day use of GA4 and Metabase dashboards does not — both are designed for non-technical users once configured. Schema changes (adding a new custom dimension, connecting a new data source) require developer time: budget 4–8 hours per meaningful analytics change.
Planning a Medusa build and want the analytics setup included in scope from day one? See our fixed-price packages — we build the GA4 integration into every Medusa project, not as an afterthought.