Housing Forecast Methodologies

Household Types Methodology

Household Types Methodology

This methodology produces a side-by-side comparison of household composition at two points in time, for five household types, using American Community Survey data. The output supports a "what changed" view of a community's demographics rather than a continuous time series.

Time Points

The chart compares two ACS 5-year vintages:

  • Baseline year: COMPARISON_YEAR (the project-wide comparison year constant)
  • Current year: MAX_DATA_YEAR (the most recent vintage in the warehouse)

Only geographies with valid data in both vintages are emitted. The ACS longitudinal API is used to load both years, so Connecticut county reaggregation and any municipal boundary changes are reconciled automatically via the geoid_crosswalk table.

Household Type Definitions

Five non-overlapping household types are tracked. Each type is defined as a numerator (the count of households or persons in that type) drawn from the ACS:

TypeNumerator variablesSource table
Adults w/ roommatesb11015002 (households with 2+ persons, no relatives)B11015
Married w/ kidsb19131003 (married-couple families with children)B19131
Single parent w/ kidsb19131039 + b19131074 (male householder, no spouse, with kids; female householder, no spouse, with kids)B19131
Single personb09021002 (population 18+ living alone)B09021
Senior aloneb09021023 (population 65+ living alone)B09021

The numerators come from different tables (B11015 counts households, B19131 counts families, B09021 counts persons), so categories should not be summed across types. Each row in the output table is one type for one geoid; the values are absolute counts in the units used by the underlying table.

Output Table

ColumnDescription
geoidGeography identifier
nameHousehold-type label (one of the five rows above)
year_baselineCount at the baseline ACS vintage
year_currentCount at the most recent ACS vintage

The "year" terms refer to the value at that time point, not a year identifier. The actual ACS vintages are fixed for the whole run and surfaced in the chart UI; they are not stored per row.

Processing

Computation is fully vectorized across geographies: each household type's numerator columns are summed (with NaN treated as zero) over the indexed baseline and current dataframes in a single pass, then concatenated and upserted to app.household_types keyed on (geoid, name).

Data Sources

ComponentSourceTable
Living-alone counts (incl. seniors)U.S. Census ACSB09021
Household compositionU.S. Census ACSB11015
Families by typeU.S. Census ACSB19131
Previous
Household characteristics by income