One-time snapshot
FEMA NFIP Flood Insurance Claims 1978–September 2026
2,725,989 redacted NFIP claims records with all 84 agency fields preserved, exact decimal payments, separate rated/current flood zones and explicit payment-completeness diagnostics.
Records: 2,725,989 redacted claims records
Coverage: Loss dates 1978-01-01 through 2026-09-07; source as of 2026-09-08
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
- This product uses the Federal Emergency Management Agency’s OpenFEMA API, but is not endorsed by FEMA. The Federal Government or FEMA cannot vouch for the data or analyses derived from these data after the data have been retrieved from the Agency's website(s).
- OpenFEMA restricts use to statistical research or reporting. Do not attempt to reidentify individuals or use the data for determinations affecting individual rights or benefit eligibility.
- Dated NFIP v3 snapshot retrieved September 19, 2026, with source asOfDate September 8. Loss dates end September 7, 2026; the latest year is partial and claims may be revised. Future updates are not included.
- Rows are redacted claims transactions, not unique policies, insured properties, households or flood events. The id is unique within this release; stability across revisions is not guaranteed. No policy/exposure denominator is provided.
- Breaking schema repair: 84 native camelCase agency fields plus total_paid_nominal, payment_status and coordinate_status replace the former reduced snake_case table. Source fields, nulls and empty strings are preserved. The former ZIP risk score and simplified flood-zone categories are removed.
- total_paid_nominal requires all three gross payment components. There are 2,117,326 positive totals, 41,505 zero, 86 negative and 567,072 missing_component totals. Missing components are not zero. Net-payment and recovery fields are separate; amounts are nominal USD and sums of complete totals omit incomplete records.
- County codes are missing in 62,433 rows. 55,827 ZIPs are empty and 303 nonempty ZIPs have irregular shapes. One state is empty and 16,441 use the source code UN. Every reportedCity is Currently Unavailable. No geography is inferred or padded.
- 41,493 coordinate pairs are missing. All other pairs pass numeric bounds only. FEMA rounds coordinates to one decimal place for privacy, which may place them in another state/county. These are not property-level geocodes; use supplied state/county fields for aggregation.
- ratedFloodZone is missing in 139,030 rows and floodZoneCurrent in 1,949,806. The fields describe different concepts. Zone X alone does not identify shaded versus unshaded areas. Counts and payments do not establish flood probability or an exposure-adjusted risk rate.
- All original fields reconcile to both official bulk formats and the persisted output; annual financial totals pass an independent CSV/Decimal comparison. Agency accuracy and historical completeness are not independently certified. The 1,000-row sample covers all 49 loss years but is not statistically representative.
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.
fema_flood_insurance_claims.parquet — 2,725,989 rows · 87 fields
| Field | Type |
|---|---|
| agricultureStructureIndicator | bool |
| asOfDate | timestamp[us, tz=UTC] |
| basementEnclosureCrawlspaceType | int16 |
| policyCount | int16 |
| crsClassCode | int16 |
| dateOfLoss | date32[day] |
| elevatedBuildingIndicator | bool |
| elevationCertificateIndicator | string |
| elevationDifference | int32 |
| baseFloodElevation | decimal128(6, 1) |
| ratedFloodZone | string |
| houseWorship | bool |
| locationOfContents | int16 |
| lowestAdjacentGrade | decimal128(6, 1) |
| lowestFloorElevation | decimal128(6, 1) |
| numberOfFloorsInTheInsuredBuilding | int16 |
| nonProfitIndicator | bool |
| obstructionType | int16 |
| occupancyType | int16 |
| originalConstructionDate | date32[day] |
| originalNBDate | date32[day] |
| amountPaidOnBuildingClaim | decimal128(12, 2) |
| amountPaidOnContentsClaim | decimal128(12, 2) |
| amountPaidOnIncreasedCostOfComplianceClaim | decimal128(12, 2) |
| postFIRMConstructionIndicator | bool |
| rateMethod | string |
| smallBusinessIndicatorBuilding | bool |
| totalBuildingInsuranceCoverage | int32 |
| totalContentsInsuranceCoverage | int32 |
| yearOfLoss | int16 |
| primaryResidenceIndicator | bool |
| buildingDamageAmount | int32 |
| buildingDeductibleCode | string |
| netBuildingPaymentAmount | decimal128(12, 2) |
| buildingPropertyValue | int32 |
| causeOfDamage | string |
| condominiumCoverageTypeCode | string |
| contentsDamageAmount | int32 |
| contentsDeductibleCode | string |
| netContentsPaymentAmount | decimal128(12, 2) |
| contentsPropertyValue | int32 |
| disasterAssistanceCoverageRequired | int16 |
| eventDesignationNumber | string |
| ficoNumber | int16 |
| floodCharacteristicsIndicator | int16 |
| floodWaterDuration | int16 |
| floodproofedIndicator | bool |
| floodEvent | string |
| iccCoverage | int32 |
| netIccPaymentAmount | decimal128(8, 2) |
| nfipRatedCommunityNumber | string |
| nfipCommunityNumberCurrent | string |
| nfipCommunityName | string |
| nonPaymentReasonContents | string |
| nonPaymentReasonBuilding | string |
| numberOfUnits | int32 |
| buildingReplacementCost | int64 |
| contentsReplacementCost | int32 |
| replacementCostBasis | string |
| stateOwnedIndicator | bool |
| waterDepth | int16 |
| floodZoneCurrent | string |
| buildingDescriptionCode | int16 |
| rentalPropertyIndicator | bool |
| state | string |
| reportedCity | string |
| reportedZipCode | string |
| countyCode | string |
| censusGeoid | string |
| latitude | decimal128(9, 1) |
| longitude | decimal128(9, 1) |
| foundationType | string |
| openDate | date32[day] |
| mostRecentRecoveryDate | date32[day] |
| exteriorWaterDepth | int32 |
| interiorWaterDepth | int32 |
| mostRecentPaymentDate | date32[day] |
| preFirmIndicator | bool |
| totalSalvageRecovery | decimal128(12, 2) |
| totalBldgClaimPmtRecovery | decimal128(12, 2) |
| totalContentsClaimPmtRecovery | decimal128(12, 2) |
| totalIccClaimPmtRecovery | decimal128(12, 2) |
| totalSubrogationRecovery | decimal128(12, 2) |
| id | int64 |
| total_paid_nominal | decimal128(20, 2) |
| payment_status | string |
| coordinate_status | string |
Inspect the public CSV
import pandas as pd
df = pd.read_csv(
"https://huggingface.co/datasets/claritystorm/fema-nfip-flood-insurance-claims/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