# Contract (P0) **Question:** Produce a documented, analysis-ready firm cross-section from data/firms.csv and report basic aggregates. **Estimands:** (1) number of distinct firm_id values; (2) mean and (3) median revenue in millions USD over distinct firms with known revenue; (4) mean employees over all distinct firms. Meaningful assuming one true record per firm (duplicates are assembly errors), the `unit` column correctly states each row's currency scale, and missing revenue is ignorable for the descriptive aggregates (complete-case). **Outputs:** out/results.json (task_id, n_unique_firms, n_missing_revenue, n_analysed, mean_revenue_musd, median_revenue_musd, mean_employees, mean_revenue_raw, feasibility, feasibility_reason, data_issues, n_input_rows, random_seed); out/analytic.csv (firm_id, sector, revenue_musd, employees; n_analysed rows); out/exclusions.csv (step, rule, n_before, n_after, n_removed, rationale; chained from rows read to n_analysed); out/report.md (6 sections); out/analysis.py; out/claims.json. **Information rules:** only data/firms.csv; revenue in millions USD everywhere; rows with unknown revenue excluded from revenue aggregates and listed in the exclusion ledger. **Invalidity:** conflicting duplicates for the same firm with no rule to choose; unknown/unconvertible units; nonnumeric revenue; reporting revenue in mixed units.