ValueinValuein
Pro tier

Backtests that can't see the future

Point-in-time, survivorship-free fundamentals across 30 years and every delisted name — so your Sharpe survives out-of-sample.

The problem

Two silent killers wreck fundamental backtests: look-ahead bias (using restated numbers the market didn't have yet) and survivorship bias (testing only the companies that survived). Most datasets bake in both — so the Sharpe looks great and dies live.

How Valuein does it

  1. 1

    Reconstruct the real universe at every date

    get_pit_universe returns the index constituents as they actually were on any historical date — including names later delisted, merged, or bankrupt.

  2. 2

    Query the data the market had — and only that

    Every fact carries its EDGAR accepted_at timestamp; the SDK's as_of() context filters each row to what was public at that moment. No restated surprises leak backward.

  3. 3

    Smoke-test the factor before you build the pipeline

    run_backtest computes a bounded point-in-time factor / forward-return grid over your tickers and rebalance dates, and get_pit_valuation_ratios returns backtest-safe multiples (P/E, EV/EBITDA, FCF yield) on any historical date — straight from your AI agent.

  4. 4

    Crunch it out-of-core

    The SDK streams R2 Parquet through DuckDB locally — 111M+ facts queried in milliseconds, no per-row API round-trips. Build factors with the AlphaEngine framework.

In practice

Python SDK

Query

with ValueinClient() as c:
    with c.as_of("2015-06-30"):
        df = c.run_template("pit_universe_announcement", index="SP500")

Result

Returns the S&P 500 as it stood on 2015-06-30 — Enron-era casualties included for earlier dates — with only data filed on or before that date.

The outcome

Your backtest trains on the full universe with no peeking — so the edge you measure is the edge you'll actually trade.

Powered by

get_pit_universerun_backtestget_pit_valuation_ratiosget_compute_ready_streamSDK: as_of() + AlphaEngineSDK: 60 SQL templates

Frequently asked

How is look-ahead bias actually prevented?

Each fact stores its SEC acceptance timestamp and is immutable. The SDK's PIT enforcement filters the fact / filing / smart-money tables to as_of, so a query for a past date never sees a later restatement.

Are delisted companies really included?

Yes. Every entity that ever filed with the SEC — including bankrupt and merged names — is in the Pro and Institutional universe. That's what makes it survivorship-free.

Related use cases

Do this with your own data — free.

The free S&P 500 tier needs no credit card. One token works across MCP, the Python SDK, and the Workspace.