Beta-Implied Return
Calculate the Beta-Implied Return, the part of an asset’s return that its Beta to the benchmark explains, and the Residual, the part that is the asset’s own.
When the market falls 4% and a stock with a Beta of 1.8 falls 9%, the Beta accounts for about 7.2% of the fall (1.8 × 4%) and the remaining 1.8% is specific to the stock: news, earnings or sector moves that the market as a whole did not share. This is the market model of Sharpe (1963) without its intercept, the split behind event studies and return attribution, which reads a move against what the market alone would have produced.
The formula is as follows:
\[\text{Implied Return} = \text{Beta} \cdot \text{Benchmark Return}\] \[\text{Residual} = \text{Actual Return} - \text{Implied Return}\]The Beta of each period is estimated from the daily returns over the beta_window trading days that end on the day before the period starts, so the move being explained never helps estimate the Beta that explains it, and the figure is what an investor could have known at the start of the period. With the default daily period every row explains one day’s move; a monthly or yearly period explains that month or year with the Beta known when it began.
See definition: https://en.wikipedia.org/wiki/Single-index_model
Also known as: beta-adjusted return, market-implied move, idiosyncratic return, abnormal return.
Beta-Implied Return in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_beta_implied_return as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(
["NVDA", "KO", "AMD", "TSLA"],
api_key="FINANCIAL_MODELING_PREP_KEY",
start_date="2025-06-01",
end_date="2026-11-05",
)
toolkit.performance.get_beta_implied_return().loc["2026-11-05"].unstack()
Or, after setting up the Finance Toolkit MCP, ask:
How did the returns of Nvidia, Coca-Cola, AMD and Tesla up to 5 November 2026 compare with what their beta to the S&P 500 implied?
Which returns:
| NVDA | KO | AMD | TSLA | |
|---|---|---|---|---|
| Beta | 1.8757 | -0.2777 | 3.2846 | 2.1039 |
| Benchmark Return | -0.0441 | -0.0441 | -0.0441 | -0.0441 |
| Implied Return | -0.0827 | 0.0122 | -0.1448 | -0.0928 |
| Actual Return | -0.0926 | -0.0007 | -0.1726 | -0.1077 |
| Residual | -0.0099 | -0.0129 | -0.0278 | -0.0149 |
Parameters
get_beta_implied_return accepts the following parameters.
| Parameter | Type | Description | Example |
|---|---|---|---|
period | str | The period whose returns are explained: “daily”, “weekly”, “monthly”, “quarterly” or “yearly”. Defaults to “daily”. | "weekly" |
beta_window | int | The number of daily returns the Beta is estimated on. Defaults to 252, about one year of trading days, a common length for a market model’s estimation window that is long enough for a stable Beta and short enough to follow changes in the business. | 252, about one year of trading days, a common length for a market model's estimation window that is long enough for a stable Beta and short enough to follow changes in the business |
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 |