Universe
PIT-safe
Get Point-in-Time Universe
get_pit_universesp500
full
Returns the exact set of active companies as of a specific historical date. Essential for survivorship-bias-free universe construction in backtests — prevents future additions from appearing in historical portfolios. Filterable by index membership and sector.
Example Call
# Using the Valuein MCP server from Python (via MCP SDK)
# Or call directly from Claude / Cursor after setup
result = await client.call_tool(
"get_pit_universe",
arguments={
"as_of_date": "EXAMPLE"
}
)
print(result)Direct tool call:get_pit_universe(as_of_date="2020-03-01", index="SP500")
Inputs
| Parameter | Type | Required | Description |
|---|---|---|---|
as_of_date | string | required | YYYY-MM-DD. Returns companies active on this exact date. |
index | string | optional | Filter to index members: SP500, RUSSELL2000, etc. |
sector | string | optional | Filter by sector (case-insensitive partial match). |
Output Fields
ciktickernamesectorindustrysic_codestatusis_sp500Example Response
{
"cik": "0000320193",
"ticker": "AAPL",
"name": "Apple Inc.",
"sector": "Technology",
"industry": "Consumer Electronics",
"sic_code": "3674",
"status": "ACTIVE",
"is_sp500": true
}Returns the exact 505 S&P 500 constituents as of March 1, 2020 — before COVID-era additions.
Notes
This is the only tool that correctly handles the universe construction problem for backtesting. Using the current S&P 500 list for 2020 data introduces survivorship bias.
Plan Access
sample
— Not includedsp500
✓ Availablefull
✓ Available