By Ether DataRequest data sample
All sections

Population Surface — A Worked Declaration

The population_surface socket filled in end-to-end: ACS + LODES + ATUS lineage combined into an hour-of-week population per cell, with its vintages, unit, the Alaska coverage caveat, and the independent-QA receipts that make it auditable. A conformant supplier declaration, documented without selling it.

stable4 min read
Destination geometry
h3_cell_set

The commercial extension points catalogue says a population_surface must declare a data source, a spatial-mapping method, a temporal methodology, a vintage, and a unit. This page fills that socket in completely — a worked example of a conformant declaration, so "what a supplier must publish" is concrete rather than abstract. It documents the surface; it does not sell it.

The declared registry row

supplier
A named population-surface product (the row identifies its owner; this page names the socket, not a price).
unit
ambient_population — expected people present per H3 cell per hour-of-week slot (0–167), not residents-at-home.
grain
H3 (declared resolution) × hour-of-week slot; roll up with H3_TOPARENT and slot aggregation, never finer than declared.
vintage
The edition of each input below; the surface is only as current as its oldest input.
valid_from / valid_to
The applicability window — a population surface expires; the row states when.

Lineage — three sources, three jobs

An hour-of-week population is not one dataset; it is three, each doing a job the others cannot:

ACS (Census)
Residential population by block group, 5-year estimates. The night/home distribution — where people sleep. Vintage = the ACS 5-year release.
LODES / LEHD
Workplace and residence area characteristics (WAC / RAC) by block, annual. The day/work distribution — where people are employed. Vintage = the LODES data year.
ATUS
American Time Use Survey. The diurnal + weekly rhythm — what fraction of a population is at home vs work vs elsewhere at each hour of the week. Supplies the 168-slot temporal shape.

The combination is the method that must be declared: ACS anchors the home population, LODES anchors the work population, and ATUS redistributes them across the 168 hour-of-week slots so a cell's population breathes over the week — a downtown cell heavy at Tuesday 14:00, a residential cell heavy at Tuesday 02:00. Area-weighting a static residential count would miss exactly this, which is why a cross-system weighted crosswalk treats a declared mass surface as a distinct weight method, not a synonym for area.

The Alaska caveat

State-level coverage gaps are part of the declaration

LODES does not cover every state in every year — Alaska in particular has been absent from some LODES vintages, and a surface that silently zero-fills the workplace distribution there would understate daytime population across the state. A conformant declaration states the fallback it used (a prior LODES year, or an ACS-workplace approximation) as part of the row, so a consumer can see where the surface is modeled rather than measured. The gap is disclosed, not patched over.

Sparse rural block groups carry the reciprocal caveat: below the minimum-aggregation floor, a cell's population is suppressed or coarsened, and that treatment is recorded on the row — a population surface is subject to the same level-agnostic suppression provenance as any other reported quantity.

Independent-QA receipts

A declaration is only as trustworthy as its audit. This surface carries independent-QA receipts (tracked in the pr969 review) covering the checks that catch the ways a population surface silently breaks:

population conservation
Total population is preserved across the block → H3 crosswalk within rounding — no mass created or lost by the reprojection.
temporal conservation
Summing a cell's 168 slot-populations back to a weekly average reproduces the static ACS/LODES anchor — the ATUS redistribution moves people, it does not multiply them.
boundary-vintage alignment
The ACS/LODES boundaries and the H3 crosswalk are from aligned vintages, so a boundary change is not misread as a population change.
coverage disclosure
Every modeled-not-measured region (the Alaska fallback, suppressed sparse cells) is enumerated, not hidden.

The sockets it connects to

A population surface does not stand alone; the catalogue names the neighbours it plugs into. Its declared positional error is an error_assignment audit input; it is the denominator an experiment_design readout divides lift by; and it is the mass a weighted crosswalk re-weights with when weightSurface is declared. Each of those is its own registry row with its own supplier and vintage — the surface is one conformant declaration in a graph of them, and this page is what one of them looks like filled in.

Commercial Extension PointsConceptual modelCross-System Weighted CrosswalkH3admin & platformsPrivacy And Minimum AggregationPrivacy