Choosing Between ACS and Census Denominators for Rates
This guide, part of Small-Area Population Denominators, turns the most common denominator question — decennial census count or American Community Survey estimate — into a procedure with a defensible answer for each area rather than one choice imposed on all of them.
Problem Context & Constraints
Most analyses pick one denominator source for the whole study area and never revisit it. That is convenient and frequently wrong, because the right choice depends on properties that vary between areas: how much the area’s population has changed since the census, and how large the survey’s sampling error is at that area’s size.
Consider a 2026 analysis at tract level. For a stable older neighbourhood, the 2020 census count is still close to the truth and exact on its reference date, while the five-year survey estimate carries a margin of error of perhaps 15%. The census is better. For a tract where a large subdivision was built in 2022, the census count is now badly stale — the population may have grown by a third — while the survey estimate reflects the growth with its usual error. The survey is better. A single choice for both tracts is wrong for one of them.
Three constraints shape a procedure. The comparison needs an estimate of census staleness, which means some indicator of change since the census: survey growth, housing unit counts, or building permits. It needs the survey’s own error, from the published margins. And strata matter: if the analysis needs income or insurance status, only the survey has them, and the choice is made for you at whatever cost in precision.
Prerequisites
python3.11pandas2.2.2,numpy1.26.4- Census counts for the study geography at the most recent census, on harmonised boundaries
- Five-year survey estimates and margins of error for the same geography and strata
- An indicator of change since the census — survey trend, housing unit counts or permit data
- The list of strata the analysis requires
Step-by-Step Solution
Estimate the census’s error from growth, estimate the survey’s error from its margin, choose per area, and record which source each area used.
# Per-area choice between census count and survey estimate as the denominator.
# Pinned: pandas==2.2.2, numpy==1.26.4
import logging
import numpy as np
import pandas as pd
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s")
log = logging.getLogger("denominators.choose")
Z90 = 1.645
def choose_source(census: pd.DataFrame, survey: pd.DataFrame,
growth: pd.DataFrame, needs_survey_strata: bool = False) -> pd.DataFrame:
"""census: geoid, pop_census survey: geoid, pop_survey, moe
growth: geoid, growth_since_census (fraction, from housing units or permits)
"""
df = census.merge(survey, on="geoid", how="outer").merge(growth, on="geoid", how="left")
if needs_survey_strata:
df["source"] = "survey"
df["reason"] = "required strata exist only in the survey"
else:
# Census error grows with change since the census date.
df["census_rel_error"] = df["growth_since_census"].abs().fillna(0.0)
# Survey error is its relative standard error.
df["survey_rel_error"] = (df["moe"] / Z90) / df["pop_survey"].replace(0, np.nan)
pick_survey = df["survey_rel_error"] < df["census_rel_error"]
df["source"] = np.where(pick_survey, "survey", "census")
df["reason"] = np.where(pick_survey,
"census stale relative to survey sampling error",
"census within survey sampling error")
df["denominator"] = np.where(df["source"] == "survey", df["pop_survey"], df["pop_census"])
counts = df["source"].value_counts().to_dict()
log.info("denominator source by area: %s", counts)
missing = df["denominator"].isna().sum()
if missing:
log.warning("%d areas lack the chosen source and need a fallback", int(missing))
keep = ["geoid", "source", "reason", "denominator", "pop_census", "pop_survey"]
keep += [c for c in ("census_rel_error", "survey_rel_error") if c in df.columns]
return df[keep]
Comparing two relative errors on the same scale is what makes the choice defensible. The census’s error is not zero after the reference date — it grows with every household that moves in or out — and treating it as exact because it is an enumeration is the most common reason a fast-growing area’s rate is overstated. Expressing the staleness as a fraction lets it be set against the survey’s relative standard error directly.
The growth indicator is the weakest input and deserves scrutiny. Housing unit counts from assessor records are usually the best available; building permits overcount because not everything permitted is built; survey growth is noisy at tract level. Whichever is used, record it, because it drives every census-versus-survey decision.
Validation & Edge Cases
Mixed sources in one map. Using different sources in adjacent tracts is legitimate but must be visible. A rate map should carry the source as an attribute, and the methods should state how many areas used each.
Strata that exist only in the survey. If the analysis stratifies by income or insurance, the survey is mandatory, and its margins at that stratification may be too large at tract level. Aggregate to a geography where they are tolerable before choosing.
Growth indicators that lag. Assessor housing counts can trail occupancy by a year. A subdivision whose homes are built but not yet occupied appears as growth before the population arrives, and the survey may not yet reflect it either.
Population decline. The procedure uses the absolute value of growth, because a shrinking area’s census count is stale in the other direction and inflates the denominator, depressing the rate.
Areas split or merged between vintages. A tract that the census split in two has a census count for each half but, if the survey product is still on the older geography, a single survey estimate for the whole. Comparing them requires harmonising one to the other first, and the harmonisation adds its own error to whichever side was moved. Do the comparison on the geography the analysis will use, and add the allocation error to the moved source’s relative error before choosing.
Institutional populations that changed. A dormitory that opened or a correctional facility that closed moves the population substantially without any change in housing units, so a housing-based growth indicator misses it entirely. Check group-quarters counts separately for the tracts where large institutions exist, and override the indicator where they changed.
Choosing once and never revisiting. The comparison depends on the years elapsed since the census, so the right answer for a tract changes through the decade: a tract correctly on the census in 2022 may belong on the survey by 2027. Re-run the choice with every new survey vintage rather than freezing the first result.
Tracts with no survey estimate. Some small areas have suppressed or missing survey values. Fall back to the census with an explicit reason rather than dropping the area.
INFO denominators.choose denominator source by area: {'census': 1512, 'survey': 330}
WARNING denominators.choose 6 areas lack the chosen source and need a fallback
A final validation is to compare the two choices at an aggregate level where both are reliable. The county totals implied by the per-tract choices should sit within the county-level survey’s margin of error. A mixed-source county total that falls outside that margin suggests the growth indicator is systematically wrong somewhere, and the tracts driving the discrepancy are usually easy to find by sorting on the difference between their two candidate denominators.
Compliance Notes
Record per area the source chosen, the reason, both candidate denominators and their estimated errors, and the growth indicator used with its own source and vintage. Record the rule itself — the comparison of relative errors — as configuration, so it can be reapplied identically when a new vintage arrives.
State the mixed-source approach in the methods of any product built on it. A reader comparing your tract rates with another agency’s will otherwise see small unexplained differences in the fast-growing areas, which are exactly the areas where the choice of denominator matters and where a single-source analysis is most likely to be wrong.
Related Topics
- Small-Area Population Denominators — the parent guide and the wider source comparison.
- Handling ACS Margins of Error in Small-Area Rates — carrying the survey error into the rate once the survey is chosen.
- Estimating Intercensal Population for Trend Analysis — the modelled alternative when neither source fits a multi-year trend.