betting_combat.services.rounds_data_health
Health of strategy 4’s raw inputs, as rows of the Data & Jobs table
(monitoring.betting_combat.data_health: surface, rows, latest_at, notes) and grouped
findings — the pattern of services/health.py: the store reads, these pure functions
shape, the step writes.
rounds:<table> size and freshness of every rounds tablerounds:card:<YYYY-MM-DD> one recent card: fights, markets per series, how many settled markets have their candles and trades (and over their whole life), UFCStats bouts and round-stat rows, card segments, judge scoresrounds:duplicate_listings Kalshi winner events that list the same fight twice (the research found three; a duplicate is kept once, first listed)Functions
card_date
card_date(event_ticker: str) -> dt.date | NoneThe card date in a Kalshi event ticker (KXUFCFIGHT-26SEP26ROSBAR -> 2026-09-26).
card_rows
card_rows(markets: Sequence[Mapping[str, Any]], ufc_events: Sequence[Mapping[str, Any]], event_dates: Mapping[str, str], segments: Mapping[dt.date, int], judges: Mapping[str, int], today: dt.date) -> tuple[list[dict[str, Any]], Counter[str]]One row per recent card, and findings: markets failing to pull (any age), and for cards past the grace period, settled markets missing candles or trades and cards without UFCStats round stats.
A settled market is: pulled over its whole life (open to close), pulled over part of it
(a research-seeded market not widened yet: never an alarm, rounds_data_build
widens it), failing (its pull raised; ‘error’), or missing (the alarm).
duplicate_listings
duplicate_listings(winner_markets: Iterable[Mapping[str, Any]]) -> list[list[str]]Groups of winner events on one card date that list the same two fighters.
duplicate_row
duplicate_row(groups: Sequence[Sequence[str]]) -> dict[str, Any]surface_rows
surface_rows(counts: Sequence[Mapping[str, Any]]) -> list[dict[str, Any]]