Goal
Modernize Guatemala's food pipeline so Country('Guatemala').food_acquired() is canonical and the derived food_{expenditures,prices,quantities} surface via _FOOD_DERIVED — then retire the dead legacy food_prices_quantities_and_expenditures.py.
Why
Guatemala has food_acquired.py (country + 2000 wave) but in the legacy (j,t,i,units) shape (units='lbs' hardcoded), and food_acquired is unregistered → modern API returns empty (0,0). The legacy food_prices_quantities_and_expenditures.py is dead (KeyError('m') — m came from the retired other_features).
Readiness: SMALLER
Has a sample table + data_scheme.yml. v is the region (degenerate cluster — fine for the v-join). So this is a straight canonicalize + register (Cambodia #108 pattern).
Steps
- Rewrite wave
food_acquired.py → canonical (t,i,j,u,s) + [Quantity, Expenditure] (un-swap i/j, add acquisition-source s, real u).
- Register
food_acquired (materialize: make) in data_scheme.yml.
- Acceptance bar (NOT equivalence-vs-legacy — that baseline doesn't build): canonical shape +
is_this_feature_sane; derived food_* populate; Feature assembles named; source-traceable reconciliation against the raw .dta (sum all sources) + coverage counts.
- Retire the legacy script + Makefile rule + CONTENTS.org refs (same PR; coupled rollback).
Parent: #218. Design: slurm_logs/DESIGN_218_food_legacy_retirement.org (rev-2). Adversarial review: workflow wuiofz6p0 (11 confirmed findings).
Goal
Modernize Guatemala's food pipeline so
Country('Guatemala').food_acquired()is canonical and the derivedfood_{expenditures,prices,quantities}surface via_FOOD_DERIVED— then retire the dead legacyfood_prices_quantities_and_expenditures.py.Why
Guatemala has
food_acquired.py(country + 2000 wave) but in the legacy(j,t,i,units)shape (units='lbs'hardcoded), andfood_acquiredis unregistered → modern API returns empty(0,0). The legacyfood_prices_quantities_and_expenditures.pyis dead (KeyError('m')—mcame from the retiredother_features).Readiness: SMALLER
Has a
sampletable +data_scheme.yml.vis the region (degenerate cluster — fine for the v-join). So this is a straight canonicalize + register (Cambodia #108 pattern).Steps
food_acquired.py→ canonical(t,i,j,u,s)+[Quantity, Expenditure](un-swap i/j, add acquisition-sources, realu).food_acquired(materialize: make) in data_scheme.yml.is_this_feature_sane; derivedfood_*populate;Featureassembles named; source-traceable reconciliation against the raw .dta (sum all sources) + coverage counts.Parent: #218. Design:
slurm_logs/DESIGN_218_food_legacy_retirement.org(rev-2). Adversarial review: workflow wuiofz6p0 (11 confirmed findings).