SPB Git

spb/wp29_uqo

Public
4.9 KB · 48 lines markdown
1# F1-conf-01 — 12-month CPI inflation from two data vintages23## Scientific question4Compute the 12-month growth rate of the U.S. consumer price index (CPIAUCSL, seasonally adjusted) for every month from 2001-01 through 2026-09 and summarise it. The estimand for month t is g_t = 100 × (P_t / P_{t−12} − 1) in percent, where P is the index level taken from the most recent data vintage in which that month is available; the summary estimands are the mean of g_t over the window, the sub-period means for 2001-01 … 2013-12 and 2014-01 … 2026-09, a few named months, and the months of the maximum and minimum growth.56## Inputs7- `data/cpi_vintage_2016-07-15.csv` — observed data: CPIAUCSL as published by BLS/FRED in the ALFRED vintage of 2016-07-15, months 1947-01 to 2016-06 (834 rows). Columns `date` (ISO, first day of month), `cpi` (index, 1982–84 = 100). Source, retrieval date, license and SHA-256 in `data/README.md`.8- `data/cpi_vintage_2026-10-28.csv` — observed data: CPIAUCSL in the ALFRED vintage of 2026-10-28, extract restricted to months 2014-01 to 2026-09 (153 rows). Same columns. An empty `cpi` cell means that the source reports no value for that month.9- `data/cpi_assembled.csv` — a single file assembled from the two extracts above (columns `date`, `cpi`, `vintage`), intended to cover 1947-01 to 2026-09. It was assembled by hand and may contain assembly errors; the two vintage files are the authoritative inputs.1011## Information-availability rules12- For each month, the index level to use is the value from the most recent vintage in which that month is available (the 2026-10-28 vintage where it covers the month, the 2016-07-15 vintage otherwise).13- Growth rates must only be computed from index levels that exist in the sources; do not interpolate or impute missing index levels. Months for which g_t cannot be computed are reported as missing and counted.14- Use only the files under `data/`.1516## Required outputs17- `out/results.json` with the keys:1819| key | type | unit | meaning |20|---|---|---|---|21| `task_id` | string | — | "F1-conf-01" |22| `first_growth_month` | string | YYYY-MM | first month of the window with a growth rate (expected "2001-01" if computable) |23| `last_month` | string | YYYY-MM | last month of the window for which an index level exists in the sources |24| `n_months_growth` | integer | months | months in the window with a computable g_t |25| `n_months_missing_growth` | integer | months | months in the window without a computable g_t |26| `n_analysed` | integer | months | same as `n_months_growth` |27| `mean_growth_12m` | number | percent | mean of g_t over the window |28| `mean_growth_12m_2001_2013` | number | percent | baseline: mean of g_t over 2001-01 … 2013-12 |29| `mean_growth_12m_2014_2026` | number | percent | mean of g_t over 2014-01 … 2026-09 |30| `growth_2014_06`, `growth_2016_07`, `growth_2020_05`, `growth_2022_06`, `growth_2026_09` | number | percent | g_t for those months |31| `max_growth_12m`, `max_growth_month` | number, string | percent, YYYY-MM | maximum g_t in the window and its month |32| `min_growth_12m`, `min_growth_month` | number, string | percent, YYYY-MM | minimum g_t in the window and its month |33| `feasibility` | string | — | "complete", "partial" or "infeasible" |34| `feasibility_reason` | string or null | — | explanation if not complete |35| `data_issues` | array of {"issue","handling"} | — | every data problem detected and how it was handled (empty list if none) |36| `n_input_rows` | object | rows | {file name: number of data rows read (excluding the header)} for every file under `data/` that was read |37| `random_seed` | integer or null | — | seed used, if any |3839- `out/analytic.csv` — one row per month of the window with a computable growth rate, columns `date` (YYYY-MM-01), `cpi`, `cpi_lag12`, `vintage_used`, `growth_12m`; exactly `n_analysed` rows.40- `out/exclusions.csv` — the exclusion ledger with columns `step`, `rule`, `n_before`, `n_after`, `n_removed`, `rationale`; one row per step from the rows you start from to the `n_analysed` rows of `out/analytic.csv` (`n_before − n_removed = n_after` on every row; each step's `n_before` equals the previous step's `n_after`).41- `out/report.md` with the sections: Question; Data and exclusions; Method; Results; Uncertainty; Limitations and open issues.42- `out/analysis.py` — running `~/wp29/venv/bin/python out/analysis.py` from the workspace root must regenerate `out/results.json`, `out/analytic.csv` and `out/exclusions.csv` from `data/` only, deterministically.43- `out/claims.json` — a list of the central claims of the report: [{"id": "C1", "text": "...", "results_keys": ["..."], "status": "supported"|"unsupported"|"not_evaluated", "caveat": "..."}].4445## Constraints46- No network access. Python: `~/wp29/venv/bin/python` (numpy, pandas, scipy, statsmodels available). Do not modify `data/`.47- This task is designed to be completed in well under 20 minutes of work.48
Files · 32c4ccff60dd76c81da4f5b63d24bd0b55824e43
Menu

Theme