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).
| Rule | Field | Severity | What it enforces (the message your team sees) |
|---|---|---|---|
| panel_id_format | panel_id | panel_id must match format e.g. LGM-UK-00001 | |
| market_required | market | market is required | |
| market_allowed | market | market 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_required | panel_type | panel_type is required | |
| panel_type_allowed | panel_type | panel_type must be one of: CLASSIC, DIGITAL, LED, PROJECTOR, AIRPORT, TRANSIT | |
| impression_start_format | impression_start | impression_start must be ISO 8601 e.g. 2024-06-01T09:00:00Z | |
| impression_end_format | impression_end | impression_end must be ISO 8601 e.g. 2024-06-01T09:30:00Z | |
| impression_end_after_start | impression_end | error | impression_end must be later than impression_start (inverted timestamps cause phantom billing) |
| transaction_type_allowed | transaction_type | transaction_type must be CHARGE, CREDIT, or ADJUSTMENT | |
| revenue_required | revenue_gbp | revenue_gbp is required | |
| revenue_non_negative_for_charges | revenue_gbp | revenue_gbp must be >= 0 for CHARGE records (credits are exempt) | |
| revenue_ceiling | revenue_gbp | warning | revenue_gbp > 500000 is unusually high — verify before processing |
| advertiser_id_format | advertiser_id | advertiser_id must match format ADV-XXXXXXXX | |
| creative_id_required | creative_id | creative_id is required | |
| campaign_ref_required | campaign_ref | campaign_ref is required | |
| dwell_seconds_min | dwell_seconds | dwell_seconds must be >= 1 | |
| dwell_seconds_max | dwell_seconds | warning | dwell_seconds > 3600 is unusual — verify display duration |
| refresh_rate_required_for_digital | refresh_rate_hz | error | refresh_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 →