# Load required packages (hint: you need tidycensus, tidyverse, and knitr)
library(tidycensus)
library(tidyverse)
library(knitr)
# Set your Census API key
census_api_key("ec702835845a134b4376c60759aa72ce62f6df59")
# Choose your state for analysis - assign it to a variable called my_state
<- "Texas" my_state
Assignment 1: Census Data Quality for Policy Decisions
Evaluating Data Reliability for Algorithmic Decision-Making
Assignment Overview
Scenario
You are a data analyst for the Texas Department of Human Services. The department is considering implementing an algorithmic system to identify communities that should receive priority for social service funding and outreach programs. Your supervisor has asked you to evaluate the quality and reliability of available census data to inform this decision.
Drawing on our Week 2 discussion of algorithmic bias, you need to assess not just what the data shows, but how reliable it is and what communities might be affected by data quality issues.
Learning Objectives
- Apply dplyr functions to real census data for policy analysis
- Evaluate data quality using margins of error
- Connect technical analysis to algorithmic decision-making
- Identify potential equity implications of data reliability issues
- Create professional documentation for policy stakeholders
Submission Instructions
Submit by posting your updated portfolio link on Canvas. Your assignment should be accessible at your-portfolio-url/assignments/assignment_1/
Make sure to update your _quarto.yml
navigation to include this assignment under an “Assignments” menu.
Part 1: Portfolio Integration
Create this assignment in your portfolio repository under an assignments/assignment_1/
folder structure. Update your navigation menu to include:
- text: Assignments
menu:
- href: assignments/assignment_1/your_file_name.qmd
text: "Assignment 1: Census Data Exploration"
If there is a special character like comma, you need use double quote mark so that the quarto can identify this as text
Setup
State Selection: I have chosen Texas for this analysis because it is a large and diverse state with both urban and rural counties. This mix allows me to compare how data quality varies across different community types, which is important for evaluating equity and potential algorithmic bias.
Part 2: County-Level Resource Assessment
2.1 Data Retrieval
Your Task: Use get_acs()
to retrieve county-level data for your chosen state.
Requirements: - Geography: county level - Variables: median household income (B19013_001) and total population (B01003_001)
- Year: 2022 - Survey: acs5 - Output format: wide
Hint: Remember to give your variables descriptive names using the variables = c(name = "code")
syntax.
# Write your get_acs() code here
<- get_acs(
county_data_2022 geography = "county",
variables = c(
total_pop = "B01003_001", # Total population
med_household_income = "B19013_001" # Median household income
),state = "TX",
year = 2022,
output = "wide"
)# Clean the county names to remove state name and "County"
<- county_data_2022 %>%
county_data_2022 mutate(county_name = str_remove(NAME, ", Texas"))
# Display the first few rows
head(county_data_2022)
# A tibble: 6 × 7
GEOID NAME total_popE total_popM med_household_incomeE med_household_incomeM
<chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 48001 Ander… 58077 NA 57445 4562
2 48003 Andre… 18362 NA 86458 16116
3 48005 Angel… 86608 NA 57055 2484
4 48007 Arans… 24048 NA 58168 6458
5 48009 Arche… 8649 NA 69954 8482
6 48011 Armst… 1912 145 70417 14574
# ℹ 1 more variable: county_name <chr>
2.2 Data Quality Assessment
Your Task: Calculate margin of error percentages and create reliability categories.
Requirements: - Calculate MOE percentage: (margin of error / estimate) * 100 - Create reliability categories: - High Confidence: MOE < 5% - Moderate Confidence: MOE 5-10%
- Low Confidence: MOE > 10% - Create a flag for unreliable estimates (MOE > 10%)
Hint: Use mutate()
with case_when()
for the categories.
library(scales)
library(knitr)
library(kableExtra)
# Calculate MOE percentage and reliability categories using mutate()
<- county_data_2022 %>%
TX_county_reliability mutate(
med_income_moe_pct = (med_household_incomeM / med_household_incomeE) * 100,
med_income_confi = case_when(
< 5 ~ "High Confidence (<5%)",
med_income_moe_pct > 5 & med_income_moe_pct <10 ~ "Moderate Confidence (5% - 10%)",
med_income_moe_pct > 10 ~ "Low Confidence (>10%)"
med_income_moe_pct
),unreliable_income = med_income_moe_pct >= 10
)# Create a summary showing count of counties in each reliability category
<- TX_county_reliability %>%
TX_reliability_summary count(med_income_confi) %>%
mutate(percent = round(100 * n / sum(n), 1))
# Display the summary table
kable(
TX_reliability_summary,caption = "Texas county-level median household income reliability (ACS 2022)",
col.names = c("Reliability Category", "Count", "Percentage"),
align = c("l", "r", "r")
%>%
) kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center"
)
Reliability Category | Count | Percentage |
---|---|---|
High Confidence (<5%) | 58 | 22.8 |
Low Confidence (>10%) | 113 | 44.5 |
Moderate Confidence (5% - 10%) | 82 | 32.3 |
NA | 1 | 0.4 |
# Hint: use count() and mutate() to add percentages
2.3 High Uncertainty Counties
Your Task: Identify the 5 counties with the highest MOE percentages.
Requirements: - Sort by MOE percentage (highest first) - Select the top 5 counties - Display: county name, median income, margin of error, MOE percentage, reliability category - Format as a professional table using kable()
Hint: Use arrange()
, slice()
, and select()
functions.
library(scales)
library(kableExtra)
# Create table of top 5 counties by MOE percentage
<- TX_county_reliability %>%
TX_high_uncertainty arrange(desc(med_income_moe_pct)) %>%
slice(1:5) %>%
select(
County = county_name,
`Median Income ($)` = med_household_incomeE,
`Margin of Error ($)` = med_household_incomeM,
`MOE (%)` = med_income_moe_pct,
Reliability = med_income_confi
%>%
) # Format numbers for professional output
mutate(
`Median Income ($)` = dollar(`Median Income ($)`),
`Margin of Error ($)` = dollar(`Margin of Error ($)`),
`MOE (%)` = paste0(round(`MOE (%)`, 1), "%")
)
# Format as table with kable() - include appropriate column names and caption
kable(
TX_high_uncertainty,caption = "Top 5 Texas Counties by Margin of Error in Median Household Income (ACS 2022)",
align = c("l", "r", "r", "r", "l") # set column alignment
%>%
) kable_styling(full_width = FALSE, position = "center")
County | Median Income ($) | Margin of Error ($) | MOE (%) | Reliability |
---|---|---|---|---|
Jeff Davis County | $38,125 | $25,205 | 66.1% | Low Confidence (>10%) |
Culberson County | $35,924 | $18,455 | 51.4% | Low Confidence (>10%) |
King County | $59,375 | $29,395 | 49.5% | Low Confidence (>10%) |
Kinney County | $52,386 | $23,728 | 45.3% | Low Confidence (>10%) |
Dimmit County | $27,374 | $12,374 | 45.2% | Low Confidence (>10%) |
Data Quality Commentary:
The five Texas counties with the highest margins of error in median household income estimates—Jeff Davis, Culberson, King, Kinney, and Dimmit—show MOE percentages ranging from 45% to 66%. Such extreme levels indicate that ACS estimates for these areas are highly unreliable. The primary causes are small populations, limited survey samples, and income variability that magnifies error. If used directly in algorithmic decision-making, these data could misclassify community needs and distort funding priorities. Policymakers should instead supplement ACS data with administrative or tax records, or require manual review, to ensure fair and accurate resource allocation.
Part 3: Neighborhood-Level Analysis
3.1 Focus Area Selection
Your Task: Select 2-3 counties from your reliability analysis for detailed tract-level study.
Strategy: Choose counties that represent different reliability levels (e.g., 1 high confidence, 1 moderate, 1 low confidence) to compare how data quality varies.
library(scales)
# Use filter() to select 2-3 counties from your county_reliability data
# Store the selected counties in a variable called selected_counties
<- TX_county_reliability %>%
selected_counties filter(med_household_incomeE %in% c(35924, 27374)) %>%
mutate(`MOE (%)` = round(med_income_moe_pct, 1)) %>%
select(
County = county_name,
`Median Income ($)` = med_household_incomeE,
`MOE (%)`,
Reliability = med_income_confi
)# Display the selected counties with their key characteristics
# Show: county name, median income, MOE percentage, reliability category
# Display the selected counties
kable(
selected_counties,caption = "Selected Texas Counties for Tract-Level Analysis",
align = c("l", "r", "r", "r", "l")
%>%
) kable_styling(full_width = FALSE, position = "center", bootstrap_options = c("striped", "hover"))
County | Median Income ($) | MOE (%) | Reliability |
---|---|---|---|
Culberson County | 35924 | 51.4 | Low Confidence (>10%) |
Dimmit County | 27374 | 45.2 | Low Confidence (>10%) |
Comment on the output:Culberson and Dimmit Counties were selected as examples of Low Confidence data. Their high MOE values reflect the challenges of using ACS estimates in small, rural counties.
3.2 Tract-Level Demographics
Your Task: Get demographic data for census tracts in your selected counties.
Requirements: - Geography: tract level - Variables: white alone (B03002_003), Black/African American (B03002_004), Hispanic/Latino (B03002_012), total population (B03002_001) - Use the same state and year as before - Output format: wide - Challenge: You’ll need county codes, not names. Look at the GEOID patterns in your county data for hints.
# Define your race/ethnicity variables with descriptive names
<- get_acs(
race_vars geography = "tract",
survey = "acs5",
variables = c(
white = "B03002_003",
black = "B03002_004",
hisp_latinx = "B03002_012",
total_pop = "B03002_001"
),year = 2022,
state = "TX",
county = c("109", "127"), # Culberson = 48109, Dimmit = 48127
output = "wide"
)
# Use get_acs() to retrieve tract-level data
# Hint: You may need to specify county codes in the county parameter
# Calculate percentage of each group using mutate()
# Create percentages for white, Black, and Hispanic populations
<- race_vars %>%
race_vars mutate(
pct_white = 100 * whiteE / total_popE,
pct_black = 100 * blackE / total_popE,
pct_hispanic = 100 * hisp_latinxE / total_popE,
# Split NAME on semicolon to extract tract and county
tract_name = sapply(strsplit(NAME, ";"), function(x) trimws(x[1])),
county_name = sapply(strsplit(NAME, ";"), function(x) trimws(x[2])) %>%
str_remove(" County")
)# Inspect first few rows
head(race_vars %>%
select(tract_name, county_name, pct_white, pct_black, pct_hispanic))
# A tibble: 4 × 5
tract_name county_name pct_white pct_black pct_hispanic
<chr> <chr> <dbl> <dbl> <dbl>
1 Census Tract 9503 Culberson 11.4 0.183 81.3
2 Census Tract 9502.01 Dimmit 7.39 0.242 91.7
3 Census Tract 9502.02 Dimmit 17.2 1.56 77.2
4 Census Tract 9504 Dimmit 4.20 0.156 93.8
# Add readable tract and county name columns using str_extract() or similar
3.3 Demographic Analysis
Your Task: Analyze the demographic patterns in your selected areas.
library(dplyr)
library(knitr)
# Find the tract with the highest percentage of Hispanic/Latino residents
# Hint: use arrange() and slice() to get the top tract
<- race_vars %>%
top_hispanic_tract arrange(desc(pct_hispanic)) %>%
slice(1) %>%
transmute(
Tract = tract_name,
County = county_name,
`Hispanic %` = percent(pct_hispanic / 100, accuracy = 0.1)
)
kable(top_hispanic_tract,
caption = "Tract with Highest Hispanic/Latino Population",
align = c("l", "l", "r")) %>%
kable_styling(full_width = FALSE, position = "center",
bootstrap_options = c("striped", "hover"))
Tract | County | Hispanic % |
---|---|---|
Census Tract 9504 | Dimmit | 93.8% |
# Calculate average demographics by county using group_by() and summarize()
# Show: number of tracts, average percentage for each racial/ethnic group
<- race_vars %>%
county_summary group_by(county_name) %>%
summarise(
`Number of Tracts` = n(),
`Avg. White %` = percent(mean(pct_white, na.rm = TRUE) / 100, accuracy = 0.1),
`Avg. Black %` = percent(mean(pct_black, na.rm = TRUE) / 100, accuracy = 0.1),
`Avg. Hispanic %` = percent(mean(pct_hispanic, na.rm = TRUE) / 100, accuracy = 0.1)
)# Create a nicely formatted table of your results using kable()
kable(
county_summary,caption = "Average Demographic Composition by County",
align = c("l", "r", "r", "r", "r")
%>%
) kable_styling(full_width = FALSE, position = "center",
bootstrap_options = c("striped", "hover"))
county_name | Number of Tracts | Avg. White % | Avg. Black % | Avg. Hispanic % |
---|---|---|---|---|
Culberson | 1 | 11.4% | 0.2% | 81.3% |
Dimmit | 3 | 9.6% | 0.7% | 87.6% |
Part 4: Comprehensive Data Quality Evaluation
4.1 MOE Analysis for Demographic Variables
Your Task: Examine margins of error for demographic variables to see if some communities have less reliable data.
Requirements: - Calculate MOE percentages for each demographic variable - Flag tracts where any demographic variable has MOE > 15% - Create summary statistics
# Calculate MOE percentages for white, Black, and Hispanic variables
# Hint: use the same formula as before (margin/estimate * 100)
# Create a flag for tracts with high MOE on any demographic variable
# Use logical operators (| for OR) in an ifelse() statement
<- race_vars %>%
demo_moe mutate(
white_moe_pct = (whiteM / whiteE) * 100,
black_moe_pct = (blackM / blackE) * 100,
hispanic_moe_pct = (hisp_latinxM / hisp_latinxE) * 100,
# Flag tracts where any demographic MOE > 15%
high_moe_flag = ifelse(
> 15 | black_moe_pct > 15 | hispanic_moe_pct > 15,
white_moe_pct TRUE, FALSE
)
)# Create summary statistics showing how many tracts have data quality issues
<- demo_moe %>%
moe_summary_county group_by(county_name) %>%
summarise(
total_tracts = n(),
high_moe_tracts = sum(high_moe_flag, na.rm = TRUE),
percent_high_moe = round(100 * mean(high_moe_flag, na.rm = TRUE), 1)
)
kable(
moe_summary_county,caption = "**MOE Summary by County (ACS 2022)**",
row.names = FALSE,
col.names = c("County", "Total Tracts", "High MOE Tracts", "Percent High MOE (%)"),
align = c("l", "c", "c", "r")
%>%
) kable_styling(full_width = FALSE, position = "center",
bootstrap_options = c("striped", "hover"))
County | Total Tracts | High MOE Tracts | Percent High MOE (%) |
---|---|---|---|
Culberson | 1 | 1 | 100 |
Dimmit | 3 | 3 | 100 |
4.2 Pattern Analysis
Your Task: Investigate whether data quality problems are randomly distributed or concentrated in certain types of communities.
# Group tracts by whether they have high MOE issues
# Calculate average characteristics for each group:
# - population size, demographic percentages
# Group tracts by whether they have high MOE issues
<- demo_moe %>%
moe_patterns filter(high_moe_flag == TRUE) %>% # keep only high-MOE tracts
group_by(county_name) %>%
summarise(
`Population Average` = round(mean(total_popE, na.rm = TRUE), 0),
`% White Avg` = round(mean(pct_white, na.rm = TRUE), 2),
`% Black Avg` = round(mean(pct_black, na.rm = TRUE), 2),
`% LatinX Avg` = round(mean(pct_hispanic, na.rm = TRUE), 2),
`Tracts Quantity` = n(),
.groups = "drop"
)
kable(
moe_patterns,caption = "**High-MOE Tracts by County (ACS 2022)**",
align = c("l", "c", "c", "c", "c", "r"),
col.names = c("County", "Population Average", "% White Avg", "% Black Avg", "% LatinX Avg", "Tracts Quantity"),
digits = 2
%>%
) kable_styling(full_width = FALSE, position = "center",
bootstrap_options = c("striped", "hover", "condensed"))
County | Population Average | % White Avg | % Black Avg | % LatinX Avg | Tracts Quantity |
---|---|---|---|---|---|
Culberson | 2181 | 11.42 | 0.18 | 81.34 | 1 |
Dimmit | 2891 | 9.60 | 0.65 | 87.57 | 3 |
# Use group_by() and summarize() to create this comparison
# Create a professional table showing the patterns
Pattern Analysis: High MOE tracts are found in small, rural counties with low populations and high Hispanic/Latino shares.These factors reduce ACS reliability, meaning minority and rural communities face greater risk of being misrepresented in algorithmic decisions.
Part 5: Policy Recommendations
5.1 Analysis Integration and Professional Summary
Your Task: Write an executive summary that integrates findings from all four analyses.
Executive Summary Requirements: 1. Overall Pattern Identification: What are the systematic patterns across all your analyses? 2. Equity Assessment: Which communities face the greatest risk of algorithmic bias based on your findings? 3. Root Cause Analysis: What underlying factors drive both data quality issues and bias risk? 4. Strategic Recommendations: What should the Department implement to address these systematic issues?
Executive Summary:
Looking at ACS 2022 data for Texas, we see that data quality isn’t the same everywhere. Larger, urban counties usually have solid numbers, while smaller rural counties often have very high margins of error. In some places, the income data is so uncertain that it’s hard to use with confidence.
The biggest risk shows up in rural, Hispanic-majority counties like Dimmit and Culberson. These areas often have the highest uncertainty, which means if an algorithm used this data directly, the results could shortchange the very communities that need the most support.
The main reason for this problem is how the ACS survey works. Small populations naturally create bigger sampling errors, and rural or minority communities may also face challenges like language barriers or low response rates. That makes their numbers less reliable.
To make decisions fairer, a tiered approach makes sense. Counties with strong data can go into the algorithm as-is. Counties with moderate-quality data should be monitored, and counties with weak data should get extra checks or even manual review. Over time, improving census participation in rural and minority communities would help fix the root of the problem.
6.3 Specific Recommendations
Your Task: Create a decision framework for algorithm implementation.
library(scales)
library(kableExtra)
# Create a summary table using your county reliability data
# Include: county name, median income, MOE percentage, reliability category
# Add a new column with algorithm recommendations using case_when():
# - High Confidence: "Safe for algorithmic decisions"
# - Moderate Confidence: "Use with caution - monitor outcomes"
# - Low Confidence: "Requires manual review or additional data"
<- TX_county_reliability %>%
TX_recommendations select(county_name, med_household_incomeE, med_income_moe_pct, med_income_confi) %>%
mutate(
`Median Income ($)` = dollar(med_household_incomeE),
`MOE (%)` = percent(med_income_moe_pct / 100, accuracy = 0.1),
Recommendation = case_when(
== "High Confidence (<5%)" ~ "✅ Safe for algorithmic decisions",
med_income_confi == "Moderate Confidence (5% - 10%)" ~ "⚠️ Use with caution – monitor outcomes",
med_income_confi == "Low Confidence (>10%)" ~ "❌ Requires manual review or extra data",
med_income_confi TRUE ~ "Check data"
)%>%
) select(county_name, `Median Income ($)`, `MOE (%)`, med_income_confi, Recommendation)
# Format as a professional table with kable()
kable(
TX_recommendations,caption = "**County-Level Reliability and Algorithm Recommendations (ACS 2022)**",
col.names = c("County", "Median Income ($)", "MOE (%)", "Reliability", "Recommendation"),
escape = FALSE,
align = c("l", "r", "r", "l", "l")
%>%
) kable_styling(full_width = FALSE, position = "center",
bootstrap_options = c("striped", "hover", "condensed")) %>%
column_spec(1, bold = TRUE)
County | Median Income ($) | MOE (%) | Reliability | Recommendation |
---|---|---|---|---|
Anderson County | $57,445 | 7.9% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Andrews County | $86,458 | 18.6% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Angelina County | $57,055 | 4.4% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Aransas County | $58,168 | 11.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Archer County | $69,954 | 12.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Armstrong County | $70,417 | 20.7% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Atascosa County | $67,442 | 6.4% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Austin County | $73,556 | 6.5% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Bailey County | $69,830 | 18.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Bandera County | $70,965 | 8.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Bastrop County | $80,151 | 6.1% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Baylor County | $52,716 | 25.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Bee County | $50,283 | 10.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Bell County | $62,858 | 2.8% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Bexar County | $67,275 | 1.2% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Blanco County | $79,717 | 9.4% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Borden County | $80,625 | 24.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Bosque County | $63,868 | 6.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Bowie County | $56,628 | 4.1% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Brazoria County | $91,972 | 3.3% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Brazos County | $57,562 | 3.5% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Brewster County | $47,747 | 11.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Briscoe County | $35,446 | 27.6% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Brooks County | $30,566 | 33.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Brown County | $53,792 | 4.7% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Burleson County | $71,745 | 6.5% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Burnet County | $71,482 | 8.1% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Caldwell County | $66,779 | 7.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Calhoun County | $62,267 | 9.9% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Callahan County | $63,906 | 3.6% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Cameron County | $47,435 | 3.4% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Camp County | $53,968 | 7.6% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Carson County | $83,199 | 4.5% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Cass County | $54,303 | 6.8% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Castro County | $59,886 | 17.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Chambers County | $106,103 | 8.3% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Cherokee County | $56,971 | 8.5% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Childress County | $56,063 | 29.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Clay County | $75,227 | 7.1% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Cochran County | $41,597 | 17.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Coke County | $40,230 | 13.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Coleman County | $51,034 | 7.9% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Collin County | $113,255 | 1.2% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Collingsworth County | $52,045 | 22.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Colorado County | $63,352 | 8.2% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Comal County | $93,744 | 2.8% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Comanche County | $57,383 | 13.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Concho County | $55,750 | 27.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Cooke County | $66,374 | 8.4% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Coryell County | $63,281 | 3.6% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Cottle County | $47,625 | 37.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Crane County | $71,364 | 32.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Crockett County | $64,103 | 34.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Crosby County | $50,268 | 10.4% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Culberson County | $35,924 | 51.4% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Dallam County | $71,969 | 9.7% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Dallas County | $70,732 | 0.9% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Dawson County | $45,268 | 27.6% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Deaf Smith County | $51,942 | 6.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Delta County | $68,491 | 27.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Denton County | $104,180 | 1.3% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
DeWitt County | $61,100 | 7.9% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Dickens County | $46,638 | 13.6% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Dimmit County | $27,374 | 45.2% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Donley County | $51,711 | 12.4% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Duval County | $50,697 | 20.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Eastland County | $52,902 | 12.2% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Ector County | $70,566 | 4.2% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Edwards County | $40,809 | 27.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Ellis County | $93,248 | 2.7% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
El Paso County | $55,417 | 1.9% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Erath County | $59,654 | 6.7% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Falls County | $45,172 | 15.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Fannin County | $65,835 | 6.1% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Fayette County | $72,881 | 5.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Fisher County | $60,461 | 8.2% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Floyd County | $49,321 | 9.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Foard County | $41,944 | 20.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Fort Bend County | $109,987 | 2.6% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Franklin County | $67,915 | 4.4% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Freestone County | $55,902 | 10.5% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Frio County | $56,042 | 30.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Gaines County | $73,299 | 13.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Galveston County | $83,913 | 2.8% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Garza County | $56,215 | 35.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Gillespie County | $70,162 | 8.2% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Glasscock County | $112,188 | 27.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Goliad County | $58,125 | 25.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Gonzales County | $64,255 | 8.4% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Gray County | $54,563 | 7.2% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Grayson County | $66,608 | 3.6% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Gregg County | $63,811 | 3.9% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Grimes County | $63,484 | 9.1% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Guadalupe County | $88,111 | 3.9% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Hale County | $50,721 | 9.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Hall County | $43,873 | 11.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Hamilton County | $54,890 | 17.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Hansford County | $62,350 | 19.7% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Hardeman County | $60,455 | 15.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Hardin County | $70,164 | 5.1% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Harris County | $70,789 | 0.7% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Harrison County | $63,427 | 4.8% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Hartley County | $78,065 | 27.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Haskell County | $52,786 | 16.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Hays County | $79,990 | 3.7% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Hemphill County | $67,798 | 27.7% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Henderson County | $59,778 | 4.3% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Hidalgo County | $49,371 | 2.3% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Hill County | $60,669 | 6.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Hockley County | $53,283 | 7.5% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Hood County | $80,013 | 4.7% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Hopkins County | $63,766 | 5.7% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Houston County | $51,043 | 10.5% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Howard County | $67,243 | 6.5% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Hudspeth County | $35,163 | 23.2% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Hunt County | $66,885 | 4.2% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Hutchinson County | $62,211 | 7.5% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Irion County | $54,708 | 17.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Jack County | $58,861 | 13.2% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Jackson County | $67,176 | 17.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Jasper County | $48,818 | 9.8% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Jeff Davis County | $38,125 | 66.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Jefferson County | $57,294 | 2.9% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Jim Hogg County | $42,292 | 13.6% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Jim Wells County | $46,626 | 12.7% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Johnson County | $77,058 | 3.1% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Jones County | $59,361 | 10.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Karnes County | $57,798 | 14.5% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Kaufman County | $84,075 | 4.1% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Kendall County | $104,196 | 8.3% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Kenedy County | $45,455 | 25.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Kent County | $68,553 | 15.6% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Kerr County | $66,713 | 6.2% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Kimble County | $62,386 | 22.6% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
King County | $59,375 | 49.5% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Kinney County | $52,386 | 45.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Kleberg County | $52,487 | 9.5% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Knox County | $48,750 | 9.8% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Lamar County | $58,246 | 4.9% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Lamb County | $54,519 | 8.6% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Lampasas County | $73,269 | 7.4% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
La Salle County | $62,798 | 26.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Lavaca County | $58,530 | 7.7% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Lee County | $66,448 | 10.4% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Leon County | $57,363 | 12.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Liberty County | $59,605 | 6.7% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Limestone County | $53,102 | 7.1% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Lipscomb County | $71,625 | 12.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Live Oak County | $55,949 | 18.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Llano County | $64,241 | 8.8% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Loving County | NA | NA | NA | Check data |
Lubbock County | $61,911 | 3.5% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Lynn County | $52,996 | 7.1% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
McCulloch County | $53,214 | 16.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
McLennan County | $59,781 | 3.2% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
McMullen County | $60,313 | 41.2% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Madison County | $65,768 | 9.6% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Marion County | $48,040 | 5.0% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Martin County | $70,217 | 27.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Mason County | $77,583 | 15.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Matagorda County | $56,412 | 6.3% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Maverick County | $48,497 | 10.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Medina County | $73,060 | 4.0% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Menard County | $40,945 | 17.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Midland County | $90,123 | 5.8% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Milam County | $56,985 | 5.9% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Mills County | $59,315 | 9.3% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Mitchell County | $49,869 | 12.5% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Montague County | $63,336 | 8.6% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Montgomery County | $95,946 | 3.4% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Moore County | $59,041 | 6.5% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Morris County | $51,532 | 6.7% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Motley County | $66,528 | 8.4% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Nacogdoches County | $51,153 | 4.2% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Navarro County | $56,261 | 7.7% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Newton County | $38,871 | 16.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Nolan County | $47,437 | 7.7% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Nueces County | $64,027 | 2.3% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Ochiltree County | $62,240 | 17.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Oldham County | $71,103 | 11.2% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Orange County | $71,910 | 7.9% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Palo Pinto County | $65,242 | 4.4% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Panola County | $58,205 | 18.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Parker County | $95,721 | 3.9% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Parmer County | $65,575 | 13.7% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Pecos County | $59,325 | 17.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Polk County | $57,315 | 5.2% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Potter County | $47,974 | 4.0% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Presidio County | $29,012 | 24.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Rains County | $60,291 | 10.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Randall County | $78,038 | 3.5% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Reagan County | $70,319 | 12.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Real County | $46,842 | 33.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Red River County | $44,583 | 9.7% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Reeves County | $57,487 | 22.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Refugio County | $54,304 | 4.9% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Roberts County | $62,667 | 14.2% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Robertson County | $59,410 | 17.7% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Rockwall County | $121,303 | 3.8% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Runnels County | $55,424 | 6.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Rusk County | $61,661 | 9.8% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Sabine County | $47,061 | 16.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
San Augustine County | $45,888 | 9.7% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
San Jacinto County | $54,839 | 13.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
San Patricio County | $63,842 | 6.9% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
San Saba County | $54,087 | 16.4% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Schleicher County | $53,774 | 15.2% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Scurry County | $58,932 | 21.4% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Shackelford County | $60,924 | 14.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Shelby County | $49,231 | 10.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Sherman County | $66,169 | 27.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Smith County | $69,053 | 3.2% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Somervell County | $87,899 | 33.7% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Starr County | $35,979 | 8.4% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Stephens County | $44,712 | 18.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Sterling County | $63,558 | 22.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Stonewall County | $66,591 | 32.5% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Sutton County | $56,778 | 22.7% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Swisher County | $40,290 | 13.7% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Tarrant County | $78,872 | 1.0% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Taylor County | $61,806 | 3.9% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Terrell County | $52,813 | 21.0% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Terry County | $42,694 | 10.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Throckmorton County | $55,221 | 21.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Titus County | $57,634 | 8.1% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Tom Green County | $67,215 | 4.7% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Travis County | $92,731 | 1.2% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Trinity County | $51,165 | 11.4% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Tyler County | $50,898 | 10.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Upshur County | $60,456 | 7.7% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Upton County | $55,284 | 21.7% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Uvalde County | $55,000 | 15.3% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Val Verde County | $57,250 | 8.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Van Zandt County | $62,334 | 8.1% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Victoria County | $66,308 | 3.6% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Walker County | $47,193 | 6.3% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Waller County | $71,643 | 6.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Ward County | $70,771 | 12.6% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Washington County | $70,043 | 9.4% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Webb County | $59,984 | 3.1% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Wharton County | $59,712 | 6.8% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Wheeler County | $58,158 | 14.2% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Wichita County | $58,862 | 3.2% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Wilbarger County | $50,769 | 18.4% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Willacy County | $42,839 | 13.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Williamson County | $102,851 | 1.4% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Wilson County | $89,708 | 4.9% | High Confidence (<5%) | ✅ Safe for algorithmic decisions | |
Winkler County | $89,155 | 16.1% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Wise County | $85,385 | 6.1% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Wood County | $61,748 | 6.0% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Yoakum County | $80,317 | 8.8% | Moderate Confidence (5% - 10%) | ⚠️ Use with caution – monitor outcomes |
Young County | $65,565 | 16.9% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Zapata County | $35,061 | 10.7% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Zavala County | $49,243 | 28.8% | Low Confidence (>10%) | ❌ Requires manual review or extra data | |
Key Recommendations:
Your Task: Use your analysis results to provide specific guidance to the department.
Counties suitable for immediate algorithmic implementation: High-confidence counties such as Bexar, Dallas, Travis, Williamson, and Collin have strong data quality (MOE <5%). These counties are large, urban, and well-sampled, making them reliable for algorithm-driven funding and planning decisions.
Counties requiring additional oversight: Moderate-confidence counties like Anderson, Bastrop, Caldwell, and Wise fall in the 5–10% MOE range. Algorithms may be used here, but outcomes should be monitored regularly with human oversight to check for misallocations.
Counties needing alternative approaches: Low-confidence counties such as Dimmit, Culberson, Jeff Davis, King, and Kinney have very high MOEs (>10%, sometimes above 40–60%). These areas need manual review, supplemental surveys, or local administrative data to ensure fair resource distribution.
Questions for Further Investigation
- Are high-MOE counties geographically clustered (e.g., along the border or in rural west Texas), and does this spatial pattern affect equity?
- How do data quality issues change over time — are counties improving or declining in reliability across ACS cycles?
- Do certain demographic groups (Hispanic, Black, rural populations) consistently face higher MOEs, and what targeted outreach could improve data collection?
Technical Notes
Data Sources:
- U.S. Census Bureau, American Community Survey 2018-2022 5-Year Estimates
- Retrieved via tidycensus R package on 09/29/2025
Reproducibility:
- All analysis conducted in R version 2025.05.1+513 (2025.05.1+513)
- Census API key required for replication
- Complete code and documentation available at: https://musa-5080-fall-2025.github.io/portfolio-setup-uxiaoo22/
Methodology Notes:
- Focused on Texas counties using ACS 2022 5-year data. Variables selected: median household income, total population, and race/ethnicity (tract level).
- Cleaned county names by removing state suffixes for readability.
- Categorized margins of error (MOE) into High, Moderate, Low confidence levels for analysis clarity.
- Selected counties (Culberson and Dimmit) for tract-level study to highlight data reliability challenges
Limitations:
- ACS data for small, rural counties often carries large MOEs, limiting reliability.
- Analysis restricted to Texas counties; findings may not generalize to other states.
- Reliance on 5-year estimates improves stability but masks short-term trends.
- MOE thresholds (<5%, 5–10%, >10%) are heuristic and may oversimplify nuanced reliability issues
Submission Checklist
Before submitting your portfolio link on Canvas:
- [☑ ] All code chunks run without errors
- [☑ ] All “[Fill this in]” prompts have been completed
- [☑ ] Tables are properly formatted and readable
- [☑ ] Executive summary addresses all four required components
- [☑ ] Portfolio navigation includes this assignment
- [☑ ] Census API key is properly set
- [☑ ] Document renders correctly to HTML
Remember: Submit your portfolio URL on Canvas, not the file itself. Your assignment should be accessible at your-portfolio-url/assignments/assignment_1/your_file_name.html