> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dqlabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> What the Power BI connector does, which asset types Prizm catalogs and monitors, and how lineage flows from source systems through semantic models to reports and dashboards.

<script type="application/ld+json">
  {`{
            "@context": "https://schema.org",
            "@type": "TechArticle",
            "headline": "Power BI Overview",
            "description": "What the Power BI connector does, which asset types Prizm catalogs and monitors, and how lineage flows from source systems through semantic models to reports and dashboards.",
            "url": "https://docs.dqlabs.ai/sources/powerbi/overview",
            "publisher": {
              "@type": "Organization",
              "name": "DQLabs Inc",
              "logo": "https://media.brand.dev/332adc35-5bc4-4d2b-bf78-256aa4a5e414.svg"
            }
            }`}
</script>

The Power BI integration enables Prizm to connect to the Power BI Service (including Microsoft Fabric workspaces) as a downstream consumer of your data. Like Tableau, Power BI is a **BI/pipeline integration** — Prizm ingests semantic model, report, and dashboard metadata to extend lineage from warehouse tables through to the assets your business users query, and propagates quality scores, alerts, and issues downstream to the reports that depend on your data.

## What Prizm Connects To

Prizm connects to workspaces backed by a capacity tier that exposes the XMLA endpoint:

| Capacity Tier                 | Details                                                                                                |
| :---------------------------- | :----------------------------------------------------------------------------------------------------- |
| **Premium Per User (PPU)**    | Per-user Premium license; XMLA endpoint available on assigned workspaces                               |
| **Premium (Per Capacity)**    | Organization-wide Premium capacity; XMLA endpoint available on all workspaces assigned to the capacity |
| **Microsoft Fabric Capacity** | Fabric-licensed capacity; XMLA endpoint available on all workspaces assigned to the capacity           |

<Note>
  A standard Power BI Pro license alone does not expose the XMLA endpoint. At least one of the capacity tiers above must be assigned to every workspace Prizm will scan for semantic model metadata. See [Setup](/sources/powerbi/setup) for the full prerequisites.
</Note>

## Supported Power BI Objects

Prizm ingests the following object types from Power BI. The hierarchy reflects how objects are organized in the Power BI Service:

```text theme={null}
Workspace
 ├── Dataflow (optional, when Extract Dataflows is enabled)
 ├── Semantic Model
 │    ├── Table
 │    │    └── Column
 │    ├── Measure
 │    └── Relationship
 ├── Report
 └── Dashboard
```

| Object             | What Prizm Captures                                                      |
| :----------------- | :----------------------------------------------------------------------- |
| **Workspace**      | Name, type, state, linked capacity                                       |
| **Semantic Model** | Name, owner, storage mode, created/modified timestamps, refresh history  |
| **Table / Column** | Schema, data type, hidden state, lineage tag, upstream M expression      |
| **Measure**        | DAX expression, data type, format string, description                    |
| **Relationship**   | Source/target table and column, cardinality, cross-filter direction      |
| **Report**         | Name, owner, URL, source semantic model                                  |
| **Dashboard**      | Name, owner, URL, tiles and their source reports/semantic models         |
| **Dataflow**       | Name, owner, entities, M expressions (when Extract Dataflows is enabled) |

## Observability Metrics

Prizm computes the following out-of-the-box metrics for Power BI assets:

<Tabs>
  <Tab title="Operational">
    | Metric           | Computed At    | Description                                                           |
    | :--------------- | :------------- | :-------------------------------------------------------------------- |
    | **Freshness**    | Semantic Model | Time elapsed since the last successful refresh for the semantic model |
    | **Reliability**  | Semantic Model | % of the semantic model's refreshes that completed successfully       |
    | **Job Duration** | Semantic Model | Average refresh time across the semantic model's successful refreshes |

    <Note>
      Freshness, Reliability, and Job Duration are computed once at the Semantic Model level. The same value is then propagated as-is to every Report built on that model — reports do not have their own independently computed values for these metrics.
    </Note>
  </Tab>

  <Tab title="Usage">
    | Metric                             | Level          | Description                                                                                       |
    | :--------------------------------- | :------------- | :------------------------------------------------------------------------------------------------ |
    | **Report View Count**              | Report         | Number of times the report was opened, over a 14-day or 28-day window                             |
    | **Report View Count (Cumulative)** | Semantic Model | Sum of the Report View Count across every report built on the semantic model, for the same window |

    <Note>
      Usage is tracked only at the Report level (plus the semantic-model-level rollup above) — Prizm does not compute a separate usage metric for Dashboards or Semantic Models directly. There is no 90-day window, and Prizm does not track Unique Users or Dataset Queries.
    </Note>
  </Tab>
</Tabs>

### Metric defaults by asset type

| Metric                            | Semantic Model      | Report                              | Dashboard |
| :-------------------------------- | :------------------ | :---------------------------------- | :-------- |
| Freshness                         | ✅ Computed          | ✅ Inherited from semantic model     | —         |
| Reliability                       | ✅ Computed          | ✅ Inherited from semantic model     | —         |
| Job Duration                      | ✅ Computed          | ✅ Inherited from semantic model     | —         |
| Usage (Report View Count)         | ✅ Cumulative rollup | ✅ Computed (14-day / 28-day window) | —         |
| Column-level Profile / Structural | ✅                   | —                                   | —         |

## Quality Propagation

Prizm can propagate data quality signals from upstream warehouse tables to the Power BI semantic models, reports, and dashboards that consume them. This is configured per connector at setup time.

| Signal     | Propagation Options                         |
| :--------- | :------------------------------------------ |
| **Score**  | Based on associated upstream table, or none |
| **Alerts** | Based on associated upstream table, or none |
| **Issues** | Based on associated upstream table, or none |

When propagation is enabled, a quality issue on a Snowflake or Databricks table automatically surfaces on every semantic model, report, and dashboard that draws from that table — giving report consumers visibility into upstream data health without leaving Power BI.

## Criticality

Power BI assets are scored using Prizm's [Criticality](/architecture/criticality) framework, applied with the following Power BI-specific formulas. Each input is log-normalized (`ln_norm`) — scaled to a 0–1 score over the stated range — before being weighted.

### Report

```text theme={null}
report_raw_score =
    0.50 × ln_norm(views, 1..20)
  + 0.50 × ln_norm(dashboard_count, 0..10)
```

* **views** — the report's Report View Count (see [Observability Metrics](#observability-metrics) above)
* **dashboard\_count** — number of dashboards that include this report

### Dashboard

A dashboard's criticality is inherited from its most critical report — the highest `report_raw_score` among the reports it includes.

### Semantic Model

```text theme={null}
sm_raw_score =
    0.70 × ln_norm(highest_report_tier, 0..4)
  + 0.15 × ln_norm(report_count, 0..20)
  + 0.15 × refresh_reliability
```

* **highest\_report\_tier** — the criticality tier (0–4) of the semantic model's highest-scoring report
* **report\_count** — number of reports built on this semantic model
* **refresh\_reliability** — the semantic model's Reliability metric (see Observability Metrics above)

Criticality determines which semantic model columns the Profile Recommendation and Structural Recommendation jobs select for column-level monitoring — higher-criticality columns are profiled more frequently.

## Supported Features

| Feature                                 | Supported                                |
| :-------------------------------------- | :--------------------------------------- |
| Service Principal authentication        | ✅ Recommended                            |
| Master User authentication              | ✅                                        |
| OAuth 2.0 authentication                | ✅                                        |
| Semantic model schema via XMLA          | ✅                                        |
| Report / Dashboard ingestion            | ✅                                        |
| Dataflow ingestion                      | ✅ (optional)                             |
| Freshness / Reliability monitoring      | ✅                                        |
| Usage analytics                         | ✅                                        |
| Column-level profiling                  | ✅ (Premium/PPU/Fabric capacity required) |
| Quality score propagation               | ✅                                        |
| Microsoft Fabric workspaces             | ✅                                        |
| Authoring or modifying Power BI content | ❌ Out of scope                           |
| Triggering semantic model refreshes     | ❌ Out of scope                           |

## Next Steps

<CardGroup cols={2}>
  <Card title="Setup" icon="plug" href="/sources/powerbi/setup">
    Connect Prizm to Power BI — prerequisites, authentication methods, and step-by-step configuration.
  </Card>

  <Card title="What We Collect" icon="database" href="/sources/powerbi/what-we-collect">
    Full field-level breakdown of every metadata object Prizm extracts from Power BI.
  </Card>

  <Card title="FAQ" icon="circle-question" href="/sources/powerbi/faq">
    Common questions about authentication, scoping, and permissions.
  </Card>

  <Card title="Glossary" icon="book" href="/help/glossary">
    Definitions for Prizm terms used throughout this guide.
  </Card>
</CardGroup>
