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
Summary
The corpus has four parallel metric enums covering overlapping but inconsistent vocabularies:
enums/available-metric.json(31 values) — closed delivery enum used bycommitted_metrics,required_metrics,reporting_capabilities.available_metricsenums/forecastable-metric.json(15 values) — forecast-time enum, includesmeasured_impressions/audience_sizewhich don't exist in deliveryenums/performance-standard-metric.json(5 values) — verification enumenums/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+ themetric-scope.jsondiscriminator (#3576 pattern). Specifically:metric-type.jsondeprecates 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 againstavailable-metric.performance-standard-metric.jsonstays — these are verification metrics with thresholds, a legitimately distinct subset. But the values should referenceavailable-metricentries 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
available-metricRelated