Starter contract

proof_of_play

18 rules · plain YAML · starts in observation mode

OpenDQV Cloud starter template (v0.1) — your tenant inherits this baseline. First customer edit creates v1.0 in your audit trail; pin by yaml_hash for replay. OOH panel impression validation — out-of-home advertising proof-of-play feed. Validates impression records before billing reconciliation and regulatory reporting. Authored with reference to OOH industry requirements (Roundtable 6, 2026-03-08).

These are starting points you own. Every rule below ships in the trial, starts in observation mode, and is yours to read, edit, or delete from day one. Rules that reference a lookup list (lookup_file) validate against reference data you control in your tenant.
Rules as at 29 August 2026 — starting points you own, not a maintained regulatory feed. We correct errors in these samples; tracking regulatory change in your active contracts is yours.
RuleFieldSeverityWhat it enforces (the message your team sees)
panel_id_formatpanel_idpanel_id must match format e.g. LGM-UK-00001
market_requiredmarketmarket is required
market_allowedmarketmarket must be one of: UK, DE, FR, ES, IT, NL, BE, PL, SE, NO, DK, CH, AT, PT, IE, FI, AU, NZ, SG, HK, AE, CA, US
panel_type_requiredpanel_typepanel_type is required
panel_type_allowedpanel_typepanel_type must be one of: CLASSIC, DIGITAL, LED, PROJECTOR, AIRPORT, TRANSIT
impression_start_formatimpression_startimpression_start must be ISO 8601 e.g. 2024-06-01T09:00:00Z
impression_end_formatimpression_endimpression_end must be ISO 8601 e.g. 2024-06-01T09:30:00Z
impression_end_after_startimpression_enderrorimpression_end must be later than impression_start (inverted timestamps cause phantom billing)
transaction_type_allowedtransaction_typetransaction_type must be CHARGE, CREDIT, or ADJUSTMENT
revenue_requiredrevenue_gbprevenue_gbp is required
revenue_non_negative_for_chargesrevenue_gbprevenue_gbp must be >= 0 for CHARGE records (credits are exempt)
revenue_ceilingrevenue_gbpwarningrevenue_gbp > 500000 is unusually high — verify before processing
advertiser_id_formatadvertiser_idadvertiser_id must match format ADV-XXXXXXXX
creative_id_requiredcreative_idcreative_id is required
campaign_ref_requiredcampaign_refcampaign_ref is required
dwell_seconds_mindwell_secondsdwell_seconds must be >= 1
dwell_seconds_maxdwell_secondswarningdwell_seconds > 3600 is unusual — verify display duration
refresh_rate_required_for_digitalrefresh_rate_hzerrorrefresh_rate_hz is required when panel_type is DIGITAL

Run your own data against this contract in the free trial — drop a CSV in the dashboard, no code, no credit card. Start free trial →