# Week 9 lab: factorial reform evaluation and work design

**Course:** Organizations, Personnel, and Internal Labor Markets.  
**Chapter:** Week 9. Organizational Change and Work Design.  
**Scope:** Standard; approximately two core hours plus a two-page reform proposal.  
**Language:** Python 3.10+ standard library; no companion language or installation.  
**Prerequisites:** randomized assignment, cell means, sample variance and post-treatment selection.

The question is which reform comparisons establish component effects, complementarity and sustained gains. Atkin et al. (2017) motivates implementation incentives; Bloom et al. (2013, 2020) motivates implementation and persistence. The fully crossed teaching design is not either paper's protocol. In particular, the Pakistan sequential experiments do not supply this factorial lottery.

The executed mode is **original synthetic design reconstruction**, recorded as `synthetic_design_reconstruction`, with `empirical_replication: false`. All generated CSVs and JSON records carry `ORIGINAL_SYNTHETIC_FACTORIAL_DESIGN_NOT_A_PAPER_REPLICATION`. Optional original empirical replication is omitted. The supplied pack checked article/resource pointers; no original microdata or estimation programs were downloaded or executed here, and original archive contents were not inspected.

From this directory:

```bash
ENV_NAME=research bash smoke.sh
```

Smoke preserves all **82 supplied assertions** and executes **1,488 integration checks**. It compiles all three Python scripts, reconstructs saved estimates and both enumerations independently, compares two fresh seed-20260921 runs, executes seed 88771, and tests actual exit-code-2 refusal with unchanged files. It also verifies authored-document preservation and refusal of modified or untracked generated targets. No significance requirement is imposed.

## Safe run order

```bash
conda run -n research --live-stream python src/install-generated.py
conda run -n research --live-stream python src/smoke-checks.py
```

For an experiment, choose a new or empty directory:

```bash
conda run -n research python src/offline_lab.py --output /tmp/org8-week9-new-run --seed 20260921
```

Do not point the numerical runner at this documented lab root. If a target already contains results, choose a fresh path rather than delete them. The installer generates into temporary storage and copies only explicit artifacts after verifying destination hashes. Modified or untracked generated targets cause refusal before destination writes; authored notes remain in place. Preserve and reconcile any changed outputs before refreshing them.

`manifest.json` hashes **21 generated files**; adding the manifest gives **22 deterministic artifacts**. The complete lab contains **37 files**. Source, authored docs, stale files and the later smoke report are excluded from the generated inventory. `validation.json` mirrors `checks.json` exactly; `run_summary.json` records the native execution summary; `output/smoke-checks.json` records the separate integration checks. Compilation uses temporary bytecode.

## File map

| Path | Role |
|---|---|
| `lab.md`; `transfer-memo-template.md` | Student handout and full reform-evaluation proposal |
| `src/offline_lab.py` | Population, assignment, contrasts, both enumerations and original diagnostics |
| `src/install-generated.py`; `src/smoke-checks.py`; `smoke.sh` | Safe staging and executable validation |
| `data/teaching/establishments.csv`; `establishment_period.csv`; `teaching-schema.csv` | Baseline roster, observed panel and field definitions |
| `data/instructor/potential_outcomes.csv`; `dynamic_arm_effects.csv`; `design_audit.csv` | Separate potential outcomes, known dynamics and oracle moments |
| `data/instructor/recomputed-potential-outcome-distribution.csv` | All 13,824 oracle draws, eight estimates and variance estimators |
| `output/reproduced/dynamic_estimates.csv`; `final_contrasts.csv` | All eight observed contrasts over four follow-up periods and final results |
| `output/reproduced/global_sharp_null_distribution.csv` | Fixed-observed-outcome bundle and interaction reference |
| `output/reproduced/source-mode-ledger.csv`; `reproduction_status.json` | Provenance and executed scope |
| `output/diagnose/` | Component, bottleneck, maintenance, cost, measurement and selection diagnostics |
| `output/transfer/reform_evaluation_template.md` | Generated compact proposal checklist |
| `output/results.md`; `checks.json`; `validation.json`; `run_summary.json`; `manifest.json`; `output/smoke-checks.json` | Readable results, native checks, summaries, hashes and integration report |
| `original/`; `transfer/`; `environment/`; `source-notes.md`; `run-log.md` | Access, measurement and execution documentation |

Native `observed/` maps to `data/teaching/`; `instructor/` maps to `data/instructor/`; native `reproduced/`, `diagnose/` and `transfer/` map under `output/`. Root native check and summary files remain available. No instructor truth enters learner tables.

Twelve establishments form three independent baseline blocks. Every block assigns one establishment to each of four tool/redesign cells; all $24^3=13,824$ allocations are equally likely. The initial panel has 60 observed rows and four follow-up periods. No interference and complete follow-up are explicit toy assumptions. Use is post-assignment, and the worker-conditions index is not monetized welfare.

The Fisher calculation fixes observed baseline-adjusted outcomes under a **global sharp null** that all four regimes give the same outcome to every establishment. An interaction statistic under that null is not an interaction-only test allowing nonzero main effects. The instructor audit recomputes potential outcomes; its variance is not empirical uncertainty. Three blocks do not justify narrow normal intervals, and enumeration does not create additional independent units.

The chapter's original figures consume the dynamic estimate/truth CSVs and the bottleneck/maintenance CSVs, with truth and realized estimates visibly distinguished. The core numerical workflow needs no plotting package, network, API, confidential data or original-study software.
