Skip to content

Air and Move

Denpa runs an autonomous broadcast clock: resolving markets become segments, short bumpers sit between them, and the rundown self-fills hours ahead. Airing is a protocol event with a timestamp and a reason, not a scheduling convenience.

Segment {
id, marketId, title, category,
kind: "bumper" | "content",
yesPrice, startsAt, endsAt,
status: "live" | "next" | "upcoming",
curationReason // provenance: what earned the slot (preemptReason when pre-empted)
}
GET /api/network/program?preset=hot|resolving|close&providers=&categories=&limit=&lanes=0
GET /program/timeline · /program/now · /program/next (program-clock service)

MOVE is the measured delta between the snapshot at air time and the snapshot after. It is captured, never reconstructed. Closing-line value in scoring is the hook: operators who called before the move earned their edge before the transmitter switched on.

Airtime that follows momentum can be bought. Any momentum-director built on this doctrine must satisfy:

  • Anti-thrash. No oscillating schedules, no per-tick reshuffles. Preemption is rare by design.
  • Momentum per liquidity. Raw delta is not momentum. Normalise movement against volume and depth so a thin market cannot buy its way on air.
  • Editorial weight stays human. Momentum proposes; the director layer disposes. Fully automatic capture is forbidden.
  • Provenance on every preemption. A director that cannot show its reasoning is a director captured.

The causal loop closes only where attention is performative: culture, music, creators, internet moments. A match score does not bend to airtime, so sports runs the core loop. Which loop a vertical runs is a verticalConfig property, not code. See The causal loop.