Discussion Dong, Wu, and Wu (2025)

Country-Specific Sentiment and Geographic Segment Disclosure

Caspar David Peter

Rotterdam School of Management

June 19, 2025

Start

Code
# Load necessary libraries
library(tidyverse)
library(dbplyr)
library(duckdb)
library(fixest)
library(ggfixest)


# Build test sample for replication

## Data collection: lbs_segments.R

## connect to DuckDB database
#con <- dbConnect(duckdb::duckdb(), dbdir = "Data/segments_paper.duckdb")

con <- dbConnect(duckdb::duckdb(), dbdir = "~/Local/GitHub/discussions/Discussions/Data/segments_paper.duckdb")

## Load gallup data 
gallup  <- 
tbl(con, "gallup_balanced") %>%
  collect() 

# Load segment data from DuckDB
segments <- tbl(con, "wrds_hist_segments") %>%
    filter(stype == "GEOSEG" | stype == "OPSEG") %>%
   collect()  %>%  
  select(gvkey, datadate, stype, geotp, snms, isosrc, 
  sales, atlls, capxs, caxts, where(is.double) ) %>%
  mutate(geotp_name = case_when(
    geotp == 1 ~ "Total Foreign (no longer used)",
    geotp == 2 ~ "Domestic",
    geotp == 3 ~ "Non-Domestic",
    TRUE ~ NA_character_
  ))


testsample <- segments %>%
    mutate(clean_country = case_when(
        snms == "United Kingdom" ~ "Great Britain",
        snms == "England" ~ "Great Britain",
        snms == "China (Hong Kong)" ~ "China",
        snms == "China and Hong Kong" ~ "China",
        snms == "People's Republic of China" ~ "China",
        snms == "Peoples Republic of China" ~ "China",
        TRUE ~ snms
    )) %>%
    filter(
        clean_country %in% unique(gallup$country_name),
        !is.na(sales),
        geotp_name %in% c("Non-Domestic"),
        datadate == srcdate
    ) %>%
    ungroup() %>%
    select(-revts)  %>% 
    mutate(line_items = rowSums(!is.na(select(., 8:39))),
           zero_line_items = rowSums(select(., 8:39) == 0, na.rm = TRUE)) %>%
    mutate(year = year(datadate)) %>%
    # New starting point for the analysis - IRAQ war experiment
    filter(between(year, 2000, 2020))  %>% 
    left_join(gallup, by = c("clean_country" = "country_name", "year"))  

# Delete Canadian firms

us_firms  <- tbl(con, "wrds_comp_company")  %>% 
filter(dldte > "2002-01-01" | is.na(dldte))  %>% 
select(conml, gvkey, fic, loc, sic, naics, ipodate, incorp, dldte) %>%
filter(fic == "USA")  %>% 
distinct()  %>% 
collect()

# # Delete financial firms
# us_firms <- us_firms %>%
#     filter(!sic %in% c(6000:6999, 8000:8999)) 
#     # %>% # Exclude financial and insurance firms
#     # filter(!naics %in% c(52, 53, 55, 56, 61, 62, 71, 72)) # Exclude financial and insurance firms by NAICS

# 36,047 (2000-2020) segments in the test sample
# 31,291 (2002-2020) segments in the test sample - filter(!sic %in% c(6000:6999, 8000:8999)) 

testsample <-
    testsample %>%
    inner_join(us_firms, by = "gvkey") %>%
    filter(!is.na(sentiment))

# Summary statistics for the test sample and outliers

#quantile(testsample$sales, probs = c(0.01, 0.05, 0.25, 0.5, 0.75, 0.95, 0.99), na.rm = TRUE)

q99 <- quantile(testsample$sales, probs = seq(0,1,0.01), na.rm = TRUE)[100]

# q99_items <- quantile(testsample$line_items, probs = seq(0,1,0.01), na.rm = TRUE)[100]

testsample <-
testsample %>%
    filter(sales > 0, sales <= q99
    #line_items <= q99_items
    ) 

## Standardize sales?
testsample <-
testsample %>%
    mutate(sales_std = (sales - mean(sales, na.rm = TRUE)) / sd(sales, na.rm = TRUE),
    sentiment_std = (sentiment - mean(sentiment, na.rm = TRUE)) / sd(sentiment, na.rm = TRUE))


## Adjust line items for zero line items

testsample <- testsample %>%
mutate(adj_line_items = line_items - zero_line_items)

dbDisconnect(con, shutdown = TRUE)

# Table setup
dict = setFixest_dict(
    c("sentiment" = "Unfavorable sentiment (in %)",
    "sentiment_std" = "Unfavorable sentiment (z-score)",
      "line_items" = "Number of line items",
      "adj_line_items" = "Number of line items (adj.)",
      "sales" = "Sales",
      "gvkey" = "Firm",
      "snms" = "Country",
      "year" = "Year",
      "treated" = "Treated",
      "post" = "Post",
            "geotp_name" = "Geographic segment type",
            "sales_std" = "Sales (z-score)",
            "clean_country" = "Seg. Country",
            "sic" = "SIC code",
          "SE" ="Standard errors clustered by firm and reported in parentheses if not indicated otherwise in the table. *, **, and *** denote significance at 10%, 5%, and 1%, respectively."), reset = FALSE )

my_style = style.tex(tpt = TRUE, 
                     notes.tpt.intro = "\\tiny")
setFixest_etable(style.tex = my_style)

setFixest_etable(markdown = TRUE)

Disclaimer

This discussion is based on the paper “Country-Specific Sentiment and Geographic Segment Disclosure” by Dong, Wu, and Wu (2025). The code and data used in this discussion are for illustrative purposes only. Hence, my analysis may not fully capture the nuances of the original research. Please refer to the original paper for the most accurate and up-to-date information.

Essentials

Essentials

Bird’s Eye View

My view

Key Additions

  • Stated reasons for changing segment disclosures1?
  • Effect of local reporting requirements (Brown, Hutchens, and Osswald 2024), tax avoidance (Hope, Ma, and Thomas 2013), B2B versus B2C?
  • Link to current geopolitical environment, additional sentiment measures, and sentiment shocks?
  • International generalization
  • Supplement \(\Delta\)Sales test with FDI information, similiar to Koh and Reeb (2015)?

Essentials

Background & Contribution

Literature on geographic segment disclosures

  • Kang and Gray (2019) show that British multinational firms are less likely to voluntarily report their segment and risk information on a country-by-country basis if they are engaged in operations in countries associated with higher levels of country-specific risks.
    • Why is country sentiment different from country risk? 👷
    • Segment-level/within firm analysis versus firm-level analysis ✅
  • Leung and Verriest (2019) show “(…) little to no economic and informational consequences (…)” around IAS 14 to IFRS 8 transition

🚓 Why would we expect that country sentiment does not affect geographic segment disclosures?

Data

Data

Country Unfavorability and Segment Line Items

Gallup Data

Sentiment

Country-Specific Sentiment

Code
# Replicate Figure 1 from the paper
gallup %>%
    filter(between(year, 2002, 2020)) %>%
    select(country_name, year, sentiment) %>%
    ungroup() %>%
    filter(country_name %in% c("China", "Great Britain", "Canada", "Germany", "Japan", "Brazil", "France")) %>%
    ggplot(aes(x = year, y = sentiment, group = country_name, color = country_name)) +
    geom_point() +
    geom_line() +
    scale_x_continuous(breaks = seq(2000, 2020, 2)) +
    scale_y_continuous(labels = scales::percent_format(accuracy = 1), limits = c(0,0.8)) +
    labs(
        #title = "Gallup Ratings of Selected Countries",
        x = "Year",
        y = "Unfavorable Sentiment (in %)",
        color = "Country"
    ) +
    ggthemes::theme_hc()+
    theme(
        legend.position = "bottom",
        text = element_text(size = 16)
    )

  • Clarify the order of steps in the sample selection process, e.g. “Brazil drop”
  • How do you treat no opinion?
  • Country names Gallup versus Compustat - harmonization?

Data

Country Unfavorability and Segment Line Items

Line Items

Code
testsample %>%
    filter(between(year, 2002, 2020)) %>%
    group_by(year) %>%
    summarise(
        line_items = mean(line_items, na.rm = TRUE),
         zero_line_items = mean(zero_line_items, na.rm = TRUE),
         diff = mean(line_items - zero_line_items, na.rm = TRUE)
    ) %>% pivot_longer(
        cols = c("line_items", "zero_line_items", "diff"),
        names_to = "variable",
        values_to = "items"
    ) %>%
    ggplot(aes(x = year, y = items, group = variable, color = variable)) +
    geom_point() +
    geom_line() +
    scale_y_continuous(breaks = seq(0, 8 , .5), limits = c(0, 7)) +
    scale_x_continuous(breaks = seq(2002, 2020, 2) ) +
    scale_color_manual(values = c("line_items" = "blue", "zero_line_items" = "orange", "diff" = "darkgrey"), name = "Variable", labels = c("Diff.", "Number of line items", "Number of line items (adj.)")) +
    scale_linetype_manual(values = c("line_items" = "solid", "zero_line_items" = "dashed", "diff" = "dotted")) +
    labs(
        #title = "Average Number of Line Items per Segment",
        x = "Year",
        y = "Average Number of Line Items \n excl. Sales"
    ) +
    ggthemes::theme_hc()+
    theme(
        legend.position = "bottom",
        legend.title = element_blank(),
        text = element_text(size = 16)
    )

Segment reporting standards


  • SFAS 14 required disclosure of revenues, profitability, and identified assets
  • SFAS 131 only requires revenues & long-lived assets by geographic area (Nichols, Street, and Tarca 2013)
  • Line items can include “0” or same values in different variables, e.g. sales, capex, etc.
  • Exclude “0” line items from the analysis?
  • Outlier treatment: Do you drop negative sales?, Truncation at 99% quantile, etc.?

Data

Segment Line Items, Country Unfavorability, and Sales

How it started …

Code
# Table 4: Segment Line Items, Country Unfavorability, and Sales


a  <- feols(line_items ~ sentiment + I(sales/1e3) | gvkey + clean_country, data = testsample %>% filter(between(year, 2002, 2020)))

b  <- feols(line_items ~ sentiment*I(sales/1e3) | gvkey + clean_country, data = testsample %>% filter(between(year, 2002, 2020)))

c  <- feols(adj_line_items  ~ sentiment + I(sales/1e3) | gvkey + clean_country, data = testsample %>% filter(between(year, 2002, 2020)))

d  <- feols(adj_line_items  ~ sentiment*I(sales/1e3) | gvkey + clean_country, data = testsample %>% filter(between(year, 2002, 2020)))

fixest::etable(a,b,c,d,
               #title    = "",
               digits   = 3,
               digits.stats = 3,
               fitstat  = ~ ar2  + n,
               #file     = "paper/tables/main_result.tex",xs
               replace = T,
               style.tex = style.tex("aer"),
               notes = c( "SE"),
               highlight = .("rowcol, orange!40, se" = "sentiment:I(sales/1000)"),
               headers = .("^" = c("OLS" = 4, " \n " = 0) )
              )

How it’s going …

Code
# Table 4: Segment Line Items, Country Unfavorability, and Sales


a  <- fepois(line_items ~ sentiment_std*sales_std  | gvkey + clean_country,  data = testsample %>% filter(between(year, 2002, 2020)))

b  <- fepois(line_items ~ sentiment_std*sales_std  | gvkey + clean_country^year,  data = testsample %>% filter(between(year, 2002, 2020)))

c  <- fepois(line_items ~ sentiment_std*sales_std  | gvkey + clean_country + sic^year,  data = testsample %>% filter(between(year, 2002, 2020)))

# d  <- fepois(line_items ~ sentiment*sales_std  | clean_country + gvkey^year , data = testsample %>% filter(between(year, 2002, 2020)), cluster = "gvkey")

e  <- fepois(line_items ~ sentiment_std*sales_std | gvkey + clean_country^year, data = testsample %>% filter(between(year, 2002, 2020)), cluster = "clean_country^year")

fixest::etable(a,b,c,e,
               #title    = "",
               digits   = 3,
               digits.stats = 3,
               fitstat  = ~ apr2  + n,
               #file     = "paper/tables/main_result.tex",
               replace = T,
               style.tex = style.tex("aer"),
               notes = c( "SE"),
               highlight = .("rowcol, orange!40, se" = "sentiment_std:sales_std"),
               headers = .("^" = c("Poisson" = 4, " \n "  = 0) )
              )
  • Use Poisson regression for count data (line items), see e.g. Cohn, Liu, and Wardlaw (2022)
  • Consider standardizing the variables -> easier interpretation/econ. effects
  • Cluster standard errors by country-year

Idea

Idea

Iraq War experiment

Sentiment of France and Germany


Hwang (2011)

Sentiment of France and Germany

Code
# Using 2000 as start year for the Iraq War experiment
testsample %>%
    filter(clean_country %in% c("France", "Germany")) %>%
    filter( between(year, 2000, 2006))  %>% 
    group_by(clean_country, year) %>%
    summarise(
        sentiment = mean(sentiment, na.rm = TRUE),
        line_items = mean(line_items, na.rm = TRUE)
    ) %>%
    ggplot(aes(x = year, y = sentiment, color = clean_country)) +
    geom_line() +
    geom_point() +
    geom_vline(xintercept = 2003, linetype = "dashed", color = "grey") +
    geom_text(aes(x = 2003, y = 0.6, label = "Iraq War"), vjust = -1, color = "blue") +
    labs(
        x = "Year",
        y = "Unfavorable Sentiment (in %)",
        color = "Country"
    ) +
    scale_x_continuous(breaks = seq(2000, 2020, 2)) +
    scale_y_continuous(labels = scales::percent_format(accuracy = 1), limits = c(0,0.8)) +
    ggthemes::theme_hc() +
    theme(
        legend.position = "bottom",
        text = element_text(size = 16)
    )

  • Iraq war: France & Germany deny help -> exogenous sentiment drop -> natural experiment?
  • Zoom in deeper -> fiscal year ends

Idea

Iraq War Experiment

Sentiment of France and Germany

Code
iraq_exp  <- testsample %>%
mutate(treated = clean_country %in% c("France", "Germany") %>% as.numeric(.),
       post = as.numeric(year >= 2003 )) %>% 
    filter( between(year, 2000, 2006))   %>% 
    group_by(gvkey) %>%
    filter(max(year) > 2003, min(year) < 2003)  %>% 
    ungroup()   %>% 
    group_by(gvkey, snms) %>%
    mutate(seq_id = paste0(gvkey, "_", snms)) %>%
    ungroup()  


a  <- fepois(line_items ~ i(year, treated, 2002)  | gvkey + year, data = iraq_exp, cluster = "gvkey")  
b  <- fepois(adj_line_items ~ i(year, treated, 2002)   | gvkey + year, data = iraq_exp, cluster = "gvkey")

ggfixest::ggiplot(
    list('Line items' = a, 'Line items (adj.)' = b), 
    ref.line = 2002, 
    #pt.join = TRUE,
    main = "",
    title = "",
    multi_style = "dodge",
    xlab = "Year",
    col = c('orange', 'blue'),
    scale_y_continuous = list(labels = scales::comma_format(accuracy = 1), limits = c(-.4, .4)),
    #geom_style = "ribbon",
    #facet_args = list(labeller = labeller(id = \(x) gsub(".*: ", "^l", x))),
    theme = ggthemes::theme_hc() + 
       theme(
        #     #text = element_text(family = "HersheySans"),
        #    plot.title = element_text(hjust = 0.5)
          #   legend.position = "none"
          legend.title = element_blank(),
          text = element_text(size = 16)
        )
    )

Line items during the Iraq War (DiD)

\[\text{Line Items} = \theta_{firm} + \omega_{year} + \beta_1 \text{Treated} \times \text{Post} + \epsilon\]

where:

  • \(\text{Treated}\) equals 1 for France and Germany, and 0 otherwise
  • \(\text{Post}\) equals 1 for the years after the Iraq War started (2003) and 0 otherwise
  • \(\theta_{firm}\) firm, and \(\omega_{year}\) year fixed-effects

Tables

Extensions

Extensions

Food for Thought

Zoom-in on Firms

  • Reasons mentioned in filings for changing segment disclosures, see e.g. Material Contracts Corpus
  • Does regulatory scrutiny change with sentiment, see e.g. Bozanic, Dietrich, and Johnson (2017)

Consequences

  • Changes in country employment, investment, and sales?
  • Effect on supply chain decisions?

Interest & Sentiment

Research design

  • Alternative exogenous sentiment shocks, e.g. US-China relations
  • B2C versus B2B firms x-section?

Thank you for your attention and good luck with your research!

References

Bozanic, Zahn, J Richard Dietrich, and Bret A Johnson. 2017. “SEC Comment Letters and Firm Disclosure.” Journal of Accounting and Public Policy 36 (5): 337–57.
Brown, Nerissa C, Michelle Hutchens, and Benjamin Osswald. 2024. “Do Local Country Reporting Requirements Affect Parent Company Geographic Disclosures?” Available at SSRN 4647222.
Cohn, Jonathan B, Zack Liu, and Malcolm I Wardlaw. 2022. “Count (and Count-Like) Data in Finance.” Journal of Financial Economics 146 (2): 529–51.
Conover, T, J Conover, and J Karafiath. 1994. “Equity Market Performance of US Multinational Firms, the 1982 Closure of the Mexican FEX Market, and Accounting Disclosures of Political Risk.” Advances in International Accounting 7: 145–69.
Dong, Stephanie, Joanna Shuang Wu, and Xiaoxi Wu. 2025. “’Country-Specific Sentiment and Geographic Segment Disclosure’.” "Working Paper".
Doupnik, Timothy S, and Robert J Rolfe. 1989. “The Relevance of Level of Aggregation of Geographic Area Data in the Assessment of Foreign Investment Risk.” Advances in Accounting 7: 51–65.
Herrmann, Don, and Wayne B Thomas. 1997. “Geographic Segment Disclosures: Theories, Findings, and Implications.” The International Journal of Accounting 32 (4): 487–501.
Hope, Ole-Kristian, Mark Shuai Ma, and Wayne B Thomas. 2013. “Tax Avoidance and Geographic Earnings Disclosure.” Journal of Accounting and Economics 56 (2-3): 170–89.
Hwang, Byoung-Hyoun. 2011. “Country-Specific Sentiment and Security Prices.” Journal of Financial Economics 100 (2): 382–401.
Israeli, Doron, Ron Kasznik, and Suhas A Sridharan. 2021. “Unexpected Distractions and Investor Attention to Corporate Announcements.” Review of Accounting Studies, 1–42.
Kang, Helen, and Sidney J Gray. 2019. “Country-Specific Risks and Geographic Disclosure Aggregation: Voluntary Disclosure Behaviour by British Multinationals.” The British Accounting Review 51 (3): 259–76.
Koh, Ping-Sheng, and David M Reeb. 2015. “Missing r&d.” Journal of Accounting and Economics 60 (1): 73–94.
Leung, Edith, and Arnt Verriest. 2019. “Does Location Matter for Disclosure? Evidence from Geographic Segments.” Journal of Business Finance & Accounting 46 (5-6): 541–68.
Nichols, Nancy B, Donna L Street, and Ann Tarca. 2013. “The Impact of Segment Reporting Under the IFRS 8 and SFAS 131 Management Approach: A Research Review.” Journal of International Financial Management & Accounting 24 (3): 261–312.
Semetko, Holli A, Joanne Bay Brzinski, David Weaver, and Lars Willnat. 1992. “TV News and US Public Opinion about Foreign Countries: The Impact of Exposure and Attention.” International Journal of Public Opinion Research 4 (1): 18–36.

Appendix

Appendix

Summary Statistics

Code
# Summary statistics for the test sample

# Summary statistics for the analysis dataset
  summary_stats <- testsample %>%
      filter(between(year, 2002, 2020)) %>%
    select(
      sentiment,
      line_items,
      zero_line_items,
      adj_line_items,
      sales,
      sales_std
    ) %>%
    as.data.frame()

  # Define variable labels directly instead of using fixest_dict
  labels <- c(
    "Unfavorable Sentiment (in %)",
    "Number of Line Items",
    "Zero Line Items",
    "Number of Line Items (adj.)",
    "Sales (in $1,000s)",
    "Sales (z-score)"
  )

  stargazer::stargazer(summary_stats,
      type = "html",
      #title = "Summary Statistics",
      summary.stat = c("n", "mean", "sd", "p25", "median", "p75", 
                       "min", "max"),
      digits = 2,
      covariate.labels = labels,
      summary = TRUE,
      header = FALSE,
      font.size = "scriptsize"
    ) 
Statistic N Mean St. Dev. Pctl(25) Median Pctl(75) Min Max
Unfavorable Sentiment (in %) 30,983 0.20 0.17 0.07 0.14 0.27 0.02 0.95
Number of Line Items 30,983 5.09 2.65 4 5 6 0 30
Zero Line Items 30,983 3.94 1.46 3 4 5 0 15
Number of Line Items (adj.) 30,983 1.14 2.00 0 1 1 0 23
Sales (in 1,000s) 30,983 265.83 638.58 10.02 50.91 208.57 0.001 6,594.00
Sales (z-score) 30,983 0.01 1.01 -0.39 -0.33 -0.08 -0.41 10.05

Appendix

Summary Statistics of Country Unfavorability by Country Segment

Code
# Summary Statistics of Country Unfavorability by Country Segment
  testsample %>%
      filter(between(year, 2002, 2020)) %>%
      group_by(clean_country) %>%
      summarise(
      N = n(),
      sentiment_mean = mean(sentiment, na.rm = TRUE),
      sentiment_median = median(sentiment, na.rm = TRUE),
      sentiment_sd = sd(sentiment, na.rm = TRUE))  %>% 
      arrange(desc(N))  %>% 
      rename(
        "Country" = clean_country,
        "Observations" = N,
        "Mean" = sentiment_mean,
        "Median" = sentiment_median,
        "SD" = sentiment_sd
      )  %>% 
      mutate(across(3:5, ~ round(.x, 2))) %>%
      # Nice HTML table
        knitr::kable(
            format = "html",
            col.names = c("Country", "Observations", "Mean", "Median", "SD")
            #caption = "Summary Statistics of Country Unfavorability by Country Segment"
        ) 
Country Observations Mean Median SD
Canada 7396 0.07 0.06 0.02
Great Britain 4637 0.07 0.07 0.02
China 3816 0.54 0.55 0.04
Japan 3441 0.15 0.16 0.02
Germany 2819 0.16 0.14 0.06
Mexico 1943 0.39 0.40 0.09
France 1494 0.29 0.25 0.13
Australia 1397 0.05 0.05 0.02
Taiwan 1178 0.23 0.22 0.02
Brazil 957 0.19 0.17 0.02
India 591 0.24 0.23 0.04
South Korea 522 0.31 0.31 0.04
Israel 304 0.29 0.27 0.04
Russia 243 0.55 0.53 0.14
Saudi Arabia 82 0.63 0.62 0.04
Egypt 44 0.40 0.39 0.08
Ukraine 27 0.26 0.21 0.09
Iraq 26 0.80 0.79 0.06
Libya 22 0.76 0.79 0.03
Jordan 19 0.34 0.33 0.03
Pakistan 19 0.70 0.70 0.07
Afghanistan 6 0.84 0.84 0.02

Appendix

Line Items distributions

Line Items

Code
# Distribution of line items 

testsample %>% 
    filter(between(year, 2002, 2020)) %>%
    ggplot(aes(x = line_items)) +
    geom_histogram(bins = max(testsample$line_items), fill = "blue", color = "black", alpha = 0.7) +
    labs(
        #title = "Distribution of Line Items",
        x = "Number of Line Items",
        y = "Frequency"
    ) +
    #scale_x_continuous(breaks = seq(0, 8, 1)) +
    ggthemes::theme_hc() +
    theme(
        text = element_text(size = 16)
    )

Adjusted Line Items

Code
# Distribution of adjsuted line items 

testsample %>% 
    filter(between(year, 2002, 2020)) %>%
    ggplot(aes(x = adj_line_items)) +
    geom_histogram(bins = max(testsample$adj_line_items), fill = "blue", color = "black", alpha = 0.7) +
    labs(
        #title = "Distribution of Adjusted Line Items",
        x = "Number of Adjusted Line Items",
        y = "Frequency"
    ) +
    #scale_x_continuous(breaks = seq(0, 8, 1)) +
    ggthemes::theme_hc() +
    theme(
        text = element_text(size = 16)
    )

Appendix

Iraq War experiment Back

Code
# Table 4: Segment Line Items, Country Unfavorability, and Sales

# DiD regression for the Iraq War experiment
a  <- fepois(line_items ~ treated:post + sales_std  |  gvkey + year + clean_country ,  data = iraq_exp, cluster = "gvkey") 

b  <- fepois(line_items ~ i(year, treated, 2002)  | gvkey + year, data = iraq_exp, cluster = "gvkey") 

c <- fepois(line_items ~ i(year, treated, 2002) + sales_std   | gvkey + year + clean_country , data = iraq_exp, cluster = "gvkey") 

# Adjusted line items for the Iraq War experiment
a1  <- fepois(adj_line_items ~ treated:post + sales_std  |  gvkey + year + clean_country ,  data = iraq_exp, cluster = "gvkey") 

b1  <- fepois(adj_line_items ~ i(year, treated, 2002)  | gvkey + year, data = iraq_exp, cluster = "gvkey") 

c1 <- fepois(adj_line_items ~ i(year, treated, 2002) + sales_std   | gvkey + year + clean_country , data = iraq_exp, cluster = "gvkey") 

# Balanced segment panel - same segments have to present in all years 

d  <- fepois(line_items ~ i(year, treated, 2002) + sales_std | gvkey + year + clean_country ,
data = iraq_exp %>% 
group_by(seq_id)  %>% 
filter(n() > 6)  %>% 
ungroup(),  
cluster = "gvkey" )

fixest::etable(a,b,c,a1,b1,c1,d,
               #title    = "",
               digits   = 3,
               digits.stats = 3,
               fitstat  = ~ apr2  + n,
               #file     = "paper/tables/main_result.tex",
               replace = T,
               style.tex = style.tex("aer"),
               notes = c( "SE"),
               order = c("!Sales"),
               highlight = .("rowcol, orange!40, se" = "treated:post|i(year, treated, 2002)"),
               headers = .("^:_:" = c("Sample period: 2000-2006" = 6, "Balanced \n Panel" = 1) )
               #adjustbox = "0.65tw"
              )

Appendix

Minor tweaks

  • Variable Definitions: countryunfavorability -> “No opinion”?
  • Drop in number of observations for enforce
  • Include sample selection process (table) in the paper
  • Table 7. Segment Line Items, Sanctions, and Sales: N = 37,657 versus 31,603 in Table 4
  • Page 7, “Early and Preble 2020” citation includes mix up.
  • Page 19, “lie low.” should be “lie low”.