GitHub
Release DOI

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


๐Ÿ“ฅ 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:

  1. Unzips and reads the Excel workbook.
  2. Filters records with missing dates.
  3. Constructs an FSA Code by concatenating state and county FSA codes.
  4. Cleans and standardizes pasture type names.
  5. 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).
  1. Removes invalid or duplicate entries.
  2. Exports the cleaned data to fsa-normal-grazing-period.csv.
  3. 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