Event Study
Perform a market-model event study around a single event date, following the methodology in MacKinlay, A.C. (1997), “Event Studies in Economics and Finance,” Journal of Economic Literature, 35(1), 13-39 – the canonical reference and still the dominant approach used to measure the stock-price impact of corporate events (earnings announcements, M&A deals, index additions/deletions, dividend changes, regulatory actions, etc.).
A market model (Return_t = alpha + beta * Benchmark_Return_t + e_t) is fit via OLS over a clean “estimation window” ending gap_days before the event, then the Abnormal Return on each day of the “event window” around the event is the actual return minus the market-model-predicted expected return. These are cumulated into the Cumulative Abnormal Return (CAR) – the stock-price impact attributable to the event, after stripping out what would have been expected from general market movements alone – along with a t-test of whether CAR is significantly different from zero.
Also known as: CAR analysis, abnormal returns analysis, market model event study.
No programming experience? With the Finance Toolkit MCP server, AI assistants such as Claude and ChatGPT can calculate the Event Study for you. Just ask in plain English.
Calculate the Event Study in Python
The Event Study is available in the Econometrics module of the open-source Finance Toolkit. Install it with:
pip install financetoolkit -U
Then call get_event_study as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(["AAPL", "MSFT"], api_key="FINANCIAL_MODELING_PREP_KEY")
toolkit.econometrics.get_event_study(event_date="2023-05-04")
Which returns:
| Value | |
|---|---|
| Cumulative Abnormal Return | 0.0181 |
| CAR t-statistic | 0.3693 |
| CAR p-value | 0.7122 |
| Alpha | 0.0005 |
| Beta | 1.294 |
| Estimation Window Observations | 250 |
Parameters
get_event_study accepts the following parameters:
- event_date (str): The date of the event (e.g. “2023-05-04”). Must fall within the Toolkit instance’s daily historical data.
- dependent_ticker (str | None, optional): The ticker being studied. Defaults to the first ticker in the Toolkit instance.
- column (str, optional): The historical data column to use. Defaults to “Return”.
- estimation_window (int, optional): Number of trading days used to estimate the market model. Defaults to 250 (~one trading year).
- gap_days (int, optional): Number of trading days between the end of the estimation window and the event date. Defaults to 30.
- pre_event_days (int, optional): Number of trading days before the event date included in the event window. Defaults to 10.
- post_event_days (int, optional): Number of trading days after the event date included in the event window. Defaults to 10.
- rounding (int | None, optional): The number of decimals to round the results to. Defaults to None.
Related Econometrics Metrics
The Econometrics module page introduces the module, and the sidebar lists all of its functions.