This is a live X-Ray of a demo Metabase we maintain — not your instance.

We rescan Metalens Demo periodically, so counts and findings move as the demo instance grows. Your report will have the same shape — grade, factor breakdown, duplicate groups with SQL, broken card list, ownership panel — generated from your live Metabase in under two minutes.

Run X-Ray on my Metabase →

Metalens Demo — X-Ray Report

Scanned on July 15, 2026

C+
41/100

Fair — significant issues to address

A
B+
B
C+
C
D
F
39
Questions
10
Core Tables
7
Duplicate Groups
18
Stale Cards
AI Key Finding

Your Metabase instance is fundamentally sound in data volume and dashboard coverage, but the C+ health score reveals systemic organization problems—specifically 7 duplicate question groups and 4 unaddressed anomalies that will compound maintenance debt. The team should immediately audit and consolidate those duplicate groups this week, then assign ownership of the 4 anomalies to prevent them from becoming silent data quality issues that undermine trust in your executive dashboards.

Score Breakdown

Content freshness12/35

Archive questions not accessed in 90+ days. Start with collections nobody owns.

No duplicates13/25

Consolidate duplicate queries — keep one canonical version per metric.

Documentation & organization4/20

Add descriptions to top-used questions. Organize orphan queries into collections.

Dashboard reliability12/20

Fix or remove broken cards from active dashboards — these are what stakeholders see.

Top Priority Actions

!

Archive 7 exact duplicate queries

7 groups of identical queries found. Keep one from each group, archive the rest.

Removes 7 redundant questions, making your instance cleaner and less confusing for team members.

!

Your core data model is 5 tables

Out of 13 tables, only 5 are referenced by 3+ queries. These are your real business tables.

Focus DWH migration, documentation, and optimization on these tables first. The rest are supporting or unused.

Duplicate Groups

7 groups of structurally identical queries.

AI insight

Having these duplicates creates confusion about which version is authoritative, wastes time as users query inconsistent versions, and makes maintenance harder when metrics need updating across multiple copies. The team should immediately audit which copies are actually being used, archive or delete the unused ones, and establish a naming convention with clear version control to prevent future duplicates.

Similar to: AOV check (temp)
These 2 queries are structurally identical. Consider keeping "AOV check (temp)" and archiving the rest.
  • AOV check (temp)
    /* temp check, delete after Q3 review */ SELECT ROUND(AVG(total_amount), 2) AS aov FROM orders WHERE status NOT IN ('cancelled','returned')
  • Average Order Value
    SELECT round(avg(total_amount), 2) AS aov FROM orders WHERE status NOT IN ('cancelled', 'returned')
Similar to: copy of copy of sessions
These 2 queries are structurally identical. Consider keeping "copy of copy of sessions" and archiving the rest.
  • copy of copy of sessions
    -- TODO figure out which sessions card is the right one select source, count(*) as sessions from web_sessions group by 1 order by 2 desc
  • Sessions by Source
    SELECT source, count(*) AS sessions FROM web_sessions GROUP BY 1 ORDER BY 2 DESC
Similar to: monthly rev FINAL v2
These 2 queries are structurally identical. Consider keeping "monthly rev FINAL v2" and archiving the rest.
  • monthly rev FINAL v2
    -- copy of the revenue query, do not delete!! SELECT date_trunc('month', created_at)::date AS month, sum(total_amount) AS revenue FROM orders WHERE status NOT IN ('cancelled', 'returned') GROUP BY 1 O
  • Monthly Revenue
    SELECT date_trunc('month', created_at)::date AS month, sum(total_amount) AS revenue FROM orders WHERE status NOT IN ('cancelled', 'returned') GROUP BY 1 ORDER BY 1
Similar to: New Customers per Week
These 2 queries are structurally identical. Consider keeping "New Customers per Week" and archiving the rest.
  • New Customers per Week
    SELECT date_trunc('week', signup_date)::date AS week, count(*) AS new_customers FROM customers GROUP BY 1 ORDER BY 1
  • new customers weekly (old)
    -- old version, the week boundary is wrong?? SELECT date_trunc('week', signup_date)::date AS week, count(*) AS new_customers FROM customers GROUP BY 1 ORDER BY 1
Similar to: Orders by Status
These 2 queries are structurally identical. Consider keeping "Orders by Status" and archiving the rest.
  • Orders by Status
    SELECT status, count(*) AS orders FROM orders GROUP BY 1 ORDER BY 2 DESC
  • Orders by Status v2
    -- v2, checking numbers for the ops sync select status, count(*) as orders from orders group by 1 order by 2 desc
Similar to: Refund Rate by Month
These 2 queries are structurally identical. Consider keeping "Refund Rate by Month" and archiving the rest.
  • Refund Rate by Month
    SELECT date_trunc('month', o.created_at)::date AS month, round(100.0 * count(r.refund_id) / count(*), 2) AS refund_pct FROM orders o LEFT JOIN refunds r ON r.order_id = o.order_id GROUP BY 1 OR
  • refund rate FINAL (Tom)
    /* keep until finance signs off the new one */ select date_trunc('month', o.created_at)::date as month, round(100.0 * count(r.refund_id) / count(*), 2) as refund_pct from orders o left join refunds
Similar to: Top 10 Products by Revenue
These 2 queries are structurally identical. Consider keeping "Top 10 Products by Revenue" and archiving the rest.
  • Top 10 Products by Revenue
    SELECT p.name, sum(oi.quantity * oi.unit_price) AS revenue FROM order_items oi JOIN products p ON p.product_id = oi.product_id GROUP BY 1 ORDER BY 2 DESC LIMIT 10
  • top products (Marta)
    -- marta's copy for the weekly deck select p.name, sum(oi.quantity * oi.unit_price) as revenue from order_items oi join products p on p.product_id = oi.product_id group by 1 order by 2 desc limit 15

Broken & Stale Cards

First 18 of 18 flagged for cleanup.

AI insight

The cleanup strategy should involve reviewing the 20 inactive questions to determine which ones are still relevant business assets versus outdated analyses, then either archive or delete those that are no longer needed. A Metabase administrator or data team lead should own this effort since they have the technical access and organizational knowledge to make informed decisions about which questions support current business processes.

AOV check (temp)
Archive (old stuff)
Not accessed in 347 days
Average Rating by Category
Sales
Not accessed in 111 days
Avg Fulfillment Time (Days)
Sales
Not accessed in 133 days
CAC by Channel
Marketing
Not accessed in 112 days
Conversion Rate by Source
Marketing
Not accessed in 131 days
copy of copy of sessions
Archive (old stuff)
Not accessed in 325 days
Failed Payments (Last 30 Days)
Finance
Not accessed in 116 days
Legacy Orders Import Check
Archive (old stuff)
References missing table: legacy_orders
LTV by Signup Cohort (Quarterly)
Finance
Not accessed in 121 days
Marketing Spend by Channel (Monthly)
Marketing
Not accessed in 123 days
monthly rev FINAL v2
Archive (old stuff)
Not accessed in 403 days
new customers weekly (old)
Archive (old stuff)
Not accessed in 271 days
Payment Methods Split
Finance
Not accessed in 99 days
Q3 2024 Planning Numbers
Archive (old stuff)
Not accessed in 234 days
Refund Rate by Month
Finance
Not accessed in 119 days
Revenue by Country
Sales
Not accessed in 131 days
Sessions by Source
Marketing
Not accessed in 134 days
Warehouse Stock Levels
Archive (old stuff)
References missing tables: warehouse_stock, warehouses

Most-referenced Tables

Tables ranked by how many questions and dashboards depend on them.

AI insight

This is an e-commerce company selling products across categories to customers. The data model is highly normalized with a clear transactional structure centered around the orders table, which serves as a hub connecting customers, products, and fulfillment data (payments, refunds, reviews). For a data warehouse migration, prioritize orders, order_items, customers, and products as your core fact and dimension tables, followed by web_sessions for customer behavior analysis and payments for financial reporting.

public.orders
Acme Commerce (Postgres)
19
public.customers
Acme Commerce (Postgres)
7
public.products
Acme Commerce (Postgres)
5
public.web_sessions
Acme Commerce (Postgres)
4
public.order_items
Acme Commerce (Postgres)
3
public.categories
Acme Commerce (Postgres)
2
public.marketing_spend
Acme Commerce (Postgres)
2
public.payments
Acme Commerce (Postgres)
2
public.refunds
Acme Commerce (Postgres)
2
public.reviews
Acme Commerce (Postgres)
2
public.customers_old_migrated
Acme Commerce (Postgres)
0
public.etl_sync_log
Acme Commerce (Postgres)
0

Dashboards

Health of top-viewed dashboards (broken cards, stale cards, ownership).

AI insight

The Executive Overview dominates usage with 493 views and healthy status, making it your primary business intelligence tool, while Finance Monthly and Marketing Performance show moderate engagement at 219 and 162 views respectively but both carry warning flags that should be investigated. Red flags include three dashboards with warning status (Finance Monthly, Marketing Performance, and Sales Deep Dive) suggesting potential data quality or maintenance issues, plus the Old KPI Dashboard from 2024 with only 15 views indicates possible duplication or obsolescence that warrants consolidation into active dashboards. The card distribution is reasonable across all dashboards, but the warning statuses on 4 of 5 dashboards suggest systematic issues worth addressing before relying on these for critical decisions.

Executive Overview
6 cards · 0 broken · 0 stale · by Metalens Demo Admin
493 views
Finance Monthly
5 cards · 0 broken · 4 stale · by Tom Becker
219 views
Marketing Performance
5 cards · 0 broken · 4 stale · by Marta Kowalska
162 views
Sales Deep Dive
4 cards · 0 broken · 3 stale · by Priya Sharma
70 views
Old KPI Dashboard (2024)
3 cards · 0 broken · 3 stale · by Tom Becker
15 views

Ownership

Who owns what — and which owners have questions no one uses anymore.

AI insight

Metalens Demo Admin is the key analytics person with the highest activity rate at 75% (6 of 8 questions active), indicating the most engaged and well-maintained content library. A new CDO should talk to Metalens Demo Admin first to understand best practices, then connect with Marta Kowalska who has the second-highest activity rate at 55% and the most total active questions (6). Tom Becker appears to be a former employee or inactive contributor with only 42% activity and 7 stale questions that should be archived or refreshed to clean up the instance.

Tom Becker
12 cards · 5 active · 7 stale
Marta Kowalska
11 cards · 6 active · 5 stale
Metalens Demo Admin
8 cards · 6 active · 2 stale
Priya Sharma
8 cards · 4 active · 4 stale

This is what your X-Ray will look like

Connect Metabase, get a real audit in about 2 minutes. Free X-Ray scan, no card needed. 14-day money-back if you upgrade.

Run X-Ray on my Metabase