Composite Equity Issuance
Calculate the composite equity issuance of Daniel and Titman (2006): the growth in market capitalization over five years that the stock return does not explain.
A company’s market capitalization grows with its stock return and with the equity it issues, so what remains after the return is the net equity issued: seasoned offerings, shares issued to employees and in stock-financed acquisitions, minus buybacks and dividends. Daniel and Titman show that this composite issuance predicts returns negatively and, unlike past returns, independently of the book-to-market ratio: companies that issue equity tend to do so when their shares are expensive, and those that return cash when they are cheap.
The formula is as follows:
\[\text{Composite Equity Issuance} = \ln(\text{Market Cap} / \text{Market Cap Five Years Earlier})\]- ln(Total Return over the Five Years)
The total return is the log change in the price adjusted for dividends and splits, so a company that pays dividends without issuing shares has a negative value. The market cap is the close (adjusted for splits only) at the end of each period times the weighted average shares, as in get_market_cap, and the periods follow the calendar. The window is five years, as in the paper: 5 years with annual data and 20 quarters with quarterly data.
Also known as: CEI, iota, composite issuance, composite share issuance.
Composite Equity Issuance in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_composite_equity_issuance as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(
["AAPL", "TSLA", "META", "AMZN"],
api_key="FINANCIAL_MODELING_PREP_KEY",
start_date="2016-01-01",
end_date="2025-12-31",
)
toolkit.ratios.get_composite_equity_issuance()
Or, after setting up the Finance Toolkit MCP, ask:
What was the composite equity issuance of Apple, Tesla, Meta and Amazon over five-year windows from 2019 to 2025?
Which returns:
| 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| AAPL | nan | nan | nan | -0.361 | -0.3589 | -0.331 | -0.3028 | -0.2715 | -0.2165 | -0.176 |
| AMZN | nan | nan | nan | 0.067 | 0.0683 | 0.0653 | 0.0595 | 0.0563 | 0.0583 | 0.0635 |
| META | nan | nan | nan | 0.074 | 0.0045 | -0.0355 | -0.0945 | -0.1158 | -0.1227 | -0.13 |
| TSLA | nan | nan | nan | 0.3515 | 0.3754 | 0.3133 | 0.2302 | 0.2152 | 0.1858 | 0.1417 |
Parameters
get_composite_equity_issuance accepts the following parameters.
| Parameter | Type | Description | Example |
|---|---|---|---|
diluted | bool | Whether to use the diluted weighted average shares instead of the basic ones. Defaults to False, as the dilution from options and convertibles moves with the share price rather than with issuance. | False |
rounding | int | None | The number of decimals to round the results to. Defaults to None, which uses the rounding of the Toolkit (4 unless set otherwise). | 2 |
growth | bool | Whether to calculate the growth of the ratios. Defaults to False. | True |
lag | int | list[int] | The lag to use for the growth calculation. Defaults to 1. | 4 |
compound | bool | Whether the growth is the compound annual growth rate over the lag (e.g. lag=5 for the five-year CAGR) instead of the total change. Defaults to False. | False |
standardize | bool | Whether to standardize (Z-Score) the result. When combined with growth=True, standardizes the growth values instead of the raw values. Defaults to False. | True |
trailing | int | The number of periods of the window. E.g. 1 with annual data gives the issuance over a year. Defaults to None, which uses five years: 20 quarters with quarterly data and 5 years with annual data. | 4 |