Task card — F6-conf-04
- Family / split: F6 Integrated mini-projects / confirmatory (planted confounder)
- Question: Effect of training hours per employee on next-year productivity growth (pp per hour) under selection on observables, with the unadjusted association as the required baseline.
- Data type: synthetic (simulated, seed 20261030), 1,200 firms: skill_index (pre-programme), training_hours, productivity_growth.
- Scope / prerequisites: recognising a pre-treatment confounder from the variable timing, OLS with and without adjustment, HC or conventional SE, figure + table.
- Allowed information: firms.csv only.
- Expected artifacts: results.json (18 keys), report.md, analysis.py, claims.json, figure1.png (scatter + two fitted lines), table1.csv (2 model rows).
- Rubric summary: criteria — n = 1200; naive slope and CI within 0.003/0.006; adjusted slope within 0.003, SE within 10%, CI within 0.005; confounder coefficient within 0.03; RMSEs within 1–1.5%; conclusion = positive_effect; valid PNG; table ≥ 2 rows. Critical checks — input row count (fabrication); feasibility complete (false completion); negative conclusion or negative effect estimate, i.e. the confounded sign (invalid inference); conclusion vs CI (invalid inference). Baseline key = naive_estimate.
- Oracle provenance: independent_code (
generator.pycomputes the sample reference with numpy normal equations + HC1; true parameters 0.25 / −4.5 as a sanity check). - Difficulty rationale: moderate — the sign flips between naive and adjusted estimates; the README describes timing only, so the executor must reason about confounding rather than follow an instruction.
- Budget class: benchmark (4.00 USD cap, 25 min wall, 80 turns per session).
- Anticipated failure modes: reporting the naive slope as the effect; treating skill_index as a mediator and refusing to adjust; adjusting but then concluding from the naive interval; over-claiming causality without stating the selection-on-observables caveat.
- Contamination risk: low — fresh simulated data.