Follow-up to PR #3507 (missing scalars). Protocol expert review surfaced one genuine cross-side gap that was out of scope.
The asymmetry
forecastable-metric.json:23 and forecast-point.json:38 declare plays as the DOOH spots-played currency — buyers can request a forecast against plays. But the metric is absent from delivery-metrics.json and available-metric.json, so:
- Buyers can forecast
plays but cannot reconcile against it in delivery
- The closest delivery-side equivalent is
dooh_metrics.loop_plays, but that's a different denominator (per-screen rotation count, not total spot plays)
Proposal
Add plays to:
static/schemas/source/core/delivery-metrics.json as type: integer, minimum: 0
static/schemas/source/enums/available-metric.json
- The metric list in
docs/media-buy/media-buys/optimization-reporting.mdx
Description: "Total spot plays delivered. Used for DOOH and broadcast inventory where the buyer reconciles against forecast plays (see forecastable-metric.json). Distinct from dooh_metrics.loop_plays, which is per-screen rotation count."
Same shape as the five scalars in #3507 — additive, optional, minor bump.
Reference
Follow-up to PR #3507 (missing scalars). Protocol expert review surfaced one genuine cross-side gap that was out of scope.
The asymmetry
forecastable-metric.json:23andforecast-point.json:38declareplaysas the DOOH spots-played currency — buyers can request a forecast againstplays. But the metric is absent fromdelivery-metrics.jsonandavailable-metric.json, so:playsbut cannot reconcile against it in deliverydooh_metrics.loop_plays, but that's a different denominator (per-screen rotation count, not total spot plays)Proposal
Add
playsto:static/schemas/source/core/delivery-metrics.jsonastype: integer, minimum: 0static/schemas/source/enums/available-metric.jsondocs/media-buy/media-buys/optimization-reporting.mdxDescription: "Total spot plays delivered. Used for DOOH and broadcast inventory where the buyer reconciles against forecast
plays(seeforecastable-metric.json). Distinct fromdooh_metrics.loop_plays, which is per-screen rotation count."Same shape as the five scalars in #3507 — additive, optional, minor bump.
Reference
static/schemas/source/enums/forecastable-metric.json:23— current plays declaration on the forecast sidestatic/schemas/source/core/forecast-point.json:38— same