Skip to content

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.

/artifacts/<coverage>/analyses/disaggregated_execucomp/
  execucomp_regressions.tex

The regressions are compact and are refitted on each run. The current pipeline does not preserve fitted models, numeric CSV results, or analysis metadata.