# Week 7 lab: team exposure and communication costs

**Course:** Organizations, Personnel, and Internal Labor Markets.  
**Chapter:** Week 7. Teams, Peer Effects, Communication, and Coordination.  
**Scope:** Standard; approximately two core hours plus a two-page proposal and exposure map.  
**Language:** Python 3.10+ standard library.  
**Prerequisites:** randomized assignment, weighted means and the distinction between a worker and a joint deliverable.

The question is how a team intervention affects recipients, untreated peers and total team production. Mas–Moretti, Weidmann–Deming and Battiston et al. motivate the questions; the two-stage design is an original teaching construction informed by the interference-design readings. No paper's protocol, microdata or coefficient is replicated.

The executed mode is **original synthetic design reconstruction**, recorded as `original_synthetic_design_reconstruction`, with `empirical_replication: false`. CSVs and JSON results carry `SYNTHETIC_TEACHING_CONSTRUCTION_NOT_PUBLISHED_REPLICATION`. Optional original replication was omitted: actual original files, permissions and dependencies were not inspected here, and no original data or code were downloaded or executed.

From this directory:

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

The existing `research` environment supplies everything needed. Smoke compiles all three Python scripts, preserves all **56 starter assertions**, independently reconstructs saved results, runs two fresh default-seed roots and seed 88771, and matches **23 artifact hashes**. Nonempty-output refusal must return code **2** with unchanged files. No statistical significance is required to pass.

## 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 accepts `--out` only for an empty or nonexistent directory. Do not point it at this documented lab root. For a separate run, choose a new path:

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

If that path contains files, choose another fresh path; do not erase an existing run to satisfy the guard. The staging installer generates in a temporary root, verifies the explicit inventory, and copies only generated artifacts. Authored notes and unrelated files remain in place. A modified or untracked generated target causes refusal before destination writes so its edits can be preserved and reconciled.

`manifest.json` hashes 22 generated files; adding the manifest gives 23 deterministic artifacts. Code, authored documentation, stale files and the later smoke report are excluded. `validation.json` matches `output/test-report.json` and records all starter checks; `output/smoke-checks.json` records the independent checks and fresh-run comparisons. Compilation writes temporary bytecode rather than repository cache files.

## Files and interpretation

| Path | Content |
|---|---|
| `lab.md`; `transfer-memo-template.md` | Student tasks and research proposal |
| `data/teaching/membership.csv`; `baseline_directed_edges.csv` | Sixteen workers, four fixed teams and 48 directed nonself edges |
| `data/teaching/observed_workers.csv`; `team_outcomes.csv` | Observable worker scores and unique additive team summaries |
| `data/teaching/assignment_protocol.json`; `teaching-schema.csv` | Legal assignment, timing, orientation and field definitions |
| `data/instructor_only/` | Latent primitives, truth audit and recomputed potential-outcome distribution |
| `output/reproduced/exposure_state_means.csv`; `estimates.json` | Four complete exposure-state means and supported contrasts |
| `output/reproduced/sharp_null_reference.csv` | Fixed-observed-outcome reference over all 1,536 legal assignments |
| `output/diagnose/exposure_support.csv`; `design_diagnostics.json` | Support/probabilities and conceptual checks |
| `output/diagnose/communication_curve.csv`; `benefits_and_costs.csv` | Communication objective and sender/recipient accounting |
| `output/reproduced/source-mode-ledger.csv`; `reproduction_status.json` | Provenance and executed scope |
| `output/transfer/transfer-memo-template.md` | Generated proposal checklist |
| `output/results.md`; `output/test-report.json`; `validation.json`; `manifest.json`; `output/smoke-checks.json` | Readable results, assertions and hashes |

Exactly two teams receive high saturation; three of four workers are recipients there, versus one of four in each low team. All 1,536 allocations are equally likely. The complete exposure state includes **own treatment and peer exposure**. Within-saturation recipient contrasts change both; this design has no supported own-treatment contrast at identical peer exposure. Its symmetric saturation mix happens to cancel the peer component in the pooled own-treatment contrast on average, so no universal pooled-bias claim is made.

The global sharp-null reference keeps realized outcomes fixed. The separate instructor audit recomputes potential outcomes; its oracle variance is **not a real-data standard error**. The policy reference has only six high-team selections, each repeated 256 times. Enumeration does not create additional independent teams.

The course figures consume the exposure-support and communication/accounting CSVs; no lab plot is duplicated. Read `transfer/data-notes.md` for assumptions and `run-log.md` for executed results. The core numerical path needs no external data, internet, API, package installation or plotting dependency.
