Skip to content

fix(schemas): three measurement audit cleanups (§3.8, §3.10, #3863 prose)#3886

Merged
bokelley merged 1 commit into
mainfrom
bokelley/measurement-cleanups
May 2, 2026
Merged

fix(schemas): three measurement audit cleanups (§3.8, §3.10, #3863 prose)#3886
bokelley merged 1 commit into
mainfrom
bokelley/measurement-cleanups

Conversation

@bokelley

@bokelley bokelley commented May 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Three small cleanups from the measurement schema audit. All additive or constraint-relaxing — no breaking changes.

§3.8 — attribution-window dedup

optimization-goal.json previously inlined a partial attribution_window (post_click + post_view, no model, post_click required) — divergent from the canonical core/attribution-window.json (post_click + post_view + model, model required).

Fix:

  • optimization-goal.json attribution_window$ref attribution-window.json
  • attribution-window.json model becomes optional (was required); absence means seller's default. Existing buyer payloads that omitted model now validate; previously-valid payloads remain valid.

§3.10 — dooh_metrics.calculation_notes description tightening

Was a one-liner that read like a primary methodology surface. Tightened to clarify row-specific supplementary context only — canonical methodology lives on the measurement vendor's get_adcp_capabilities.measurement.metrics[] block.

#3863forecastable-metric.json description drift fix

Previous description claimed grps, reach, frequency were forecast-only. Wrong — those are in available-metric.json too. Actual forecast-only deltas are audience_size and measured_impressions. Description corrected.

Closes the prose-cross-reference half of #3863. Build-script overlap enforcement deferred to a follow-up.

Files

  • static/schemas/source/core/attribution-window.json — model becomes optional
  • static/schemas/source/core/optimization-goal.json — inline def → $ref
  • static/schemas/source/core/delivery-metrics.json — calculation_notes description tightened
  • static/schemas/source/enums/forecastable-metric.json — description corrected
  • .changeset/measurement-audit-cleanups.md — minor

Test plan

  • Schema validates (build:schemas during commit hook)
  • TypeScript build passes

Related

🤖 Generated with Claude Code

…ose)

§3.8 attribution-window dedup:
- optimization-goal.json: inline attribution_window with conflicting
  constraints (post_click required, no model field) collapses to
  $ref attribution-window.json. One canonical shape.
- attribution-window.json: model becomes optional (was required).
  Absence means seller's default applies. Sellers SHOULD populate
  when committing to a specific methodology. Buyer payloads that
  previously failed validation (no model) now pass; previously-valid
  payloads remain valid.

§3.10 dooh_metrics.calculation_notes description tightening:
- Was a one-liner that read like a primary methodology surface.
- Tightened to clarify row-specific supplementary context only —
  canonical methodology lives on the measurement vendor's
  get_adcp_capabilities.measurement.metrics[] block where it's
  discoverable once and inherited.

#3863 forecastable-metric description drift fix:
- Previous description claimed grps/reach/frequency were forecast-only
  deltas. Wrong — those are in available-metric.json too. Actual
  forecast-only deltas are audience_size and measured_impressions only.
- Closes the prose-cross-reference half of #3863. Build-script overlap
  enforcement deferred.

All changes additive or constraint-relaxing. No breaking changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bokelley bokelley merged commit f44fba3 into main May 2, 2026
13 checks passed
@bokelley bokelley deleted the bokelley/measurement-cleanups branch May 2, 2026 20:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant