The attached sample data and request files were constructed to illustrate the use of the EventStudyTools R-package.

The files hold data about the addition of several well known firms to the S&P 500 index in the late 1990s. With this data, the R package will investigate for you the question whether a company’s stock value increases if the firm is added to the S&P 500 index. This is a common research question and has been addressed, among others, by Anthony W. Lynch and Richard R. Mendenha in a 1997 study: They found a positive effect of about 3.8% over the period starting the day after the announcement and ending the day before the effective date of the change.

You can use our R-package to easily investigate such and similar questions.

Perform an Event Study from R


For performing an Event Study with our API you need:

  • API url (defaults to
  • API key

You get an API key from our website EventStudyTools. In the first step we need to authenticate to the web API. There are three ways to handle this two parameters:

apiUrl <- ""
apiKey <- "Please insert your key here"

Option 1 and 2: You can save API key and URL in the options object

# The URL is already set by default
# options(EventStudy.URL = apiUrl)
options(EventStudy.KEY = apiKey)

# use EventStudy estAPIKey function

# initialize object
estSetup <- EventStudyAPI$new()

Option 2: Set the API Key and URL directly during the EventStudyAPI R6-class initialization

# Setup API Connection
estSetup <- EventStudyAPI$new(apiUrl)

This API package is designed to perform all analyses we provide on our website. Furthermore, all parameters can be set. You are able to set every parameter in R (we will provide more details later), or you can perform a fast Event Study with default parameters.

Event Study with Defaults Parameters

There will be soon a separate vignette for setting parameters.

Event Study Types

Our API offers different types of Event Studies:

  • Return Event Study: arc
  • Trading Volume Event Study: avc
  • Abnormal Volatility Event Study: avyc

Default parameters for all type of above Event Studies are:

  • Benchmark model: Market Model for arc and avc and GARCH(1, 1) Model for avyc
  • Statistics: All available test statistics are calculated
  • Result file type: csv
  • Return type calculation: log
  • Handling non-trading days: later

The type of Event Study can be set by parameter:

estType <- "arc"

Data Files

By default all data files must be named as follows. Furthermore, they have to be in the current directory:

  • 01_RequestFile.csv
  • 02_firmData.csv
  • 03_MarketData.csv

You are also able to set custom file names and paths by defining it in a named vector:

dataFiles <- c("request_file" = "01_RequestFile.csv", 
               "firm_data"    = "02_firmData.csv", 
               "market_data"  = "03_MarketData.csv")


All results will be written by default into the directory ./results. You can easily change this path by setting it as a parameter:

resultPath <- "results"


If the resultPath do not exist, the R package will create this directory.

Performing the Event Study

Finally, the Event Study is performed by:

estResult <- estSetup$performDefaultEventStudy(estType    = estType,
                                               dataFiles  = dataFiles, 
                                               destDir    = resultPath)

It will write all result files into the result directory. Furthermore, results will be parsed into a R object.

Data File Description

For performing an Event Study we need three files (file names can be chosen arbitrarily):

  1. A request file where the structure of the Event Study is defined
  2. A firm data file containing the stock data for each firm defined in the request file
  3. A market data file containing the reference market data (multiple reference markets per study are possible)

All files must be saved without header, semi-colon separated and dates has to be in following format: 30.04.1997. In next section we will describe the file structure based on the S&P 500 example Event Study more detailed. You always find more information (if necessary) on our website: EventStudyTools.

We added the S&P 500 example Event Study to this package. The three necessary files can be easily generated by following command:


We named the request and data files in following manner:

  • 01_RequestFile.csv
  • 02_FirmData.csv
  • 03_MarketData.csv

In your analysis, you can name them as you want.

Event Definitions: 01_RequestFile.csv

This csv file contains the event definitions. It contains 9 columns. The order must be in the following way, as the columns are not named in the csv.

  • Event ID [Integer]: A unique event identifier
  • Firm ID [String]: The firm name or stock ID. This ID must match the ID in the firm data
  • Market ID [String]: The reference market ID. This ID must match the ID in the market data
  • Event Date [30.04.1997]: Date of the event
  • Grouping Variable [String]: This column is used to group events. Most test statistics are based on looking at groups.
  • Start Event Window [Integer]: This integer value defines the start of the event window. This value must smaller or equal zero (e.g. trading days before event).
  • End Event Window [Integer]: This integer value defines the end of the event window. This value must greater or equal zero (e.g. trading days after event).
  • End of Estimation Window [Integer]: This negative value defines the end of the estimation window (counted from event day).
  • Estimation Window Length [Integer]: Length of the estimation window

In the following example, we have an event window of [-2, 2] (an event window of length 5), an estimation window of length 120, and the estimation window ends 11 days before the event.

df <- readr::read_delim("01_RequestFile.csv", col_names = F, delim = ";")
names(df) <- c("Event ID", "Firm ID", "Market ID", "Event Date", "Grouping Variable", "Start Event Window", "End Event Window", "End of Estimation Window", "Estimation Window Length")
knitr::kable(head(df), pad=0)
Event ID Firm ID Market ID Event Date Grouping Variable Start Event Window End Event Window End of Estimation Window Estimation Window Length
75510 Adobe Systems SP500 30.04.1997 Addition -2 2 -11 120
64390 Progressive SP500 25.07.1997 Addition -2 2 -11 120
23473 Cincinnati SP500 16.12.1997 Addition -2 2 -11 120
70500 Coca-Cola Enterprises SP500 01.10.1998 Addition -2 2 -11 120
70519 Travelers Group SP500 01.10.1998 Addition -2 2 -11 120
76149 Safeway SP500 05.11.1998 Addition -2 2 -11 120


The first column (Event IDs) must be unique and numeric.

Firm Data: 02_FirmData.csv

The stock data for each firm defined in the request file. It contains 3 columns.

  • Firm ID [String]: The firm or stock ID. This ID must match the ID in the Firm ID in the request file.
  • Date [30.04.1997]: Date of the closing price.
  • Closing Price [Double]: Closing price of volume of that day.

The following table shows the first 20 entries of our example firm data.

df <- readr::read_delim("02_FirmData.csv", col_names = F, delim = ";")
names(df) <- c("Firm ID", "Date", "Closing Price")
Firm ID Date Closing Price
Cincinnati 01.10.1996 58.000
Cincinnati 02.10.1996 57.000
Cincinnati 03.10.1996 56.750
Cincinnati 04.10.1996 57.500
Cincinnati 07.10.1996 57.625
Cincinnati 08.10.1996 57.750

Firm Data: 03_MarketData.csv

This file is similary structured as 02_FirmData.csv:

  • Market ID [String]: The market ID or stock ID. This ID must match the ID in the Market ID in the request file.
  • Date [30.04.1997]: Date of the closing price.
  • Closing Price [Double]: Closing price of volume of that day.

The following table shows the first 20 entries of our example firm data.

df <- readr::read_delim("03_MarketData.csv", col_names = F, delim = ";")
names(df) <- c("Market ID", "Date", "Closing Price")
Market ID Date Closing Price
SP500 30.09.1996 100.0000
SP500 01.10.1996 100.2575
SP500 02.10.1996 100.9747
SP500 03.10.1996 100.7958
SP500 04.10.1996 102.0587
SP500 07.10.1996 102.3380

You are also able to apply a Fama-French 3-Factor Model or a Fama-French Momentum-4-Factor Model. This will change the necessary data you need for performing an Event Study (e.g. by adding Fama-French Factors). You find more information at

More Vignettes

  1. Event Study: Parameters: In this Vignette we show how you can set parameters and which parameters are allowed.
  2. Data Preparation: In this Vignette we show you how to get and prepare data for your Event Study from R.
  3. RStudio Addins: We wrote a RStudio addin for performing different types of Event Studies
    • Abnormal Return Event Study
    • Abnormal Volume Event Study
    • Abnormal Volatility Event Study

How to Cite

Please cite our work in your publication.