Metrics Documentation

๐Ÿ“– Metrics Documentation

Purpose: This page explains how all metrics are calculated in the BI Analytics Dashboard, providing transparency and enabling informed decision-making.

Data Coverage: January 1, 2026 - Present | Update Frequency: Daily


๐Ÿ“Š Understanding the Metrics

Each metric includes:

  • What it measures: Clear definition of the metric
  • Why it matters: Business value and use cases
  • Calculation: SQL logic and business rules
  • Time Period: How the metric is filtered

๐Ÿ‘ฅ User Type Exclusions

Important: Most user engagement metrics exclude admin and system users to provide accurate end-user adoption metrics.

Excluded User Types:

  • Type 2: Admin users (platform administrators and report developers)
  • Type 6: System users (automated processes and service accounts)

Metrics that exclude admin/system users:

  • Active Report Users (MARU)
  • Report Views (MRV)
  • Unique Users (on Key Metrics page)
  • Avg Views per Active User
  • Report Exports
  • Users Who Export
  • All user-related metrics in Reports Insights page
  • All user activity in the Users page

Metrics that include ALL users:

  • Data Lineage metrics (tracking dependencies requires visibility into all activity)
  • Report catalog counts (total reports, datasets, etc.)

Rationale: End-user engagement metrics should reflect actual business user adoption, not platform maintenance or testing activities.


๐Ÿ“Š Page 1: Key Metrics

Purpose: Central dashboard showing all priority metrics for quick executive overview.

Time Comparison: All metrics use a month-to-date same-day comparison โ€” the first N days of the current month vs. the first N days of the previous month (where N = today's day number). This ensures a fair like-for-like comparison regardless of when the dashboard is viewed.


Priority Metrics

These are the most critical KPIs for measuring platform success:

1. Active Report Users (MARU)

What it measures: Number of distinct users who interacted with reports through viewing, printing, exporting, downloading, analyzing in Excel, or receiving email subscriptions.

Why it matters: THE most important metric for tracking actual report consumption and user engagement. Measures the reach of Power BI content across all interaction types.

Calculation:

-- Current month-to-date (day 1 through today)
COUNT(DISTINCT CASE WHEN activity IN ('ViewReport', 'PrintReport', 'ExportReport', 
                                       'DownloadReport', 'AnalyzeInExcel', 'RunEmailSubscription') 
                    THEN user_email END)
WHERE activity_date >= DATE_TRUNC('month', CURRENT_DATE)
  AND activity_date <= CURRENT_DATE
  AND user_type NOT IN ('2', '6')

-- Previous month same period (day 1 through same day number)
COUNT(DISTINCT CASE WHEN activity IN ('ViewReport', 'PrintReport', 'ExportReport', 
                                       'DownloadReport', 'AnalyzeInExcel', 'RunEmailSubscription') 
                    THEN user_email END)
WHERE activity_date >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1' MONTH)
  AND activity_date < DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1' MONTH) + EXTRACT(DAY FROM CURRENT_DATE) * INTERVAL '1' DAY
  AND user_type NOT IN ('2', '6')

Activities Included:

  • ViewReport: Users viewing reports
  • PrintReport: Users printing reports
  • ExportReport: Users exporting reports (to Excel, PDF, PowerPoint, etc.)
  • DownloadReport: Users downloading reports
  • AnalyzeInExcel: Users analyzing report data in Excel
  • RunEmailSubscription: System sends scheduled email subscription

Business Logic:

  • Focuses only on users consuming reports
  • Counts each user once, regardless of how many reports accessed or activity types performed
  • Key metric for measuring actual report consumption across all interaction methods
  • Excludes admin users (type 2) and system users (type 6)
  • MARU โ‰ค Unique Users (MARU is a subset)

Comparison:

  • Difference: Current month-to-date - Previous month same period
  • % Change: Percentage increase/decrease from same period last month
  • Positive value: Current period has more active users (growth)

2. Report Views (MRV)

What it measures: Total number of times users viewed reports.

Why it matters: Primary metric for measuring overall platform usage and report consumption volume.

Calculation:

-- Current month-to-date
COUNT(*)
WHERE activity = 'ViewReport'
  AND activity_date >= DATE_TRUNC('month', CURRENT_DATE)
  AND activity_date <= CURRENT_DATE
  AND user_type NOT IN ('2', '6')

-- Previous month same period
COUNT(*)
WHERE activity = 'ViewReport'
  AND activity_date >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1' MONTH)
  AND activity_date < DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1' MONTH) + EXTRACT(DAY FROM CURRENT_DATE) * INTERVAL '1' DAY
  AND user_type NOT IN ('2', '6')

Business Logic:

  • Counts every report view event
  • Includes repeat views by the same user
  • Each view is a separate interaction
  • Event-level metric (not user-level)
  • Excludes admin users (type 2) and system users (type 6)

Comparison:

  • Difference: Current month-to-date - Previous month same period
  • % Change: Percentage increase/decrease from same period last month
  • Positive value: Current period has more report views (growth)

Supporting Metrics

Additional performance indicators for deeper analysis:

3. Avg Views per Active User

What it measures: Average number of report views per active report user.

Why it matters: Indicates user engagement intensity. Higher values suggest users are more engaged and viewing multiple reports or returning frequently.

Calculation:

-- Month-to-date: MRV รท MARU (both using same-day comparison)
ROUND(CAST(COUNT(CASE WHEN activity = 'ViewReport' THEN 1 END) AS DOUBLE) / 
      NULLIF(COUNT(DISTINCT CASE WHEN activity IN ('ViewReport', 'PrintReport', 'ExportReport', 
                                                     'DownloadReport', 'AnalyzeInExcel', 'RunEmailSubscription') 
                                 THEN user_email END), 0), 1)
WHERE activity_date >= DATE_TRUNC('month', CURRENT_DATE)
  AND activity_date <= CURRENT_DATE
  AND user_type NOT IN ('2', '6')

Business Logic:

  • Measures engagement depth (not just breadth)
  • Higher values indicate power users
  • Useful for identifying engagement patterns
  • Calculated from MARU and MRV (both exclude admin/system users)

4. Unique Users

What it measures: All distinct users who had any activity recorded in the platform.

Why it matters: Shows total platform reach including all activities (not just report consumption). Broader than MARU.

Calculation:

-- Current month-to-date
COUNT(DISTINCT user_email)
WHERE activity_date >= DATE_TRUNC('month', CURRENT_DATE)
  AND activity_date <= CURRENT_DATE
  AND user_email IS NOT NULL
  AND user_type NOT IN ('2', '6')

-- Previous month same period
COUNT(DISTINCT user_email)
WHERE activity_date >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1' MONTH)
  AND activity_date < DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1' MONTH) + EXTRACT(DAY FROM CURRENT_DATE) * INTERVAL '1' DAY
  AND user_email IS NOT NULL
  AND user_type NOT IN ('2', '6')

Business Logic:

  • Includes all activities (consumption, development, admin, automated tasks, etc.)
  • Excludes admin users (type 2) and system users (type 6)
  • MARU โ‰ค Unique Users (always true)

5. Report Exports

What it measures: Total number of report export actions.

Why it matters: Tracks how often users export data/visuals for external analysis, presentations, or offline work.

Calculation:

-- Current month-to-date
COUNT(CASE WHEN activity = 'ExportReport' THEN 1 END)
WHERE activity_date >= DATE_TRUNC('month', CURRENT_DATE)
  AND activity_date <= CURRENT_DATE
  AND user_type NOT IN ('2', '6')

-- Previous month same period
COUNT(CASE WHEN activity = 'ExportReport' THEN 1 END)
WHERE activity_date >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1' MONTH)
  AND activity_date < DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1' MONTH) + EXTRACT(DAY FROM CURRENT_DATE) * INTERVAL '1' DAY
  AND user_type NOT IN ('2', '6')

Business Logic:

  • Counts every export event
  • Includes exports to Excel, PDF, PowerPoint, and other formats
  • Each export is counted separately (same user can export multiple times)
  • Excludes admin users (type 2) and system users (type 6)

6. Users Who Export

What it measures: Number of distinct users who exported at least one report.

Why it matters: Shows what portion of the user base downloads data for external analysis. Helps identify power users who need data integration.

Calculation:

-- Current month-to-date
COUNT(DISTINCT CASE WHEN activity = 'ExportReport' THEN user_email END)
WHERE activity_date >= DATE_TRUNC('month', CURRENT_DATE)
  AND activity_date <= CURRENT_DATE
  AND user_type NOT IN ('2', '6')

-- Previous month same period
COUNT(DISTINCT CASE WHEN activity = 'ExportReport' THEN user_email END)
WHERE activity_date >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1' MONTH)
  AND activity_date < DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1' MONTH) + EXTRACT(DAY FROM CURRENT_DATE) * INTERVAL '1' DAY
  AND user_type NOT IN ('2', '6')

Business Logic:

  • Counts each user once regardless of export count
  • Subset of MARU (Users Who Export โ‰ค MARU)
  • Excludes admin users (type 2) and system users (type 6)
  • Excludes admin users (type 2) and system users (type 6)

7. Total Reports (Catalog)

What it measures: All distinct reports in the Power BI platform.

Why it matters: Provides context for report usage rates. Large catalogs with low usage may indicate content consolidation opportunities.

Calculation:

SELECT COUNT(DISTINCT report_key)
FROM powerbi_analytics.fact_activity_insights

Business Logic:

  • Static snapshot (not month-over-month comparison)
  • Includes all reports regardless of activity status
  • Used to calculate Report Usage Rate

8. Accessed Reports (User Engagement)

What it measures: Reports actively used by users (viewed, printed, exported, downloaded, or analyzed in Excel).

Why it matters: Shows how much of the report catalog is actually being consumed. Low percentages suggest unused/stale content.

Calculation:

SELECT COUNT(DISTINCT CASE WHEN activity IN ('ViewReport', 'PrintReport', 'ExportReport', 
                                               'DownloadReport', 'AnalyzeInExcel', 'RunEmailSubscription') 
                            THEN report_key END)
FROM powerbi_analytics.fact_activity_insights
WHERE DATE_TRUNC('month', activity_date) = DATE_TRUNC('month', CURRENT_DATE)
    AND user_type NOT IN ('2', '6')  -- Exclude admin and system users

Business Logic:

  • Focuses on user-initiated consumption activities
  • Excludes development and automated activities
  • Excludes admin users (type 2) and system users (type 6)
  • Used to calculate Report Usage Rate

9. Report Usage Rate

What it measures: Percentage of Power BI reports that are actively used by users.

Why it matters: Key indicator of content health. Low rates suggest opportunities for report consolidation, archiving unused content, and improving discoverability.

Calculation:

-- Formula
ROUND((Accessed Reports รท Total Reports) ร— 100, 1)

-- Full SQL
ROUND(COUNT(DISTINCT CASE WHEN activity IN ('ViewReport', 'PrintReport', 'ExportReport', 
                                              'DownloadReport', 'AnalyzeInExcel', 'RunEmailSubscription') 
                           THEN report_key END) * 100.0 / 
      NULLIF(COUNT(DISTINCT report_key), 0), 1)

Business Logic:

  • Expressed as percentage
  • Static snapshot (not compared month-over-month)
  • 100% = all reports are actively used
  • Low percentages (below 50%) suggest content governance issues
  • Based on Accessed Reports metric (which excludes admin/system users)

๐Ÿ‘ฅ Page 2: User Insights

Purpose: Analyze user engagement patterns, identify power users, and track adoption trends.

Time Period: Customizable date range filter

Metrics Available

Top Users Table

What it measures: Shows the top 50 users by activity volume with detailed breakdowns.

Metrics per User:

  1. Total Activities: All recorded actions by the user

    COUNT(*)
    WHERE user_email = [specific user]
    GROUP BY user_email, user_name
  2. User Consumption: Report viewing/consumption activities

    COUNT(CASE WHEN activity IN ('ViewReport', 'PrintReport', 'ExportReport', 
                                  'DownloadReport', 'AnalyzeInExcel', 'RunEmailSubscription') 
               THEN 1 END)
  3. Report Development: Report creation/editing activities

    COUNT(CASE WHEN activity IN ('EditReport', 'CreateReport', 'DeleteReport', 'RenameReport') 
               THEN 1 END)
  4. Admin/Artifacts: Administrative and artifact management activities

    COUNT(CASE WHEN activity IN ('ExportArtifact', 'ReadArtifact', 'CreateArtifact', 
                                  'DeleteArtifact', 'Import') 
               THEN 1 END)
  5. Copilot AI: AI-powered assistance requests

    COUNT(CASE WHEN activity = 'RequestCopilot' THEN 1 END)
  6. Automated/Infrastructure: System and gateway activities

    COUNT(CASE WHEN activity IN ('GenerateDataflowSasToken', 'RefreshDataset', 
                                  'GetGatewayClusterDatasourceStatus', 'GetAllGatewayClusterDatasources', 
                                  'GetGatewayClusters', 'GetGatewayRegions') 
               THEN 1 END)
  7. Other Activities: All other activity types not classified above

  8. Last Activity Date: Most recent activity timestamp

    MAX(activity_date)

Why these metrics matter:

  • Identifies power users for feedback and testing
  • Reveals user behavior patterns (consumers vs. developers)
  • Helps target training and support efforts
  • Tracks user adoption over time

User Filtering:

  • Excludes admin users (type 2) and system users (type 6)
  • Excludes service accounts (emails containing statista.onmicrosoft.com)

Active Users Trend Analysis

Shows distinct active report users over time at different granularities:

Daily Active Users:

COUNT(DISTINCT CASE WHEN activity IN ('ViewReport', 'PrintReport', 'ExportReport', 
                                       'DownloadReport', 'AnalyzeInExcel', 'RunEmailSubscription') 
                    THEN user_email END)
GROUP BY activity_date

Weekly Active Users:

COUNT(DISTINCT CASE WHEN activity IN ('ViewReport', 'PrintReport', 'ExportReport', 
                                       'DownloadReport', 'AnalyzeInExcel', 'RunEmailSubscription') 
                    THEN user_email END)
GROUP BY DATE_TRUNC('week', activity_date)

Monthly Active Users (MAU): Same as MARU, grouped by month

Quarterly Active Users (QAU): Same logic, grouped by quarter

Why it matters: Tracks adoption trends, seasonality, and growth patterns over time.

User Filtering:

  • All trend metrics exclude admin users (type 2) and system users (type 6)

๐Ÿ“ˆ Page 3: Reports Insights

Purpose: Track report performance and identify viewing trends over time.

Time Period: Customizable date range filter

Shows total report view counts over time at different granularities:

Daily Report Views

COUNT(*) as views
WHERE activity = 'ViewReport'
GROUP BY activity_date
ORDER BY activity_date

Weekly Report Views

COUNT(*) as views
WHERE activity = 'ViewReport'
GROUP BY DATE_TRUNC('week', activity_date)
ORDER BY period_date

Monthly Report Views

COUNT(*) as views
WHERE activity = 'ViewReport'
GROUP BY DATE_TRUNC('month', activity_date)
ORDER BY period_date

Quarterly Report Views

COUNT(*) as views
WHERE activity = 'ViewReport'
GROUP BY DATE_TRUNC('quarter', activity_date)
ORDER BY period_date

Yearly Report Views

COUNT(*) as views
WHERE activity = 'ViewReport'
GROUP BY EXTRACT(YEAR FROM activity_date)
ORDER BY year

Additional Metrics for Each Period:

  • Delta: Change from previous period
  • % Change: Percentage change from previous period

Why these metrics matter:

  • Identifies usage trends and patterns
  • Detects seasonality in report consumption
  • Helps capacity planning
  • Shows impact of new report releases or training initiatives

User Filtering:

  • All view counts exclude admin users (type 2) and system users (type 6)

๐Ÿ“‹ Page 4: Workspace Usage Details

Purpose: Detailed report-level analytics showing which reports are used, by whom, and how often.

Time Period: Customizable date range filter

Report-Level Metrics

What it measures: Comprehensive activity metrics for every report in the platform.

User Filtering:

  • All metrics exclude admin users (type 2) and system users (type 6)

Core Metrics per Report

  1. Workspace Name: The Power BI workspace containing the report

  2. Total Reports: Total reports in that workspace

    COUNT(DISTINCT report_name)
    GROUP BY workspace_name
  3. Report Name: Name of the specific report

  4. Status: Activity status indicator

    CASE 
        WHEN active_users > 0 THEN 'โœ… Active'
        ELSE 'โš ๏ธ Inactive'
    END
  5. Active Users (MARU per report): Distinct users who consumed this specific report

    COUNT(DISTINCT CASE WHEN activity IN ('ViewReport', 'PrintReport', 'ExportReport', 
                                           'DownloadReport', 'AnalyzeInExcel', 'RunEmailSubscription') 
                        THEN user_email END)
    WHERE report_name = [specific report]
  6. Avg Unique Users per Day: Daily average of unique users

    ROUND(COUNT(DISTINCT user_email) / COUNT(DISTINCT activity_date), 2)
  7. Report Views (MRV per report): Total view count for this report

    COUNT(CASE WHEN activity = 'ViewReport' THEN 1 END)
    WHERE report_name = [specific report]
  8. Total Activities: All activities for this report

    COUNT(*)
    WHERE report_name = [specific report]
  9. Report Exports: Export count for this report

    COUNT(CASE WHEN activity = 'ExportReport' THEN 1 END)
  10. Users Who Export: Distinct users who exported this report

    COUNT(DISTINCT CASE WHEN activity = 'ExportReport' THEN user_email END)

Activity Classification Breakdown

  1. User Consumption: Consumption activities for this report

    COUNT(CASE WHEN activity IN ('ViewReport', 'PrintReport', 'ExportReport', 
                                  'DownloadReport', 'AnalyzeInExcel', 'RunEmailSubscription') 
               THEN 1 END)
  2. Report Development: Development activities for this report

    COUNT(CASE WHEN activity IN ('EditReport', 'CreateReport', 'DeleteReport', 'RenameReport') 
               THEN 1 END)
  3. Admin/Artifacts: Admin activities for this report

  4. Other Activities: Other activity types

Time & Engagement Metrics

  1. Days with Activity: Number of distinct days with activity

    COUNT(DISTINCT activity_date)
  2. First Activity Date: First recorded activity

    MIN(activity_date)
  3. Last Activity Date: Most recent activity

    MAX(activity_date)
  4. Days Since Last Activity: Days elapsed since last activity

    DATE_DIFF('day', MAX(activity_date), CURRENT_DATE)
  5. Activities per User: Average activities per user

    ROUND(COUNT(*) / NULLIF(COUNT(DISTINCT user_email), 0), 2)
  6. % User Consumption: Percentage of activities that are consumption-related

    ROUND(COUNT(CASE WHEN activity IN [consumption activities] THEN 1 END) / 
          NULLIF(COUNT(*), 0), 3)
  7. Export Rate: Percentage of active users who export

    ROUND(COUNT(DISTINCT CASE WHEN activity = 'ExportReport' THEN user_email END) / 
          NULLIF(COUNT(DISTINCT CASE WHEN activity IN [consumption activities] 
                                    THEN user_email END), 0), 3)
  8. Activity Span (Days): Days between first and last activity

    DATE_DIFF('day', MIN(activity_date), MAX(activity_date))
  9. Report Users: List of user names who accessed this report

    STRING_AGG(DISTINCT user_name, ', ' ORDER BY user_name)

Why these metrics matter:

  • Identifies unused/stale reports for archival
  • Shows which reports drive the most engagement
  • Helps prioritize support and optimization efforts
  • Reveals report adoption patterns by workspace
  • Enables data-driven decisions about report consolidation

๐Ÿ”— Page 5: Data Lineage

Purpose: Track dependencies between Power BI reports and Redshift source tables to enable impact analysis and data governance.

Key Use Cases:

  • Impact analysis before modifying Redshift tables
  • Understanding data flow from source to consumption
  • Identifying heavily-used tables for optimization
  • Compliance and data governance tracking

Overview

The Data Lineage page provides visibility into the relationships between:

  • Redshift source tables โ†’ Power BI datasets โ†’ Power BI reports โ†’ End users

This enables data engineers and analysts to understand the downstream impact of data changes and track usage patterns across the data pipeline.


Redshift Table Metrics

What it measures: Comprehensive usage and activity metrics for each Redshift table, showing which reports depend on it and how actively those reports are used.

Core Metrics per Redshift Table

  1. Full Table Name: Fully qualified Redshift table name (schema.table)

  2. Current Reports: Number of active reports currently using this table

    COUNT(DISTINCT report_id)
    WHERE full_redshift_table_name = [specific table]
  3. PBI Tables: Number of Power BI tables that reference this Redshift table

    COUNT(DISTINCT powerbi_table_id)
    WHERE full_redshift_table_name = [specific table]
  4. Workspaces: Number of distinct workspaces with reports using this table

    COUNT(DISTINCT workspace_name)
    WHERE full_redshift_table_name = [specific table]
  5. Datasets: Number of distinct Power BI datasets that include this table

    COUNT(DISTINCT dataset_name)
    WHERE full_redshift_table_name = [specific table]

User Engagement Metrics (for reports using this table)

Note: All engagement metrics exclude admin users (type 2) and system users (type 6).

  1. Unique Users: Total distinct users who interacted with reports that use this table

    COUNT(DISTINCT user_email)
    WHERE report_id IN (reports using this table)
  2. Total Views: Sum of all view events on reports that use this table

    SUM(view_report_count)
    WHERE report_id IN (reports using this table)
  3. Total Exports: Sum of all export events on reports that use this table

    SUM(export_report_count)
    WHERE report_id IN (reports using this table)

Activity Tracking

  1. Active Days: Number of distinct days with activity on reports using this table

    COUNT(DISTINCT activity_date)
    WHERE report_id IN (reports using this table)
  2. Last Activity Date: Most recent activity on any report using this table

    MAX(activity_date)
    WHERE report_id IN (reports using this table)
  3. Is Active: Boolean flag indicating recent activity

    CASE 
        WHEN last_activity_date >= CURRENT_DATE - INTERVAL '30' DAY THEN TRUE
        ELSE FALSE
    END

Relationships (in expandable details)

  1. Connected Reports: List of all report names using this table

    STRING_AGG(DISTINCT report_name, ', ')
  2. Workspace List: List of all workspaces with reports using this table

    STRING_AGG(DISTINCT workspace_name, ', ')
  3. Dataset List: List of all datasets that include this table

    STRING_AGG(DISTINCT dataset_name, ', ')

Why these metrics matter:

  • Impact Analysis: Before dropping or modifying a Redshift table, see which reports and users will be affected
  • Optimization Priorities: Heavily-used tables (high user count, high views) are candidates for performance optimization
  • Data Governance: Track which source tables are consumed and by whom for compliance
  • Unused Table Detection: Tables with zero reports or no activity can be candidates for deprecation

Report Metrics with Data Dependencies

What it measures: For each report, shows all Redshift table dependencies plus user activity metrics.

Data Source Dependencies per Report

  1. Report Name: Name of the Power BI report

  2. Redshift Tables: Count of distinct Redshift tables this report depends on

    COUNT(DISTINCT full_redshift_table_name)
    WHERE report_id = [specific report]
  3. Other Sources: Count of non-Redshift data sources (Excel, SharePoint, APIs, etc.)

    COUNT(DISTINCT data_source)
    WHERE report_id = [specific report]
      AND data_source_type != 'redshift'
  4. Total PBI Tables: Total Power BI tables used in this report

    COUNT(DISTINCT powerbi_table_id)
    WHERE report_id = [specific report]

User Activity Metrics (same as Workspace Usage Details page)

  1. Unique Users: Distinct users who accessed this report
  2. Total Views: Total report view count
  3. Total Exports: Export count (ExportReport + DownloadReport)

Activity & Ownership

  1. Active Days: Distinct days with activity
  2. Last Activity Date: Most recent activity timestamp
  3. Report Owner: User who created the report
  4. Created: Report creation date

Status Flags

  1. Has Redshift Dependency: Boolean indicating if report uses Redshift

    CASE 
        WHEN redshift_table_count > 0 THEN TRUE
        ELSE FALSE
    END
  2. Has Activity: Boolean indicating if report has any recorded activity

    CASE 
        WHEN unique_user_count > 0 THEN TRUE
        ELSE FALSE
    END

Relationship Details

  1. Redshift Table List: List of all Redshift tables used by this report

    STRING_AGG(DISTINCT full_redshift_table_name, ', ')
  2. Dataset List: List of all datasets used by this report

    STRING_AGG(DISTINCT dataset_name, ', ')

Why these metrics matter:

  • Change Impact: When updating a Redshift table, see exactly which reports will be affected
  • Dependency Complexity: Reports with many Redshift dependencies may be more fragile
  • Mixed Source Reports: Reports with both Redshift and other sources may have special data integration needs
  • Report Health: Inactive reports with Redshift dependencies may be candidates for deprecation

Additional Views

Redshift Tables to Reports Mapping

What it shows: Simple table showing each table-report relationship (one row per relationship).

Use case: Quick lookup to find all reports using a specific table.

SELECT DISTINCT
    full_redshift_table_name,
    report_name
FROM fact_lineage_insights
WHERE report_id IS NOT NULL
  AND full_redshift_table_name IS NOT NULL

Reports Without Redshift Connections

What it shows: Reports that don't use any Redshift tables as data sources.

Why it matters:

  • These reports use alternative sources (Excel, SharePoint, APIs, direct connections)
  • May need different governance and support approaches
  • Less critical when making Redshift schema changes
SELECT DISTINCT report_name, workspace_name
FROM fact_lineage_insights
WHERE report_id IS NOT NULL
  AND report_id NOT IN (
      SELECT DISTINCT report_id
      WHERE full_redshift_table_name IS NOT NULL
  )

Data Lineage Key Concepts

Upstream Impact Analysis:

  • Identify which reports will break if you modify/drop a Redshift table
  • See the full user base affected by a data change
  • Plan migration strategies for deprecated tables

Downstream Usage Tracking:

  • From any Redshift table, trace through PBI tables โ†’ datasets โ†’ reports โ†’ users
  • Understand the complete data consumption chain
  • Measure the business value of source data

Optimization Priorities:

  • High unique_user_count + high view_count = optimize the underlying Redshift table
  • Many reports using one table = consider denormalization or performance tuning
  • Zero or low activity = consider deprecating or archiving

Governance & Compliance:

  • Track which source tables contain sensitive data and where they're consumed
  • Maintain audit trails of data lineage
  • Support data access reviews and compliance reporting

๐Ÿ†˜ Questions & Support

For questions about metric calculations or to request new metrics, please contact Data Platform Team


Document Version: 3.0 | Last Updated: April 14, 2026

This documentation is maintained by the Data Platform Team and updated whenever metric logic changes.