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

# Dashboards

> Browse and query your healthcare data through interactive dashboard pages organized by category and pipeline layer.

The Soria dashboard gives you a structured view of all your healthcare data — organized by category and surfaced through a bronze → silver → gold → platinum data pipeline. Each dashboard page represents a model that has been cleaned, joined, and aggregated into a chart-ready view.

## The home page

When you open the dashboard, you see a grid of category cards. Each card represents a data domain — for example, **Medicare Advantage** or **Star Ratings** — and shows the dashboard pages it contains.

Categories group related models together. A category card shows the first three dashboard pages (platinum-layer charts) in that category, with a count of any additional pages.

### Pipeline layers

Every model in Soria belongs to a pipeline layer. The home page shows which layers are present in each category:

| Layer        | What it contains                                     |
| ------------ | ---------------------------------------------------- |
| **Bronze**   | Raw source tables, auto-created from data extraction |
| **Silver**   | Cleaned and typed data — explicit casts, no joins    |
| **Gold**     | Joined data across silver models                     |
| **Platinum** | Aggregated, dashboard-ready charts                   |

Platinum models are the pages you navigate to and interact with. Gold and silver models power them from underneath.

### Tags

Dashboards are tagged for easy filtering. Tags like **Medicare Advantage** or **Star Ratings** appear on the home page as clickable chips. Click a tag to see only the dashboards associated with it.

<Note>
  Tags are independent of categories. A dashboard can have multiple tags, and a tag can span multiple categories.
</Note>

## MCP tools

You can query dashboard data directly from your AI assistant using three MCP tools.

### `list_dashboard_pages`

Lists all dashboard pages with their titles, paths, and categories.

```python theme={null}
list_dashboard_pages()
# Returns production pages

list_dashboard_pages(environment="ws_test_pipeline_58d28fca")
# Returns pages scoped to a specific workspace
```

### `get_dashboard_page`

Returns chart config, model info, and metadata for a single page.

```python theme={null}
get_dashboard_page(node_id="medicare_advantage__star_ratings")

# Example output:
# Page: Star Ratings
# Model: platinum.star_ratings
# Path: medicare_advantage/star_ratings
# Description: CMS star ratings by contract and plan year
# Chart: bar chart
# Kind: FULL
```

### `get_dashboard_data`

Queries the materialized data behind a dashboard page and returns column names and rows.

```python theme={null}
get_dashboard_data(node_id="medicare_advantage__star_ratings", limit=50)
```

#### Filtering data

Pass a `filters` JSON string to inject a `WHERE` clause into the source query. Downstream metrics are recalculated on the filtered subset.

```python theme={null}
get_dashboard_data(
    node_id="medicare_advantage__star_ratings",
    filters='{"plan_year": ["2024"], "contract_type": ["HMO", "PPO"]}',
    limit=100,
)
```

The filter format is `{"column": ["value1", "value2"]}`. Multiple values for the same column are treated as `IN (...)`.

<Tip>
  Use `list_dashboard_pages` first to find the right `node_id`, then call `get_dashboard_data` to explore the underlying data.
</Tip>

## Workspace isolation

All three tools accept an optional `environment` parameter. Pass a workspace ID to scope results to that workspace's data instead of production.

```python theme={null}
get_dashboard_data(
    node_id="medicare_advantage__star_ratings",
    environment="ws_test_pipeline_58d28fca",
)
```

This is useful when you're iterating on SQL models in a workspace and want to preview how the dashboard will look before promoting to production.
