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

# Quality Dashboard

> How to read the Quality Analytics dashboard — what each tile and widget means, how DQ score is calculated, and how filters and Slice By change the numbers.

<script type="application/ld+json">
  {`{
                    "@context": "https://schema.org",
                    "@type": "TechArticle",
                    "headline": "Quality Dashboard",
                    "description": "How to read the Quality Analytics dashboard — what each tile and widget means, how DQ score is calculated, and how filters and Slice By change the numbers.",
                    "url": "https://docs.dqlabs.ai/architecture/quality-dashboard",
                    "publisher": {
                      "@type": "Organization",
                      "name": "DQLabs Inc",
                      "logo": "https://media.brand.dev/332adc35-5bc4-4d2b-bf78-256aa4a5e414.svg"
                    }
                    }`}
</script>

The Quality Dashboard gives an organization-wide view of data quality score, alerts, and issues. Navigate to **Analytics → Quality** to access it.

<Note>
  Scores and counts on this dashboard are computed live from the same Score and Alert/Issue records described in [Scoring](/architecture/score). There is no separate "quality dashboard" data model — every tile and widget here is a read of that underlying data, scoped by whatever filters and date range are currently applied.
</Note>

## AI Summary

At the top of the dashboard, an AI-generated summary states the overall DQ score, alert and issue counts, and the current date range in plain language, and points to which widget to investigate first. The summary carries its own generation timestamp (shown to the right, e.g. `Oct 05 2026 03:16 PM`), which can trail slightly behind the live tile values below it — if the two disagree, trust the tiles and widgets, not the summary sentence.

## KPI cards

| Card | What it shows | How it's calculated |
| :- | :- | :- |
| **Overall DQ Score** | A single quality percentage for every asset currently in scope | The weighted-average rollup described in [Scoring](/architecture/score#how-we-score) — measure → attribute → asset — averaged across every asset matched by the current filters and date range, the same way a Domain/Product/Tag/Application group score is an average of its member assets' scores |
| **Alerts** | Count of alert records raised in the selected date range, broken down by severity (Critical / High / Medium / Low) | A straight count of Alert records matching the current filters and date range; the badge under the number (e.g. `+232 Prev. 0`) compares the count to the **Previous Period** filter's comparison window |
| **Issues** | Count of DQ issue records raised in the selected date range, broken down by severity | Same as Alerts — a count of Issue records matching the current filters and date range, compared against the previous period |
| **Avg. Age of DQ Issues** | Mean age of currently open DQ issues | Average of (now − creation time) across open issue records in scope |

<Warning>
  All four tiles animate with a count-up effect and can take several seconds to settle after the page loads or after any filter/date/Slice By change — including the severity breakdown and the period-over-period badge, which can settle later than the headline number. Read a tile only after it has stopped changing across two consecutive looks; a screenshot taken too early can show a mid-count value that doesn't reconcile (e.g. a severity breakdown that doesn't sum to the headline total).
</Warning>

## Widgets

### DQ score trend

A time-series line chart of the overall DQ score across the selected date range, color-coded by score band (green → yellow → orange → red, matching the 80-100 / 60-80 / 40-60 / 20-40 / 0-20 bands used throughout the dashboard). The **Slice By** filter controls how the x-axis is bucketed — see [Slice By](#slice-by-time-bucketing-not-a-dimension-breakdown) below.

### DQ score by dimension

A bar/radar-style breakdown of the current overall score across the standard DQ dimensions (Validity, Uniqueness, Relevance, Consistency, Completeness, Accuracy) plus any custom dimensions configured in your tenant.

<Note>
  If this widget shows **"No data available"**, treat it as a data-availability gap for this specific widget rather than a sign that dimension-level scoring itself isn't working — the equivalent **DQ score heatmap by dimension** widget further down the page shows the same information.
</Note>

### DQ score by asset

A paginated table of every asset in scope, with columns for **Asset**, **Parent**, **Asset Type**, **Tags**, **Latest Average Score**, **Prev.** (previous period's score), **Alerts**, **Issues**, **Children** (count of child assets, e.g. columns under a table), **DQ Score Trend** (a sparkline), and **Top Failing Metrics**.

### DQ score by semantic

A table of scores rolled up by logical grouping, with sub-tabs for **Domain**, **Application**, **Product**, and **Tag** — the same four logical groupings described in [Logical group scoring](/architecture/score#logical-group-scoring-domain-product-tag-application). Columns: **Name**, **Type**, **Latest Average Score**, **Prev.**, **Change**, **Alerts**, **Issues**, **DQ Score Trend**.

### DQ score heatmap by semantic

The same Domain / Application / Product / Tag groupings as above, rendered as a heatmap with groupings as rows and time buckets as columns, colored by score band (0-20 red, 20-40 orange, 40-60 yellow, 60-80 light green, 80-100 green). The column buckets follow the **Slice By** granularity.

### DQ score heatmap by dimension

The same DQ dimensions as **DQ score by dimension** (Validity, Uniqueness, Relevance, Consistency, Completeness, Accuracy, plus any custom dimensions), rendered as a heatmap with dimensions as rows and Slice-By time buckets as columns. Unlike the plain bar widget above, this heatmap did return data in validation testing — use it as the reliable source for dimension-level trends.

## Filters

Apply filters to scope the entire dashboard — every KPI card and widget — to a subset of your data:

| Filter | Options |
| :- | :- |
| **Domain** | Business domain(s) — multi-select hierarchy tree |
| **Application** | Source system or processing platform |
| **Product** | Data product |
| **Tag** | Tag labels |
| **Source** | Specific data source connections |
| **Asset Type** | Table, view, etc. |
| **Asset** | Individual table or view |
| **Date Range** | Preset or custom range (the dashboard defaults to **Last 90 days**) |
| **Slice By** | Time-bucket granularity for the trend chart and heatmaps — see below |
| **Previous Period** | The comparison window used by each KPI card's period-over-period badge |

Once any filter is applied, **Reset** and **Save as view** controls appear next to the filter bar. Filter selections persist for your session even across a page reload, until you click **Reset**.

<Tip>
  On the Exception Dashboard, **Slice By** breaks results down by a chosen dimension. On the Quality Dashboard, **Slice By** does something different — it only changes time-bucket granularity. See the next section.
</Tip>

## Slice By: time-bucket granularity, not a dimension breakdown

**Slice By** offers six options: **Day, Week, Month, Quarter, Half-year, Year**. Changing it rebuckets the x-axis of the **DQ score trend** chart and the column headers of both heatmap widgets — it does **not** change the headline KPI tiles (Overall DQ Score, Alerts, Issues, Avg. Age of DQ Issues), and it does not filter or break down the underlying data by any dimension.

Worked example, same Domain filter (`Retail Sales Check`) and date range (last 90 days) throughout:

| Slice By | DQ score trend x-axis | Overall DQ Score | Alerts | Issues |
| :- | :- | :- | :- | :- |
| Week | `Jul 20, Jul 27, Aug 10, ... Oct 05` (weekly points) | 69.490% | 232 | 11 |
| Month | `Jul 01, Aug 01, Sep 01, Oct 01` (4 monthly points) | 69.490% | 232 | 11 |

Only the chart's bucketing changed — every KPI tile stayed identical.

## With filter vs. without filter: a worked example

Applying a filter (e.g. selecting a single Domain) re-scopes every KPI tile and widget to only the matching assets. Example captured during validation, Last 90 days, no Slice By change:

| KPI | Without filter (all domains) | With filter (Domain = `Retail Sales Check`) |
| :- | :- | :- |
| Overall DQ Score | 56.090% | 69.490% |
| Alerts | 6,571 — Critical 5,890 (89.6%), High 628 (9.6%), Medium 13 (0.2%), Low 40 (0.6%) | 232 — Critical 121 (52.2%), High 102 (44%), Medium 0 (0%), Low 9 (3.9%) |
| Issues | 122 — Critical 97 (79.5%), High 18 (14.8%), Medium 2 (1.6%), Low 5 (4.1%) | 11 — Critical 5 (45.5%), High 3 (27.3%), Medium 0 (0%), Low 3 (27.3%) |
| Avg. Age of DQ Issues | 3w 18h 8m | 2w 5d 8h |

Overall DQ Score rose from 56.090% to 69.490% because the filtered Domain's member assets scored higher on average than the full asset population; Alerts and Issues dropped to just the counts raised against that Domain's assets. The same mechanism applies to every other filter field (Application, Product, Tag, Source, Asset Type, Asset) and to combinations of them — each additional filter narrows the asset set that every tile and widget averages or counts over.

<Note>
  The exact figures above are an illustrative example and will not match your environment. The relationship they demonstrate — filtering narrows the scored/counted asset population, Slice By only rebuckets time — is what to rely on, not the specific numbers.
</Note>

## Related pages

<CardGroup cols={2}>
  <Card title="Scoring" icon="star" href="/architecture/score">
    The full measure → attribute → asset → group rollup formulas behind every score on this dashboard
  </Card>

  <Card title="Catalog Dashboard" icon="table" href="/architecture/catalog-dashboard">
    Asset discovery, classification coverage, and governance health — where Slice By has no effect at all
  </Card>

  <Card title="Observability Dashboard — Data" icon="database" href="/architecture/observability-data-dashboard">
    Freshness, volume, and schema reliability — the correctness counterpart to this dashboard's quality scoring
  </Card>

  <Card title="Exception Dashboard" icon="layer-group" href="/architecture/exceptions/exception-dashboard">
    The equivalent dashboard for exception records, where Slice By instead breaks results down by a chosen dimension
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.