Reference

Data Sources & Freshness

Where ScreenerHub data comes from, how often it refreshes, and how to read the freshness indicators in the UI.

5 min read

Data in ScreenerHub is sourced from Financial Modeling Prep (FMP), a financial data aggregator that collects exchange feeds, regulatory filings, and company disclosures. Different data types update on different schedules — prices update every weekday, fundamentals update twice a week, and static metadata updates quarterly.

What data ScreenerHub uses

All screener fields draw from one of four data categories:

Price and market data — End-of-day close prices, volume, adjusted prices, and derived metrics such as market cap and enterprise value. These fields change every trading day and are the basis for all price-ratio filters (P/E, P/B, EV/EBITDA).

Fundamental data — Trailing twelve-month (TTM) income statement, balance sheet, and cash flow figures. Key ratios such as return on equity, debt-to-equity, and gross margin are computed directly from TTM figures. Annual and quarterly period statements are stored separately and feed into the TTM calculations.

Dividend data — Dividend history, annualised yield, payout ratio, and growth streaks. Dividend yield is recalculated each time prices update.

Company metadata — Sector, industry, country, exchange, and other descriptor fields. These change rarely and update on a quarterly cadence.

Refresh cadence

Data typeScheduleNotes
End-of-day pricesMonday–Friday, ~22:00 UTCAfter major exchange closes
FX rates (USD ↔ EUR)Monday–Friday, ~21:00 UTCApplied before the price update
Fundamentals — TTM ratios and key metricsSunday 00:00, Wednesday 21:00 UTCCovers ratios and computed metrics
Fundamentals — annual and quarterly statementsSunday 00:00 UTCFull period financials
Growth metrics (CAGR, dividend streaks)Sunday ~02:00 UTCDerived from period statement data
Dividend historySaturday 22:00 UTCWeekly update
Sector and industry metadataQuarterlyInfrequent; triggered by vendor reclassification

All times are UTC. The pipeline processes the full stock universe in batches and respects FMP's rate limits, which means a scheduled run can take several hours to complete. Occasional delays of a few hours are possible during high-load periods or vendor outages.

Reading the freshness indicator

A freshness indicator appears next to data points on company detail pages. It shows when the value was last loaded from the source — not when the company reported the underlying figure.

For example, a freshness indicator reading "Updated 2 days ago" means the data was loaded into ScreenerHub two days ago. The company may have filed the underlying numbers weeks earlier, or the source may not yet have filed at all.

The screener always runs against the most recently loaded snapshot in the ScreenerHub database. It does not query live exchange feeds.

What happens during a refresh

When a scheduled update runs, the pipeline works through the eligible universe in batches:

  1. Jobs are added to the update queue for each company in scope.
  2. FMP endpoints are queried in batches, respecting rate limits.
  3. New data lands in the underlying database tables.
  4. Materialized views that power the screener are refreshed.
  5. All subsequent screener queries reflect the updated values.

Because the update processes companies sequentially across several hours, results counts can shift during a refresh window. A company whose fundamentals updated early in the run may now pass or fail a filter that another company — still in the queue — has not yet reached.

Known limitations

Some fields update less reliably or with lower coverage than others.

LimitationDetail
Small and micro-cap fundamentalsLower vendor priority; values may lag by one to two extra days compared to large caps
Quarterly statement availabilityDepends on the company filing; data arrives 30–45 days post-quarter end at the earliest
DCF valuationUpdated on an as-needed basis, not on a fixed schedule
BetaBased on a rolling calculation; updated periodically, not daily
Non-US small capsCoverage varies by exchange; some markets have partial or delayed coverage

A blank value in Studio means the vendor does not have coverage for that field for that company — it does not mean the value is zero. Filter logic treats blanks differently from zero, so a rule such as "P/E less than 15" will exclude stocks where P/E is blank.

For a full list of field definitions, units, and per-field coverage notes, see the Field Reference.

Weekend and market-closed behaviour

Price fields do not update on weekends or public holidays because exchanges are closed. If you run a screen on a Saturday, price-based fields — P/E, P/B, EV/EBITDA, 52-week high — reflect Friday's closing prices.

Fundamental and dividend data continues to update on its normal schedule regardless of market hours. A fundamentals refresh may run over a weekend while prices stay fixed.

What it is not

This page describes ScreenerHub's data sourcing and refresh behaviour. It is not:

  • A real-time data guarantee — ScreenerHub is not a live trading system. Values are end-of-day and subject to the schedules above.
  • An intraday data source — Intraday prices are not available in the screener.
  • A complete coverage guarantee — Vendor coverage gaps exist, particularly for non-US small caps and recently listed companies.

For the investing rationale behind individual metrics, see the knowledge base. For strategy playbooks that put these fields to work, see features.

Related