Sample report · synthetic instance

Northwind Outdoors

Metabase v0.55.8 · generated 2026-09-16 · 138 active questions · 11 dashboards · 28 tables

C
36 / 100
Foundation needs rework.
Content freshness14/35

58 of 138 questions are stale or unused (42%). Archive questions not accessed in 90+ days. Start with collections nobody owns.

No duplicates7/25

12 duplicate groups found. Consolidate duplicate queries, keep one canonical version per metric.

Documentation & organization4/20

4 organizational issues detected. Add descriptions to top-used questions. Move orphan queries into collections.

Dashboard reliability11/20

2 of 11 dashboards have broken cards, 4 are mostly stale. Fix or remove broken cards from active dashboards. That is what stakeholders see.

Do this first

5
  1. 1

    Fix 4 questions pointing at missing tables

    high

    These questions read tables that no longer exist in the warehouse (legacy_subscriptions, fct_revenue, orders_2022, ...). They fail for everyone who opens them.

    349361378409
  2. 2

    Archive 11 exact duplicate queries

    high

    7 groups of structurally identical queries. Keep one from each group and archive the rest.

    368374406366399+6
  3. 3

    Review 57 stale queries (90+ days unused)

    medium

    Nobody has opened these in 90+ days. Archive the ones that are no longer needed.

    370319310327324+45
  4. 4

    Add descriptions to 83 questions

    medium

    83 of 138 active questions have no description. Start with the most-viewed ones.

    372360356398429+15
  5. 5

    Review 5 groups of questions with the same name

    low

    Same name, different query. They may be old versions, or the same metric measured two ways.

    415311323438312+7

Duplicates

12 groups, 11 to archive

Structurally identical queries first, then questions that only share a name. Keep one, archive or reconcile the rest.

Keep New subscribers by plan (weekly) 328860 views · 2026-08-22
Archive new_subscribers_by_plan_v2 3681 views · 2025-12-24
Archive New subscribers by plan (copy) 37416 views · 2026-04-15
Archive Copy of New subscribers by plan 4068 views · never

These 4 queries are structurally identical. Keep New subscribers by plan (weekly), archive the other 3.

Keep Net revenue by day, last 90 days 3162,380 views · 2026-08-30
Archive Net revenue by day (copy) 36641 views · 2026-07-09
Archive Daily revenue for standup 3993 views · 2026-05-20

These 3 queries are structurally identical. Keep Net revenue by day, last 90 days, archive the other 2.

Keep Top products by units sold, last 90 days 338240 views · 2026-07-20
Archive Top SKUs for merchandising 36910 views · 2025-07-24
Archive Best sellers, last 30 days 38729 views · 2026-06-10

These 3 queries are structurally identical. Keep Top products by units sold, last 90 days, archive the other 2.

Keep Refund rate by product category, trailing 30d 3351,120 views · 2026-08-24
Archive Refund rate by category (2025 version) 37012 views · 2024-11-29

These 2 queries are structurally identical. Keep Refund rate by product category, trailing 30d, archive the other 1.

Keep Support tickets per 1k orders 339410 views · 2026-08-30
Archive Contact rate per 1k orders (Ops) 40155 views · 2026-08-04

These 2 queries are structurally identical. Keep Support tickets per 1k orders, archive the other 1.

Keep Ad spend vs new customers by channel 344190 views · 2026-05-08
Archive CAC by channel (working copy) 36510 views · 2025-10-24

These 2 queries are structurally identical. Keep Ad spend vs new customers by channel, archive the other 1.

Keep Session to order conversion by device 351205 views · 2026-07-27
Archive Device conversion (rebuilt after tracking fix) 41324 views · 2026-05-10

These 2 queries are structurally identical. Keep Session to order conversion by device, archive the other 1.

Same name
Most used Weekly Revenue 415940 views · 2026-09-11
Review Weekly Revenue 3116 views · 2025-08-30
Review Weekly Revenue 32333 views · 2026-04-10

3 questions share the name "Weekly Revenue". Review whether all of them are still needed, or consolidate into one.

Same name
Most used MRR 4381,640 views · 2026-08-25
Review MRR 3121 views · 2025-10-03
Review MRR 43696 views · 2026-07-18

3 questions share the name "MRR". Review whether all of them are still needed, or consolidate into one.

Same name
Most used Orders by channel 435122 views · 2026-09-07
Review Orders by Channel 32245 views · 2026-08-14

2 questions share the name "Orders by channel" but read from different source tables (orders, fct_orders). They may be the same metric from different angles.

Same name
Most used Churn Rate 334430 views · 2026-07-19
Review Churn rate 39132 views · 2026-05-30

2 questions share the name "Churn Rate". Review whether all of them are still needed, or consolidate into one.

Same name
Most used Active Subscribers 388540 views · 2026-09-09
Review Active Subscribers 43925 views · 2026-07-01

2 questions share the name "Active Subscribers". Review whether all of them are still needed, or consolidate into one.

Broken questions

4

These read tables that no longer exist. They fail for everyone who opens them.

QuestionReasonCollection
Subscriptions imported from the old billing system 349References missing table: legacy_subscriptionsData Team / Scratch
Daily net revenue (mart) 361References missing table: fct_revenueBoard
Revenue by month (2022 close) 378References missing table: orders_2022Finance / Archive
Support tickets by customer tier 409References missing table: customer_ltv_martSupport

Stale questions

57

Not opened in 90 days or more. 27 of them have not been opened in 180 days.

QuestionLast usedDaysViewsOwnerCollection
Refund rate by category (2025 version) 3702024-11-2965512Nadia FerraroFinance / Archive
Cohort retention by signup month 3192025-02-085858Priya NatarajanData Team / Scratch
Email capture rate by device 3102025-03-055609Ellis BarbourGrowth / Experiments
CAC payback by cohort month 3272025-03-2753711Ellis BarbourGrowth
Repeat purchase rate within 60 days 3242025-05-0949416Priya NatarajanGrowth
Customers without an order 3802025-05-1449015Marcus OyelaranGrowth
Campaign list with budgets 3092025-05-254783Ellis BarbourGrowth / Experiments
MRR movement (new, expansion, churn) 3332025-07-044387Marcus OyelaranGrowth
Churned MRR by plan, last 6 months 3942025-07-084344Marcus OyelaranGrowth
Top SKUs for merchandising 3692025-07-2441910Nadia FerraroNo collection
Orders per customer distribution 3142025-08-293824Priya NatarajanData Team / Scratch
Weekly Revenue 3112025-08-303816Ellis BarbourGrowth / Experiments

Dashboards

11

What stakeholders actually open, and what greets them when they do.

DashboardStatusQuestionsStaleBrokenViewsLast viewedOwner
Board KPIs 4401healthy8002,1002026-09-15Dana Whitfield
Weekly Revenue 4402healthy6206402026-09-13Rosa Villalobos
Ops Daily 4405healthy6104802026-09-15Henrik Solberg
Subscription Health 4403warning6503102026-06-12Marcus Oyelaran
Marketing Attribution 4404warning5402202026-04-27Ellis Barbour
Support Overview 4406broken5211902026-09-14Jamie Okonkwo
Inventory 4410healthy4001502026-09-12Henrik Solberg
Executive Summary (legacy) 4411broken6411302026-07-01Grant Ishikawa
Cohorts 2023 4407warning440952025-12-02Priya Natarajan
Q3 Planning (old) 4408warning330602025-10-20Nadia Ferraro
Priya scratch 4409unknown000122026-08-13Priya Natarajan

Ownership

11

Who to talk to before anything gets archived.

OwnerQuestionsActiveStale
Marcus Oyelaran261313
Henrik Solberg24195
Rosa Villalobos20155
Priya Natarajan16511
Ellis Barbour13013
Jamie Okonkwo1293
Nadia Ferraro1064
Dana Whitfield990
API key user 41440
Grant Ishikawa303
API key user 57110

Core data model

22 of 28 tables in use

Ordered by how many saved questions read each table. Top 15 shown.

TableQuestionsRowsColumnsReferenced by
public.orders351,284,00018fct_orders, order_items, payments, refunds, shipments, support_tickets
public.subscriptions1896,50011fct_subscription_mrr, int_subscription_periods, subscription_events
public.customers13412,00012dim_customers, events, fct_orders, fct_subscription_mrr, nps_responses, orders, orders_backup_2023, payments, sessions, subscription_events, subscriptions, support_tickets, tmp_cohort_export
public.support_tickets12158,00012none
dbt_marts.fct_orders101,284,00011none
public.order_items93,942,0008none
public.products94,30011dim_products, inventory, order_items
public.sessions912,400,00011events
public.inventory868,4007none
dbt_marts.dim_customers7412,0009none
dbt_marts.fct_revenue_daily714,6007none
public.subscription_events71,118,0008none
public.ad_spend6214,0009none
public.shipments61,190,00010none
dbt_marts.fct_subscription_mrr51,158,0007none
  • public.orders Partition by placed_at (range partitioning on placed_at)
  • public.orders Add composite index on (customer_id, status, channel)
  • public.orders Large table (1.3M rows), ensure proper indexing
  • public.subscriptions Add composite index on (customer_id, plan_code, status)
  • public.customers Partition by created_at (range partitioning on created_at)
  • public.customers Add composite index on (signup_source, marketing_opt_in)
  • public.support_tickets Partition by opened_at (range partitioning on opened_at)
  • public.support_tickets Add composite index on (customer_id, order_id, category)
  • dbt_marts.fct_orders Partition by order_date (range partitioning on order_date)
  • dbt_marts.fct_orders Add composite index on (order_id, customer_id, channel)

Anomalies

4
  • medium
    6 tables have zero query references (customers_old, dim_dates, events_legacy, orders_backup_2023, tmp_cohort_export)
  • low
    27 queries haven't been accessed in 180+ days (Sessions from paid campaigns, Sessions by landing path, Search to purchase rate, Campaign list with budgets, Email capture rate by device)
  • medium
    83 of 138 active questions have no description (60% undocumented)
  • low
    12 questions are not organized in any collection (Orders per day with empty days filled in, Weekly digest numbers, Trials expiring in the next seven days, Top SKUs for merchandising, Sessions by device type)

How to act on this

Preview the cleanup. This changes nothing and sends no request to Metabase.

Carry it out. An undo file is written into .metalens/ before the first change.

Put everything back, in one command.

If the findings are clear but the decisions are not, who owns what and which definition is right, that part is people rather than a script. See how the Sprint works.