# Spec bundle — AST-Q003 v1

> Provenance: asset `AST-Q003` · spec `SPEC-AST-Q003-v1` · version 1 · status `published` · hash `ce2e4cabc6933913b0dd887b845c744e82621cd855c7c646909bcb9132cf3522` · source fixture

## Ledger summary

_No ledger versions recorded._

## KPI definitions

- **KPI-Q01** — Open Deviations (Quality) (`canonical`) · count
  - Formula: `COUNT(open quality deviations)`

## DashboardSpec (JSON)

```json
{
  "spec_id": "SPEC-AST-Q003-v1",
  "asset_id": "AST-Q003",
  "version": 1,
  "parent_version": null,
  "status": "published",
  "name": "Quality: Open Deviations",
  "purpose": "Open deviation count for the quality wall — grain is open cases (not CAPA aging).",
  "domain": "Quality",
  "surface": "wall",
  "owners": {
    "business_owner_id": "OWN-G02",
    "technical_owner_id": "OWN-G05"
  },
  "refresh_policy": {
    "mode": "hourly",
    "source_model_ids": [
      "SM-Q01"
    ]
  },
  "pages": [
    {
      "page_id": "page-main",
      "title": "Open deviations",
      "rotation_s": 20,
      "visuals": [
        {
          "visual_id": "V-Q003-open",
          "type": "kpi_tile",
          "title": "Open deviations",
          "kpi_id": "KPI-Q01",
          "dims": [],
          "filters": {},
          "grain": "open cases",
          "window": "all",
          "unit": "",
          "threshold": {
            "good": 2,
            "warn": 5,
            "direction": "down_good"
          }
        },
        {
          "visual_id": "V-Q003-by-plant",
          "type": "bar",
          "title": "Open deviations by plant",
          "kpi_id": "KPI-Q01",
          "dims": [
            "plant"
          ],
          "filters": {},
          "grain": "open cases",
          "window": "all",
          "unit": "",
          "threshold": {
            "good": 2,
            "warn": 5,
            "direction": "down_good"
          }
        },
        {
          "visual_id": "V-Q003-by-severity",
          "type": "status_grid",
          "title": "Open deviations by severity",
          "kpi_id": "KPI-Q01",
          "dims": [
            "severity"
          ],
          "filters": {},
          "grain": "open cases",
          "window": "all",
          "unit": "",
          "threshold": {
            "good": 2,
            "warn": 5,
            "direction": "down_good"
          }
        }
      ]
    }
  ],
  "review_cadence_days": 90,
  "lineage": {
    "upstream_model_ids": [
      "SM-Q01"
    ]
  },
  "exceptions": [],
  "rationale": [
    {
      "decision": "Pin SCR-02 to AST-Q003 / KPI-Q01 only",
      "because": "No asset binds KPI-Q02 CAPA Aging; GS-QUA-01 must stay BUILD_NEW. Fixture visuals use only this asset's mapped KPI.",
      "evidence_refs": [
        "AST-Q003",
        "KPI-Q01",
        "SCR-02"
      ]
    }
  ]
}
```
