Skip to main content

Esports Signals

Esports signals expose collected social and news items together with derived match-level signals for esports.

Backing views

signals.esports_source_items
signals.esports_match_signals

These views mirror the public.esports_source_items and public.esports_match_signals tables.

Suggested flow

  1. Load esports source items with the same match_id used by the main esports feed.
  2. Review recency, publisher, source, and extracted teams or players.
  3. Load esports match signals for the same match_id.
  4. Rank signals by impact_score or confidence_score.
  5. Join back through source_item_id when you need the original source item that produced a signal.

Supported source values

  • x
  • reddit
  • google_news

Relationship between the views

  • signals.esports_match_signals.source_item_id points to signals.esports_source_items.id.
  • match_id is stored in both views so you can query either layer directly by match.
  • Deleting a source item cascades to related match signals in the backing tables.

What the source items view contains

  • ingestion metadata such as source, external_id, url, publisher, and published_at
  • content fields such as title, content_snippet, author_name, and author_handle
  • enrichment payloads such as engagement, teams, players, and raw_payload
  • dedupe and audit fields such as dedupe_hash, collected_at, created_at, and updated_at

What the match signals view contains

  • signal identity fields such as signal_type, entity_type, entity_id, and market_direction
  • scoring fields such as sentiment_score, impact_score, and confidence_score
  • human-readable explanation fields such as summary and reason
  • additional enrichment fields such as tags, metadata, created_at, and updated_at

Notes

  • All row ids are UUIDs generated with gen_random_uuid().
  • JSON payload fields are returned as jsonb.
  • Use the endpoint pages in this section for field-level filtering examples.