Workspace beta is live — BYO-LLM chat wired to 57 SEC tools. Try it free →
ValueinValuein
For quantitative researchers & systematic traders

Point-in-time fundamentals. Your backtest can't see the future.

Every fact is stamped with accepted_at — the exact SEC acceptance timestamp — so a signal generated on date T only sees what was public on date T. Survivorship-bias-free by default: the companies that went bankrupt are still in the dataset, because that's the whole point.

  • accepted_at timestamps on every fact — no silent restatement leakage.
  • Full universe including delisted, bankrupt, and acquired names, keyed on CIK.
  • DuckDB-native Parquet — query 105M+ facts locally, no egress on the sample tier.
  • Standardized concepts so you rank cross-sectionally without per-filer tag mapping.

Built for

Quants

  • Point-in-time accurate
  • Survivorship-bias-free
  • Every number cited to its filing

Works where you do

Python SDKBulk Data APIMCP Server
Recommended plan
Pro

Point-in-time accurate · Survivorship-bias-free · Every number cited to its filing

$31,980/yr
Bloomberg seat → $49/mo
1993
history floor, survivorship-free
0
look-ahead leakage by design

The pain points we remove

Quants don't lose to bad models — they lose to bad data. Every shortcut in the data layer fakes alpha that disappears live. These are the traps we close at the source.

1

Survivorship bias inflates every backtest

Test on today's index constituents and you implicitly exclude the Enrons and Lehmans — exactly the names a quality screen would have flagged. The backtest looks like genius.

2

Look-ahead bias from restated/backfilled data

Vendors quietly backfill corrections into the time series without flagging them. Use a revised figure on a signal date and you've imported the future.

3

Point-in-time data is behind an institutional paywall

Compustat Snapshot / Bloomberg PIT / CRSP-Compustat via WRDS are real but priced for funds and universities — Bloomberg runs ~$32K/seat. Independents are locked out.

4

Aligning fundamentals to the trading calendar

You need the acceptance date, not the period-end, and Q4 isn't a standalone XBRL period. The standard 'apply a reporting lag' advice either leaks data or throws away alpha.

5

The 80% data-cleaning tax + signal decay

Cleaning is adversarial — every shortcut introduces a bias that fakes alpha — and ~50% of anomaly alpha decays post-publication, so the researcher stuck cleaning data is structurally late.

Built around your actual cadence

From the daily grind to the month-end crunch — Valuein fits the rhythm of the work, not the other way around.

Every day
  • Pull and refresh signal inputs
  • Run incremental backtests
  • Sanity-check that no future-dated data leaked into yesterday's signal
Every week
  • Re-run factor IC / decay diagnostics
  • Reconstruct point-in-time universes for new windows
  • Test candidate signals against a holdout
Month / quarter-end
  • Survivorship-correct universe rebalance
  • Ingest the new 10-Q/10-K wave, re-derive trailing fundamentals
  • Restatement audit: did anything I traded on get revised?

What you can do with Valuein

Each job you need done, mapped to the exact capability that delivers it.

Fundamentals as-known on date T

Every fact carries accepted_at; the SDK enforces an as_of cutoff at view creation so signals can't peek.

Datasets · Python SDK PIT

The universe as it existed on date T

get_pit_universe + index membership with effective/removal dates — dead companies included.

Survivorship-free universe

Reconstruct restatement history

Original-vs-amended values are both available, so you can quantify and test on as-reported numbers.

Datasets · verify_fact_lineage

Get to a clean columnar dataset fast

Pre-standardized R2 Parquet queried out-of-core with DuckDB — skip the parser and the cleaning.

Bulk Data API · Parquet

Rank cross-sectionally across filers

~11,966 raw XBRL tags collapsed to ~286 canonical concepts — one Revenue, one EBIT, one FCF.

Standardized concepts

Point-in-time fundamentals, stamped with accepted_at. Your backtest can't see the future.

Survivorship-bias-free by default — the companies that went bankrupt are still here, because that's the point.

Compustat-grade point-in-time, without the WRDS seat or the $32K terminal.

Frequently asked

How exactly do you prevent look-ahead bias?

Every fact stores accepted_at — the SEC EDGAR acceptance timestamp. The SDK filters PIT tables to your as_of date at DuckDB view creation, so a query for date T only returns facts that were public on or before T. Restatements filed later are invisible until their own acceptance date.

Are delisted and bankrupt companies really included?

Yes. The universe is keyed on CIK and spans the full SEC population — active plus inactive, bankrupt, merged, and taken-private — from 1993 to present, so you screen on the full population, not just today's survivors.

What format is the data, and can I query it locally?

Columnar Parquet (ZSTD) in R2. The Python SDK runs out-of-core DuckDB queries against it; Polars and Spark read it natively too. The sample tier streams real data with zero egress and no API key.

How does pricing compare to Compustat / Bloomberg?

Pro is $49/mo and Institutional is $499/mo, versus ~$32K/seat for a Bloomberg terminal or a university-gated WRDS seat for Compustat/CRSP. Same single token unlocks the SDK, MCP, and Bulk API.

Point-in-time fundamentals, stamped with accepted_at. Your backtest can't see the future.

105M+ standardized SEC facts across 19,000+ companies, 1993–present. Free to start — no credit card.