← Home

Data Sources

Every upstream data provider feeding into QuantDB — what we get, how fresh it is, where it lands, and how to consume it.

📊

FactSet Fundamentals

Institutional-grade financial fundamentals — balance sheet, income statement, cash flow, ratios

PRIMARY 5.2M rows 23 metrics
Annual Records
1,559,434
Quarterly Records
3,635,083
Tickers Covered
4,026
Matched to Instruments
3,514 (87%)
Fiscal Year Range
1999 — 2026
Metric Catalog
1,387 definitions
Last Fetched
2026-04-23
Point-in-Time
Final only (no preliminary)
Core Metrics (23 active)
Metric IDNameCategory
FF_SALESRevenueIncome Statement
FF_NET_INCNet IncomeIncome Statement
FF_EPS_DILDiluted EPSIncome Statement
FF_GROSS_INCGross IncomeIncome Statement
FF_OPER_INCOperating IncomeIncome Statement
FF_PEP/E RatioValuation
FF_ROEReturn on EquityProfitability
FF_ROAReturn on AssetsProfitability
FF_NET_MGNNet MarginProfitability
FF_OPER_MGNOperating MarginProfitability
FF_ASSETSTotal AssetsBalance Sheet
FF_SHLDRS_EQShareholders' EquityBalance Sheet
FF_DEBT_LTLong-term DebtBalance Sheet
FF_DEBT_EQDebt/EquityBalance Sheet
FF_CASH_STCash & ST InvestmentsBalance Sheet
FF_BPSBook Value / ShareBalance Sheet
FF_CURR_RATIOCurrent RatioLiquidity
FF_OPER_CFOperating Cash FlowCash Flow
FF_FREE_CFFree Cash FlowCash Flow
FF_CAPEXCapital ExpendituresCash Flow
FF_DIV_YLDDividend YieldMarket Data
FF_ENTRPR_VALEnterprise ValueMarket Data
FF_MKT_VALMarket CapMarket Data
Database Tables
TableSchemaRowsDescription
factset_fundamentals_annualdata1.56MAnnual EAV fundamentals (raw)
factset_fundamentals_quarterlydata3.64MQuarterly EAV fundamentals (raw)
factset_metrics_catalogdata1,387Metric definitions and descriptions
factset_fundamentals_widedata~200KPivoted wide view (materialized, daily refresh)
API Endpoints
📄 /v2/factset/fundamentals 📈 /v2/factset/fundamentals/:ticker/history 📋 /v2/factset/metrics ⚖️ /v2/factset/compare 🌐 /v2/factset/coverage
Data Flow
FactSet API → Python pipeline (cron daily) → data.factset_fundamentals_annual/quarterly (EAV) → Materialized view data.factset_fundamentals_wide (pivoted) → quantdb-api /v2/factset/* → Apps (SignalCentre, AgentX)
📈

Yahoo Finance

Price history (OHLCV), derived indicators, and market data — the backbone of our price feed

SECONDARY 39.8M bars
Price Bars (1d)
39.8M
Instruments
8,941 active
Timeframes
1d, 1h, 4h, 15m
History
2009 — present
Derived Indicators
RSI, MACD, SMA, BB, ADX, ATR
Data Quality
⚠️ 348 flagged instruments
Database Tables
TableSchemaRowsDescription
price_historydata39.8MOHLCV bars (TimescaleDB hypertable, compressed)
derived_indicatorsdataRSI, MACD, SMA, Bollinger, ADX computed from bars
instrumentssignals9,827Master instrument registry (stocks, ETFs, crypto, FX, indices, commodities)
data_quality_flagssignals1,568Flagged bad bars (scale breaks, outliers)
Known Data Quality Issues
IssueAffectedStatus
GBP/GBX scale mixing (.L instruments)6 instrumentsFIXED Outlier filter active
Duplicate instrument_ids (CHINA50, BTC, etc)9 symbolsFIXED Duplicates deactivated
Penny stock data corruption~50 instrumentsFIXED Flagged + signals expired
API Endpoints
📈 /v2/prices/history ⚡ /v2/prices/live 📐 /v2/derived 🏷️ /v2/instruments
🏛️

SEC EDGAR / XBRL

Point-in-time fundamentals from SEC filings, earnings surprises, EPS revisions, consensus estimates

SUPPLEMENTARY 569K rows
Fundamentals (PIT)
259,594
PIT Multiples
101,533
Earnings Surprises
79,609
EPS Revisions
128,571
Factor Scores
129,594
Tickers
3,089
Database Tables
TableSchemaRowsDescription
fundamentals_pitdata259KPoint-in-time financials from SEC filings
pit_multiplesdata101KDaily valuation multiples (PE, PB, EV/EBITDA)
factor_scoresdata129KQuantitative factor scores (value, momentum, quality)
earnings_surprisesdata79KActual vs estimate, surprise %
eps_revisionsdata128KAnalyst estimate revision tracking
consensus_estimatesdata1,524Forward consensus EPS/revenue estimates
API Endpoints
📊 /v2/fundamentals 📐 /v2/multiples 🎯 /v2/factors 💰 /v2/earnings 🔮 /v2/consensus
🟢

eToro Public API

Instrument registry, live prices, portfolio data, and trade execution

LIVE 273 cached instruments
Cached Instruments
273
Rate Limit
100 req/min
Auth
API Key + OAuth PKCE
Used By
AgentX, SignalCentre, Rebalancer
Data Provided
Data TypeEndpointUsage
Instrument Registry/sapi/instrumentsNumeric instrument_id resolution
Live Prices/sapi/candlesReal-time OHLCV for signal tracking
Portfolio Data/sapi/portfolioAgentX position tracking
Trade Execution/sapi/ordersPortfolio Rebalancer order execution
Bronze No-Key Sources, Planned

Approved staging registry for no-key external APIs. These are BRONZE, not production-validated, and distributed through quantDB API only after validation/promotion.

SourceDatasetStatusAuth
FiscalData / U.S. TreasuryUS Treasury debt, rates, auctions, fiscal flowsBRONZE dry-run readyNo key
Frankfurter FXECB reference FX rates and historyBRONZE dry-run readyNo key
EcondbGlobal macroeconomic time seriesBRONZE dry-run readyNo key
CoinGeckoCrypto reference prices, market cap, metadataBRONZE dry-run readyNo key
World BankGlobal development and country macro indicatorsBRONZE dry-run readyNo key

Registry: /bronze-sources.json. SDD draft: docs/BRONZE_NO_KEY_SDD.md. Dry-run samples write to local staging artifacts only, no DB writes.

Data Source Priority

When multiple sources cover the same data, QuantDB resolves conflicts using this priority chain:

Fundamentals: FactSet (primary) → SEC EDGAR/fundamentals_pit (supplementary)
Prices: Yahoo Finance (daily pipeline) → eToro API (live/real-time)
Instrument Master: signals.instruments (unified) ← eToro instrument_id required for trading
Quality Control: Outlier filter on ingest + daily data quality job + signals.data_quality_flags audit trail