> For the complete documentation index, see [llms.txt](https://docs.collibra.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.collibra.com/data-quality-self-hosted/core-concepts/reports/observability-score-roll-up-report.md).

# Observability Score Roll-Up Report

## What is an Observability Score Roll-Up Report?

The Observability Score Roll-Up report provides aggregated scores of all adaptive rules (includes all data sets and all columns), as well as averages passing and breaking for all columns over 30 days. The scores are aggregated by check type and dimension.

You can generate an Observability Score Roll-Up report from the Reports page.

## Steps

{% stepper %}
{% step %}
Sign in to the Collibra DQ instance and click the <img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-0c20a262939f347f6b5a8337f3a456ed9586b995%2Fdq-reports-icon.png?alt=media" alt="reports icon" data-size="line"> Reports icon in the left navigation pane.\ <i class="fa-chevrons-right">:chevrons-right:</i> The Reports page opens.
{% endstep %}

{% step %}
From the Reports page, click the **Observability Score Roll-Up Report** link.
{% endstep %}

{% step %}
To configure the type of chart configuration and data you want to see in the chart, click the ![](https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-e471d6e6763e2ebd4b26dbbadfb0af53fce9cf0c%2Fdq-ellipsis-icon.png?alt=media)ellipsis icon.
{% endstep %}

{% step %}
Click <img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-997001e32eb8d6643df667aac5e4ba31baf9a7ea%2Fdq-admin-gear-icon.png?alt=media" alt="" data-size="line">**Chart Configuration**.The Chart Configuration window displays.

{% hint style="info" %}
As a best practice, keep the Chart Configuration as the default.
{% endhint %}
{% endstep %}

{% step %}
For x-axis, select one of the following options from the X-Axis Column dropdown list:

* **check\_type**
* **dimension**
* **avg\_observability\_score**
  {% endstep %}

{% step %}
For y-axis, select one or more of the following options from the Y-Axis Columns dropdown list:

* **check\_type**
* **dimension**
* **avg\_observability\_score**
  {% endstep %}

{% step %}
For the type of chart you want to display, select one of the following options from the Chart Type dropdown list:

* **Line**
* **Area**
* **Column**
* **Scatter**
  {% endstep %}

{% step %}
Click **Save**.
{% endstep %}

{% step %}
Navigate the pages of your report by clicking the **Previous** and **Next** pagination buttons, located bottom-right of the columns.
{% endstep %}
{% endstepper %}

## Sample SQL query

You can use the following sample SQL query for an Observability Score Roll-Up report.

```
with a as ( select dataset, col_nm from dataset_schema ),
     b as ( select distinct dataset, 'Row Count', 'ROW_COUNT', 'AVAILABILITY' from dataset_scan where updt_ts >= (NOW() - INTERVAL '30 DAY') and updt_ts <= NOW()),
     c as ( select * FROM
             (VALUES
                  ('NULL', 'COMPLETENESS'),
                  ('EMPTY', 'COMPLETENESS'),
                  ('TYPE', 'SCHEMA'),
                  ('CARDINALITY', 'DISTRIBUTION'),
                  ('MIN', 'CONFORMITY'),
                  ('MAX', 'CONFORMITY'),
                  ('MEAN', 'CONFORMITY')) as t (type, dimension) ),
     d as ( select * from a,c  ),
     e as ( select * from d UNION (select * from b)),
     f as ( select dataset as be_dataset, be_score, field, issue_type, run_id from behavior ),
     g as ( select * from owl_catalog ),
     h as ( select distinct dataset, run_id, rc from dataset_scan where updt_ts >= (NOW() - INTERVAL '30 DAY') and updt_ts < NOW()),
     i as ( select e.dataset, col_nm, type, dimension, run_id, rc from e, h where e.dataset = h.dataset ),
     j as ( select distinct dataset, col_nm, col_semantic from  dataset_schema ),
     k as ( select * from business_unit_to_dataset ),
     l as ( select * from business_units ),
     m as (
            select i.col_nm, type,
                   case when be_score is null then 100 else be_score end as score, i.dimension,
                   i.run_id, rc, be_score, issue_type, i.dataset, g.source_name, g.source, g.table_nm, g.run_mode, g.data_concept_id, j.col_semantic,
                   l.name
            from i
                LEFT join f on f.be_dataset = i.dataset and f.field = i.col_nm and f.issue_type = i.type and f.run_id = i.run_id
                INNER JOIN g on i.dataset = g.dataset
                LEFT JOIN j on i.dataset = j.dataset and i.col_nm = j.col_nm
                LEFT JOIN k on i.dataset = k.dataset
                LEFT JOIN l on l.id = k.id
            )
    select avg(score) as avg_observability_score, type as check_type, dimension from m group by type, dimension order by dimension 
```
