Coverage Analysis Across Your Universe
Before you trust a dataset, check what fraction of your universe it actually covers, and whether the names it skips are random or systematically the ones you care about most.
Prerequisites: Evaluating a New Dataset: The Full Checklist, Profiling a Raw Feed: Rows, Keys and Nulls
A vendor tells you their dataset "covers the US equity market." What they usually mean is: it covers the market on the days and names they happened to collect. Coverage analysis is the exercise of measuring, precisely, what fraction of your trading universe the dataset actually has data for, at each point in time — and, more importantly, whether the gaps are random or lopsided.
Coverage is not one number. It is a ratio that moves with time, market cap, sector and listing venue, and a dataset that looks fine on average can be nearly empty exactly where your strategy needs it most.
Computing a coverage ratio
For a given date, coverage is simply the count of your universe names that have a non-null observation, divided by the size of your universe:
That single ratio hides everything useful, so it should always be sliced. Cut it by market-cap decile, by sector, and by listing exchange, then plot each slice over time rather than reporting one headline percentage.
Worked example
A research universe holds 1,500 US equities. A new alternative dataset returns non-null observations for 930 of them on a typical day — an 62% headline coverage rate. Split by market-cap quintile, coverage is 98% in the top quintile and only 21% in the bottom quintile. A signal built from this dataset and tested against the full universe will effectively be a large-cap-only signal wearing the marketing of a broad-universe one, and any backtest that fills the missing 79% of small caps with a neutral value (zero, or the cross-sectional mean) is quietly making a bet about those names rather than admitting it has no view.
What this means in practice
The fix is not to reject every dataset with gaps — few real ones are complete — but to decide explicitly how to handle them: shrink the tradable universe to where coverage is reliable, or treat missingness itself as information (a stock with no data on an alternative-data feed might be a systematically different kind of stock). Either choice should be a conscious research decision, documented in the report, not something imputation quietly decided for you.
Reporting a single average coverage number and moving on is the most common mistake. A dataset with 90% average coverage that drops to 40% specifically for the small-cap, low-liquidity names your strategy trades most aggressively will make the backtest look far more reliable than the live signal will actually be.
Related concepts
Practice in interviews
Further reading
- Kenneth French Data Library, documentation notes on sample construction