---
title: "Compliance dashboard rollup. Reads from the unified
`compliance_events` projection (PAW-484/PAW-485). Default range
when caller omits parameters is \"last 30 days\". The optional
category filter scopes the per-category breakdown
only — headline metrics always reflect the full picture in range."
method: GET
path: "/Compliance/dashboard"
tags: ["Compliance"]
---

# Compliance dashboard rollup. Reads from the unified
`compliance_events` projection (PAW-484/PAW-485). Default range
when caller omits parameters is "last 30 days". The optional
category filter scopes the per-category breakdown
only — headline metrics always reflect the full picture in range.

`GET /Compliance/dashboard`

## Query parameters

- `from` string, date-time
- `to` string, date-time
- `category` string

## Response `200`

OK

- ComplianceDashboardDto — Top-level payload returned by `GET /compliance/dashboard`. Closes PAW-426 §6 — every section here is computed from the unified `compliance_events` table, plus settings/catalog reads for the "is this configured?" booleans.
  - `range` DateRangeDto, required
    - `from` string, date-time, required
    - `to` string, date-time, required
  - `headline` HeadlineMetricsDto, required — Headline rates and configuration flags. Rates are `null` when the denominator is zero so the UI can render a dash instead of "0%".
    - `estimateBeforeTreatmentRate` union — Plans that converted to estimates / (converted + bypassed).
      - number, double
      - string, double
    - `consentRecordedRate` union — Plans accepted / plans created.
      - number, double
      - string, double
    - `rxTransparencyRate` union — Labels rendered with Right-to-Shop notice / total Rx transparency events (≈100% when flag on).
      - number, double
      - string, double
    - `antimicrobialJustifiedRate` union — Antimicrobial Rx with non-empty justification / antimicrobial Rx total.
      - number, double
      - string, double
    - `cascadeReasonRate` union — Cascade Rx with non-empty reason / cascade Rx total.
      - number, double
      - string, double
    - `ownershipDisclosureComplete` boolean — Settings booleans — always computable from clinic state, not events.
    - `publicPricingComplete` boolean
    - `cdRegisterVarianceCount` union — Count of `dea.correction` / `ukcdr.correction` events in range.
      - integer
      - string, int32
    - `totalEventCount` union — Cross-cutting summary — useful for the top stat tiles.
      - integer
      - string, int32
    - `blockingEventCount` union
      - integer
      - string, int32
    - `warningEventCount` union
      - integer
      - string, int32
  - `categories` CategoryRollupDto[], required
    - `category` string, required
    - `total` union
      - integer
      - string, int32
    - `blocking` union
      - integer
      - string, int32
    - `warnings` union
      - integer
      - string, int32
    - `recent` ComplianceEventSummaryDto[], required
      - `id` string, required
      - `category` string, required
      - `eventCode` string, required
      - `severity` string, required
      - `entityType` string, required
      - `entityId` string, required
      - `sourceTable` string, nullable
      - `sourceId` string, nullable
      - `actorUserId` string, nullable
      - `actorName` string, nullable
      - `resultCode` string, nullable
      - `region` string, required
      - `metadataJson` string, nullable
      - `occurredAt` string, date-time, required

---

[API](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1.md) · [All operations](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clinicos/pawthosx-business-api-v1/revisions/d8d7501dde48/schema)
