One-time snapshot
USDA Crop Insurance Indemnities 1989–2023
4,173,884 USDA crop insurance summary records across 35 commodity years, with corrected financial fields, exact decimal amounts and preserved source values.
Records: 4,173,884 source summary records
Coverage: Commodity years 1989–2023
Format: CSV + Parquet
Package uploaded: 2026-09-19
Listing reviewed: 2026-09-19
The upload and review dates do not extend the source coverage. This is a dated snapshot; future updates are not included.
$99one time
CSV and Parquet files for the coverage described here. Review the limitations and sample before purchasing.
Buy dated snapshotView 1,000-row sampleNew annual update subscriptions are unavailable. Existing customers can use their purchase download links or contact support.
Known limitations
- Dated source snapshot retrieved September 19, 2026: commodity years 1989–2023 only. One indemnity table; weather data, weather joins, inferred cause categories and risk scores are excluded. Future updates are not included.
- Rows summarize commodity year, county, crop, insurance plan, coverage, stage, cause and reported loss month/year. They are not individual claims, farms or unique policies. Do not sum policy counts as unique customers or mix quantity units across crops.
- Breaking schema repair: use indemnity_amount at official source position 29. The former indemnity field read the EFA premium discount position. Monetary fields now use exact decimal values; all 30 original fields remain in raw_ columns. CSV readers may discard raw NUL characters; prefer Parquet or the documented PyArrow reader for source fidelity.
- All source rows are retained, including 74,886 negative and 47,524 zero indemnities, two exact duplicate records and 11 excess rows sharing the same source dimension key. Use source_file plus source_row as this revision’s row key. Two duplicate source amounts are $79,560 and $936,721; no silent deduplication occurred.
- Loss year is missing in 1,442,370 rows and invalid in 2,320. Loss month is missing in 22 and invalid in 48,287. Typed values are null with status fields; 2,068 calendar-valid loss years differ from commodity year by more than two years. Use commodity_year for period coverage.
- 161,137 cause descriptions are missing. Historical codes, labels and program coverage vary; five-digit county code shape does not establish a contemporary geography crosswalk. Amounts are nominal USD and these loss summaries do not provide full-program exposure or validated risk rates.
- The deterministic 1,000-row sample spans all 35 years but is not statistically representative. All delivered fields and annual money totals reconcile to the pinned annual source files; agency accuracy and historical revision completeness are not independently certified.
Files in this snapshot
Row counts are per table and should not be added as independent events. Expand a file to see its delivered Parquet field names and types.
usda_crop_insurance_indemnities.parquet — 4,173,884 rows · 65 fields
| Field | Type |
|---|---|
| commodity_year | int32 |
| state_code | string |
| state_abbr | string |
| county_code | string |
| county_name | string |
| commodity_code | string |
| commodity_name | string |
| insurance_plan_code | string |
| insurance_plan_name | string |
| coverage_category | string |
| stage_code | string |
| cause_of_loss_code | string |
| cause_of_loss_desc | string |
| month_of_loss_status | string |
| month_of_loss | int32 |
| month_of_loss_name | string |
| year_of_loss_status | string |
| year_of_loss | int32 |
| policies_earning_premium | int64 |
| policies_indemnified | int64 |
| net_planted_quantity | decimal128(30, 10) |
| net_endorsed_acres | decimal128(30, 10) |
| liability | decimal128(30, 10) |
| total_premium | decimal128(30, 10) |
| producer_paid_premium | decimal128(30, 10) |
| subsidy | decimal128(30, 10) |
| state_private_subsidy | decimal128(30, 10) |
| additional_subsidy | decimal128(30, 10) |
| efa_premium_discount | decimal128(30, 10) |
| net_determined_quantity | decimal128(30, 10) |
| indemnity_amount | decimal128(30, 10) |
| loss_ratio | decimal128(30, 10) |
| county_fips | string |
| source_file | string |
| source_row | int64 |
| raw_commodity_year | string |
| raw_state_code | string |
| raw_state_abbr | string |
| raw_county_code | string |
| raw_county_name | string |
| raw_commodity_code | string |
| raw_commodity_name | string |
| raw_insurance_plan_code | string |
| raw_insurance_plan_name | string |
| raw_coverage_category | string |
| raw_stage_code | string |
| raw_cause_of_loss_code | string |
| raw_cause_of_loss_desc | string |
| raw_month_of_loss | string |
| raw_month_of_loss_name | string |
| raw_year_of_loss | string |
| raw_policies_earning_premium | string |
| raw_policies_indemnified | string |
| raw_net_planted_quantity | string |
| raw_net_endorsed_acres | string |
| raw_liability | string |
| raw_total_premium | string |
| raw_producer_paid_premium | string |
| raw_subsidy | string |
| raw_state_private_subsidy | string |
| raw_additional_subsidy | string |
| raw_efa_premium_discount | string |
| raw_net_determined_quantity | string |
| raw_indemnity_amount | string |
| raw_loss_ratio | string |
Inspect the public CSV
import pandas as pd
df = pd.read_csv(
"https://huggingface.co/datasets/claritystorm/usda-crop-insurance-indemnities-weather/resolve/main/sample_1000.csv"
)
print(df.shape)
print(df.columns.tolist())
print(df.head())This CSV is a sample, not the full package. It does not establish complete historical coverage or represent every field’s missingness. License details are on the Hugging Face card.
Source: government source portal · Dataset changelog