### The opportunity report and the statement check: what a channel's records prove, beside what a platform reported

- **`wai.delivery.opportunity`** ([`extensions/opportunity-report.md`](extensions/opportunity-report.md)), a new
  record. An **opportunity report**, `WOR1`, states for one party of a revenue-share contract and one period the ad
  breaks that aired in the programmes of the splits it shares in: the breaks a room the contract names makes of its
  signed cues (`wai.live.ads` §4.3), each cue's SCTE 35 section read for its id, duration and slots (a placement
  opportunity's `sub_segments_expected`, or the room policy's slots) and held to the cue's summary, and the ad entries
  of the channel's signed program-as-run that no cue covers; each placed at its start on the window that aired it and
  attributed to the programme on air by the contract's map and rule. Each line, per split and class (cued,
  scheduled), states the breaks, their seconds, their slots and those with none, with a citation digest of the cues,
  policies and runs it came from. The report is signed by its issuer, and every figure recomputes from the records.
- **A reported statement**: a platform's figures for the period, per day or per programme, in a documented JSON or
  CSV (RFC 4180) form; read, labelled reported, and never evidence.
- **A statement check**, `WCK1`: per period, day and programme, the opportunities, the reported impressions and
  revenue, the implied fill (impressions per slot, in millionths) and revenue per slot; flags for a figure no break
  stands behind and for a line far from the period's own rate at bounds the check states; and, where the operator's
  signed revenue-share statement of the same party and period is given, its impressions and revenue (gross, or the
  party's part) beside the reported ones.
- **Operations** `opportunity.create` (`wai opportunity create`), `opportunity.verify` (`wai opportunity verify`, a
  report's or a check's document) and `statement.check` (`wai statement check`), in a build with the feature
  `opportunity_report`, under the agent rules.
- **Conformance**: `live-conformance/opportunity/`, written by `wai_opportunity_vectors` from fixed seeds: a channel's
  day of two owners, a room cueing breaks with every kind of section the text reads, the operator's signed
  statements of the day, the reports of both owners and the operator, checks in JSON and CSV (one under-reporting an
  owner's programme), and a refused vector for each reason. Its second implementation,
  `live-conformance/opportunity_report_verify.py`, verifies rooms with `live_ads_verify.py` and contracts, runs and
  statements with `revenue_share_verify.py`, and recomputes every break, line and flag itself.
- `revenue_share`'s run reader and asset rule are shared with the new module (`pub(crate)`); no record's bytes change.

