Econometrics Check
Run a 4-phase causal inference audit on the target file(s) for the sewage-house-prices project.
Input: $ARGUMENTS — a .tex file, .R script, directory path, or all.
Project-Specific Context
Identification Strategies in This Paper
- Hedonic regressions — Cross-sectional:
log(price) on spill count/hours (continuous + bins), LSOA FE, heteroskedasticity-robust SE
- Repeat sales — Within-property variation (Palmquist 1982), house fixed effects
- Long difference — 250m grid-level changes, weighted/unweighted, all/exposed grids
- News/media DiD — Google Trends and LexisNexis media coverage as treatment
- Upstream/downstream — Directional spillover via PostGIS river network topology
- Dry spills — Spills occurring without rainfall as identification variation (rainfall threshold-based)
Key Variables
- Outcome:
log(price) for sales, log(rent) for rentals
- Treatment:
spill_count, spill_hrs, spill_count_daily_avg, spill_hrs_daily_avg
- Geography:
n_spill_sites within radius, min_dist / mean_dist
- Radii: 250m, 500m, 1000m, 2000m, 5000m, 10000m
- Fixed effects: LSOA (
lsoa), MSOA (msoa), year-quarter
- SE: heteroskedasticity-robust via
fixest::feols(vcov = "hetero")
- Counting: 12/24-hour methodology in
spill_aggregation_utils.R
File Locations
- Manuscript:
docs/overleaf/*.tex
- Analysis scripts:
scripts/R/09_analysis/
- Utility functions:
scripts/R/utils/
- Pipeline scripts:
scripts/R/01_data_ingestion/ through scripts/R/06_analysis_datasets/
Workflow
Step 1: Parse Input
Determine target from $ARGUMENTS:
.tex file: Review manuscript section for identification claims, assumption statements, estimation descriptions
.R file: Review analysis script for code-theory alignment, package usage, SE computation
- Directory (e.g.
scripts/R/09_analysis/02_hedonic/): Review all scripts in that approach
all: Review docs/overleaf/*.tex and scripts/R/09_analysis/
- No argument: Review all manuscript sections and analysis scripts
Step 2: Context Gathering
Before auditing:
- Read the target file(s)
- Read
docs/overleaf/refs.bib for citation availability
- If reviewing scripts: read corresponding manuscript section for code-theory alignment
- If reviewing manuscript: read corresponding analysis scripts for accuracy
- Read
scripts/R/utils/spill_aggregation_utils.R for counting methodology
Step 3: Run 4-Phase Review
Phase 1: Claim Identification
- What design is being used? (hedonic / repeat sales / long diff / DiD / upstream-downstream / dry spill)
- What is the estimand? (ATT / ATE / LATE)
- What is the treatment? (spill count, spill hours, distance, media coverage)
- What is the comparison group?
Phase 2: Core Design Validity
Design-specific assumption checks:
Hedonic:
- Selection on observables assumption — are LSOA FE sufficient?
- Omitted variable bias from neighbourhood sorting
- Measurement error in spill count/hours
Repeat sales:
- Within-property variation correctly specified
- Time-varying confounders addressed
- Property-level fixed effects properly implemented
Long difference:
- Grid construction and assignment correct
- Weighted vs unweighted justified
- Pre-period balance
DiD / Event studies:
- Parallel trends assumption stated and tested
- Treatment timing correctly identified
- Staggered adoption issues addressed (if applicable)
Upstream/downstream:
- River network topology correctly implemented
- Directionality assumption valid
- Spillover definitions consistent
Dry spills:
- Rainfall threshold justified
- Dry vs wet spill definition consistent with data pipeline
- Selection into dry spills addressed
Phase 3: Inference
- SE computation: heteroskedasticity-robust applied correctly
- Multiple testing: across radii, specifications, outcomes
- Code-theory alignment: does the R code implement what the paper claims?
Phase 4: Polish & Completeness
- Robustness checks: radius sensitivity, time period variation, specification changes
- Sensitivity analysis: how sensitive are results to key assumptions?
- Citation fidelity: are methodological references accurate?
Early stopping: If Phase 2 finds CRITICAL issues, focus there.
Step 4: Present Summary
## Econometrics Audit: [target]
**Date:** YYYY-MM-DD
### Design(s) Reviewed
- [List designs audited]
### Overall Assessment: [SOUND / MINOR ISSUES / MAJOR ISSUES / CRITICAL ERRORS]
### Blocking Issues (CRITICAL)
1. ...
### Priority Action List
1. ...
2. ...
3. ...
### Positive Findings
- ...
Save report to output/log/econometrics_check_[target].md.
Principles
- Design-opinionated, package-flexible. Validate the econometric logic, not just the R packages.
- Cross-reference code and paper. Flag any mismatch between what the manuscript says and what the script does.
- Actionable output. Every issue must have a concrete fix.
- Proportional. Not every approach needs every robustness check.
- Sequential phases. Never skip to robustness before verifying the core design holds.
1---2name: econometrics-check3description: Causal inference design audit for the sewage-house-prices project. Runs a 4-phase review (claim identification, design validity, inference, polish) covering hedonic pricing, repeat sales, long difference, DiD/event studies, upstream/downstream, and dry spill strategies. This skill should be used when asked to "check the econometrics", "audit the identification", "review the strategy", or when verifying that code matches the stated design.4---56# Econometrics Check78Run a 4-phase causal inference audit on the target file(s) for the sewage-house-prices project.910**Input:** `$ARGUMENTS` — a `.tex` file, `.R` script, directory path, or `all`.1112---1314## Project-Specific Context1516### Identification Strategies in This Paper17181. **Hedonic regressions** — Cross-sectional: `log(price)` on spill count/hours (continuous + bins), LSOA FE, heteroskedasticity-robust SE192. **Repeat sales** — Within-property variation (Palmquist 1982), house fixed effects203. **Long difference** — 250m grid-level changes, weighted/unweighted, all/exposed grids214. **News/media DiD** — Google Trends and LexisNexis media coverage as treatment225. **Upstream/downstream** — Directional spillover via PostGIS river network topology236. **Dry spills** — Spills occurring without rainfall as identification variation (rainfall threshold-based)2425### Key Variables2627- Outcome: `log(price)` for sales, `log(rent)` for rentals28- Treatment: `spill_count`, `spill_hrs`, `spill_count_daily_avg`, `spill_hrs_daily_avg`29- Geography: `n_spill_sites` within radius, `min_dist` / `mean_dist`30- Radii: 250m, 500m, 1000m, 2000m, 5000m, 10000m31- Fixed effects: LSOA (`lsoa`), MSOA (`msoa`), year-quarter32- SE: heteroskedasticity-robust via `fixest::feols(vcov = "hetero")`33- Counting: 12/24-hour methodology in `spill_aggregation_utils.R`3435### File Locations3637- Manuscript: `docs/overleaf/*.tex`38- Analysis scripts: `scripts/R/09_analysis/`39- Utility functions: `scripts/R/utils/`40- Pipeline scripts: `scripts/R/01_data_ingestion/` through `scripts/R/06_analysis_datasets/`4142---4344## Workflow4546### Step 1: Parse Input4748Determine target from `$ARGUMENTS`:49- **`.tex` file:** Review manuscript section for identification claims, assumption statements, estimation descriptions50- **`.R` file:** Review analysis script for code-theory alignment, package usage, SE computation51- **Directory (e.g. `scripts/R/09_analysis/02_hedonic/`):** Review all scripts in that approach52- **`all`:** Review `docs/overleaf/*.tex` and `scripts/R/09_analysis/`53- **No argument:** Review all manuscript sections and analysis scripts5455### Step 2: Context Gathering5657Before auditing:581. Read the target file(s)592. Read `docs/overleaf/refs.bib` for citation availability603. If reviewing scripts: read corresponding manuscript section for code-theory alignment614. If reviewing manuscript: read corresponding analysis scripts for accuracy625. Read `scripts/R/utils/spill_aggregation_utils.R` for counting methodology6364### Step 3: Run 4-Phase Review6566#### Phase 1: Claim Identification67- What design is being used? (hedonic / repeat sales / long diff / DiD / upstream-downstream / dry spill)68- What is the estimand? (ATT / ATE / LATE)69- What is the treatment? (spill count, spill hours, distance, media coverage)70- What is the comparison group?7172#### Phase 2: Core Design Validity73Design-specific assumption checks:7475**Hedonic:**76- Selection on observables assumption — are LSOA FE sufficient?77- Omitted variable bias from neighbourhood sorting78- Measurement error in spill count/hours7980**Repeat sales:**81- Within-property variation correctly specified82- Time-varying confounders addressed83- Property-level fixed effects properly implemented8485**Long difference:**86- Grid construction and assignment correct87- Weighted vs unweighted justified88- Pre-period balance8990**DiD / Event studies:**91- Parallel trends assumption stated and tested92- Treatment timing correctly identified93- Staggered adoption issues addressed (if applicable)9495**Upstream/downstream:**96- River network topology correctly implemented97- Directionality assumption valid98- Spillover definitions consistent99100**Dry spills:**101- Rainfall threshold justified102- Dry vs wet spill definition consistent with data pipeline103- Selection into dry spills addressed104105#### Phase 3: Inference106- SE computation: heteroskedasticity-robust applied correctly107- Multiple testing: across radii, specifications, outcomes108- Code-theory alignment: does the R code implement what the paper claims?109110#### Phase 4: Polish & Completeness111- Robustness checks: radius sensitivity, time period variation, specification changes112- Sensitivity analysis: how sensitive are results to key assumptions?113- Citation fidelity: are methodological references accurate?114115**Early stopping:** If Phase 2 finds CRITICAL issues, focus there.116117### Step 4: Present Summary118119```markdown120## Econometrics Audit: [target]121**Date:** YYYY-MM-DD122123### Design(s) Reviewed124- [List designs audited]125126### Overall Assessment: [SOUND / MINOR ISSUES / MAJOR ISSUES / CRITICAL ERRORS]127128### Blocking Issues (CRITICAL)1291. ...130131### Priority Action List1321. ...1332. ...1343. ...135136### Positive Findings137- ...138```139140Save report to `output/log/econometrics_check_[target].md`.141142---143144## Principles145146- **Design-opinionated, package-flexible.** Validate the econometric logic, not just the R packages.147- **Cross-reference code and paper.** Flag any mismatch between what the manuscript says and what the script does.148- **Actionable output.** Every issue must have a concrete fix.149- **Proportional.** Not every approach needs every robustness check.150- **Sequential phases.** Never skip to robustness before verifying the core design holds.