Skip to content

Reconcile four parallel metric enums — metric-type, available-metric, forecastable-metric, performance-standard-metric #3863

Description

@bokelley

Summary

The corpus has four parallel metric enums covering overlapping but inconsistent vocabularies:

  • enums/available-metric.json (31 values) — closed delivery enum used by committed_metrics, required_metrics, reporting_capabilities.available_metrics
  • enums/forecastable-metric.json (15 values) — forecast-time enum, includes measured_impressions / audience_size which don't exist in delivery
  • enums/performance-standard-metric.json (5 values) — verification enum
  • enums/metric-type.json (8 values) — legacy feedback enum with no clear layer alignment (separate RFC: see metric-type collapse issue)

Origin

Audit finding §3.11. The proliferation predates the verification / metric / attribution split documented in docs/measurement/taxonomy. Each enum grew independently; there's no canonical mapping between them.

Proposal

Re-anchor everything on available-metric.json + vendor_metric_values + the metric-scope.json discriminator (#3576 pattern). Specifically:

  • metric-type.json deprecates entirely (handled by separate RFC for §3.3).
  • forecastable-metric.json — forecast-only deltas (audience_size, measured_impressions) become a forecast-specific sub-enum or move to a forecast-only list. Shared values graduate to references against available-metric.
  • performance-standard-metric.json stays — these are verification metrics with thresholds, a legitimately distinct subset. But the values should reference available-metric entries where they overlap.

Why

Today, a buyer agent looking at "what metrics does this product support across its lifecycle?" walks four enums with overlapping values and inconsistent shapes. Post-reconciliation, there's one closed delivery vocabulary and a small number of layer-specific subsets that reference into it.

Migration

  • Forecast-only / performance-standard-only values stay where they are
  • Shared values become references into available-metric
  • Schema validation enforces consistency at build time
  • Aliases preserved for one minor; eligible for cleanup at the next major

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.enhancementNew feature or requestneeds-wg-reviewBlocked on a working-group decision — surface in WG meeting agendasschemaJSON Schema source-of-truth: definitions, codegen artifacts, validation, hygiene

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions