# Week 5 lab: managers, matching and authority

**Course:** Organizations, Personnel, and Internal Labor Markets.  
**Chapter:** Week 5. Managers, Hierarchies, Authority, and Delegation.  
**Scope:** Standard; approximately two core hours plus a two-page proposal and compact data dictionary.  
**Language:** Python 3.10+ standard library.  
**Prerequisites:** averages, randomized assignment, fixed effects and elementary measurement error.

The question is what assignment to a manager identifies, and how it differs from a manager's skill, a worker–manager match or a decision-rights reform. Weidmann et al. (2026) motivates the assignment question. This is an original, invented paired design: it does not reproduce that article's participants, task, allocation protocol, parameter values or empirical results.

**Mode A** is the guaranteed offline **synthetic design reconstruction**, with `empirical_replication: false`. Every generated CSV uses `SYNTHETIC_TEACHING_CONSTRUCTION_NOT_PUBLISHED_REPLICATION`. **Mode B**, optional original replication, was omitted. No original microdata or code were downloaded or executed; archive pointers documented in the supplied pack are not file-access or replication claims.

From this directory:

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

The wrapper runs a staging installer and substantive smoke using the existing `research` environment. There are no external dependencies, downloads, credentials or new packages. All 21 starter checks are retained; smoke independently reads and reconstructs the outputs, runs two fresh default-seed roots, compares **25 artifact hashes**, tests seed 88771 and verifies refusal of nonempty output directories without mutation. Significance is never a pass criterion.

## 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
```

The numerical generator **requires an empty or nonexistent directory**. Do not point it at the documented lab root. To make a separate experimental run:

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

Choose a new path if that directory already contains files. The generator refuses before writing and never deletes user files. `install-generated.py` generates in a fresh temporary root and copies only 24 explicitly listed artifacts plus `manifest.json` to this lab. It preserves the student README and unrelated files, and refuses before writing if a generated target was modified or is untracked. Preserve such edits separately before choosing how to reconcile them; do not bypass the generator guard. The generated run note lives at `output/results.md`, not `README.md`.

The manifest excludes source, documentation, stale files and itself. `output/smoke-checks.json` records the subsequent validation and is not recursively hashed. Root `checks.json` records the 21 starter assertions; `validation.json` and `output/reproduced/reproduction_status.json` record generator scope, seed and mode.

## Files and interpretation

| Path | Content |
|---|---|
| `lab.md`; `transfer-memo-template.md` | Student tasks and proposal template |
| `data/teaching/worker_manager_panel.csv`; `worker-manager-schema.csv` | 1,728 worker-periods and field definitions |
| `data/teaching/rescue_appointment_example.csv`; `balanced_noisy_score_example.csv` | Mean-reversion and measurement diagnostics |
| `data/instructor_only/` | Potential outcomes, design expectation and separately keyed diagnostic truth |
| `output/reproduced/assignment_pair_contrasts.csv`; `assignment_summary.json` | Twelve contrasts, equal-pair ITT and pair SE |
| `output/reproduced/exact_sharp_null_distribution.csv`; `event_time_contrasts.csv` | All 4,096 realized-outcome assignments and nine event periods |
| `output/reproduced/connectedness_and_rank.csv`; `score_reliability.json` | Graph support and balanced-grid score moments |
| `output/reproduced/delegation_information_conflict.csv`; `queue_illustration.csv` | Fixed-information losses and stable/nonstationary queues |
| `output/reproduced/composition_accounting.csv`; `comparative_advantage.csv` | Output accounting and two-manager assignment |
| `output/reproduced/source-mode-ledger.csv`; `reproduction_status.json` | Source and executed-route boundary |
| `output/transfer/manager_effect_proposal.md`; `output/results.md` | Generated proposal checklist and run orientation |
| `checks.json`; `validation.json`; `manifest.json`; `output/smoke-checks.json` | Assertions, scope, explicit hashes and fresh-run checks |

Both arms switch managers at period zero. High versus low incoming type is randomized within twelve pairs; 1,728 rows are not 1,728 independent assignments. Event contrasts use the **mean of all three pre-periods**, not period −1 alone. The separate instructor expectation integrates potential outcomes across assignments and is not the sharp-null reference distribution. Potential outcomes and diagnostic truth are never learner predictors.

The course assets plot the generated event-time and queue CSVs; core smoke requires no plotting library and does not duplicate those figures. See `transfer/data-notes.md` for assumptions, `source-notes.md` for native-pack provenance and `run-log.md` for the executed results. No original replication, optimal-span estimate, universal manager ranking or worker-welfare result is claimed.
