# Spec bundle — AST-0086 v1

> Provenance: asset `AST-0086` · spec `SPEC-AST-0086-v1` · version 1 · status `published` · hash `3c50f9616eb7f8aeac60f9a8fd6553176f9a964fc57df17cd961afd29a03528a` · source fixture

## Ledger summary

_No ledger versions recorded._

## KPI definitions

- **KPI-003** — Net Sales v2 (`duplicate_candidate`) · EUR
  - Formula: `SUM(net_sales_m_eur_syn)`
- **KPI-039** — Budget Variance (`canonical`) · EUR
  - Formula: `(actual - budget) / budget`

## DashboardSpec (JSON)

```json
{
  "spec_id": "SPEC-AST-0086-v1",
  "asset_id": "AST-0086",
  "version": 1,
  "parent_version": null,
  "status": "published",
  "name": "Kerendia Executive - EMEA",
  "purpose": "Finance desktop overview for Kerendia EMEA — Net Sales and Budget Variance from pack monthly facts.",
  "domain": "Finance",
  "surface": "desktop",
  "owners": {
    "business_owner_id": "OWN-051",
    "technical_owner_id": "OWN-051"
  },
  "refresh_policy": {
    "mode": "daily",
    "source_model_ids": [
      "SM-043"
    ]
  },
  "pages": [
    {
      "page_id": "page-main",
      "title": "Kerendia EMEA",
      "rotation_s": 20,
      "visuals": [
        {
          "visual_id": "V-0086-ns",
          "type": "kpi_tile",
          "title": "Net Sales",
          "kpi_id": "KPI-003",
          "dims": [],
          "filters": {
            "product": "P-KER"
          },
          "grain": "month",
          "window": "last_3m",
          "unit": "M€",
          "threshold": {
            "good": 20,
            "warn": 10,
            "direction": "up_good"
          }
        },
        {
          "visual_id": "V-0086-bv",
          "type": "kpi_tile",
          "title": "Budget Variance",
          "kpi_id": "KPI-039",
          "dims": [],
          "filters": {
            "product": "P-KER"
          },
          "grain": "month",
          "window": "last_3m",
          "unit": "%",
          "threshold": {
            "good": 5,
            "warn": 10,
            "direction": "down_good"
          }
        },
        {
          "visual_id": "V-0086-ns-market",
          "type": "bar",
          "title": "Net Sales by market",
          "kpi_id": "KPI-003",
          "dims": [
            "market"
          ],
          "filters": {
            "product": "P-KER"
          },
          "grain": "month",
          "window": "last_3m",
          "unit": "M€",
          "threshold": {
            "good": 20,
            "warn": 10,
            "direction": "up_good"
          }
        },
        {
          "visual_id": "V-0086-bv-trend",
          "type": "line",
          "title": "Budget Variance trend",
          "kpi_id": "KPI-039",
          "dims": [],
          "filters": {
            "product": "P-KER"
          },
          "grain": "month",
          "window": "last_12m",
          "unit": "%",
          "threshold": {
            "good": 5,
            "warn": 10,
            "direction": "down_good"
          }
        }
      ]
    }
  ],
  "review_cadence_days": 90,
  "lineage": {
    "upstream_model_ids": [
      "SM-043"
    ]
  },
  "exceptions": [],
  "rationale": [
    {
      "decision": "Publish fixture spec for GS-FIN-01 REUSE primary AST-0086",
      "because": "Pack asset is certified with Finance KPIs; without a published DashboardSpec, Studio REUSE CTAs hit /dashboards with 'No governed spec yet'. Spec binds Net Sales (KPI-003) and Budget Variance (KPI-039 → pack forecast_variance facts).",
      "evidence_refs": [
        "AST-0086",
        "KPI-003",
        "KPI-039",
        "GS-FIN-01"
      ]
    }
  ]
}
```
