Methodology // every source, on its own terms

Where the data comes from

StockTools reads data from 27 outside hosts run by 23 providers. For each host, the card below says who owns it, what we use it for, how often we read it, how far behind the event its figures run, what it costs us, and what stops working if it goes away. Everything here is read from the register our build checks, so no source can reach the code without appearing on this list.

11 of the 27 leave a record of each good read; the rest are read when a page asks, or by jobs that keep no such record. Counted from the register when the page is built, at most every 30 minutes, which is also when the last good reads are taken from the run store.

Every source we read

US Securities and Exchange Commission

www.sec.gov
What we use it for
filings, Form 4, 13F, company tickers
How often we read it
Scheduled jobs rebuild the Form 4 dataset and the 13F fund holdings, and refresh each covered company's stored Form 4 rows, stalest first. Pages that list a company's filings read EDGAR when asked and cache the answer for up to a day; the offering calendar's newest-filings lane is cached 2 minutes. Schedule: every 6 hours at :10 UTC; every 6 hours at :50 UTC; every 15 minutes.
How far behind it runs
A filing is public the moment EDGAR accepts it. Form 4 is due within two business days of the trade. Form 13F is due within 45 days after each quarter ends, so a fund's holdings can be four and a half months old by the time its next filing lands. Our scheduled jobs run every 6 hours on top of that.
Last good read
2026-10-22 00:51 UTC (1h ago) · stored dataset: whales-all
Cost to us
Free, no key. The SEC asks for at most 10 requests a second from a client that names itself.
If it went away
Form 4 insider trades, 13F fund holdings, filing lists and links, the offering calendar, earnings date confirmations, and the ticker lookup behind most pages.

US Securities and Exchange Commission

data.sec.gov
What we use it for
XBRL companyfacts, frames, submissions
How often we read it
A scheduled job rebuilds the stored company snapshots. Some per-company tools also read a company's XBRL facts directly and cache what they derive for 6 to 24 hours. Schedule: every 6 hours at :40 UTC.
How far behind it runs
Each figure is as of the filing it comes from. A 10-Q is due 40 or 45 days after the quarter ends and a 10-K 60 to 90 days after the year ends, depending on the company's size; the XBRL facts appear when the filing is accepted.
Last good read
2026-10-21 06:44 UTC (19h ago) · run log: Company snapshots
Cost to us
Free, no key, under the same SEC fair-access limits.
If it went away
Every company workspace: fundamentals, scores, dividends and share counts, and the screener built on them.

US Securities and Exchange Commission

efts.sec.gov
What we use it for
EDGAR full-text search
How often we read it
Read when a page asks: filing search answers are cached 1 hour and the offering calendar 5 minutes. A scheduled job runs the saved-search alerts. Schedule: Mon to Fri at 15:20 UTC.
How far behind it runs
EDGAR indexes a filing for search after accepting it. We measured no lag on 2026-07-31, but the SEC promises none, and a result carries its filing date without a time.
Last good read
2026-10-21 15:20 UTC (10h ago) · run log: Saved-search alerts
Cost to us
Free, no key, under the same SEC fair-access limits.
If it went away
Filing search, saved-search alerts, the offering calendar, the IPO tracker, cash runway and the earnings date sweep.

kadoa-org/congress-trading-monitor

raw.githubusercontent.com
What we use it for
congressional trade records
How often we read it
Read at most every 6 hours, cached between reads; the upstream project rebuilds its file daily. A scheduled job joins it to the earnings calendar. Schedule: every 6 hours at :50 UTC.
How far behind it runs
The STOCK Act gives a member 30 days from learning of a trade, and no more than 45 days from the trade, to report it, and some report later. Add up to a day for the compilation and up to 6 hours for our cache.
Last good read
2026-10-22 00:52 UTC (1h ago) · stored dataset: congress-join
Cost to us
Free.
If it went away
Congressional trades, member pages, the disclosure-decay study and the congress feed.

@unitedstates project

unitedstates.github.io
What we use it for
congress-legislators dataset
How often we read it
Read when a member page asks, cached 7 days.
How far behind it runs
The roster as the project last published it; it changes when members do.
Last good read
Not recorded: read when a page asks, with no stored run to date.
Cost to us
Free, public domain.
If it went away
Member details on the congress member pages.

Databento

hist.databento.com
What we use it for
end-of-day prices (EQUS.SUMMARY) and the owner-only trade review tape
How often we read it
The movers job reads every listed symbol's daily bars and keeps them in the bar store that charts, scans and price pages read. Industry pages read it on their own schedule, and a check of our licence window runs every 15 minutes. Schedule: every 6 hours at :55 UTC; Tue to Sat at 07:10 and 13:10 UTC; every 15 minutes.
How far behind it runs
End of day, never intraday. A session can be read only once our licence's boundary has passed it, which we observe every 15 minutes instead of assuming, so a price is the close of the latest completed session.
Last good read
2026-10-21 00:55 UTC (25h ago) · run log: Market-wide movers
Cost to us
Paid, through our Databento account.
If it went away
Every stock price, change and market cap, the charts, the movers board, the market map, scans and breadth.

FINRA

api.finra.org
What we use it for
consolidated short interest
How often we read it
Read at most every 6 hours, cached between reads, and by the scheduled job that builds the squeeze lists. Schedule: Tue to Sat at 00:30 UTC.
How far behind it runs
Short positions as of the 15th and the last business day of each month. FINRA publishes each set about seven business days later, so the newest figures are 9 to 26 days old.
Last good read
2026-10-22 00:30 UTC (1h ago) · run log: Positioning lists
Cost to us
Free, no key. Its terms ask us to name FINRA as owner and source and to charge nothing for the data, and readers may not redistribute it.
If it went away
The short interest pages, the squeeze screener, days to cover and the short interest CSV export.

FINRA

cdn.finra.org
What we use it for
Reg SHO daily short sale volume and short interest history files
How often we read it
Two scheduled jobs: one takes each session's short volume file, the other each new short interest settlement for the history. Schedule: Mon to Fri at 23:30 UTC; Tue to Sat at 00:10 UTC.
How far behind it runs
Short volume: the session's file, read the evening it is posted. Short interest history: the same twice-monthly settlements as the API above, 9 to 26 days old.
Last good read
2026-10-22 00:41 UTC (1h ago) · run log: Short interest settlements
Cost to us
Free, no key.
If it went away
Daily short volume, short interest history charts and the per-ticker short lookups.

Cboe Global Markets

cdn.cboe.com
What we use it for
delayed option quotes behind max pain, implied move, IV smile, GEX and per-position Greeks
How often we read it
Read when a page asks: max pain and positions cached 15 minutes, implied moves 1 hour. A scheduled snapshot after each weekday close feeds the accuracy ledger. Schedule: Mon to Fri at 21:15 UTC.
How far behind it runs
Cboe's delayed quotes, about 15 minutes behind the market, plus our cache.
Last good read
Not recorded: this job keeps no record of good reads we can date.
Cost to us
Free public feed.
If it went away
Max pain, implied move, the IV smile, GEX, per-position Greeks and the max pain accuracy ledger.

Cboe Global Markets

www.cboe.com
What we use it for
Cboe equities trade halts download
How often we read it
The halts page caches it 2 minutes. The halt archive reads it on weekdays from 03:45 to 21:15 New York time. Schedule: every 15 minutes.
How far behind it runs
Halts as Cboe posts them, plus up to 2 minutes of cache.
Last good read
Not recorded: this job keeps no record of good reads we can date.
Cost to us
Free public download.
If it went away
Cboe-listed halts on the halts page and the halt marks on charts.

Nasdaq

www.nasdaqtrader.com
What we use it for
trade halts RSS and the Reg SHO threshold list
How often we read it
The halts page caches it 2 minutes and the halt archive reads it on weekdays from 03:45 to 21:15 New York time. The threshold list is cached 6 hours. Schedule: every 15 minutes.
How far behind it runs
Halts as Nasdaq posts them, plus up to 2 minutes of cache. The threshold list is the latest day Nasdaq or NYSE has posted.
Last good read
Not recorded: this job keeps no record of good reads we can date.
Cost to us
Free public feed.
If it went away
Halts on the Nasdaq feed, and the Nasdaq half of the Reg SHO threshold list.

NYSE (ICE)

www.nyse.com
What we use it for
current trade halts download and the Reg SHO threshold list
How often we read it
The halts page caches it 2 minutes and the halt archive reads it on weekdays from 03:45 to 21:15 New York time. The threshold list is cached 6 hours. Schedule: every 15 minutes.
How far behind it runs
Halts as NYSE posts them, plus up to 2 minutes of cache. The threshold list is the latest day Nasdaq or NYSE has posted.
Last good read
Not recorded: this job keeps no record of good reads we can date.
Cost to us
Free public download.
If it went away
NYSE halts, and the NYSE, NYSE American and NYSE Arca half of the Reg SHO threshold list.

Tiingo

api.tiingo.com
What we use it for
split- and dividend-adjusted daily history behind valuation multiple history and the generated scenarios
How often we read it
A scheduled job fills a batch of tickers each run, oldest first; each ticker keeps its last good history. Schedule: hourly at :35 UTC.
How far behind it runs
Adjusted daily closes through the latest session the job has read for that ticker.
Last good read
Not recorded: this job keeps no record of good reads we can date.
Cost to us
Free Starter plan, whose terms allow internal personal use only; showing the data needs a redistribution licence.
If it went away
Valuation multiple history, the valuation ratings built on it, and the generated scenarios.

Yahoo

query1.finance.yahoo.com
What we use it for
long daily history for the crypto cycle pages
How often we read it
Read when a cycle page asks, cached 1 day.
How far behind it runs
Daily closes, refreshed once a day.
Last good read
Not recorded: read when a page asks, with no stored run to date.
Cost to us
No fee, but the terms bar automated collection without Yahoo's permission.
If it went away
The cycle and crash history pages for coins other than bitcoin.

Blockchain.com

api.blockchain.info
What we use it for
bitcoin history for the cycle pages
How often we read it
Read when the bitcoin cycle page asks, cached 1 day.
How far behind it runs
Daily history, refreshed once a day.
Last good read
Not recorded: read when a page asks, with no stored run to date.
Cost to us
Free.
If it went away
The bitcoin cycle and crash history page.

Federal Reserve Bank of St. Louis (FRED)

api.stlouisfed.org
What we use it for
US macro series on /economy and /lab/economy
How often we read it
A scheduled job builds the economic release calendar; the economy pages cache each series for 6 to 24 hours. Schedule: every 6 hours at :25 UTC.
How far behind it runs
Each series is as current as its agency's latest release. The calendar lists every release date and keeps each result as it was first published, beside the value today.
Last good read
2026-10-21 12:27 UTC (13h ago) · stored dataset: econ-calendar
Cost to us
Free, with an API key.
If it went away
The economy dashboards, the economic release calendar and the connector's economic calendar tool.

U.S. Department of the Treasury

home.treasury.gov
What we use it for
daily par yield curve on /lab/economy and /economy
How often we read it
A scheduled job reads the latest curve. Schedule: every 6 hours at :25 UTC.
How far behind it runs
Each business day's curve as the Treasury posts it, read by the next scheduled run.
Last good read
2026-10-22 00:26 UTC (1h ago) · stored dataset: treasury-curve
Cost to us
Free; a US government work.
If it went away
The Treasury yield curve on the economy pages and the connector's yield-curve tool.

World Bank

api.worldbank.org
What we use it for
global macro series on /lab/economy
How often we read it
Read when the page asks, cached 1 day.
How far behind it runs
Annual figures, as of the latest year the World Bank has published.
Last good read
Not recorded: read when a page asks, with no stored run to date.
Cost to us
Free, with attribution under CC BY 4.0.
If it went away
World growth, inflation, unemployment and trade on /lab/economy.

International Monetary Fund

www.imf.org
What we use it for
World Economic Outlook projections on /lab/economy
How often we read it
Read when the page asks, cached 1 day.
How far behind it runs
Projections as of the IMF's latest World Economic Outlook.
Last good read
Not recorded: read when a page asks, with no stored run to date.
Cost to us
Free.
If it went away
The IMF projections on /lab/economy.

CoinGecko

api.coingecko.com
What we use it for
crypto prices, market caps, dominance, coin charts
How often we read it
Read when a page asks: prices cached 2 minutes, market-wide figures 5 minutes, coin charts 1 hour.
How far behind it runs
Prices up to about 2 minutes old from our cache, on top of CoinGecko's own update interval.
Last good read
2026-10-22 01:47 UTC (9m ago) · stored dataset: crypto-top-coins-lastgood-v1
Cost to us
Free Demo plan. CoinGecko lists commercial use from its Basic plan, 35 USD a month; we accepted the grey reading instead on 2026-10-12.
If it went away
Crypto prices, market caps, dominance and coin charts.

Hyperliquid

api.hyperliquid.xyz
What we use it for
public perp positions and prices, labelled as perps
How often we read it
A scheduled job reads the public positions and prices. Schedule: every 15 minutes.
How far behind it runs
Positions and prices as of the latest scheduled read.
Last good read
2026-10-22 01:18 UTC (37m ago) · stored dataset: hl-liqmap-v1
Cost to us
Free, within the published rate limits.
If it went away
The crypto liquidation map.

Alternative.me

api.alternative.me
What we use it for
Crypto Fear and Greed Index
How often we read it
Read when the crypto dashboard asks, cached 1 hour.
How far behind it runs
The index's latest published value, plus up to an hour of cache.
Last good read
Not recorded: read when a page asks, with no stored run to date.
Cost to us
Free.
If it went away
The Fear and Greed reading on the crypto dashboard.

TickerTick

api.tickertick.com
What we use it for
per-ticker headlines
How often we read it
Read when a page asks, cached 15 minutes per ticker.
How far behind it runs
Headlines as the outlets publish them, plus up to 15 minutes of cache.
Last good read
Not recorded: read when a page asks, with no stored run to date.
Cost to us
Free; 10 requests a minute per IP.
If it went away
Headlines on the news, small-cap, research report and why-is-it-moving tools, and the connector's headline tool.

arXiv (Cornell University)

export.arxiv.org
What we use it for
research paper index
How often we read it
Read when the research pages ask: the index cached 6 hours, a single paper 1 day.
How far behind it runs
Papers as arXiv lists them, plus our cache.
Last good read
Not recorded: read when a page asks, with no stored run to date.
Cost to us
Free; arXiv asks for one request every three seconds.
If it went away
The research paper index and paper pages.

Wikimedia Foundation

www.wikidata.org
What we use it for
company and executive identifiers for logos and photos
How often we read it
Only for companies still missing a logo, during a scheduled dataset job. Each logo is fetched once and stored. Schedule: every 6 hours at :50 UTC.
How far behind it runs
Not time-sensitive: identifiers and images, stored once.
Last good read
Not recorded: this job keeps no record of good reads we can date.
Cost to us
Free; the data is CC0.
If it went away
Logos for newly covered companies. Logos already stored stay.

Wikimedia Commons contributors

commons.wikimedia.org
What we use it for
executive photos and logos
How often we read it
Logo files are fetched once, in the same dataset job, and stored; executive portraits were fetched once by a script and stored. Schedule: every 6 hours at :50 UTC.
How far behind it runs
Not time-sensitive: files stored once.
Last good read
Not recorded: this job keeps no record of good reads we can date.
Cost to us
Free, with author and licence credit where a file's licence asks for it.
If it went away
Logos and portraits for newly covered companies and executives. Stored files stay.

jsDelivr (Fontsource)

cdn.jsdelivr.net
What we use it for
JetBrains Mono font file for share images
How often we read it
Fetched once per server instance and kept in memory.
How far behind it runs
Not time-sensitive: a font file.
Last good read
Not recorded: read when a page asks, with no stored run to date.
Cost to us
Free.
If it went away
Share images fall back to a default font.

Services that run the site

These hosts appear in our code but supply no market data. What each one receives about you is on the privacy page.

Named in code, never fetched

Links, XML namespaces and test fixtures. The build registers them too, because a URL in code is listed whether or not anything fetches it.

How to read a card

“How far behind it runs” adds the source's own publication lag to ours. “Last good read” is the newest record of a read that worked, taken from the run store, never from the time this page was built. A failed read refuses to write, so a page keeps the last good data under its original date; the ingestion ledger has every run, failures included. Educational information, not investment advice.

Data sources FAQ

Is any of this data real-time?

No stock price here is real-time. Prices are end-of-day closes from Databento, read only after our licence lets us see the session. Cboe option quotes run about 15 minutes behind the market, crypto prices are cached for a few minutes, and filings, short interest and economic series are as of their own publication dates, which each source card states.

What happens to a page when a source fails?

A failed read refuses to write, so the page keeps serving the last good data under its original date rather than showing nothing or a guess. The last good read on each card, and the ingestion ledger, show when that happened.

Keep going: methodology · ingestion ledger · refusal ledger · privacy · disclaimer