Finance.Foundation
Provenance · seed-0.7 · marketcap-1 · 2026-08-30

Where every number comes from

Finance Foundation publishes two kinds of figures: a versioned reference dataset that we assemble and audit ourselves, and live series pulled from open sources on a schedule. This page lists every source behind both, what it feeds, how often it refreshes and where it falls short — including the identifiers we validate but are not allowed to republish.

SourceWhat it feedsRefreshAs data
World Bank Open DataCC BY 4.0 Country GDP, real growth, population, CPI inflation, listed-company counts, market capitalisation as % of GDP and domestic credit — 7 indicators across 37 jurisdictions Annual series, checked daily /api/v1/worldbank
CoinGecko, with Coinbase and Bybit as fallbacksFree tier, attribution appreciated Crypto prices: 9 series Every 3 hours /api/v1/live
European Central BankFree reuse with attribution Euro foreign-exchange reference rates — EUR/USD plus USD/JPY, GBP/USD, USD/CNY, USD/CHF, AUD/USD, USD/CAD, USD/INR and USD/BRL computed as euro crosses — the ECB main refinancing rate, and euro-area M3 money-supply growth year on year Every 3 hours (ECB publishes once per working day) /api/v1/live
US Department of the TreasuryPublic domain (US Government) US 10-year Treasury par yield Every 3 hours (Treasury publishes each business day) /api/v1/live
CFTC — Commitments of TradersPublic domain (US Government) Net non-commercial positioning for 13 contracts Every 3 hours (the report is weekly, published Friday) /api/v1/live
Bank for International SettlementsFree reuse with attribution Central bank policy rates for 24 countries Every 3 hours (the series is monthly) /api/v1/live
OECD Data ExplorerFree reuse with attribution US consumer price inflation year on year; real GDP growth year on year for the United States and the euro area; the unemployment rate for both; and the US current account as a share of GDP Every 3 hours (series is monthly) /api/v1/live
Federal Reserve — H.10 foreign exchange ratesPublic domain (US Government) The TWD/USD rate behind Taiwan's market capitalisations, and the currencies the ECB does not publish Weekly, carrying the five business days just past
exchange_calendars and pandas_market_calendarsApache-2.0 and MIT — reproduced in full under third-party/ in our repository, with the derivation described in NOTICE A second and third opinion on the trading hours of 43 of our venues — session open and close, lunch breaks and venue timezone Regenerated with scripts/sessions/build.py when either project releases
Central Bank of the Republic of China (Taiwan)Government publication, reproduced with attribution Taiwan's discount rate — the policy rate — and M2 money-supply growth year on year Every 3 hours (the bank publishes M2 monthly; the discount rate moves only when it is changed) /api/v1/live
DefiLlama — stablecoin supplyProvider's own terms; we reproduce supply figures with attribution and do not relicense them Circulating supply for the 30 largest stablecoins by size, aggregated across each token's deployed chains, with the provider's own 7-day and 30-day prior figures Every 3 hours, on the same cron as the rest of the live layer /api/v1/stablecoins
GLEIF — Global Legal Entity Identifier FoundationCC0 (public domain) LEI codes for 119 of 121 companies and 46 of 48 exchange operators Resolved per data release, hand-audited /api/v1/companies
OpenFIGIOpen standard, free to redistribute Share-class FIGI codes for 121 companies Resolved per data release /api/v1/companies
ISO 10383 MIC registry (SWIFT as registration authority)Public registry Operating MICs for 48 venues and 182 segment MICs Every venue re-validated against the published registry file, edition of 2026-08-24 /api/v1/markets
SEC EDGAR — company filingsPublic domain (US government work) Shares outstanding read from the cover page of each issuer's own periodic filing, per share class, with the filing date and a link to the filed document — the input that makes market capitalisation computable for 69 of 121 covered companies Re-read each quarter as 10-Q, 10-K, 20-F and 40-F filings land /api/v1/companies/{id}
Issuer share-capital disclosuresFacts from primary documents; our compilation CC BY 4.0 Shares outstanding for the 52 covered companies that do not file with the SEC — read from regulator share-capital declarations, exchange monthly returns and interim reports. Each company page names the specific document Re-read each quarter /api/v1/companies/{id}
SEC EDGAR — annual financial statementsPublic domain (US government work) Revenue, operating income, net income, R&D, total assets, shareholders' equity and cash for the 76 covered companies that file with the SEC — every metric taken from the same annual filing, with the XBRL tag it was read from published beside it Re-read after each annual reporting season /api/v1/companies/{id}
SEC N-PORT and N-MFP data setsPublic domain (US government work) Net assets and the fund's own LEI for the covered registered funds, taken from the fund's own filing with the reporting date it carries — N-PORT quarterly for most, N-MFP monthly for money market funds, as bulk files rather than a request per fund Quarterly, when the data set for the quarter is published /api/v1/funds/{id}
SEC Investment Company Series and Class reportPublic domain (US government work) Series and class identifiers and their names for the covered listed funds — the registry that establishes that VOO, VFIAX, VFINX and VFFSX are four share classes of one Vanguard fund rather than four funds Re-read when the annual report file is republished /api/v1/funds/{id}
Home-market closing pricesRedistributor's terms; we publish a computed figure, not the price series Closing price on each company's primary listing for all 121 covered companies — the second input to the market-cap calculation — applied per listed line for the 9 companies whose shares trade on more than one line at different prices (A/H pairs, common/preferred pairs, dual-listed structures) Snapshot, refreshed with the share counts /api/v1/companies/{id}
Finance Foundation seed datasetCC BY 4.0 — ours to publish Entity coverage and relationships: 121 companies, 48 markets, 56 assets, 32 funds, 20 banks, 37 jurisdictions, 8 indicator definitions, 8 research notes — plus approximate AUM and bank balance-sheet sizes. Market capitalisation is no longer part of this seed: it is computed from filed share counts and market prices, and is credited to those sources above Versioned releases (currently seed-0.7 · marketcap-1 · 2026-08-30) /api/v1/all

How to cite us

Our own dataset and schema are CC BY 4.0: use them freely with the line "Data: Finance Foundation" and a link to https://finance.foundation. Where a figure comes from an upstream source, cite that source too — the API tells you which one: every live value carries source, date and retrieved_at, and country indicators additionally carry the World Bank's own lastupdated stamp.

Licensed identifiers we do not redistribute

IdentifierOwnerWhat we do with it
CUSIPCUSIP Global ServicesDerived from the US/CA ISIN and check-digit verified for display and validation only — no CUSIP dataset is published or offered for download.
SEDOLLSEGCheck digits validated in the browser; no SEDOL values are stored or published.
GICS / ICBS&P Dow Jones Indices / FTSE RussellNot used. Our 11-sector taxonomy is our own, published openly and mappable to both.

The distinction matters: validating a code and publishing a dataset of codes are different acts. We do the first, never the second.

Honest limits, source by source

World Bank Open Data

Taiwan is not in the World Bank dataset — its GDP stays our own approximate seed value and is labelled as such. Every figure carries its observation year.

CoinGecko, with Coinbase and Bybit as fallbacks

CoinGecko's keyless tier rate-limits shared Cloudflare egress IPs; when it declines, values come from Coinbase spot (and Bybit for BNB, which Coinbase does not list). Every observation records which provider actually answered: the API returns both the intended `source` and the real `provider`, plus a `from_fallback` flag, and the pages show the real one.

European Central Bank

Reference rates fixed at 14:15 CET, not tradeable quotes. Cross rates are arithmetic from the euro fixings, so they differ slightly from interbank mid-market. M3 growth is the ECB's own published rate, taken as published rather than recomputed from the stock of money: the stock moves on revaluations and reclassifications that the published growth rate strips out, so a rate derived from it would not match the ECB's. There is no matching US line — the Federal Reserve's H.6 release publishes levels, and computing a growth rate from those would be exactly the mistake avoided here.

US Department of the Treasury

Par yield curve rates, published after the close — not intraday levels.

CFTC — Commitments of Traders

A position, not a price, and it describes the Tuesday before the Friday it is published on — never today. Net non-commercial means speculative longs minus speculative shorts; the commercial side is the mirror of it and is not a forecast of anything. The trap in this dataset is names that outlive their contracts: "COPPER - COMMODITY EXCHANGE INC." still answers with an open interest of 2,427 and a report date of 15 December 1989, and "CRUDE OIL, LIGHT SWEET - NEW YORK MERCANTILE EXCHANGE" answers with two million contracts and stops in February 2022. Both look healthy until the date is read. Every contract here was chosen by asking which one is reporting now, and the whole week is refused if the newest report is more than three weeks old — one check on the report date rather than thirteen on the values. Two of the names say which venue they are read from, because the answer is not the obvious one: WTI comes from ICE Futures Europe and Henry Hub gas from ICE, since the NYMEX lines stopped in this dataset.

Bank for International Settlements

One request returns every country BIS covers, and two of its rows would be false if published as they arrive. For euro-area members the file still carries their <b>pre-euro national rate</b> — Germany 3.0%, Belgium 4.5%, both dated December 1998 — in the same response, and the same shape, as this month's figures for everyone else. Those countries are therefore not read from here at all: their policy rate is the ECB's, which genuinely is their own. Croatia's row is not a number but NaN, dated December 2022, when its national rate ceased on joining the euro. Two guards sit behind that reasoning rather than relying on it: a non-finite value is never stored, and an observation older than 200 days is refused and reported as an error instead of saved — so a stale row cannot reach a page even if the country table is edited wrongly later. What is published is a monthly observation of the prevailing rate, so its date is the month BIS recorded, not the date the bank last moved — which is what the Taiwan line above carries, and the two should not be read as the same kind of date. Singapore is absent because it has no policy interest rate: its central bank steers the exchange rate instead.

OECD Data Explorer

Mirrors the underlying national series (BLS for US prices and unemployment, BEA for US output, Eurostat for the euro area). We read them from the OECD because the BLS keyless API refuses requests from shared Cloudflare IPs. Three limits worth stating plainly. GDP growth here is <b>year on year, not the annualised quarter-on-quarter rate US headlines quote</b> — for the same quarter those are different numbers, and a quarter of roughly 0.4% reads as roughly 1.5% annualised; year on year is published because it needs no conversion to be compared with anything. The euro-area aggregate is a changing membership, so a long series is not a constant set of countries. And the OECD rate-limits bursts: a refusal leaves the previous value in place with its own observation date rather than blanking the card. Euro-area HICP is deliberately absent: Eurostat discontinued that dataset in February 2026 and no successor is published yet, and euro-area GDP is published without a matching current-account line because the OECD balance-of-payments flow covers member countries rather than the currency bloc.

Federal Reserve — H.10 foreign exchange rates

H.10 is weekly, so its newest rate can be several days old, and that is a reason to match dates rather than to prefer a fresher aggregator: a current price divided by a stale rate is true on no day at all. Where a figure depends on both, the price and the rate are taken from the same trading day and both dates are shown. Rates are units of foreign currency per dollar except for a handful the release marks with an asterisk — Australia, the United Kingdom, the euro area, New Zealand — which are quoted the other way round, and reading those the wrong way inverts the number. Saudi Arabia is not covered at all: the riyal is held at 3.75 to the dollar by its central bank rather than found in a market, so it is carried as the peg with the small market deviation noted.

exchange_calendars and pandas_market_calendars

These are open-source calendar libraries, not the exchanges, so they are a cross-check rather than a source of record: the exchange's own publication wins whenever the two conflict, and a venue page says which basis its hours rest on. Twenty of our venues are covered by both projects and their hours agree, which is the strongest position; two are covered by one; five are covered by neither and stand on our own reading alone. The two disagree about Korea, and the disagreement is instructive rather than a defect — pandas_market_calendars still returns the lunch break KRX abolished on 22 May 2000, because it keeps discontinued phases and records their end date separately, so reading it naively would put a twenty-six-year-dead trading phase on the page. Neither project endorses this site and errors in our derived figures are ours, not theirs.

Central Bank of the Republic of China (Taiwan)

Taiwan sits outside every statistical system the rest of this layer reads: it is not a member of the World Bank, the IMF or the OECD, and none of the three publishes it. Its own central bank is therefore the only source, and it publishes these as figures on a web page rather than through a data API — so this is the one feed here that reads a page rather than an endpoint, matching an English label and taking the date and percentage printed beside it. If the page is restructured the match fails and the previous value stays with its own date, rather than a wrong number appearing. The discount rate carries the date it last changed, not the date we read it, because a policy rate is a level that holds until the bank moves it. GDP, consumer prices and unemployment for Taiwan are absent for a blunter reason: the statistics office publishes them from a file server whose TLS certificate Cloudflare rejects, so a Worker cannot fetch them at all — verified by probing from the edge, not assumed.

DefiLlama — stablecoin supply

The provider's `pegMechanism` sorts every token into fiat-backed, crypto-backed or algorithmic, and that is wrong about several of the largest — USDe is a delta-neutral position rather than a crypto-backed one, and BUIDL is a fund share rather than a fiat-backed token. What each one is actually backed by is researched separately from the issuer's own material and published beside the supply figure, along with the four entries that are registered funds or notes rather than payment stablecoins at all. Supply is an on-chain quantity, not a statement about reserves, backing or an issuer's ability to honour redemptions — we publish no attestation we have not read. The aggregate covers the tokens the provider tracks, so it is a floor rather than a complete measure of dollar tokens outstanding. Changes over 7 and 30 days come from the provider's own prior-period figures, not from a series we store, so they cannot be independently recomputed from our data.

GLEIF — Global Legal Entity Identifier Foundation

Matched by legal name and jurisdiction, then checked by hand — GLEIF's first search hit is often a subsidiary or a fund. Two companies (Chevron, Kweichow Moutai) could not be resolved with confidence and are left null rather than guessed.

OpenFIGI

Every FIGI was cross-checked against the company name returned by OpenFIGI before being stored.

ISO 10383 MIC registry (SWIFT as registration authority)

Every MIC here is checked against the registry file rather than taken from memory, because the operating-versus-segment distinction is where this goes wrong: XTKS is the Tokyo Stock Exchange but a segment of XJPX, and COMEX (XCEC) is a segment of NYMEX rather than of CME. Both were corrected here after a registry check. The registry also carries the LEI of the entity operating each venue, which is often a subsidiary rather than the listed group — where the two differ we publish both. It does not carry trading hours, so those come from each venue's own calendar.

SEC EDGAR — company filings

Only issuers that file with the SEC are covered here; for the rest the share count comes from the company's own home-market disclosure (a regulator share-capital declaration, an exchange monthly return, or an interim report) and is named on the company page. Cover-page counts are shares issued, which is not always shares outstanding — where treasury stock, an as-converted class structure or a dual-listed pair makes the raw figure the wrong input, the company page says so and shows the figure actually used.

Issuer share-capital disclosures

These issuers report on their own calendars, so the as-of dates are less uniform than the SEC set. Where a count is an AGM record-date figure rather than a balance-sheet date, or where treasury stock is not split out cleanly, the company page says so.

SEC EDGAR — annual financial statements

Only SEC filers, and only the metrics a given filing actually tags: a company that does not tag R&D simply has no R&D row. One accounting concept can be tagged several ways depending on framework and vintage, so the tag used is published for checking. Metrics are anchored to a single reporting period — mixing a current revenue with an older balance figure would produce a table that is individually true and collectively meaningless. Filers reporting in their own currency keep the reported figure; the dollar column converts at the rate on the period end, not today's.

SEC N-PORT and N-MFP data sets

US registered investment companies only, and it reports the whole series: a multi-class fund files one figure covering every class, so it is not the same quantity as the size of one ETF class quoted on a screen. Both are published and labelled. Commodity and unit trusts (SPY, GLD, IBIT, FBTC) do not file N-PORT at all — GLD and FBTC report net assets in a 10-Q instead, IBIT tags only the fair value of the bitcoin it holds, and SPY tags no figure we can read. Non-US funds are absent entirely.

SEC Investment Company Series and Class report

US registered investment companies only. Funds domiciled elsewhere — a European UCITS such as IWDA — are not in it, and neither are commodity trusts like SPY and GLD, which file under their own CIK rather than as a series. Institutional pools (sovereign, pension, hedge) are not registered investment companies at all and appear here with no ticker, because they have no units to buy.

Home-market closing prices

This is a dated snapshot, not a live feed: the price date is published next to every figure. We do not republish the price series itself — only the market cap computed from it, with both inputs and their dates shown.

Finance Foundation seed dataset

Drafted from public filings and primary sources, adversarially fact-checked, then hand-audited. Figures are rounded reference values dated Q2 2026 — they move only when we publish a new dataset version, and they are never presented as quotes.

Machine-readable

curl -s https://finance.foundation/api/v1/sources

Nothing here is real-time, and nothing here is advice. Live series are refreshed on a schedule (crypto and FX every 3 hours, equity closes in a 20-minute rotation, country indicators daily); reference figures move only with a new dataset version. See Data & methodology for the pipeline and Changelog for what changed when.