> ## 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.

# What Prizm Collects from Tableau

> Complete breakdown of every job, object, and field Prizm ingests from Tableau Cloud and Tableau Server.

<script type="application/ld+json">
  {`{
            "@context": "https://schema.org",
            "@type": "TechArticle",
            "headline": "What Prizm Collects from Tableau",
            "description": "Complete breakdown of every job, object, and field Prizm ingests from Tableau Cloud and Tableau Server.",
            "url": "https://docs.dqlabs.ai/sources/tableau/what-we-collect",
            "publisher": {
              "@type": "Organization",
              "name": "DQLabs Inc",
              "logo": "https://media.brand.dev/332adc35-5bc4-4d2b-bf78-256aa4a5e414.svg"
            }
            }`}
</script>

Prizm runs three platform jobs against each Tableau connector. Select a job below to see what it collects and how.

<Tabs>
  <Tab title="Catalog / Metadata">
    |               |                                                        |
    | :------------ | :----------------------------------------------------- |
    | **Type**      | CONTEXT                                                |
    | **Execution** | Daily; can also be triggered on-demand after a publish |

    **What this job does:** Full inventory of all Tableau objects using the **Tableau Metadata API (GraphQL)**. This is the foundation job — it powers the Prizm catalog, lineage graph, and asset detail pages. If this job is incorrect, all downstream data is affected.

    | Object                    | Fields Collected                                                                                                                            | Source               |
    | :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------ | :------------------- |
    | **Site**                  | name, site ID                                                                                                                               | Tableau Metadata API |
    | **Project**               | name, description, owner, projectHierarchy, isTopLevelProject, sourceCreatedAt, sourceUpdatedAt                                             | Tableau Metadata API |
    | **Workbook**              | name, description, sourceURL, sourceOwner, projectHierarchy, sourceCreatedAt, sourceUpdatedAt                                               | Tableau Metadata API |
    | **Dashboard**             | name, sourceURL, projectHierarchy, sourceCreatedAt, sourceUpdatedAt                                                                         | Tableau Metadata API |
    | **Worksheet**             | name, sourceURL, projectHierarchy, sourceCreatedAt, sourceUpdatedAt                                                                         | Tableau Metadata API |
    | **Published Data Source** | name, description, sourceOwner, isPublished, hasExtracts, upstreamTables, upstreamDatabases, certificateStatus, certifier, projectHierarchy | Tableau Metadata API |
    | **Datasource Field**      | name, description, upstreamTables, upstreamColumns, dataCategory, role (dimension/measure), dataType, formula, binSize, datasourceFieldType | Tableau Metadata API |
    | **Calculated Field**      | name, description, dataCategory, role, tableauDataType, formula                                                                             | Tableau Metadata API |

    <Note>
      Tableau Metrics (native Tableau feature) are deprecated and are not ingested. Lineage captured here is **logical lineage** — based on the declared upstream tables in the datasource definition, not runtime query execution.
    </Note>
  </Tab>

  <Tab title="Operational / Refresh">
    |               |        |
    | :------------ | :----- |
    | **Type**      | TRUST  |
    | **Execution** | Hourly |

    **What this job does:** Monitors extract refresh health in near-real-time using the **Tableau REST API**. Answers "Is data fresh?", "Are refreshes failing?", and "Is something broken right now?" Only tracks extract refresh tasks and refresh-related background jobs — permission jobs, subscription sends, and thumbnail generation are excluded.

    | Signal                   | Source                                                       | Description                                                                                                           |
    | :----------------------- | :----------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------- |
    | **Freshness delay**      | `last_successful_refresh_time` via Extract Refresh Tasks API | Time elapsed since last successful refresh. Dynamic threshold: expected refresh interval ± 3× average execution time. |
    | **Refresh duration**     | Background jobs API                                          | Time taken for each extract refresh to complete                                                                       |
    | **Refresh success rate** | Background jobs API                                          | % of refresh jobs completing successfully                                                                             |
    | **Consecutive failures** | Background jobs API                                          | Number of consecutive failed refresh jobs on a datasource                                                             |

    <Info>
      This job runs hourly so freshness SLA breaches surface quickly. The anomaly detection threshold is auto-calculated from the configured refresh schedule and historical execution times — no manual threshold setup is required.
    </Info>

    **Signals this job powers:**

    * `freshness_delay_minutes`
    * `refresh_success_rate`
    * `consecutive_failures`
    * `p95_refresh_duration`
  </Tab>

  <Tab title="Usage / Adoption">
    |               |         |
    | :------------ | :------ |
    | **Type**      | CONTEXT |
    | **Execution** | Daily   |

    **What this job does:** Collects workbook view counts and user activity data to answer "Who cares if this breaks?", "What is safe to deprecate?", and "What should be prioritized?". Uses the **Tableau Cloud Usage Stats API** (Tableau Cloud) or **Admin Views / Repository** (Tableau Server).

    | Metric                             | Source                      | Description                                                                         |
    | :--------------------------------- | :-------------------------- | :---------------------------------------------------------------------------------- |
    | **hits\_last\_14d**                | `hitsLastTwoWeeksTotal`     | Views in the last 14 days                                                           |
    | **hits\_last\_30d**                | `hitsLastOneMonthTotal`     | Views in the last 30 days                                                           |
    | **hits\_last\_90d**                | `hitsLastThreeMonthsTotal`  | Views in the last 90 days                                                           |
    | **hits\_last\_365d**               | `hitsLastTwelveMonthsTotal` | Views in the last 365 days                                                          |
    | **hits\_total**                    | `hitsTotal`                 | All-time view count                                                                 |
    | **daily\_active\_users**           | Admin Insights              | Distinct users per day                                                              |
    | **usage\_weighted\_health\_score** | Computed                    | Quality score weighted by usage — surfaces high-traffic workbooks with issues first |

    Usage data feeds zombie dashboard detection — workbooks with no views in 90+ days are flagged for deprecation review.

    <Note>
      Tableau Cloud requires API version 3.17 or later for usage stats. For Tableau Server, Admin Views access requires a user with repository read access.
    </Note>
  </Tab>
</Tabs>

## What You See in Prizm

Once Prizm completes its initial catalog run, every connected Tableau workbook gets a unified asset detail page. Worksheets and dashboards are accessible from the workbook detail page.

<Tabs>
  <Tab title="Overview">
    | **Section**          | **What Prizm Shows**                                                       |
    | :------------------- | :------------------------------------------------------------------------- |
    | **Quality Score**    | Average quality score across all attributes of the mapped upstream assets  |
    | **Alerts**           | Active alerts propagated from upstream tables                              |
    | **Issues**           | Open issues linked to this workbook                                        |
    | **Views**            | Total view count and recent activity                                       |
    | **Last Updated**     | Timestamp of last metadata refresh from Tableau                            |
    | **Score Trend**      | Time-series chart of quality score, alerts, and issues over selected dates |
    | **Semantic Context** | Domain, Application, Product, Tag, and Terms classifications               |
    | **Owners**           | Tableau asset owner synced from Tableau metadata                           |

    The score trend chart shows how data quality observations for impacted upstream tables change over time. Score is shown as green bars; alerts as a blue line; issues as a red line.

    Below the chart, a list of associated upstream assets is shown with columns: Account, Alerts, Application, Asset Type, Connection Name, Created On, Description, Domain, Issues, Last Run Date, Product, Score, Tag, Term.
  </Tab>

  <Tab title="Details">
    The Details tab lists all worksheets and dashboards contained in the workbook.

    | **Column**       | **Description**                                         |
    | :--------------- | :------------------------------------------------------ |
    | **Name**         | Worksheet or dashboard name (click to open detail view) |
    | **Type**         | Worksheet or Dashboard                                  |
    | **Site**         | Tableau site                                            |
    | **Owner**        | Asset owner                                             |
    | **Columns**      | Number of fields used                                   |
    | **Tables**       | Number of upstream tables referenced                    |
    | **Score**        | Propagated quality score                                |
    | **Alerts**       | Active alert count                                      |
    | **Issues**       | Open issue count                                        |
    | **Created Date** | Asset creation timestamp                                |
    | **Updated Date** | Last updated timestamp                                  |

    Click any row to open the individual worksheet or dashboard detail view, which includes its own Overview, Attributes, and Lineage tabs plus a preview of the sheet or dashboard in the metadata pane.
  </Tab>

  <Tab title="Attribute">
    The Attribute tab lists all fields used across the workbook.

    | **Column**          | **Description**                                     |
    | :------------------ | :-------------------------------------------------- |
    | **Name**            | Field name                                          |
    | **Data Type**       | Tableau data type                                   |
    | **Connection Type** | Source connection (e.g., Snowflake, Databricks)     |
    | **Database**        | Upstream database                                   |
    | **Schema**          | Upstream schema                                     |
    | **Table**           | Upstream table                                      |
    | **Definition**      | Field formula or expression (for calculated fields) |
    | **Description**     | Field description                                   |
    | **Is Null**         | Whether the field allows null values                |
    | **Score**           | Quality score from the upstream column              |
    | **Semantics**       | Semantic classification (domain, term)              |
    | **Sheet**           | Worksheet(s) where this field is used               |
  </Tab>

  <Tab title="Lineage">
    The Lineage tab renders a directed graph showing the full data flow from upstream tables through Tableau layers.

    | **Layer**                  | **What Prizm Shows**                                        |
    | :------------------------- | :---------------------------------------------------------- |
    | **Data Connections**       | Source database tables and views                            |
    | **Published Data Sources** | Tableau datasources that transform or combine upstream data |
    | **Worksheets**             | Individual sheets consuming the datasource                  |
    | **Dashboards**             | Dashboards composed from one or more worksheets             |

    Lineage is auto-inferred from the `upstreamTables` and `upstreamColumns` declared in the Tableau datasource definition. It can also be manually mapped by selecting asset names from the dropdown on the Lineage tab. Attribute-level (column-to-field) lineage is visible at each layer.
  </Tab>
</Tabs>

## Metadata Pane

Every Tableau asset includes a metadata pane with the following information pulled directly from Tableau:

| **Field**           | **Description**                                                   |
| :------------------ | :---------------------------------------------------------------- |
| **Description**     | Pulled from Tableau metadata if available; otherwise AI-generated |
| **Tags**            | Tags synced from Tableau                                          |
| **Owner Name**      | User who owns the Tableau asset                                   |
| **Site**            | Tableau site where the asset is published                         |
| **Updated At**      | Date and time of last update in Tableau                           |
| **# of Tables**     | Total upstream tables used in the asset                           |
| **# of Attributes** | Total fields/columns used in the asset                            |
| **# of Sheets**     | Number of worksheets in the workbook                              |
| **# of Dashboards** | Number of dashboards in the workbook                              |

The metadata pane also shows semantic layer classifications (Domains, Tags, Products, Application, Terms) and upstream/downstream system links.

## Next Steps

<CardGroup cols={2}>
  <Card title="Setup" icon="plug" href="/sources/tableau/setup">
    Connect Prizm to Tableau Cloud or Server.
  </Card>

  <Card title="FAQ" icon="circle-question" href="/sources/tableau/faq">
    Common questions about authentication, lineage, and propagation.
  </Card>
</CardGroup>
