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; andcrop_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
ruralmapping was not rural at all: it decoded the type of place where a non-resident child lived. It is renamednrcpl_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
U6is 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.mdis now the single agent-guidance source andCLAUDE.mdlinks 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.