All capabilities → Fundamentals
Fundamentals

Balance sheet, income statement and cash flow — four sources, one shape

US-GAAP, IFRS and parsed annual reports come back with the same period, currency and sign logic. Without you having to know where they came from.

curl "$API/v1/fundamentals/SAP/metrics?metrics=revenue,net_income&years=3"
{
  "entity": { "name": "SAP", "isin": "DE0007164600", "country": "DE" },
  "source": "sec.dera",
  "periods": [
    { "end": "2025-12-31", "type": "FY", "currency": "EUR",
      "metrics": { "revenue": 34176000000, "net_income": 3086000000 } }
  ]
}
SEC DERA (US/Canada)700.383ESEF (Europe)102.204EDGAR companyfacts2.511German reports341

What you can do with it

Why we built it this way

Four data pools had four incompatible shapes: values sometimes a list, sometimes a scalar, sometimes a year map. Periods sometimes 20251231, sometimes ISO, sometimes just a year. German reports had to be multiplied by a factor first. Comparing two companies meant writing four parsers.

We settled on seven rules and applied them everywhere. One is easy to miss: European reports state the period end exclusively, so one day late. Without that correction no European period ever lines up with an American one — and every fiscal year carries the wrong label.

Values in the lines stay as reported. Unification happens only in the metric rollup, and there in a way that makes revenue minus cost of revenue equal gross profit across every source.

Improvements

Endpoints

GET/v1/fundamentals/{identifier}/statementsComplete statements
GET/v1/fundamentals/{identifier}/metricsMetrics per period only
GET/v1/fundamentals/compareSeveral issuers side by side
GET/v1/fundamentals/{identifier}/coverageWhat exists, how reliable
GET/v1/fundamentals/metrics/catalogThe metric vocabulary

Give feedback or ask a question

Something missing, something off, or an answer you don't understand? Write it here — it reaches us directly.

We store only what you type here. No IP address in clear text, no trackers.