Skip to content

Index constituents

The for_index selector resolves a published index short id to its constituent ticker universe and drives the same per-symbol subscribe the symbol-first accessor argument ships. Operators no longer maintain a constituent table — the resolution happens inside the engine behind one builder call.

Supported indices

Short idIndexConstituentsAliases
SPXS&P 500~500SPY
NDXNasdaq-100~100QQQ
DJIDow Jones Industrial Average30DIA
SP400S&P MidCap 400~400MDY
SP600S&P SmallCap 600~600SLY
CUSTOMCaller-supplied basketn(verbatim ticker list)

The bare-string accept-shape canonicalises case — "spx", "Spx", and "SPX" resolve identically. Unrecognised names fall through to an empty custom payload; the subscribe-side materialiser surfaces a structured invalid-spec rejection citing the offending input.

The Russell 2000 (RUT / IWM) and Russell 3000 (R3K / IWV) are not in the constituent substrate today. Desks targeting those universes pass their own ticker list to the analytic accessor.

Hydration semantics

Hydration is lazy and per-index. The first for_index("SPX").subscribe(...) triggers one constituent fetch; subsequent subscribes against the same index reuse the cached symbol list with no further fetch. The cache is session-level — every analytic builder on a single client shares one constituent map.

The constituent source is offline after the first successful hydration: every constituent file lives in a local ETag-revalidated cache. The cache root defaults to a per-user cache directory and is overridable by environment variable for deployments that prefer a different location.

Tier-cap interaction

Index resolution happens before the cap-aware subscribe gate, and the gate is symbol-list-count agnostic — for_index("SPX") and a verbatim 500-symbol accessor argument produce identical gate paths once the universe is materialised. The published (security type, tier, subscription kind, subscribe mode) cap matrix decides the outcome; a broad index union can exceed a narrower tier's quote / trade cap. See tier quotas for the envelope and universe selection for the analytics that consume an index universe.

Over-cap subscribes surface as a structured subscription-cap rejection carrying the matched (analytic, security type, kind, observed tier, requested, cap) quad and a one-line operator-facing upgrade-path remediation.

Methodology and data sourcing

Constituent universes are resolved through a layered source ladder, ordered by priority so the most recent reliable layer wins:

  1. Sponsor CDNs (iShares / Invesco / SPDR) — forward-going daily holdings sheets, terms-of-service permitting.
  2. OSS GitHub mirrors — daily and monthly constituent histories (1996-present), permissively licensed, used as cross-check layers.
  3. Internet Archive Wayback Machine — patchy daily snapshots, fair use.
  4. SEC EDGAR N-PORT filings — the regulated baseline, under the Investment Company Act of 1940 Rule 30b1-7 (17 CFR section 270.30b1-7), public domain.

The N-PORT baseline is the regulated source for portfolio-composition disclosures of registered open-end ETFs (the IVV / QQQ / DIA tracking vehicles whose holdings stand in as a proxy for the SPX / NDX / DJI constituent universes). The 60–90 day N-PORT filing lag is an unavoidable regulatory constraint on the baseline; the sponsor CDN and GitHub mirror layers close the recency gap.

See also

Proprietary. All rights reserved.