PRF data
Official Pasture, Rangeland, Forage Pilot Insurance Program Data
is”, without warranty of any kind. The authors make no
guarantees regarding accuracy or suitability for any purpose. Use of
these data and any results derived from them is entirely at the user’s
own risk. The contents of this release reflect independent research and
do not represent the official positions or policies of the USDA, the
Risk Management Agency (RMA), the Federal Crop Insurance Corporation
(FCIC), or any Approved Insurance Provider.
📘 Overview
This release provides analysis-ready datasets supporting research on
Pasture, Rangeland, Forage (PRF) Insurance Program within the U.S.
Federal Crop Insurance Program (FCIP).
The data are generated and maintained by the rfcipPRF workflow and are
designed to support reproducible research using PRF rainfall index,
actuarial, and related spatial data products.
📁 Included Files
1. Historic CPC precipitation data
cpc_historic_precipitation.rds
Historic grid-level precipitation data used in PRF support
workflows.
Columns
grid_id= PRF grid identifier (numeric GRIDCODE from the
official RMA RI grid shapefile)commodity_year= Commodity year (integer, e.g.,
2011–present)month= Calendar month (integer 1–12)precipitation= Observed CPC CONUS 0.25° gauge-based daily
precipitation summed to monthly totals for the grid cell, converted
to inchesprecipitation_rma= RMA-adjusted monthly precipitation; scaled
so that the interval-level sum matches the official RMA rainfall
index (actual_index × long-run average precipitation)
2. County-level PRF actuarial data
prf_adm_county_level_2007.rdsthrough
prf_adm_county_level_2026.rds
Annual county-level PRF actuarial files containing rating and
payment-factor information by county, interval, type, and coverage
level.
Columns
commodity_year= Commodity year (integer, 2007–present)state_code= FIPS state code (2-digit integer)county_code= FIPS county code (3-digit integer)interval_code= PRF insurance interval code (integer 1–11;
each code represents a distinct 2-month precipitation window — see
interval reference below)type_code= PRF type code (e.g.,"RI"for Rainfall Index,
"VI"for Vegetation Index)coverage_level_percent= Coverage level percentage (numeric;
e.g., 70, 75, 80, 85, 90)base_rate= Effective base premium rate derived as
total_premium_amount / liability_amountfrom the Summary of
Business (SoB) TPU datapayment_factor= Effective payment factor derived as
indemnity_amount / liability_amountfrom the SoB TPU data;
reflects realized loss experience at the county level
3. Grid-level PRF actuarial data
prf_adm_grid_level_2011.rdsthrough
prf_adm_grid_level_2026.rds
Annual grid-level PRF actuarial files combining grid identifiers,
county-level values, actuarial rates, key program dates, and subsidy
information.
Columns
commodity_year= Commodity year (integer, 2011–present)state_code= FIPS state code (2-digit integer)county_code= FIPS county code (3-digit integer)grid_id= PRF grid identifier (numeric GRIDCODE from the
official RMA RI grid shapefile)interval_code= PRF insurance interval code (integer 1–11; see
interval reference below)type_code= PRF type code (e.g.,"RI"for Rainfall Index,
"VI"for Vegetation Index)coverage_level_percent= Coverage level percentage (numeric;
e.g., 70, 75, 80, 85, 90)county_base_value= County base value (dollars per acre) used
as the dollar amount of coverage per acre in PRF liability
calculationsbase_rate= Base premium rate (mean of grid-level ADM rates
within the county × interval × type × coverage-level cell)payment_factor= Payment factor used in PRF indemnity
calculations (mean of grid-level ADM payment factors)contract_change_date= Contract change datesales_closing_date= Sales closing datemodified_sales_closing_date= Modified sales closing dateextended_sales_closing_date= Extended sales closing dateearliest_planting_date= Earliest planting datefinal_planting_date= Final planting dateextended_final_planting_date= Extended final planting dateacreage_reporting_date= Acreage reporting datemodified_acreage_reporting_date= Modified acreage reporting
dateend_of_insurance_date= End of insurance datecancellation_date= Cancellation datemodified_cancellation_date= Modified cancellation datetermination_date= Termination datepremium_billing_date= Premium billing datelast_released_date= Last released datereleased_date= Release datedeleted_date= Deletion datefiling_date= Filing datesubsidy_percent= Premium subsidy percentage (fraction of
total premium paid by the Federal government)
4. Official RMA PRF grid
official_RMA_RI_grid_01.zip
The official RMA Rainfall Index grid shapefile defining the spatial
boundaries of all PRF grid cells across the conterminous United
States.
Contents of zip
The zip archive contains a point/polygon shapefile with one record per
PRF grid cell. Key attribute:
GRIDCODE= PRF grid identifier (integer); used asgrid_id
throughout all other release files
Source: Grazing Management Systems. official_RMA_RI_grid, Edition
1.0, published 2009-08-22.
Online: http://prfri-rma-map.tamu.edu/default.aspx
5. RMA Rainfall Index data
rmaRainfallIndices.rds
Grid- and interval-level RMA Rainfall Index values derived from the
latest official RMA PRF rainfall index archive. One row per grid ×
insurance plan × commodity × year × interval combination.
Columns
grid_id= PRF grid identifier (numeric GRIDCODE)insurance_plan_code= RMA insurance plan code (integer;13=
PRF Rainfall Index,14= PRF Vegetation Index)Commodity0088= Commodity 88 indicator (1 if the grid
participates in the PRF program under commodity code 88)Commodity1191= Commodity 1191 indicator (analogous flag for
commodity code 1191)commodity_year= Commodity year (integer)interval_code= PRF insurance interval code (integer 1–11; see
interval reference below)actual_index= Mean realized rainfall index value for the grid
× interval × year (numeric; expressed as a fraction of the long-run
average, where values < 1 indicate below-average precipitation)
6. PRF Summary of Business (SoB TPU)
prf_sobtpu.rds
County-level PRF insurance Summary of Business (TPU) records
aggregated from USDA RMA for commodity years 2007 to present.
Filtered to insurance plan code 13 (PRF) and commodity code 88.
Columns
commodity_year= Commodity year (integer, 2007–present)state_code= FIPS state code (2-digit integer)county_code= FIPS county code (3-digit integer)type_code= PRF type codeinterval_code= PRF insurance interval code (integer 1–11;
renamed frompractice_code)interval_name= PRF interval name (character; renamed from
practice_name)coverage_level_percent= Coverage level percentage (numeric;
e.g., 70, 75, 80, 85, 90)insured_acres= Total net reporting level amount (insured
acres; sum ofnet_reporting_level_amount)liability_amount= Total liability amount (dollars)total_premium_amount= Total premium amount (dollars)subsidy_amount= Total subsidy amount (dollars; Federal
portion of the premium)indemnity_amount= Total indemnity amount (dollars; payments
made to policyholders)
7. Potential PRF area by grid and county
potential_prf_grids.rds
Grid-level estimate of land eligible for PRF coverage within each
PRF grid cell and county, measured in acres. Derived by intersecting
USDA Forest Service Rangelands V1, USDA NASS Cropland Data
Layer (CDL) pasture/forage classes, and USGS 2010 population density
(to exclude developed areas). One row per state × county × grid
combination.
Columns
state_code= FIPS state code (2-digit integer)county_code= FIPS county code (3-digit integer)grid_id= PRF grid identifier (numeric GRIDCODE)potential_pasture= Estimated acres of CDL-classified pasture,
grassland, shrubland, or hay within the grid cell and county
(excluding populated areas)potential_rangeland= Estimated acres of USDA Forest Service
Rangelands V1 rangeland or transitional rangeland within the grid
cell and county (excluding populated areas)potential_range_pasture= Estimated acres of combined
pasture/rangeland (union of CDL and Rangelands V1 eligible classes,
excluding populated areas)county_fips= 5-digit county FIPS code (character;
state_code+county_codezero-padded)
8. Rangeland productivity statistics by grid
productivity_prf_grids.rds
Annual mean distribution statistics of USDA Forest Service rangeland
productivity (forage biomass) within eligible pasture/rangeland
pixels of each PRF grid cell. One row per grid × year combination.
Available for years where productivity rasters exist (approximately
2020–present).
Columns
grid_id= PRF grid identifier (numeric GRIDCODE)commodity_year= Commodity year (integer)rangeland_prod_mean= Mean rangeland productivity value within
eligible pixels of the grid cellrangeland_prod_median= Median rangeland productivity valuerangeland_prod_sd= Standard deviation of rangeland
productivity valuesrangeland_prod_min= Minimum rangeland productivity valuerangeland_prod_max= Maximum rangeland productivity valuerangeland_prod_p05= 5th percentile of rangeland productivity
valuesrangeland_prod_p10= 10th percentile of rangeland productivity
valuesrangeland_prod_p90= 90th percentile of rangeland productivity
valuesrangeland_prod_p95= 95th percentile of rangeland productivity
values
9. County-level PRF penetration
prf_county_penetration.rds
County-year panel combining potential PRF-eligible land area, actual
insured acres, agricultural census land, livestock inventories, and
derived insurance penetration rates. Covers commodity years 2016 to
present.
Columns
county_fips= 5-digit county FIPS code (character)state_code= FIPS state code (2-digit integer)county_code= FIPS county code (3-digit integer)commodity_year= Commodity year (integer, 2016–present)potential_pasture= Estimated potential pasture acres in the
county (frompotential_prf_grids.rds, capped at NASS census
pasture land)potential_rangeland= Estimated potential rangeland acres in
the countypotential_range_pasture= Estimated combined pasture +
rangeland acres in the county (capped at NASS census agricultural
land)insured_acres_prf= PRF (commodity 88) insured acres in the
county for the crop year (from RMA SoB)insured_acres_aph= APH forage/alfalfa/pasture (commodities
32, 33, 48, 107, 332) insured acres in the county (from RMA SoB)ag_land= Total agricultural land acres in the county (from
USDA NASS Census of Agriculture)pasture_land= Pasture land acres in the county (from USDA
NASS Census of Agriculture)total_animals= Total livestock inventory (cattle + goats +
sheep; sum over 2000–present from NASS survey data)insured_acres_prf_cum= Cumulative PRF insured acres across
all years for the countyinsured_acres_aph_cum= Cumulative APH insured acres across
all years for the countyprf_penetration= County PRF insurance penetration rate
(percent;insured_acres_prf / potential_range_pasture × 100,
capped at 100%)aph_penetration= County APH forage insurance penetration rate
(percent;insured_acres_aph / potential_pasture × 100, capped at
100%)national_prf_penetration= National PRF penetration rate for
the crop year (percent)national_aph_penetration= National APH forage penetration
rate for the crop year (percent)- (Additional county geometry columns from
urbnmaprfor mapping)
Notes on coverage
- County-level actuarial files are available for 2007 to 2026.
- Grid-level actuarial files are available for 2011 to 2026.
- CPC historic precipitation data covers all years for which daily CPC
data have been processed. - SoB TPU data (
prf_sobtpu.rds) are available for 2007 to
present. - RMA Rainfall Index (
rmaRainfallIndices.rds) is derived from the
most recent official RMA archive and covers all available years
in that archive. - Potential area files (
potential_prf_grids.rds) and productivity
files (productivity_prf_grids.rds) reflect the CDL and Forest
Service data vintage used at the time of processing. - County penetration data (
prf_county_penetration.rds) covers
commodity years 2016 to present. - Variable availability within the grid-level files may vary slightly
over time as the underlying actuarial structure evolves.
PRF Interval Reference
PRF insurance intervals each cover a 2-month precipitation window. The
mapping of interval_code to calendar months is:
interval_code |
Months Covered |
|---|---|
| 1 | January – February |
| 2 | February – March |
| 3 | March – April |
| 4 | April – May |
| 5 | May – June |
| 6 | June – July |
| 7 | July – August |
| 8 | August – September |
| 9 | September – October |
| 10 | October – November |
| 11 | November – December |
Producers may select up to two intervals per policy year. The rainfall
(or vegetation) index for each interval is compared to its long-run
average to determine whether an indemnity is triggered.
Download and use in R
Files in this release can be downloaded directly from GitHub into R
using piggyback.
Example: Download a county-level actuarial file
The example below downloads prf_adm_county_level_2026.rds from the
prf release in the ftsiboe/USFarmSafetyNetLab repository, saves it
in a local data folder, and reads it into R.
file_name <- "prf_adm_county_level_2026.rds"
directory <- "data"
if (!dir.exists(directory)) {
dir.create(directory, recursive = TRUE)
}
piggyback::pb_download(
file = file_name,
dest = directory,
repo = "ftsiboe/USFarmSafetyNetLab",
tag = "prf",
overwrite = TRUE
)
data <- readRDS(file.path(directory, file_name))
data
str(data)
head(data)Example: Download a grid-level actuarial file
file_name <- "prf_adm_grid_level_2026.rds"
directory <- "data"
if (!dir.exists(directory)) {
dir.create(directory, recursive = TRUE)
}
piggyback::pb_download(
file = file_name,
dest = directory,
repo = "ftsiboe/USFarmSafetyNetLab",
tag = "prf",
overwrite = TRUE
)
data <- readRDS(file.path(directory, file_name))
data
str(data)
head(data)Example: Download the historic CPC precipitation file
file_name <- "cpc_historic_precipitation.rds"
directory <- "data"
if (!dir.exists(directory)) {
dir.create(directory, recursive = TRUE)
}
piggyback::pb_download(
file = file_name,
dest = directory,
repo = "ftsiboe/USFarmSafetyNetLab",
tag = "prf",
overwrite = TRUE
)
data <- readRDS(file.path(directory, file_name))
data
str(data)
head(data)Data sources
These files are derived from publicly available source materials,
including:
- USDA Risk Management Agency (RMA): PRF actuarial data master
(ADM), Summary of Business (SoB) TPU data, and official RMA rainfall
index archives — available at the RMA PRF data
repository - NOAA Climate Prediction Center (CPC): CONUS 0.25° gauge-based
daily precipitation data products used in supporting workflows —
available at NOAA
CPC - Official PRF grid:
official_RMA_RI_gridshapefile published by
Grazing Management Systems (Originator: Grazing Management Systems;
Title: official_RMA_RI_grid; Date: 2009-08-22; Edition: 1.0;
Geospatial Data Presentation Form: vector digital data; Online
Linkage: http://prfri-rma-map.tamu.edu/default.aspx)
How the data are produced
| File | Source | Derivation |
|---|---|---|
official_RMA_RI_grid_01.zip |
USDA RMA / Grazing Management Systems | Official shapefile downloaded directly from the RMA PRF repository; no transformations applied |
rmaRainfallIndices.rds |
USDA RMA PRF rainfall index archive | Latest rainfall index .txt file downloaded, cleaned, and averaged by grid_id × insurance_plan_code × Commodity0088 × Commodity1191 × commodity_year × interval_code |
prf_sobtpu.rds |
USDA RMA Summary of Business (SoB) TPU | Filtered to plan 13 / commodity 88; aggregated to county × interval × type × coverage level; sums of insured_acres, liability, premium, subsidy, indemnity |
cpc_historic_precipitation.rds |
NOAA CPC daily precipitation rasters | Daily CPC values summed to monthly totals per PRF grid cell; precipitation_rma is back-calculated so the interval-level sum equals actual_index × long-run average precipitation from the official RMA rainfall index |
prf_adm_county_level_*.rds |
USDA RMA Summary of Business (SoB) TPU | base_rate = total_premium / liability; payment_factor = indemnity / liability; aggregated to county × interval × type × coverage level |
prf_adm_grid_level_*.rds |
USDA RMA Actuarial Data Master (ADM) | Grid-level ADM rates joined with county base values, PRF program dates, and subsidy percentages from the ADM; requires year ≥ 2011 |
potential_prf_grids.rds |
USDA FS Rangelands V1 + USDA NASS CDL + USGS population density | Pixels classified as rangeland (Rangelands V1) or pasture/forage (CDL codes 36, 37, 62, 64, 152, 176) and with zero 2010 population density are summed at 30 m² resolution and converted to acres |
productivity_prf_grids.rds |
USDA FS annual rangeland productivity rasters | Productivity pixel values within eligible pasture/rangeland pixels are aggregated to distribution statistics per grid × year; then averaged across years |
prf_county_penetration.rds |
potential_prf_grids.rds + RMA SoB + USDA NASS Census/Survey |
Potential area capped at census land totals; PRF/APH insured acres from SoB; penetration = insured / potential × 100% |
Citation
When using these files in research, reports, or publications, please
cite:
- this GitHub repository (
ftsiboe/USFarmSafetyNetLab, tagprf) and
therfcipPRFworkflow (https://github.com/ftsiboe/rfcipPRF) - the relevant USDA RMA PRF source materials (ADM and/or SoB data, RMA
PRF rainfall index archives) - the relevant NOAA CPC precipitation data products, where applicable
- the official PRF grid shapefile (Grazing Management Systems, 2009,
official_RMA_RI_grid, v1.0,
http://prfri-rma-map.tamu.edu/default.aspx)