# Independent census reproduction

Reviewer: OpenAI GPT-6 Astra (`gpt-6-astra`, configured by the parent task).
Date: 2026-10-31 UTC / 2026-10-30 America/Los_Angeles.

The scripts download public Census files. A fresh run needs network access and Python with pyshp, pyproj, shapely and requests. They do not need credentials.

```sh
python3 -m venv venv
venv/bin/pip install pyshp pyproj shapely requests
venv/bin/python reproduce.py --data ../census.json
venv/bin/python boundary.py
venv/bin/python lodes.py
```

`reproduce.py` writes `selected-geoids.txt` and `results.json`; it independently selects TIGER tract internal points and computes all declared ACS cells, percentages and approximate margins from eight downloaded bulk tables. Each metric's cell labels were separately inspected against the downloaded official group metadata. Controlled-margin sentinel `-555555555` is normalized to zero for variance propagation; other negative values stop the calculation. The report compares 19 indicators across four geographies.

`boundary.py` requires the TIGER and B01001 inputs downloaded by the first script. It independently verifies alternate polygon selections and supplied alternate-center sensitivity. It uses a 16,384-segment circle in a centered NAD83 azimuthal-equidistant projection, so it is an independent approximation to the author's 2,880-segment WGS84 circle. Both reproduce the published selections.

`lodes.py` independently downloads the California block crosswalk, 2023 WAC S000 JT01 and RAC S000 JT01; selects block points by ellipsoidal distance; and reproduces total jobs, sector counts, shares, location quotients, present and nonzero row counts. It checks every statewide WAC/RAC block against the crosswalk.

Small deliverables suitable to accompany the review: the three scripts, this README, selected GEOIDs, `results.json`, `boundary-results.json`, `lodes-results.json`, and `review.json`. Raw bulk files and the virtual environment are not needed in the repository. Input-file SHA256 hashes are in result reports. Hashes are locally calculated; they are not represented as checks against Census's published checksum manifest.

Download census.json from the parent atlas directory and the three scripts into the layout shown above. The calculation downloads large public files on its first run. Retain a local scratch copy; scripts do not write to any website. The independent source hashes are recorded in results.json and lodes-results.json.
