# Contract (P0) **Question:** Summarise the provider's property-sales export (data/sales.csv) and reconcile it to provider control totals (data/metadata.json). **Estimands:** n of unambiguously readable records (n_valid_records = n_analysed); sum and mean of price_cad over them; median of price_cad/area_m2 over them; reconciliation: n_unreadable_records = n_records_control − n_valid, sum_price_unreadable_implied = sum_price_control − sum_price_valid. The implied quantities are meaningful only if the control totals are correct and the valid records are faithful copies of the provider's table. **Outputs:** out/results.json (task_id, n_records_control, n_valid_records, n_unreadable_records, n_analysed, sum_price_control, sum_price_valid, sum_price_unreadable_implied, mean_price_valid, median_price_per_m2_valid, feasibility, feasibility_reason, data_issues, n_input_rows, random_seed), out/analytic.csv, out/exclusions.csv, out/report.md (6 sections), out/analysis.py, out/claims.json. **Information rules:** only data/ files; no reconstruction/imputation of unreadable records; feasibility "complete" only if all control records enter the analytic set, else "partial" with exact count and reason. **Invalidity:** imputing corrupted records; counting unreadable lines as valid; ledger not adding up.