---
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`

## Request

- Base URL: `https://api.clinicos.vet/backend/business`
- URL: `https://api.clinicos.vet/backend/business/Compliance/dashboard`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/docs/Compliance/dashboard/get.ts> (a function with typed inputs; its response is checked against the schema)

## 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.dev/clinicos/apis/pawthosx-business-api-v1.md) - [All operations](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/revisions/099cf36186e0?raw)
