Skip to content

v0.10.2

This release expands the Ghana coverage substantially: GhanaSPS gains three agricultural tables, GhanaLSS gains a six-wave community-price table, and two long-standing GhanaLSS categorical errors are corrected. It also tightens the housing vocabulary and adds a recurring check that every declared DVC blob is actually reachable.

GhanaSPS agriculture

Three canonical features are now available for all GhanaSPS waves:

  • plot_features, including area in hectares, native area unit, and tenure;
  • livestock, including counts, purchases, sales, deaths, and herd value; and
  • crop_production, including the two distinct 2009-10 seasons and the annual 2013-14 and 2017-18 records.

The implementations retain the survey's detail instead of forcing it into a smaller grain. In particular, 2009-10 crop harvests are melted from separate major- and minor-season matrices, crop parts that represent distinct products remain distinct, and later-wave sales are computed only where the source grain supports them. New data-gated tests pin the source joins, duplicate handling, unit vocabularies, and the 2017-18 plotunit field whose omission would null 89.3% of plot areas (#732).

GhanaLSS community prices

Country('GhanaLSS').community_prices() now assembles 660,168 price observations from six waves at (t, v, j, u, obs). Vendor observations remain separate rows rather than being averaged or selected arbitrarily. The 2005-06 questionnaire exists but its price data were not distributed, so that wave is recorded as asked-not-distributed.

The feature uses each wave's own market instrument and item vocabulary. GLSS3's 117-item price list is reconstructed from the instrument and measured alignment with GLSS4; that inference is documented per row. This is phase 3a of #562: inverse price-to-quantity imputation remains future work, so #562 stays open.

GhanaLSS corrections

  • GLSS2's rural mapping was not rural at all: it decoded the type of place where a non-resident child lived. It is renamed nrcpl_place_type (#692).
  • GLSS2 birthplace now uses its own 11-code region list. Previously 236 people born in a foreign country were labelled as born in Nigeria (#695).
  • The ambiguous education code U6 is interpreted by wave: university year in GLSS1-3 and Upper Sixth in GLSS5-7 (#731).
  • The documented urban-population cutoff now follows the instruments' actual 5,000 -> 1,500 -> 5,000 sequence across rounds (#705).

Housing vocabulary

Bamboo is now a canonical roof and floor material, and Terrazzo is a canonical floor material. Exact matches in GhanaSPS, GhanaLSS, Timor-Leste, and Nigeria are re-pointed to those labels; compound materials remain unchanged. A new data-free corpus test checks every country housing mapping against the canonical vocabulary (#727).

Provenance and maintenance

  • Every KenyaLPS wave now records its Harvard Dataverse source and licence; four previously unreachable KLPS-4 blobs were recovered and published to the cache.
  • CI now performs a weekly lock-free DVC reachability sweep. The check remains deliberately red while the 17 known missing blobs tracked by #750 are recovered or retired.
  • AGENTS.md is now the single agent-guidance source and CLAUDE.md links to it, preventing the two copies from drifting.
  • The dead GitHub MCP entry was removed, and the README DOI badge now uses a stable image endpoint while displaying the concept DOI.

Cache impact and upgrading

No manual cache clearing is required. Content-hash invalidation rebuilds the affected tables automatically. Because the GhanaSPS country module changed, existing GhanaSPS table caches will rebuild once on first use; the changed GhanaLSS and housing mappings similarly invalidate their affected caches.

The package version is derived from the v0.10.2 git tag by poetry-dynamic-versioning; no source file contains a manually maintained version number.