Technical writing
USDA Economic Research Service: The Agricultural Economics Data Behind Farm Income, Food Prices, and Rural America
The USDA Economic Research Service is not the agency that measures crop yields or counts cattle—that is NASS. ERS is the economic analysis arm: 400 economists, statisticians, and social scientists who take the raw production numbers and answer what they mean for farm incomes, food prices, household hunger, and the communities that depend on agriculture. Every number behind a congressional Farm Bill debate, a food price forecast, or a rural poverty headline traces back to ERS data.
What ERS is and how it differs from NASS
The Economic Research Service is a principal federal statistical agency within USDA, established in its current form in 1961. Its mandate is economic research and data collection covering the farm sector, food markets, natural resources, and rural America. With roughly 400 staff economists, statisticians, and social scientists, ERS is small relative to agencies like BLS or the Census Bureau, but it operates at the center of federal agricultural policy because it is the only federal entity that produces economic analysis—not just raw counts—of the agricultural system.
The distinction from NASS is fundamental. NASS conducts surveys: how many acres of corn were planted, what is the average yield, how many cattle are on feed. ERS takes those estimates and builds economic accounts from them: what did the farm sector earn, what did it cost to produce a bushel of soybeans, how much of household food expenditure went to food away from home, how many households could not reliably afford enough food. NASS measures physical quantities; ERS measures economic outcomes. Both are essential; neither substitutes for the other.
All ERS data and publications are free at ers.usda.gov. The data products span farm income and wealth statistics, food price and expenditure data, food security measurement, commodity costs and returns, agricultural trade statistics, rural economy indicators, and natural resource economics. Most major series are available as Excel or CSV downloads without registration. ERS does not operate a single unified API comparable to the BLS or NASS QuickStats interfaces, but individual data products link directly to downloadable files with stable URLs that support scripted access.
Farm income statistics: the sector balance sheet
The flagship ERS data product is the Farm Income and Wealth Statistics, produced through the Farm Income and Wealth Data System (FADS). This is the national income accounting framework for the US farm sector—the agricultural equivalent of BEA's GDP accounts for the broader economy. FADS publishes annual and quarterly estimates of farm sector revenues, expenses, and net income at both the national and state level.
The headline figure is farm sector net income: total receipts minus total production expenses, including capital consumption allowances. In 2023, farm sector net income reached approximately $116 billion—elevated by historical standards, reflecting the sustained high commodity price environment following the 2020–2022 supply shocks. For comparison, farm sector net income averaged roughly $60–80 billion across the 2010s, with a sharp trough around 2015–2016 when crop prices collapsed from their post-2012-drought highs.
A complementary measure is net cash farm income, which includes government payments explicitly and uses cash-basis rather than accrual accounting. Government payments—USDA commodity program payments, crop insurance indemnities, conservation program payments, and ad hoc disaster assistance—are a significant component of farm sector income in stress years. During the 2000–2001 period and again during 2019–2020 when the Trump administration's Market Facilitation Program (MFP) payments compensated farmers for trade war losses, government transfers exceeded 50 percent of net farm income in the aggregate, meaning the farm sector as a whole would have shown near-zero or negative returns without federal support.
ERS also tracks farm household income, which combines on-farm income with off-farm income from wages, salaries, and other sources. This distinction matters enormously for understanding farm financial conditions. The United States has approximately 2.0 million farm operations; roughly 90 percent are small family farms with gross cash farm income below $350,000 per year. These operations account for only about 20 percent of total agricultural output. The remaining 4 percent of operations—those grossing over $1 million annually—produce approximately 70 percent of the output. For most small farm households, off-farm income from non-agricultural employment is the primary income source; farm income is secondary. ERS farm household income data captures this structure explicitly.
The FADS data also tracks the farm sector balance sheet: total assets (land, buildings, equipment, livestock, crops), total debt, and the resulting debt-to-asset ratio. The farm sector debt-to-asset ratio is a key financial stress indicator. It peaked at roughly 22 percent in the mid-1980s during the farm financial crisis (when many overleveraged operations failed), fell through the 1990s as land values recovered, and has remained in the 13–16 percent range through the 2010s and 2020s—elevated but not at crisis levels.
Government payments: commodity programs and disaster assistance
ERS is the primary federal source for tracking how much the federal government transfers to agricultural producers through USDA programs. The two main commodity support mechanisms authorized under the 2018 Farm Bill (and its extensions) are:
| Program | Trigger | Reference prices |
|---|---|---|
| Agriculture Risk Coverage (ARC) | County revenue falls more than 14% below benchmark revenue | Based on 5-year Olympic average of county yields and prices |
| Price Loss Coverage (PLC) | Market price falls below statutory reference price | Corn $3.70/bu, soybeans $8.40/bu, wheat $5.50/bu, sorghum $3.95/bu |
Beyond ARC and PLC, ERS tracks crop insurance indemnity payments (administered by the Risk Management Agency), conservation program payments (Conservation Reserve Program, Environmental Quality Incentives Program, Conservation Stewardship Program), and ad hoc disaster and trade assistance payments. ERS publishes these by program, commodity, and state, enabling analysis of which producers and regions benefit most from federal agricultural spending.
Food prices and the ERS Food Price Outlook
ERS publishes the Food Price Outlook—annual and monthly forecasts of food-at-home and food-away-from-home price changes using the Bureau of Labor Statistics Consumer Price Index food components as inputs. ERS economists build structural models linking farm commodity prices, energy costs, labor costs, and supply chain conditions to retail food prices, then publish both a forecast for the current calendar year and a provisional estimate for the following year.
The 2022 food price surge was the most significant episode in modern ERS forecasting history. Grocery store prices (food at home) rose 11.4 percent in 2022—the largest annual increase since 1979—driven by a combination of COVID-era supply chain disruptions, labor shortages in food processing and distribution, and the Ukraine war's impact on sunflower oil (of which Ukraine and Russia together account for roughly 75 percent of world exports), wheat, and fertilizer inputs. Fertilizer prices, particularly for nitrogen (derived from natural gas), roughly doubled in 2021–2022 as European natural gas prices spiked, directly increasing the cost of producing corn, wheat, and other nitrogen-intensive crops.
The ERS Food Expenditure Series provides the broadest view of American food spending. Total US food expenditures run approximately $2.4 trillion per year in recent years, split roughly into $1.5 trillion for food away from home (restaurants, fast food, institutional food service) and $0.9 trillion for food at home (grocery retail). The share of food expenditure going to food away from home has grown steadily for decades—from under 25 percent in 1960 to over 50 percent by the late 2010s—reflecting the structural shift in American eating patterns toward restaurant and prepared food.
ERS Commodity Costs and Returns is a separate but related data product: production cost estimates per acre (for field crops) or per hundredweight (for livestock and dairy) for major commodities. These estimates include operating costs (seed, fertilizer, pesticides, fuel, hired labor) and ownership costs (land rent or opportunity cost, depreciation, interest on capital). The cost of production estimates allow analysts to determine whether market prices cover full economic costs, which is the threshold below which long-run investment in a commodity declines.
Food security: the annual household survey
ERS produces the official federal measure of household food security in the United States through the Annual Household Food Security Survey, conducted as a supplement to the Census Bureau's Current Population Survey each December, reaching approximately 50,000 households. This is the primary data source for federal hunger and food assistance policy.
The survey instrument is the 18-item food security scale, a set of questions about food access and adequacy developed by USDA and validated over decades of psychometric research. Based on the number of affirmative responses, households are classified into four categories:
| Category | Definition | 2023 prevalence |
|---|---|---|
| High food security | No reported food access problems or limitations | ~72% |
| Marginal food security | One or two reported problems; little or no reduction in food intake | ~14.5% |
| Low food security | Reduced quality, variety, or desirability of diet; little or no reduction in food intake | ~8.5% |
| Very low food security | Disrupted eating patterns and reduced food intake due to inadequate money or resources | ~5% |
The combined low and very low food security categories constitute the “food insecure” population. In 2023, ERS estimated 13.5 percent of US households were food insecure—approximately 17.9 million households and 47 million individuals, including roughly 13 million children. Child food insecurity (households with children reporting low or very low food security) was approximately 7.2 percent.
SNAP participation inversely correlates with food insecurity rates: the 2009–2013 period showed both elevated food insecurity (driven by the Great Recession) and record SNAP enrollment, which helped contain the insecurity rate below what economic conditions alone would predict. State-level food security estimates, due to smaller state sample sizes, are published as three-year moving averages rather than annual point estimates.
ERS also maintains the Food Access Research Atlas—a geographic mapping tool that identifies “food deserts,” defined as low-income census tracts where a significant share of residents live more than one mile from a supermarket (urban areas) or more than ten miles from a supermarket (rural areas). The Atlas is used to target USDA food access programs and has been incorporated into HUD and CDFI Fund community development analyses.
Commodity market outlooks
ERS publishes monthly Commodity Outlooks for corn, soybeans, wheat, cotton, rice, livestock, dairy, poultry, and eggs. Each outlook supplements the USDA World Agricultural Supply and Demand Estimates (WASDE) with additional economic analysis: price forecasts, income impact projections, trade flow analysis, and discussion of domestic and international factors driving supply and demand. The Commodity Outlooks are produced by ERS commodity economists who have deep knowledge of each specific market.
For Farm Bill analysis, ERS produces cost estimates by commodity program and by title, used in conjunction with the Congressional Budget Office's (CBO) scoring of Farm Bill baseline spending. When ARC or PLC reference prices are debated in Farm Bill reauthorization, ERS analysis of expected payment rates under different price scenarios is among the primary technical inputs to congressional deliberations. The Farm Bill's commodity title is effectively a price support mechanism whose cost varies with market prices; ERS models that relationship for each crop and scenario.
Rural America data: Beale Codes and the rural economy
ERS is the primary federal source for rural economy data, and its classification system for rural and urban areas is the standard used across federal agencies. The Rural-Urban Continuum Codes—commonly called Beale Codes after their originator, USDA economist Calvin Beale—classify all 3,100+ US counties on a 1–9 scale based on metropolitan status and adjacency to metro areas:
| Code | Description |
|---|---|
| 1 | Metro counties in areas of 1 million population or more |
| 2 | Metro counties in areas of 250,000–999,999 population |
| 3 | Metro counties in areas of fewer than 250,000 population |
| 4 | Non-metro: urban population of 20,000+, adjacent to a metro area |
| 5 | Non-metro: urban population of 20,000+, not adjacent to a metro area |
| 6 | Non-metro: urban population of 2,500–19,999, adjacent to metro |
| 7 | Non-metro: urban population of 2,500–19,999, not adjacent to metro |
| 8 | Non-metro: completely rural or urban population under 2,500, adjacent to metro |
| 9 | Non-metro: completely rural or urban population under 2,500, not adjacent to metro |
Beale Codes are updated after each decennial census. At a finer geographic level, ERS also publishes Rural-Urban Commuting Area (RUCA) codes at the census tract level, which provide more granular rural-urban classification within counties. RUCA codes are particularly important for programs that define eligibility at the sub-county level.
The economic data on rural America documented in the ERS Atlas of Rural and Small-Town America reveals persistent disparities. Rural poverty rates run approximately 15 percent versus 11 percent for metropolitan areas—a gap that has remained stubborn across multiple economic cycles. Since 2010, more than 180 rural hospitals have closed, and roughly 600 more are at risk of closure based on financial distress indicators—leaving large geographic areas without acute care capacity. Broadband access gaps remain severe: approximately 17 percent of rural households lack access to fixed broadband internet at speeds adequate for modern economic participation, compared to roughly 1 percent of urban households.
The Atlas tracks county-level data on employment composition (share working in agriculture, manufacturing, services, and government), population trends (the rural population decline has been geographic as well as absolute in many regions), income levels, educational attainment, and demographic change. It provides the empirical foundation for federal rural development policy under USDA Rural Development and HUD programs.
Data access: downloads, FRED, and scripted access
The primary access point for ERS data is ers.usda.gov/data-products/. Major data products are organized as data product pages, each providing Excel or CSV downloads for individual series. The download URLs are typically stable and can be accessed programmatically with a standard HTTP GET request. ERS does not require registration or an API key for data downloads.
The Federal Reserve Bank of St. Louis FRED database mirrors key ERS series under standard FRED series identifiers. Net farm income appears as FARM in FRED; food price inflation series from ERS's Food Price Outlook are also available. FRED's API provides a more standardized programmatic interface for these series if consistency across vintages is needed, though ERS's direct downloads contain the full detail including state-level breakdowns that FRED does not reproduce.
For Python access, pandas can read ERS CSV and Excel files directly from their download URLs using pd.read_csv(url) or pd.read_excel(url). The primary friction points are that ERS Excel files often have multi-row headers, notes rows interspersed with data, and non-numeric placeholder values for suppressed or unavailable data—the same data cleaning patterns that apply to most federal statistical agency files.
Python: farm income components and government payment share (2000–2023)
The script below downloads ERS farm income summary data, parses net farm income and government payment series, computes the ratio of government payments to net farm income for each year from 2000 through 2023, identifies years where government transfers exceeded 50 percent of net farm income—typically disaster or trade war years—and produces a stacked bar chart showing private and government income components by year.
import requests
import pandas as pd
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import io
# USDA ERS Farm Income and Wealth Statistics
# Direct CSV download -- no API key required
# Source: https://www.ers.usda.gov/data-products/farm-income-and-wealth-statistics/
# ERS publishes the FADS (Farm Income and Wealth Data System) as Excel/CSV.
# The URL below points to the "Summary of Farm Sector Income" table.
# If ERS updates the file path, find the current URL at:
# https://www.ers.usda.gov/data-products/farm-income-and-wealth-statistics/
# -> "Value Added" or "Net Farm Income and Net Cash Income" tabs
ERS_FARM_INCOME_URL = (
"https://www.ers.usda.gov/webdocs/DataFiles/48747/"
"FarmIncomeSummary.xlsx"
)
print("Fetching ERS Farm Income Summary...")
resp = requests.get(ERS_FARM_INCOME_URL, timeout=60)
resp.raise_for_status()
# The ERS Excel file has multiple sheets; the summary sheet contains
# net farm income, net cash farm income, and government payments.
# Sheet name and structure may vary by ERS update -- inspect with:
# xl = pd.ExcelFile(io.BytesIO(resp.content)); print(xl.sheet_names)
xl = pd.ExcelFile(io.BytesIO(resp.content))
print("Available sheets:", xl.sheet_names)
# Read the first substantive sheet (index 0 is typically a cover/notes sheet)
# Adjust sheet_name based on the actual workbook structure
df_raw = pd.read_excel(
io.BytesIO(resp.content),
sheet_name=1, # adjust as needed after inspecting sheet_names
header=None,
)
# ERS summary tables typically have years in rows and series in columns,
# or vice versa; the layout differs by download. Below we show the
# pattern assuming years are in one column and key series in adjacent columns.
# For a clean programmatic pull, use the ERS data API endpoint for specific series:
# ERS also publishes individual time series as plain CSV at stable URLs.
# Example: Net Farm Income (billion dollars, calendar year)
# This URL returns a two-column CSV: Year, Value
ERS_NFI_CSV = (
"https://www.ers.usda.gov/webdocs/DataFiles/48747/"
"NetFarmIncome.csv"
)
# Government Payments CSV
ERS_GOVPMT_CSV = (
"https://www.ers.usda.gov/webdocs/DataFiles/48747/"
"GovernmentPayments.csv"
)
def read_ers_csv(url, value_col_name):
"""
Read an ERS two-column CSV (Year, Value).
ERS CSVs often have header rows and footer notes;
skip rows that do not parse as integer years.
"""
r = requests.get(url, timeout=60)
r.raise_for_status()
lines = r.text.splitlines()
records = []
for line in lines:
parts = line.split(",")
if len(parts) < 2:
continue
try:
year = int(parts[0].strip())
value = float(parts[1].strip().replace('"', "").replace(",", ""))
records.append({"year": year, value_col_name: value})
except ValueError:
continue # skip header/footer rows
return pd.DataFrame(records).set_index("year")
nfi = read_ers_csv(ERS_NFI_CSV, "net_farm_income_bil")
gov = read_ers_csv(ERS_GOVPMT_CSV, "govt_payments_bil")
# Merge and filter to 2000-2023
df = nfi.join(gov, how="inner")
df = df[(df.index >= 2000) & (df.index <= 2023)].copy()
df = df.sort_index()
# Compute government payments as share of net farm income
df["govt_share"] = df["govt_payments_bil"] / df["net_farm_income_bil"]
# Identify years where government transfers exceeded 50% of net farm income
heavy_govt_years = df[df["govt_share"] > 0.50].index.tolist()
print("Years where govt payments > 50 pct of net farm income:", heavy_govt_years)
# Remaining private income (net farm income minus govt payments)
df["private_income_bil"] = df["net_farm_income_bil"] - df["govt_payments_bil"]
# --- Stacked bar chart ---
fig, ax = plt.subplots(figsize=(13, 6))
years = df.index.tolist()
private = df["private_income_bil"].tolist()
govt = df["govt_payments_bil"].tolist()
ax.bar(years, private, label="Private farm income", color="#2c6e49", alpha=0.85)
ax.bar(years, govt, bottom=private, label="Government payments", color="#e9c46a", alpha=0.90)
# Annotate years with high government share
for yr in heavy_govt_years:
if yr in df.index:
total = df.loc[yr, "net_farm_income_bil"]
ax.annotate(
str(yr),
xy=(yr, total + 1),
ha="center",
fontsize=8,
color="#c0392b",
fontweight="bold",
)
ax.axhline(0, color="black", linewidth=0.8)
ax.set_title(
"US Farm Sector Net Income: Private vs. Government Payments (2000-2023)",
fontsize=13,
)
ax.set_xlabel("Year")
ax.set_ylabel("Billion USD (nominal)")
ax.legend(fontsize=9)
ax.grid(axis="y", alpha=0.3)
fig.tight_layout()
fig.savefig("ers_farm_income_components.png", dpi=150)
print("Saved ers_farm_income_components.png")
# Print tabular summary
print("\nFarm income components (billion USD, nominal)")
print("{:<6} {:>18} {:>20} {:>14}".format(
"Year", "Net Farm Income", "Govt Payments", "Govt Share"
))
print("-" * 65)
for yr, row in df.iterrows():
print("{:<6} {:>18.1f} {:>20.1f} {:>13.1f}%".format(
yr,
row["net_farm_income_bil"],
row["govt_payments_bil"],
row["govt_share"] * 100,
))
The years flagged as having government payments exceeding 50 percent of net farm income reveal the structural relationship between commodity price cycles and federal agricultural support. In 2000–2001, low commodity prices triggered large market loss assistance payments. In 2019–2020, the Market Facilitation Program (MFP) payments—which compensated farmers for lost export markets due to retaliatory tariffs from China and other trading partners—plus COVID-19 relief payments pushed government transfers to extraordinary levels. The stacked bar chart makes visible what aggregate net farm income statistics can obscure: in stress years, the farm sector's reported income figures are substantially composed of federal transfers rather than market returns.
Related writing: USDA NASS Crop Surveys: The Federal Agricultural Data Behind Every Corn, Soybean, and Wheat Market covers the production survey data that feeds into ERS economic accounts—how NASS measures yields, acreage, and livestock inventories through the QuickStats API and monthly Crop Production reports.
Related writing: Food Stamps by the Numbers: Using USDA SNAP Participation Data to Track Hunger and Benefit Policy covers the Food and Nutrition Service's monthly SNAP participation and benefit data—the primary federal food assistance program whose enrollment inversely tracks the food insecurity rates ERS measures annually.