Skip to content

mostlyright.markets.earnings.registries

Earnings codegen registries — source-of-truth dicts (Phase 27, 27-02).

Three immutable registries the scripts/export_schemas.py codegen builders read to emit the committed schemas/earnings-*.json files consumed by the TS codegen, the satellite (W1), and the markets resolver (W2/27-05):

WEBCAST_PROVIDER_FINGERPRINTS : Host-substring → provider id. The discovery-time codegen’d copy of the satellite’s authoritative provider fingerprints (D-27.1 “two homes”) — lets the SDK/extension NAME a webcast provider without capturing audio. Seeded from CONTEXT §5 / RESEARCH §1: events.q4inc.com/q4cdn = Q4, media-server.com = Notified, webcasts.com = GlobalMeet, choruscall.com/veracast = Chorus Call, youtube.com = self-hosted.

EARNINGS_SERIES_ROSTER : The ~149-ticker KXEARNINGSMENTION* series roster (cheap registry of series tickers). Most are dormant placeholder stubs between earnings cycles and light up ~1-2 days pre-call (RESEARCH-MARKETS §1.3).

TICKER_HQ_TIMEZONE : Ticker → IANA hq-timezone. Load-bearing for the point-in-time hq-tz correction in 27-06/27-07 (mirrors the station→tz role of stations.json).

EARNINGS_CALENDAR_SEED : The venue-derived earnings-calendar snapshot (D-27.7) — a small seed shape, NOT a live feed. Seeded with the confirmed upcoming dual-venue calls from RESEARCH-MARKETS §4 as the deterministic test fixture.

Every TICKER_HQ_TIMEZONE value (and every calendar-seed hq_timezone) is validated against zoneinfo at import time — a typo fails loud rather than silently corrupting the PIT correction. The immutability idiom (MappingProxyType / frozenset) mirrors polymarket.KNOWN_WRONG_STATIONS.

WEBCAST_PROVIDER_FINGERPRINTSHost-substring → canonical provider id.
EARNINGS_SERIES_ROSTERThe earnings-mention series roster.
TICKER_HQ_TIMEZONETicker → IANA hq-timezone.
EARNINGS_CALENDAR_SEEDConfirmed upcoming-call snapshot rows (the deterministic test fixture, NOT a live feed — D-27.7).

mostlyright.markets.earnings.registries.EARNINGS_CALENDAR_SEED : Final[tuple[dict[str, str], …]] = ({‘call_scheduled_at’: ‘2026-06-30T21:00:00Z’, ‘hq_timezone’: ‘America/Los_Angeles’, ‘provider’: ‘q4’, ‘ticker’: ‘NKE’}, {‘call_scheduled_at’: ‘2026-07-01T12:00:00Z’, ‘hq_timezone’: ‘America/New_York’, ‘provider’: ‘notified’, ‘ticker’: ‘STZ’}, {‘call_scheduled_at’: ‘2026-07-01T13:00:00Z’, ‘hq_timezone’: ‘America/Chicago’, ‘provider’: ‘q4’, ‘ticker’: ‘GIS’}, {‘call_scheduled_at’: ‘2026-07-10T14:00:00Z’, ‘hq_timezone’: ‘America/New_York’, ‘provider’: ‘choruscall’, ‘ticker’: ‘DAL’})

Section titled “mostlyright.markets.earnings.registries.EARNINGS_CALENDAR_SEED : Final[tuple[dict[str, str], …]] = ({‘call_scheduled_at’: ‘2026-06-30T21:00:00Z’, ‘hq_timezone’: ‘America/Los_Angeles’, ‘provider’: ‘q4’, ‘ticker’: ‘NKE’}, {‘call_scheduled_at’: ‘2026-07-01T12:00:00Z’, ‘hq_timezone’: ‘America/New_York’, ‘provider’: ‘notified’, ‘ticker’: ‘STZ’}, {‘call_scheduled_at’: ‘2026-07-01T13:00:00Z’, ‘hq_timezone’: ‘America/Chicago’, ‘provider’: ‘q4’, ‘ticker’: ‘GIS’}, {‘call_scheduled_at’: ‘2026-07-10T14:00:00Z’, ‘hq_timezone’: ‘America/New_York’, ‘provider’: ‘choruscall’, ‘ticker’: ‘DAL’})”

Confirmed upcoming-call snapshot rows (the deterministic test fixture, NOT a live feed — D-27.7). call_scheduled_at is an ISO-8601 UTC instant derived from the ET call time in RESEARCH-MARKETS §4 (2026 EDT = UTC-4). provider is a value of WEBCAST_PROVIDER_FINGERPRINTS; hq_timezone mirrors TICKER_HQ_TIMEZONE. The satellite refreshes the authoritative calendar; this is the SDK look-ahead seed.

mostlyright.markets.earnings.registries.EARNINGS_SERIES_ROSTER : Final[frozenset[str]] = frozenset({‘AAPL’, ‘AMZN’, ‘AVGO’, ‘BRK’, ‘C’, ‘CRM’, ‘DAL’, ‘GIS’, ‘GOOGL’, ‘GS’, ‘JNJ’, ‘JPM’, ‘META’, ‘MSFT’, ‘NFLX’, ‘NKE’, ‘NVDA’, ‘ORCL’, ‘PEP’, ‘PLTR’, ‘STZ’, ‘UBER’})

Section titled “mostlyright.markets.earnings.registries.EARNINGS_SERIES_ROSTER : Final[frozenset[str]] = frozenset({‘AAPL’, ‘AMZN’, ‘AVGO’, ‘BRK’, ‘C’, ‘CRM’, ‘DAL’, ‘GIS’, ‘GOOGL’, ‘GS’, ‘JNJ’, ‘JPM’, ‘META’, ‘MSFT’, ‘NFLX’, ‘NKE’, ‘NVDA’, ‘ORCL’, ‘PEP’, ‘PLTR’, ‘STZ’, ‘UBER’})”

The earnings-mention series roster. Cheap registry of series tickers — the capture fleet only fires on the ≤~10 calls live in any given week (calendar- driven), but the resolver enumerates per-company series from this roster rather than a global status=open sweep (which never reaches earnings- mention before timeout — RESEARCH-MARKETS §1.3, a hard EARN-27-03 constraint). Seeded with the live cohort + the dormant mid-July cohort that lights up per RESEARCH-MARKETS §4; extend as the universe is enumerated.

mostlyright.markets.earnings.registries.TICKER_HQ_TIMEZONE : Final[Mapping[str, str]] = mappingproxy({‘GIS’: ‘America/Chicago’, ‘NKE’: ‘America/Los_Angeles’, ‘PEP’: ‘America/New_York’, ‘STZ’: ‘America/New_York’, ‘DAL’: ‘America/New_York’, ‘JPM’: ‘America/New_York’, ‘C’: ‘America/New_York’, ‘GS’: ‘America/New_York’, ‘JNJ’: ‘America/New_York’, ‘NFLX’: ‘America/Los_Angeles’})

Section titled “mostlyright.markets.earnings.registries.TICKER_HQ_TIMEZONE : Final[Mapping[str, str]] = mappingproxy({‘GIS’: ‘America/Chicago’, ‘NKE’: ‘America/Los_Angeles’, ‘PEP’: ‘America/New_York’, ‘STZ’: ‘America/New_York’, ‘DAL’: ‘America/New_York’, ‘JPM’: ‘America/New_York’, ‘C’: ‘America/New_York’, ‘GS’: ‘America/New_York’, ‘JNJ’: ‘America/New_York’, ‘NFLX’: ‘America/Los_Angeles’})”

Ticker → IANA hq-timezone. Load-bearing for the PIT hq-tz correction (27-06/27-07). HQ locations: NKE = Beaverton OR (Pacific), GIS = Minneapolis MN (Central), STZ = Victor NY (Eastern), PEP = Purchase NY (Eastern), DAL = Atlanta GA (Eastern), JPM/C/GS = New York NY (Eastern), JNJ = New Brunswick NJ (Eastern), NFLX = Los Gatos CA (Pacific). Validated against zoneinfo at import (see _validate_timezones below).

mostlyright.markets.earnings.registries.WEBCAST_PROVIDER_FINGERPRINTS : Final[Mapping[str, str]] = mappingproxy({‘q4inc’: ‘q4’, ‘q4cdn’: ‘q4’, ‘media-server.com’: ‘notified’, ‘webcasts.com’: ‘globalmeet’, ‘choruscall.com’: ‘choruscall’, ‘veracast’: ‘choruscall’, ‘youtube.com’: ‘self_hosted’})

Section titled “mostlyright.markets.earnings.registries.WEBCAST_PROVIDER_FINGERPRINTS : Final[Mapping[str, str]] = mappingproxy({‘q4inc’: ‘q4’, ‘q4cdn’: ‘q4’, ‘media-server.com’: ‘notified’, ‘webcasts.com’: ‘globalmeet’, ‘choruscall.com’: ‘choruscall’, ‘veracast’: ‘choruscall’, ‘youtube.com’: ‘self_hosted’})”

Host-substring → canonical provider id. Substring (not exact host) because a webcast URL host may be events.q4inc.com OR a *.q4cdn.com asset CDN — both fingerprint to "q4". The satellite holds the authoritative copy; this is the SDK-side naming copy (D-27.1 two homes).