Fundamentals fields
Look up every field a fundamentals row can contain, with its type, unit, nullability, meaning and, for computed fields, the formula.
A row from Fundamentals carries 11 identity and period fields, knowledge_time_basis on archive rows, currency, field_currency when it applies, up to 55 value fields, and up to four provenance members. This page defines every one of them.
Money values are in millions of the currency named in the row's currency, and eps_basic and eps_diluted are in that currency per share: millions of USD and USD per share on a row whose currency is USD, such as every Apple row. Values are not converted between currencies, and field_currency names any requested value in another currency than its row's. The unit column in the tables below states the units of a USD row. Share counts are in millions of shares. Share counts and per-share figures are as filed and are not adjusted for later stock splits: Apple's fiscal 2019 eps_diluted reads 11.89 USD per share and its shares_outstanding reads 4443.236 million shares, the figures filed before its 2020 four-for-one split. Every value field is a JSON number or null, and money values can carry decimals, such as 316.933 for 316.933 million USD.
Each row has a source. filing rows come from the company's XBRL financial statements filed with the SEC. archive rows come from a point-in-time historical record. Some fields are reported on filing rows only and are null on archive rows; the descriptions below say so. null means no value is available for that field on that row.
With no fields parameter, value fields appear in the order of the example row below; the notes under each table say where the computed fields sit. With fields, they appear in the order you list them. Pass fields=all for the full set.
Example row
Apple's fiscal 2023 annual row, from GET /v1/fundamentals/AAPL?period=annual&start=2023-01-01 on a paid plan. Free keys read periods from the last 12 months only.
{
"entity_id": 1,
"ticker": "AAPL",
"entity_name": "APPLE INC",
"gics_sector": "Information Technology",
"period_end": "2023-09-30",
"period_type": "annual",
"fiscal_year": 2023,
"fiscal_period": "FY",
"filing_date": "2023-11-03",
"version": "original",
"source": "filing",
"currency": "USD",
"revenue": 383285,
"cost_of_revenue": 214137,
"cost_of_goods_sold": 214137,
"gross_profit": 169148,
"research_and_development": 29915,
"selling_general_admin": 24932,
"depreciation_amortization": 11519,
"impairment_charges": null,
"operating_income": 114301,
"interest_expense": 3933,
"pretax_income": 113736,
"income_tax_expense": 16741,
"net_income": 96995,
"minority_interest_income": null,
"net_income_attributable_to_parent": 96995,
"ebit": 117669,
"ebitda": 129188,
"eps_basic": 6.16,
"eps_diluted": 6.13,
"cash_and_equivalents": 29965,
"short_term_investments": 31590,
"cash_and_short_term_investments": 61555,
"accounts_receivable": 29508,
"inventory": 6331,
"current_assets_total": 143566,
"property_plant_equipment_gross": 114599,
"property_plant_equipment_net": 43715,
"goodwill": null,
"other_noncurrent_assets": 64758,
"total_assets": 352583,
"accounts_payable": 62611,
"short_term_debt": 5985,
"current_liabilities_total": 145308,
"long_term_debt": 95281,
"pension_liabilities": null,
"total_liabilities": 290437,
"total_debt": 101266,
"common_stock_value": 73812,
"preferred_equity": null,
"retained_earnings": -214,
"total_equity": 62146,
"minority_interest": null,
"total_equity_including_minority": null,
"change_in_accounts_receivable": -1688,
"operating_cash_flow": 110543,
"capital_expenditures": 10959,
"investing_cash_flow": 3705,
"share_issuance": null,
"dividends_paid_common": null,
"financing_cash_flow": -108488,
"free_cash_flow": 99584,
"shares_outstanding": 15550.061,
"weighted_avg_shares_basic": 15744.231,
"sic": "3663",
"naics": "334220"
}Identity and period
These fields are on every row, whatever you pass in fields; knowledge_time_basis only on archive rows, and field_currency only when it applies.
| field | type | unit | nullable | description |
|---|---|---|---|---|
entity_id | int | none | no | Issuer id. Every share class of a company returns the same entity_id: 31223 for Alphabet whether you request GOOGL or GOOG. Pass it as entity_id to request the same company again. See Tickers and entities. |
ticker | str | none | yes | The ticker you requested that resolved to this issuer, repeated on every row. On entity_id requests, the ticker of the issuer's primary listed class (see Tickers and entities). When two requested tickers resolve to the same issuer, the later one in the request. |
entity_name | str | none | yes | The issuer's name as currently recorded, the same on every row. |
gics_sector | str | none | yes | The issuer's GICS sector from its current classification, the same on every row, such as Information Technology. |
period_end | str | date | no | Last day of the fiscal period, YYYY-MM-DD. filing rows keep the company's own date, such as 2024-09-28 for Apple's 52/53-week fiscal 2024. archive rows use the calendar month-end, such as 2024-09-30 for Apple's fiscal 2024 fourth quarter. |
period_type | str | none | no | annual or quarterly. |
fiscal_year | int | none | yes | The company's own fiscal-year label. It cannot be derived from period_end: NVIDIA's 2025 ended on 2025-01-26, and Sprint's 2018 ended on 2019-03-31. |
fiscal_period | str | none | yes | FY on annual rows; Q1, Q2, Q3 or Q4 on quarterly rows; null when the period carries no fiscal label. A Q4 row whose labels carry derived_q4: true is a derived fourth quarter (see Provenance and labels below). |
filing_date | str | date | yes | Date the filing was filed with the SEC, YYYY-MM-DD. In the default view this is the filing the row's figures came from, which can be a later report that repeated the period as a comparative year: Microsoft's fiscal 2008 row reads 2010-07-30. version=original returns the first filing of each period. On a derived fourth quarter, the 10-K's filing date. null on archive rows; see knowledge_time_basis. |
version | str | none | no | original: the first filing that reported the period. restated: a later filing that reported the period again; its values may be unchanged. amendment: an amended filing. Always restated on archive rows, and original on a derived fourth quarter. |
source | str | none | no | filing or archive. archive rows serve periods that no filing row reports, such as most fourth quarters and periods before XBRL filings, and periods where the archive row reports revenue or net_income that the filing row lacks. A derived fourth quarter reads filing. |
knowledge_time_basis | str | none | no | On archive rows only, after source; absent on filing rows, whose clock is filing_date. observed: the record holds the date each figure became public, and as_of uses it. bulk_load: a figure that was public before 1986-12-14, the day the record opens; as_of returns it from that date. none: a period before the point-in-time record, with no publication date on record; returned in the default view only, never with as_of, view=as_reported or version=original. Procter & Gamble's fiscal 1950 row reads none. |
currency | str | none | yes | The currency the row's own money values are stated in, as a three-letter code such as USD or CAD, after source (after knowledge_time_basis on archive rows). On archive rows, the code on record for the period. On filing rows, the unit the filing's facts are tagged in (USD), or the archive code where the archive record states the filing's own figures for the period and another period of the company confirms it. null where the currency cannot be told. Values are not converted; per-share figures are in this currency per share. A requested value in another currency is named in field_currency. Canadian National's fiscal 2023 row reads CAD. |
field_currency | object | none | no | Present only when a requested value on the row is in another currency than the row's currency, or when its currency cannot be told, after currency. Maps each such field to its three-letter code, or to null where its currency cannot be told. A value filled from the archive row (filled_from_historical) is in the archive's currency. On an archive row, a quarter worked out from the company's own year-to-date figures (derived_from_ytd) is in the currency of those figures where comparing them with the archive record tells it, and null where it cannot be told. A computed field whose inputs share such a currency is named with it; a computed field whose inputs are in two currencies is null and is not named. |
Income statement
| field | type | unit | nullable | description |
|---|---|---|---|---|
revenue | float | millions of USD | yes | Total revenue (net sales). On filing rows, the filing's top line, and a total smaller than one of its own parts in the same filing is not used; for a bank, total net revenue: the bank's own total where it reports one, otherwise net interest income plus noninterest income, and null where that total is negative. |
cost_of_revenue | float | millions of USD | yes | Total cost of revenue. Equals cost_of_goods_sold unless the filing reports its own gross profit and revenue - cost_of_goods_sold differs from it by more than 0.1% of revenue; then it is revenue - gross_profit and the row lists cost_of_revenue in derived_from_filed. Microsoft's fiscal 2016: cost_of_goods_sold 17880, cost_of_revenue 32780. |
cost_of_goods_sold | float | millions of USD | yes | Cost of goods and services sold, as tagged in the filing. |
gross_profit | float | millions of USD | yes | Gross profit, as reported. filing rows only, except fourth-quarter values derived from the company's own figures (listed in derived_from_ytd). |
research_and_development | float | millions of USD | yes | Research and development expense. filing rows only, except fourth-quarter values derived from the company's own figures (listed in derived_from_ytd). |
selling_general_admin | float | millions of USD | yes | Selling, general and administrative expense. |
depreciation_amortization | float | millions of USD | yes | Depreciation and amortisation expense. |
impairment_charges | float | millions of USD | yes | Impairment charges, as filed. filing rows only. |
operating_income | float | millions of USD | yes | Operating income. |
interest_expense | float | millions of USD | yes | Total interest expense as the filer reports it, for a bank including interest on deposits. Where the filer reports only a net interest figure, the net interest cost as a positive number; net interest income is not reported as interest expense. |
pretax_income | float | millions of USD | yes | Income before income taxes. Where the filer reports only domestic and foreign pretax income, their sum. |
income_tax_expense | float | millions of USD | yes | Income tax expense. |
net_income | float | millions of USD | yes | Net income. |
minority_interest_income | float | millions of USD | yes | Net income attributable to noncontrolling interests. filing rows only. |
net_income_attributable_to_parent | float | millions of USD | yes | Net income attributable to the parent company's shareholders. When the filing does not report this line separately and its net income is the figure attributable to the parent, equals net_income. filing rows only. |
eps_basic | float | USD per share | yes | Basic earnings per share, as filed, not adjusted for later splits. null on a derived fourth quarter. |
eps_diluted | float | USD per share | yes | Diluted earnings per share, as filed, not adjusted for later splits. null on a derived fourth quarter. |
ebit and ebitda sit between net_income_attributable_to_parent and eps_basic in the response; they are defined under Computed fields below.
Balance sheet
| field | type | unit | nullable | description |
|---|---|---|---|---|
cash_and_equivalents | float | millions of USD | yes | Cash and cash equivalents from the balance sheet. Where the balance sheet has no cash and cash equivalents line, the cash-flow statement's total of cash, cash equivalents and restricted cash, or the balance sheet's cash or cash and due from banks line. Any of these three above the filing's total assets is not used, and for a blank-check company whose balance sheet shows its trust account separately, cash held in the trust is not included. filing rows only. |
short_term_investments | float | millions of USD | yes | Short-term investments. filing rows only. |
accounts_receivable | float | millions of USD | yes | Accounts receivable, net. |
inventory | float | millions of USD | yes | Inventories. |
current_assets_total | float | millions of USD | yes | Total current assets. On a filing row that does not report it, taken from the matching archive row and listed in filled_from_historical. |
property_plant_equipment_gross | float | millions of USD | yes | Property, plant and equipment before accumulated depreciation. |
property_plant_equipment_net | float | millions of USD | yes | Property, plant and equipment, net of accumulated depreciation. On filing rows, net utility plant for a utility and net investment property for a real-estate company; either line above the filing's total assets is not used. |
goodwill | float | millions of USD | yes | Goodwill. filing rows only. |
other_noncurrent_assets | float | millions of USD | yes | Other non-current assets, as the filing reports the line. filing rows only. |
total_assets | float | millions of USD | yes | Total assets. On a filing row that does not report it, taken from the matching archive row and listed in filled_from_historical. |
accounts_payable | float | millions of USD | yes | Accounts payable. filing rows only. |
short_term_debt | float | millions of USD | yes | Short-term debt as reported, such as commercial paper. On archive rows, total debt due within one year. |
current_liabilities_total | float | millions of USD | yes | Total current liabilities. On a filing row that does not report it, taken from the matching archive row and listed in filled_from_historical. |
long_term_debt | float | millions of USD | yes | Long-term debt. |
pension_liabilities | float | millions of USD | yes | Defined-benefit pension and other post-retirement benefit liabilities as one line the filing reports, usually the noncurrent amount: the noncurrent line for pension and other post-retirement benefits together where the filing reports that line; otherwise the pension line alone; otherwise another benefit line, such as other post-retirement benefits, post-employment benefits, or a combined line that also includes post-employment benefits or the current amount. Asset-retirement obligations, accrued payroll and deferred compensation are not included. filing rows only. |
total_liabilities | float | millions of USD | yes | Total liabilities. On a filing row that does not report it, taken from the matching archive row and listed in filled_from_historical. |
common_stock_value | float | millions of USD | yes | Carrying value of common stock as reported. Where a company reports common stock and additional paid-in capital as one line, as Apple does, the combined line. |
preferred_equity | float | millions of USD | yes | Carrying value of preferred stock. |
retained_earnings | float | millions of USD | yes | Retained earnings; negative for an accumulated deficit, such as Apple's -214 for fiscal 2023. |
total_equity | float | millions of USD | yes | Stockholders' equity attributable to the parent company. On archive rows, common stockholders' equity, which excludes preferred stock. |
minority_interest | float | millions of USD | yes | Noncontrolling interests in equity. |
total_equity_including_minority | float | millions of USD | yes | Total equity including noncontrolling interests. filing rows only. |
cash_and_short_term_investments sits after short_term_investments, and total_debt after total_liabilities, in the response; both are defined under Computed fields below.
Cash flow
On quarterly rows, cash-flow values are for the single quarter. Where a filing reports a line only year-to-date, the quarter is the difference of the company's own cumulative figures, such as the fourth quarter as the full year less nine months, and the row lists the field in derived_from_ytd. On a derived fourth quarter, every income-statement and cash-flow line is the 10-K's fiscal year less the third-quarter 10-Q's nine months, and balance-sheet lines are the 10-K's year-end figures.
| field | type | unit | nullable | description |
|---|---|---|---|---|
change_in_accounts_receivable | float | millions of USD | yes | Change in accounts receivable with the cash-flow statement's sign: negative when accounts receivable increased and used cash. Apple's fiscal 2023 reads -1688. filing rows only. |
operating_cash_flow | float | millions of USD | yes | Net cash provided by operating activities. On a filing row that does not report it, taken from the matching archive row and listed in filled_from_historical. On archive rows, annual rows only, except quarterly values derived from the company's own figures; null on annual rows before 1968. |
capital_expenditures | float | millions of USD | yes | Capital expenditures on property, plant and equipment. On archive rows, annual rows only, except quarterly values derived from the company's own figures. |
investing_cash_flow | float | millions of USD | yes | Net cash from investing activities; negative for a net outflow. filing rows only. |
share_issuance | float | millions of USD | yes | Proceeds from issuing stock. filing rows only. |
dividends_paid_common | float | millions of USD | yes | Cash dividends paid to common shareholders; where the filing reports no payment of common dividends, the common dividends it declares. On archive rows, annual rows only. |
financing_cash_flow | float | millions of USD | yes | Net cash from financing activities; negative for a net outflow. filing rows only. |
free_cash_flow sits after financing_cash_flow in the response and is defined under Computed fields below.
Share counts
| field | type | unit | nullable | description |
|---|---|---|---|---|
shares_outstanding | float | millions of shares | yes | Common shares outstanding, as filed, not adjusted for later splits. null on a derived fourth quarter. |
weighted_avg_shares_basic | float | millions of shares | yes | Weighted-average basic shares used for eps_basic, as filed, not adjusted for later splits. null on a derived fourth quarter. |
Computed fields
These five fields are calculated on each row from other fields on the same row. Each is null unless every input is present on that row; a missing input never produces a partial sum. Apple's fiscal 2024 row has no interest_expense, so its ebit and ebitda are null. Each is also null where its inputs are in two currencies (see field_currency).
| field | type | unit | nullable | description |
|---|---|---|---|---|
ebit | float | millions of USD | yes | pretax_income + interest_expense. Apple's fiscal 2023: 113736 + 3933 = 117669. |
ebitda | float | millions of USD | yes | pretax_income + interest_expense + depreciation_amortization. Apple's fiscal 2023: 113736 + 3933 + 11519 = 129188. |
total_debt | float | millions of USD | yes | short_term_debt + long_term_debt. Apple's fiscal 2023: 5985 + 95281 = 101266. |
cash_and_short_term_investments | float | millions of USD | yes | On filing rows, cash_and_equivalents + short_term_investments; Apple's fiscal 2023: 29965 + 31590 = 61555. On archive rows, the cash and short-term investments figure the record reports directly. |
free_cash_flow | float | millions of USD | yes | operating_cash_flow less the absolute value of capital_expenditures. Apple's fiscal 2023: 110543 - 10959 = 99584. |
When an input of a computed field was derived or filled, the computed field is listed with it: Apple's quarterly rows list free_cash_flow in derived_from_ytd next to operating_cash_flow and capital_expenditures.
Classification fields
| field | type | unit | nullable | description |
|---|---|---|---|---|
sic | str | none | yes | The issuer's SIC industry code as a string, such as "3663", from its current classification, the same on every row. |
naics | str | none | yes | The issuer's NAICS industry code as a string, such as "334220", from its current classification, the same on every row. |
Provenance and labels
These members appear only when they have content. Each list names value fields on that row, and only fields you requested. Three lists name what a value came from, and labels.derived_q4 marks a derived fourth quarter.
| field | type | unit | nullable | description |
|---|---|---|---|---|
filled_from_historical | list[str] | none | no | Fields on a filing row whose value came from the matching archive row because the filing does not report the line, or because its figure is left empty and named in labels.money_scale_withheld. Only total_assets, total_liabilities, current_assets_total, current_liabilities_total and operating_cash_flow fill. These values come from the archive row for the period, and field_currency names their currency where it is not the row's. Not applied under view=as_reported. Omitted when empty. |
derived_from_ytd | list[str] | none | no | Fields on a quarterly row computed from the company's own year-to-date figures. Applies to operating_cash_flow, investing_cash_flow, financing_cash_flow, capital_expenditures, share_issuance, dividends_paid_common, change_in_accounts_receivable, depreciation_amortization, gross_profit and research_and_development, and to a computed field whose input was derived. On a derived fourth quarter, every income-statement and cash-flow line the row carries, in every view. Otherwise not applied under view=as_reported. On an archive row, these values come from the company's own filings, and field_currency names their currency where it is not the row's. Omitted when empty. |
derived_from_filed | list[str] | none | no | Fields computed from other figures on the same filing. Only cost_of_revenue, as described above. Omitted when empty. |
labels | object | none | no | Flags on values that are served as filed or left empty, and on a derived fourth quarter. Most keys are true; money_scale_suspect and money_scale_withheld are lists of field names. Omitted when no flag is set. The keys are listed below. |
labels keys:
vintage_opens_before_period_end: on anarchiverow, the record's value became known beforeperiod_end. IBM's 1997 annual rows underview=as_reportedinclude one with this label.filed_before_period_end: on afilingrow, the filing date is earlier thanperiod_endas the company tagged it.eps_scale_suspect:eps_basicoreps_dilutedas filed exceeds 100,000 per share in absolute value, or is about 1,000 or 1,000,000 times another measure of the same figure. On afilingrow, that is larger or smaller than thearchiverecord's figure for the period, or larger than the figure in the company's other filings of the period or than the row's ownnet_incomeper weighted share. On anarchiverow, it is larger than the row's own income per basic share, where that share count agrees with the shares outstanding. The figure is served as filed, and Metrics does not use it.share_scale_suspect: on afilingrow, a share count as filed is about 1,000 or 1,000,000 times larger or smaller than another measure of the same count, such as thearchiverecord's count for the period or the count implied bynet_incomeand EPS. The count is served as filed.money_scale_suspect: on afilingrow, a list of the requested money fields whose figure as filed thearchiverecord for the period carries about 1,000 or 1,000,000 times larger or smaller, and of the requested computed fields with such a figure among their inputs. The figures are served as filed.money_scale_withheld: on afilingrow, a list of the requested money fields whose filed figure is left empty because another filing of the period and thearchiverecord carry it about 1,000 or 1,000,000 times larger or smaller, and of the requested computed fields with such a figure among their inputs. Each such field isnull, or filled from thearchiverow and listed infilled_from_historical. See Derived and filled values on Fundamentals.derived_q4: on a quarterlyfilingrow, the row is a fourth quarter derived as the fiscal year reported on the 10-K less the first nine months reported on the same fiscal year's third-quarter 10-Q. It exists only where no fourth-quarter row from a filing or the archive is on record for that fiscal year. A line the two filings do not both report on the same basis isnull;eps_basic,eps_diluted,shares_outstandingandweighted_avg_shares_basicarenull. Itsfiling_dateis the 10-K's, so anas_ofdate before that filing does not return it. See Fundamentals.
{
"entity_id": 3912,
"ticker": "IBM",
...
"period_end": "1997-12-31",
"period_type": "annual",
"fiscal_year": 1997,
"fiscal_period": "FY",
"filing_date": null,
"version": "restated",
"source": "archive",
"knowledge_time_basis": "observed",
"currency": "USD",
"revenue": null,
"net_income": null,
"shares_outstanding": null,
"labels": {
"vintage_opens_before_period_end": true
}
}Units at a glance
- Millions of the row's
currency, millions of USD on aUSDrow: every income-statement, balance-sheet, cash-flow and computed field, except a value thatfield_currencynames, which is in the currency named there. - The row's
currencyper share, USD per share on aUSDrow:eps_basic,eps_diluted. - Millions of shares:
shares_outstanding,weighted_avg_shares_basic. - Strings:
sic,naics,currencyand the identity fields.
Other endpoints use other scales. Read Units and scales before you combine fundamentals with data from Prices, or use Metrics for ratios that combine the two.
Was this page helpful?
Thank you for helping improve xfinlink documentation.
- Need help? Get in touch.
- Building with an LLM? Read llms.txt.
- Using Claude or ChatGPT? Connect the MCP server.