{
  "format": "vercy-model-allocation-candidate/v1",
  "contourId": "EM-DAT-05",
  "proposedName": "Metric Definition",
  "modelId": null,
  "registryId": null,
  "allocationState": "unassigned",
  "decision": "NEW MODEL",
  "canonicalPublishable": false,
  "version": "0.1.0-candidate.3",
  "identityTest": {
    "stableIdentity": "A metric exists independently of any observation, target, report or quality assessment and remains identifiable across compatible definition revisions.",
    "versionIdentity": "Each activated semantic definition is immutable and separately addressable.",
    "independentLifecycle": [
      "draft",
      "active",
      "superseded",
      "withdrawn",
      "tombstoned"
    ],
    "mastership": "metric or semantic-definition registry"
  },
  "boundary": {
    "owns": [
      "stable metric identity",
      "immutable definition versions",
      "formula and expression-language binding",
      "numerator denominator base and index components",
      "metric kind quantity kind scale and comparison direction",
      "version-pinned unit reference",
      "dimensions and additivity declarations",
      "population inclusion and exclusion boundary",
      "version-pinned method and source bindings",
      "null and absence semantics",
      "facet-level compatibility and comparability declarations"
    ],
    "references": [
      {
        "target": "WM-XCT-025",
        "purpose": "Reusable observable result fields"
      },
      {
        "target": "WM-DAT-010",
        "purpose": "Series and observations"
      },
      {
        "target": "WM-KNW-011",
        "purpose": "Targets and objectives"
      },
      {
        "target": "WM-DAT-007",
        "purpose": "Data-quality assessments"
      },
      {
        "target": "WM-XCT-008",
        "purpose": "Quantity and unit values"
      },
      {
        "target": "WM-XCT-026",
        "purpose": "Quality-measure registration pattern only; not a metric owner"
      }
    ],
    "excludes": [
      "observed values or series membership",
      "target values or attainment decisions",
      "data-quality assessment lifecycle",
      "report statement or publication lifecycle",
      "procedure unit population classification or source-data mastership",
      "organization-specific KPI thresholds, scorecard weights, incentive rules, reporting calendars, SLO budgets, access classes and approval workflows",
      "local rollup preferences beyond portable commensurability and additivity semantics"
    ]
  },
  "objects": {
    "Metric": {
      "identity": [
        "metricId"
      ],
      "required": [
        "name",
        "phenomenonRef",
        "quantityKindRef",
        "statisticalUnitTypeRef",
        "ownerRef",
        "status"
      ],
      "optional": [
        "aliases",
        "retiredAt",
        "correspondingMetricRefs"
      ],
      "lifecycle": [
        "proposed",
        "active",
        "retired"
      ]
    },
    "DefinitionVersion": {
      "identity": [
        "metricId",
        "version"
      ],
      "required": [
        "formula",
        "expressionLanguageRef",
        "unitRef",
        "scaleType",
        "populationBoundaryRef",
        "methodRefs",
        "sourceRefs",
        "dimensions",
        "nullSemantics",
        "precisionRule",
        "roundingRule",
        "comparisonDirection",
        "contentDigest",
        "status"
      ],
      "optional": [
        "components",
        "supersedesVersion"
      ],
      "lifecycle": [
        "draft",
        "active",
        "superseded",
        "withdrawn",
        "tombstoned"
      ]
    },
    "PopulationBoundary": {
      "identity": [
        "boundaryId"
      ],
      "required": [
        "unitOfAnalysis",
        "inclusionRules",
        "exclusionRules"
      ],
      "optional": [
        "classificationRefs"
      ],
      "immutability": "Frozen at DefinitionVersion activation, version-pinned and covered by contentDigest."
    },
    "DimensionRule": {
      "identity": [
        "dimensionRuleId"
      ],
      "required": [
        "dimensionRef",
        "dimensionVersionRef",
        "additivity",
        "commensurabilityPolicy"
      ],
      "optional": [
        "exceptions",
        "hierarchyRef"
      ],
      "immutability": "Frozen at DefinitionVersion activation, version-pinned and covered by contentDigest."
    },
    "ComparabilityDeclaration": {
      "identity": [
        "declarationId"
      ],
      "required": [
        "fromVersion",
        "toVersion",
        "verdict",
        "facetResults",
        "authorityRef",
        "decidedAt"
      ],
      "optional": [
        "restatementMethodRef",
        "evidenceRefs"
      ]
    }
  },
  "comparabilityVerdicts": [
    "comparable",
    "comparable-with-restatement",
    "non-comparable"
  ],
  "absenceStates": [
    "zero",
    "unknown",
    "not-applicable",
    "missing",
    "suppressed"
  ],
  "invariants": [
    "Stable Metric identity is the tuple of intended phenomenon, quantity kind and statistical unit type and is distinct from immutable DefinitionVersion identity.",
    "A change of intended phenomenon, quantity kind or statistical unit type creates a new Metric identity; a declared correspondence never implies identity continuity.",
    "An activated DefinitionVersion and every referenced PopulationBoundary and DimensionRule are frozen, version-pinned and covered by contentDigest.",
    "A definition never stores an observed value, series head, target value or attainment verdict.",
    "Ratio and rate definitions declare numerator and denominator semantics.",
    "Unit reference pins code-system identity and version; dimensionless is explicit and commensurability with quantity kind is required.",
    "Every active definition has explicit dimensions; each dimension pins its vocabulary version and declares additivity, and undeclared aggregation fails closed.",
    "Population unit, inclusion rules and exclusion rules are mandatory before activation.",
    "Method and source bindings are mandatory, version-pinned references before activation.",
    "Zero, unknown, not-applicable, missing and suppressed remain distinct states.",
    "Formula, method, unit, scale, population, dimension, additivity, absence, precision or value-changing rounding changes create a successor DefinitionVersion.",
    "Every successor carries an explicit facet-level comparability verdict and missing comparability means non-comparable.",
    "A facet-level comparability verdict may narrow but never silently widen the metric-level verdict.",
    "Comparable-with-restatement requires a pinned restatementMethodRef and non-empty evidenceRefs.",
    "Recalculation and restatement create new observation vintages and never overwrite prior observations.",
    "Equal-authority definition conflicts are never silently merged.",
    "Aggregation and target-version refusals are declared consumer obligations at WM-DAT-010 and WM-KNW-011 conformance points; this candidate does not own their enforcement lifecycle.",
    "Comparability authorityRef references external governance and never creates an approval workflow inside this aggregate.",
    "DimensionRule commensurabilityPolicy contains portable semantic checks only, never organization-specific rollup preference.",
    "Superseded, withdrawn and tombstoned versions remain resolvable and provenance-linked."
  ],
  "holds": [
    "Registry identifier allocation is pending and no numeric gap may be guessed.",
    "Neighbouring models retain publication holds and relation rows are not frozen.",
    "WM-DAT-007 and WM-DAT-010 lack independent external review.",
    "WM-XCT-025 retains an open aggregate-root identity question.",
    "WM-KNW-011 measure-definition reference must resolve to the eventual allocated identifier.",
    "Standards pins remain unverified; alignment is not conformance.",
    "Package conversion and canonical publication are pending."
  ],
  "conformancePoints": [
    {
      "consumer": "WM-DAT-010",
      "obligation": "Before aggregation or series concatenation, enforce pinned definition version, unit and quantity-kind commensurability, population compatibility, dimension additivity and comparability verdict; refuse when undeclared."
    },
    {
      "consumer": "WM-KNW-011",
      "obligation": "A target pins one DefinitionVersion and may not be silently evaluated against another version without explicit rebinding or declared restatement."
    },
    {
      "consumer": "Observation producer",
      "obligation": "Recalculation and restatement append new vintages; prior observations remain resolvable."
    }
  ]
}
