Volkswagen "Dieselgate" Multi-Automaker Event Study Dataset
Source:R/data-dieselgate.R
dieselgate.RdA small, frozen dataset bundling daily prices for four German automakers and
the DAX benchmark index around the 2015 "dieselgate" emissions scandal, ready
to drive a complete multi-group event study (prepare_event_study() ->
fit_model() -> calculate_statistics()).
Usage
data(dieselgate)Format
A named list with four elements:
- firm
A tibble of daily prices for all four automakers combined, with columns
symbol(one of"VOW.DE","PAH3.DE","BMW.DE","MBG.DE"),date(character,"%d.%m.%Y"format), andadjusted(numeric adjusted close). Rows for all firms are stacked (1 440 rows total).- index
A tibble of DAX (
"^GDAXI") daily prices with the samesymbol/date/adjustedcolumns, used as the benchmark / reference market for all four events.- request
A four-row tibble giving the event-study request specifications, one row per firm, with the nine columns expected by
EventStudyTask:event_id(1L to 4L),firm_symbol,index_symbol,event_date("18.09.2015"),group("VW Group"for VOW.DE/PAH3.DE,"Other"for BMW.DE/MBG.DE),event_window_start(-10),event_window_end(10),shift_estimation_window(-11), andestimation_window_length(250).event_id = 1is VOW.DE for backward compatibility.- meta
A list of provenance metadata:
firm_tickers(character vector of all four tickers),groups(named list mapping group labels to tickers),index_ticker,event_date,from,to,source,access_date, andnote.
Source
Yahoo Finance daily adjusted prices, retrieved 2026-09-04 via the
package's own download_stock_data. This is a small
illustrative sample bundled for academic / demonstration use only; see
data-raw/dieselgate.R for the reproducible fetch script.
Details
The event is the U.S. Environmental Protection Agency's Notice of Violation
issued to Volkswagen on 2015-09-18 (a Friday); the share-price crash
lands on the following trading days. The dataset covers two groups: the
"VW Group" (VOW.DE, PAH3.DE — directly implicated firms) and "Other"
(BMW.DE, MBG.DE — peer automakers). The bundled window layout uses a
250-trading-day estimation window ending 11 days before the event and an
event window of [-10, +10] trading days.
Fitting a market model on the "VW Group" events produces a strongly negative cumulative average abnormal return (CAAR approximately -39 roughly -17% and -13% average abnormal returns on the first two trading days after the disclosure, while the "Other" peer automakers show near-zero CAAR (approximately +1%), illustrating the idiosyncratic nature of the shock.
Firms:
VOW.DE— Volkswagen AG ordinary shares (Xetra), event_id = 1PAH3.DE— Porsche Automobil Holding SE (Xetra), event_id = 2BMW.DE— BMW AG (Xetra), event_id = 3MBG.DE— Mercedes-Benz Group AG (Xetra), event_id = 4
Groups: "VW Group" (VOW.DE, PAH3.DE) vs "Other" (BMW.DE, MBG.DE).
Benchmark: DAX performance index (ticker ^GDAXI).
Date range: 2014-06-01 to 2015-11-01.
Examples
# \donttest{
data(dieselgate)
# Build a multi-group task and run the full pipeline
task <- EventStudyTask$new(dieselgate$firm, dieselgate$index,
dieselgate$request)
task <- run_event_study(task, ParameterSet$new())
# Single-firm: VW crash (event_id = 1)
task$get_car(1L)
#> # A tibble: 21 × 3
#> relative_index abnormal_returns car
#> <int> <dbl> <dbl>
#> 1 -10 0.00280 0.00280
#> 2 -9 0.000281 0.00308
#> 3 -8 0.00930 0.0124
#> 4 -7 0.0224 0.0348
#> 5 -6 -0.00573 0.0291
#> 6 -5 0.00576 0.0349
#> 7 -4 -0.00497 0.0299
#> 8 -3 0.00253 0.0324
#> 9 -2 0.000144 0.0326
#> 10 -1 -0.000434 0.0321
#> # ℹ 11 more rows
# Multi-group: CAAR comparison
vw_caar <- task$aar_caar_tbl[task$aar_caar_tbl$group == "VW Group", ]$CSectT[[1]]
other_caar <- task$aar_caar_tbl[task$aar_caar_tbl$group == "Other", ]$CSectT[[1]]
tail(vw_caar[, c("relative_index", "caar", "caar_t")], 1)
#> # A tibble: 1 × 3
#> relative_index caar caar_t
#> <int> <dbl> <dbl>
#> 1 10 -0.386 -12.6
tail(other_caar[, c("relative_index", "caar", "caar_t")], 1)
#> # A tibble: 1 × 3
#> relative_index caar caar_t
#> <int> <dbl> <dbl>
#> 1 10 0.0132 0.338
# }