U.S. Census data provides a standardized, comprehensive, and geographically view of population trends, income, housing, labor markets, and transportation. These insights are essential for both operations strategy and economic analysis.
The following Census variables provide a multidimensional view of population demand, mobility capacity, purchasing power, asset wealth, and labor market strength — all of which are critical inputs for operational strategy and economic analysis.
B01003_001 → pop
Population size establishes the baseline for market demand, service coverage requirements, workforce availability, and infrastructure needs.
B25046_001 → veic
Household vehicle availability serves as a proxy for mobility, logistics accessibility, and transportation independence.
B19013_001 → med_inc
Income of the entire household, including wages, self-employment income, Social Security, pensions, and investment income. Aggregated across all earners, making it a strong proxy for consumer purchasing power and overall economic well-being.
B25077_001 → med_home
Median home value reflects household wealth, asset accumulation, and long-term investment capacity.
B20017_001 → labor_earnings
Earnings of full-time, year-round workers. Includes wages and
salaries only.
Excludes part-time workers, non-workers, and transfer income. Best proxy
for labor market wage strength and labor cost
conditions.
The fallowing is the R code to gather data from the census department using their API network.
options(tigris_use_cache = TRUE)
options(tigris_class = "sf")
acs_vars <- c(
pop = "B01003_001", # ACS 5-year estimate of total population
veic = "B25046_001", # Total number of vehicles available to households
med_inc = "B19013_001", # Median household income
med_home = "B25077_001", # Median home value. Use to estimate cost of land
labor_earnings = "B20017_001" # Median earnings for full-time, year-round workers. proxy for labor cost
)
acs_data_raw <- get_acs(
geography = "county",
variables = acs_vars,
geometry = TRUE,
year = 2020,
survey = "acs5"
) |> st_transform(4326)
acs_data <- acs_data_raw |>
mutate(variable = recode(variable,
"B01003_001" = "pop",
"B25046_001" = "veic",
"B19013_001" = "med_inc",
"B25077_001" = "med_home",
"B20017_001" = "labor_earnings"
))
acs_wide <- acs_data |>
st_drop_geometry() |>
pivot_wider(id_cols = c(GEOID, NAME), names_from = variable, values_from = estimate)
# Create an interactive data table
datatable(
acs_wide,
filter = 'top',
options = list(
pageLength = 5, # show 5 rows per page
autoWidth = TRUE, # adjust column widths automatically
scrollX = TRUE # allow horizontal scrolling
),
rownames = FALSE
)
The County with the highest population and with the highest amount of cars is Los Angeles County. The county with the lowest population and lowest amount of cars is Loving County Texas. Loudoun County, Virginia has the highest medium income.
A z-score measures how far a county’s value is from the dataset average in standard deviations:
\[ z = \frac{x - \text{mean}}{\text{standard deviation}} \]
This transformation standardizes all variables onto the same scale, regardless of their original units (people, dollars, vehicles, etc.).
z_pop = 2.0 → Population is 2 standard deviations above
average (very large county)z_med_inc = -1.5 → Median income is well below
averagez_veic = 0.5 → Slightly above-average vehicle
ownershipz_composite = 1.3 → County performs strongly across
multiple dimensions overallz_composite)
RepresentsThe composite z-score is typically calculated as the average (or weighted average) of multiple standardized variables:
\[ z_{composite} = \frac{z_{pop} + z_{veic} + z_{med\_inc} + z_{med\_home} + z_{labor\_earnings}}{n} \]
It summarizes overall market strength, opportunity, or operational attractiveness into a single index while preserving relative performance across regions.
z_composite → Strong demand, high
purchasing power, solid labor markets, and infrastructure
readinessz_composite → Structural
constraints, weaker demand, or higher operational riskEach variable here is a z-score, so they’re already standardized (mean = 0, SD = 1). By assigning each one a weight of 1, you’re saying:
“Each factor contributes equally to my composite score.”
Change Outcome Increase weight That variable dominates rankings Decrease weight That variable fades in importance Zero weight Variable removed entirely Negative weight Variable penalizes the score
So two counties with similar populations but very different incomes could swap rankings just by changing income’s weight.
Since you’re using this for operations strategy / territory / warehouse logic:
Higher labor weight → favors strong labor markets
Higher income/population → favors demand density
Higher home values → may proxy real estate cost pressure
You’re essentially encoding strategy into math. Best practice
Start with equal weights (what you did ✅)
Run sensitivity tests (change weights ±25%)
Compare how rankings shift
Choose weights that align with business objectives or observed outcomes
# Adjust these numbers to increase or decrease influence. 0.1less important, 2 i stwice as importaint
variable_weights <- c(
z_pop = 1,
z_veic = 1,
z_med_inc = 1,
z_med_home = 1,
z_labor_earnings = 1
)
# Calculate z-scores and weighted composite
acs_wide_z <- acs_wide %>%
mutate(
z_pop = (pop - mean(pop, na.rm = TRUE)) / sd(pop, na.rm = TRUE),
z_veic = (veic - mean(veic, na.rm = TRUE)) / sd(veic, na.rm = TRUE),
z_med_inc = (med_inc - mean(med_inc, na.rm = TRUE)) / sd(med_inc, na.rm = TRUE),
z_med_home = -1 * ((med_home - mean(med_home, na.rm = TRUE)) / sd(med_home, na.rm = TRUE)),
z_labor_earnings = -1 * ((labor_earnings - mean(labor_earnings, na.rm = TRUE)) / sd(labor_earnings, na.rm = TRUE))
) %>%
rowwise() %>%
mutate(
# Combine z-scores according to weights
z_composite = sum(
c(z_pop, z_veic, z_med_inc, z_med_home, z_labor_earnings) * variable_weights,
na.rm = TRUE
) / sum(variable_weights) # normalize to keep same scale
) %>%
ungroup()
# Create an interactive data table
datatable(
acs_wide_z,
filter = 'top',
options = list(
pageLength = 5, # show 10 rows per page
autoWidth = TRUE, # adjust column widths automatically
scrollX = TRUE # allow horizontal scrolling
),
rownames = FALSE
)
In operations, z-scores allow planners to directly compare counties across demand, mobility, purchasing power, housing wealth, and labor cost — enabling better facility placement, workforce allocation, and service prioritization.
The composite z-score simplifies multi-dimensional data into a single, actionable signal for site selection, market prioritization, network design, and investment sequencing.
In economic analysis, z-scores reveal regional strengths and weaknesses, while the composite score captures overall economic positioning and structural advantage or risk across geographies.
Attatched the GEOID data
Map
Initiate the map