Income Statements
Retrieves the income statement data for the specified tickers. The income statement is a financial statement that shows a company’s revenues and expenses over a specific period. It is used to calculate a company’s net income.
The income statement is a financial statement that shows a company’s revenues and expenses over a specific period. Therefore, trailing results are available for this statement.
Also known as: profit and loss, revenue, net income, earnings, P&L statement.
Income Statements in Python
get_income_statement is part of the Toolkit module of the open-source Finance Toolkit. Install it with:
pip install financetoolkit -U
Then call get_income_statement as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(["TSLA", "MU"], api_key="FINANCIAL_MODELING_PREP_KEY", quarterly=True, start_date='2022-05-01')
income_sheet_statements = toolkit.get_income_statement()
income_sheet_statements.loc['TSLA']
Which returns:
| 2022Q2 | 2022Q3 | 2022Q4 | 2023Q1 | 2023Q2 | |
|---|---|---|---|---|---|
| Revenue | 1.6934e+10 | 2.1454e+10 | 2.4318e+10 | 2.3329e+10 | 2.4927e+10 |
| Cost of Goods Sold | 1.27e+10 | 1.6072e+10 | 1.8541e+10 | 1.8818e+10 | 2.0394e+10 |
| Gross Profit | 4.234e+09 | 5.382e+09 | 5.777e+09 | 4.511e+09 | 4.533e+09 |
| Gross Profit Ratio | 0.25003 | 0.250862 | 0.237561 | 0.193364 | 0.181851 |
| Research and Development Expenses | 6.67e+08 | 7.33e+08 | 8.1e+08 | 7.71e+08 | 9.43e+08 |
| General and Administrative Expenses | 0 | 0 | 0 | 0 | 0 |
| Selling and Marketing Expenses | 0 | 0 | 0 | 0 | 0 |
| Selling, General and Administrative Expenses | 9.61e+08 | 9.61e+08 | 1.032e+09 | 1.076e+09 | 1.191e+09 |
| Other Expenses | 2.8e+07 | -8.5e+07 | -4.2e+07 | -4.8e+07 | 3.28e+08 |
| Operating Expenses | 1.628e+09 | 1.694e+09 | 1.842e+09 | 1.847e+09 | 2.134e+09 |
| Cost and Expenses | 1.4328e+10 | 1.7766e+10 | 2.0383e+10 | 2.0665e+10 | 2.2528e+10 |
| Interest Income | 2.6e+07 | 8.6e+07 | 1.57e+08 | 2.13e+08 | 2.38e+08 |
| Interest Expense | 4.4e+07 | 5.3e+07 | 3.3e+07 | 2.9e+07 | 2.8e+07 |
| Depreciation and Amortization | 1.118e+09 | 9.57e+08 | 1.138e+09 | 1.211e+09 | 1.72e+09 |
| EBITDA | 3.582e+09 | 4.645e+09 | 5.039e+09 | 3.875e+09 | 4.119e+09 |
| EBITDA Ratio | 0.211527 | 0.21651 | 0.207213 | 0.166102 | 0.165243 |
| Operating Income | 2.464e+09 | 3.688e+09 | 3.901e+09 | 2.664e+09 | 2.399e+09 |
| Operating Income Ratio | 0.145506 | 0.171903 | 0.160416 | 0.114193 | 0.096241 |
| Total Other Income | 1e+07 | -5.2e+07 | 8.2e+07 | 1.36e+08 | 5.38e+08 |
| Income Before Tax | 2.474e+09 | 3.636e+09 | 3.983e+09 | 2.8e+09 | 2.937e+09 |
| Income Before Tax Ratio | 0.146097 | 0.169479 | 0.163788 | 0.120022 | 0.117824 |
| Income Tax Expense | 2.05e+08 | 3.05e+08 | 2.76e+08 | 2.61e+08 | 3.23e+08 |
| Net Income | 2.259e+09 | 3.292e+09 | 3.687e+09 | 2.513e+09 | 2.703e+09 |
| Net Income Ratio | 0.1334 | 0.153445 | 0.151616 | 0.10772 | 0.108437 |
| EPS | 0.73 | 1.05 | 1.18 | 0.8 | 0.85 |
| EPS Diluted | 0.65 | 0.95 | 1.07 | 0.73 | 0.78 |
| Weighted Average Shares | 3.111e+09 | 3.146e+09 | 3.16e+09 | 3.166e+09 | 3.171e+09 |
| Weighted Average Shares Diluted | 3.465e+09 | 3.468e+09 | 3.471e+09 | 3.468e+09 | 3.478e+09 |
Parameters
get_income_statement accepts the following parameters:
- enforce_source (str | None, optional): Forces this specific call to use a given source, either “FinancialModelingPrep” or “YahooFinance”. This takes precedence over the source set on the Toolkit itself, so one instance can pull historical data from the free Yahoo Finance source while still using a FinancialModelingPrep key for the financial statements (or the other way around). Defaults to None, which falls back to the Toolkit’s own enforce_source.
- overwrite (bool): Defines whether to overwrite the existing data.
- rounding (int): Defines the number of decimal places to round the data to.
- growth (bool): Defines whether to return the growth of the data.
- lag (int | str): Defines the number of periods to lag the growth data by.
- trailing (int): Defines whether to select a trailing period. E.g. when selecting 4 with quarterly data, the TTM is calculated.
- show_columns (list[str] | None): A list of column names to keep in the result. Invalid names are reported and ignored. Defaults to None, which keeps every column.