Executive compensation¶
This analysis tests whether executives' MQ is associated with their total compensation and salary after linking ExecuComp records to Revelio workers.
flowchart LR
data[(Training and full-training<br/>ExecuComp regression data)]
prepare[[Select three samples and<br/>standardize MQ within outcome]]
fit[[Estimate compensation ladders]]
latex[/execucomp_regressions.tex/]
data --> prepare --> fit --> latex
classDef input fill:#eee5f5,stroke:#76528c,stroke-width:2px
classDef code fill:#f3f3f3,stroke:#666,stroke-width:2px
classDef tableOutput fill:#e2f2e7,stroke:#3b7a4b,stroke-width:2px
class data input
class prepare,fit code
class latex tableOutput
The table covers training out-of-sample, training in-sample, and full-training in-sample observations for log total compensation and log salary. Each outcome and sample uses five specifications: MQ only; accounting controls; and the controlled model with year, firm, or firm-plus-year fixed effects. Standard errors are clustered two ways by Revelio worker and firm.
Input: ExecuComp regression data
Module: analyses/modules/disaggregated_execucomp.R
Build both mode-specific regression datasets before estimation:
Rscript pipelines/disaggregated_execucomp.R build_regression_table \
--config config/config_one_percent.yaml --mode training --overwrite
Rscript pipelines/disaggregated_execucomp.R build_regression_table \
--config config/config_one_percent.yaml --mode full_training --overwrite
Rscript pipelines/disaggregated_execucomp.R run_regressions \
--config config/config_one_percent.yaml
Equivalent Slurm tasks are build-execucomp-regression-table for each mode and
execucomp-regressions for estimation.
The regressions are compact and are refitted on each run. The current pipeline does not preserve fitted models, numeric CSV results, or analysis metadata.