FSA Normal Grazing Period Archive
This repository is an archive of the annual county-level Normal Grazing Period (NGP) data for the USDA Livestock Forage Disaster Program (LFP). Normal Grazing Periods define the historical timeframe during which forage is typically available for livestock grazing under non-drought conditions. These periods are used by the USDA Farm Service Agency (FSA) to determine eligibility and payment amounts for forage and crop loss due to drought.
For more information on the role of NGPs in the LFP, refer to FSA Handbook 1-LFP, Amendment 4.
The data in this repository were acquired via FOIA request
2025-FSA-04691-F by R. Kyle Bocinsky (Montana Climate Office) and
fulfilled on April 15, 2025. The FOIA response, including the original
Excel workbook, is archived in the foia
directory.
๐๏ธ Contents
foia/2025-FSA-04691-F Bocinsky.zip
โ original FOIA data and correspondencefsa-normal-grazing-period.csv
โ cleaned and consolidated datafsa-normal-grazing-period.R
โ processing scriptfsa-normal-grazing-period.qmd
โ Quarto dashboard sourcefsa-normal-grazing-period.html
โ interactive summary dashboard
๐ฅ Input Data: FOIA Excel Workbook
The FOIA response contains annual NGP data from 2008 through 2024 for each pasture type, county, and program year.
Key Variables
Variable Name | Description |
---|---|
Program Year |
Year the data applies to |
State Name |
U.S. state |
County Name |
County or county-equivalent name |
State FSA Code |
FSA-assigned state code (not always ANSI/FIPS) |
County FSA Code |
FSA-assigned county code (not always ANSI/FIPS) |
Pasture Grazing Type |
Pasture classification (e.g., Native, Improved) |
Normal Grazing Period Start Date |
Start date of typical grazing period |
Normal Grazing Period End Date |
End date of typical grazing period |
๐งน Processing Workflow
The processing script
fsa-normal-grazing-period.R
:
- Unzips and reads the Excel workbook.
- Filters records with missing dates.
- Constructs an
FSA Code
by concatenating state and county FSA codes. - Cleans and standardizes pasture type names.
- Corrects known data errors, including:
- Erroneous years and dates in KS, UT, MS, and MT records.
- Handling duplicate and misassigned counties (e.g., Shoshone County, ID).
- Removes invalid or duplicate entries.
- Exports the cleaned data to
fsa-normal-grazing-period.csv
. - Renders an interactive Quarto dashboard.
๐ค Output Data: Cleaned CSV
The file
fsa-normal-grazing-period.csv
is a
tidy dataset for analysis and visualization.
Variables in Output
Variable Name | Description |
---|---|
Program Year |
Year the data applies to |
State Name |
Full U.S. state name |
County Name |
County or county-equivalent name |
State FSA Code |
FSA state code (not always ANSI/FIPS) |
County FSA Code |
FSA county code (not always ANSI/FIPS) |
FSA Code |
Combined State FSA Code + County FSA Code |
Pasture Type |
Standardized pasture type |
Normal Grazing Period Start Date |
Cleaned and corrected start date |
Normal Grazing Period End Date |
Cleaned and corrected end date |
๐ Demonstration Dashboard
The Quarto dashboard
fsa-normal-grazing-period.qmd
provides:
- An interactive viewer to explore NGPs by county, year, and pasture type
- Visual summaries of seasonality and regional variation
- A tool for researchers and policymakers to assess temporal trends
Access a full-screen version of the dashboard at:
https://sustainable-fsa.github.io/fsa-normal-grazing-period/fsa-normal-grazing-period.html
๐ Quick Start: Visualize a Normal Grazing Period Map in R
This snippet shows how to load the Normal Grazing Period file from the
archive and create a simple drought classification map using sf
and
ggplot2
.
# Load required libraries
library(sf)
library(ggplot2) # For plotting
library(tigris) # For state boundaries
library(rmapshaper) # For innerlines function
## Get the Normal Grazing Period data
ngp <-
readr::read_csv("fsa-normal-grazing-period.csv")
## The Normal Grazing Period data files use FSA county definitions
## Download from the FSA_Counties_dd17 archive
counties <-
sf::read_sf("https://sustainable-fsa.github.io/fsa-counties-dd17/fsa-counties-dd17.topojson",
layer = "counties") |>
sf::st_set_crs("EPSG:4326") |>
sf::st_transform("EPSG:5070")
## Calculate the 2024 Normal Grazing Period duration for Native Pasture, and
## combine with the county data
ngp_counties <-
ngp |>
dplyr::filter(`Pasture Type` == "Native Pasture",
`Program Year` == 2024) |>
dplyr::transmute(
id = paste0(`State FSA Code`,`County FSA Code`),
`Grazing Period Duration` =
(`Normal Grazing Period End Date` - `Normal Grazing Period Start Date`) |>
magrittr::divide_by(7) |>
as.integer()
) |>
dplyr::left_join(counties) |>
sf::st_as_sf()
# Plot the map
ggplot(counties) +
geom_sf(data = sf::st_union(counties),
fill = "grey80",
color = NA) +
geom_sf(data = ngp_counties,
aes(fill = `Grazing Period Duration`),
color = NA) +
geom_sf(data = rmapshaper::ms_innerlines(counties),
fill = NA,
color = "white",
linewidth = 0.1) +
geom_sf(data = counties |>
dplyr::group_by(state) |>
dplyr::summarise() |>
rmapshaper::ms_innerlines(),
fill = NA,
color = "white",
linewidth = 0.2) +
khroma::scale_fill_batlowK(limits = c(0,52),
name = "NGP\nDuration\n(weeks)") +
labs(title = "FSA Normal Grazing Period Duration",
subtitle = "Native Pasture โ 2024") +
theme_void()
๐งญ About FSA County Codes
The USDA FSA uses custom county definitions that differ from standard ANSI/FIPS codes used by the U.S. Census. To align the Normal Grazing Period data with geographic boundaries, we use the FSA-specific geospatial dataset archived in the companion repository:
๐ sustainable-fsa/fsa-counties-dd17
FSA county codes are documented in FSA Handbook 1-CM, Exhibit 101.
๐ Citation
If using this data in published work, please cite:
USDA Farm Service Agency. Normal Grazing Periods, 2008โ2024. FOIA request 2025-FSA-04691-F by R. Kyle Bocinsky. Accessed via GitHub archive, YYYY. https://sustainable-fsa.github.io/fsa-normal-grazing-period/
๐ License
- Raw FOIA data (USDA): Public Domain (17 USC ยง 105)
- Processed data & scripts: ยฉ R. Kyle Bocinsky, released under CC0 and MIT License as applicable
โ ๏ธ Disclaimer
This dataset is archived for research and educational use only. It may not reflect current USDA administrative boundaries or official LFP policy. Always consult your local FSA office for the latest program guidance.
To locate your nearest USDA Farm Service Agency office, use the USDA Service Center Locator:
๐ USDA Service Center Locator
๐ Acknowledgment
This project is part of:
Enhancing Sustainable Disaster Relief in FSA
Programs
Supported by USDA OCE/OEEP and USDA Climate Hubs
Prepared by the Montana Climate Office
โ๏ธ Contact
Questions? Contact Kyle Bocinsky: kyle.bocinsky@umontana.edu