latitude, longitude
When Ping.Extraction fetches this data on your behalf, the Ping JSON format
makes these payloads available under the
external_data[PH2] key of each building.Location
Geospatial and address information for this result, used for further data lookups. If thegeocode.match_level and confidence are too low/imprecise, certain data fields won’t be available.
| Data Element | Description |
|---|---|
| address | Postal address components. object |
| address.formatted | Single-line formatted address. text e.g. 123 Main St, Miami, FL 33101 |
| address.line_1 | First address line (street number and street name). text |
| address.line_2 | Second address line (unit, suite, or apartment). text |
| address.city | City or locality name. text |
| address.county | County name. text |
| address.state | Two-letter U.S. state code. text |
| address.postal_code | Postal (ZIP) code. text |
| address.country | Two-letter ISO country code. text |
| geocode | Resolved coordinates and geocode quality indicators. object |
| geocode.latitude | Location latitude in WGS84 decimal degrees. number e.g. 25.7743 |
| geocode.longitude | Location longitude in WGS84 decimal degrees. number e.g. -80.1937 |
| geocode.match_level | Match-quality tier for this geocode. text e.g. point Valuespoint: Matched to a specific rooftop/parcel-point location.street_imputed: Matched by interpolating position along a street segment’s address range. route: Matched to a street/route without a specific address-range interpolation. postal_code: Matched to a postal code (ZIP) centroid. city: Matched to a city/place centroid. county: Matched to a county centroid. country_subdivision_name: Matched to a state/province centroid. country: Matched to a country centroid. |
| confidence | Geocode confidence, 0.0-1.0. Higher means higher confidence in the match. number e.g. 0.98 Values: 0.0-1.0 |
| result | ’success’ when this section populated, otherwise why it is absent. text e.g. success Valuessuccess: The section populated normally.no_data: The source has no record for this location. |
Site
Information about the immediate surroundings of the property location, such as elevation, distance to coast, population density, and county identity. Source: Google Elevation; EASI (population density); U.S. Census Bureau (county FIPS code).| Data Element | Description |
|---|---|
| elevation_feet | Ground elevation above sea level, in feet. number e.g. 12.3 Note: Opt-in: returned only when requested via include_fields. |
| distance_to_coast_miles | Measured distance to the nearest oceanic shoreline, in miles. Gauges exposure to tropical cyclone impacts. number e.g. 0.91 Note: Only available in the coastal impact states: the Gulf and Atlantic seaboard states from Texas to Maine, plus Hawaii, Puerto Rico, the U.S. Virgin Islands, and Guam. Absent everywhere else, including the Pacific-coast states and Alaska. |
| coast_nearest_point | Coordinates of the nearest point on the oceanic shoreline. object Note: Only available in the coastal impact states: the Gulf and Atlantic seaboard states from Texas to Maine, plus Hawaii, Puerto Rico, the U.S. Virgin Islands, and Guam. Absent everywhere else, including the Pacific-coast states and Alaska. |
| coast_nearest_point.latitude | Latitude in WGS84 decimal degrees. number |
| coast_nearest_point.longitude | Longitude in WGS84 decimal degrees. number |
| population_per_sqmi | Population density of the area, in persons per square mile. number e.g. 4820.0 |
| fips_code | U.S. Census Bureau 5-digit state+county FIPS code for the location. text e.g. 12086 |
| result | ’success’ or ‘partial_data’ when this section populated, otherwise why it is absent. ‘insufficient_precision’ can also mark a present section missing some fields. text e.g. success Valuessuccess: The section populated normally.partial_data: The section has real data, but at least one of its underlying sources failed to fetch (as opposed to a plain success, where any null fields are null because there’s genuinely nothing there for this location).no_data: The source has no record for this location. fetch_failed: The underlying source errored or timed out. not_available: The source was not consulted (not licensed or not requested). insufficient_precision: The geocode is not precise enough to trust some or all of this section’s data (e.g. a city-level match cannot support a point-level result). If the section is still present, the fields that need a more precise geocode are omitted. |
Property
Physical building attributes. Source: US Tax Record Data| Data Element | Description |
|---|---|
| owner_name | Primary owner name of record. text e.g. Acme Holdings LLC |
| year_built | Year the primary building was originally constructed. year e.g. 1998 |
| year_updated | Year of the most recent major renovation or update. year e.g. 2015 |
| occupancy_code | Building use/occupancy classification using the Ping COPE taxonomy. See https://taxonomy.pingintel.com/?taxonomy=Occupancy for valid codes and names. text e.g. O2.2.1.2 |
| occupancy_desc | Human-readable name for occupancy_code. text e.g. Single-family detached dwellings |
| occupancy_confidence | Confidence backing occupancy_code, 0.0-1.0. number e.g. 0.7 Note: Estimate of the reliability of this code, based on analysis of the reliability of the underlying data. Values: 0.0-1.0 |
| construction_group | Coarse construction type. text e.g. MAS ValuesWF: Wood FrameMAS: Masonry SF: Steel Frame LM: Light Metal RC: Reinforced Concrete POD: Podium TU: Tilt-up MOB: Mobile Homes and Portables NON: Non-Building UNK: Unknown |
| material_code | Construction material classification using the Ping COPE taxonomy. See https://taxonomy.pingintel.com/?taxonomy=Material+composition for valid codes and names. text e.g. C3 |
| material_desc | Human-readable name for material_code. text e.g. Masonry |
| material_confidence | Confidence backing material_code, 0.0-1.0. number e.g. 0.74 Note: Estimate of the reliability of this code, based on analysis of the reliability of the underlying data. Many construction descriptions describe surface/cladding rather than structural frame (e.g. brick veneer over wood framing), so a moderate or low value is common. Values: 0.0-1.0 |
| risk_type_code | Risk-type classification using the Ping COPE taxonomy — what kind of physical structure this is (e.g. enclosed structure, bridge, tank, vehicle). See https://taxonomy.pingintel.com/?taxonomy=Risk+type for valid codes and names. text e.g. R2 |
| risk_type_desc | Human-readable name for risk_type_code. text e.g. Enclosed Structures |
| num_stories | Number of above-grade stories. number e.g. 3 |
| num_stories_below_grade | Number of below-grade stories. number e.g. 0 |
| num_buildings | Number of buildings on the parcel. number e.g. 1 |
| building_area_sqft | Total building floor area, in square feet. number e.g. 24000 |
| lot_size_sqft | Parcel/lot area, in square feet. number e.g. 43560 |
| has_basement | Whether the building has a basement. boolean e.g. false Values: True, False |
| roof | Roof characteristics. object |
| roof.covering_desc | Roof covering material, from the Ping roof taxonomy. text e.g. Composition (Fiberglass, Asphalt, etc) ValuesAluminium, Asbestos shakes, Built Up, Composition (Fiberglass, Asphalt, etc), Concrete, Concrete/Clay Tiles, Copper, Felt, Fiberglass, Foam, Hurricane Rated Covering, Metal, Metal Roof Standing Seams, Metal w/ Concealed Fasteners, Metal w/ Exposed Fasteners, Plastic, Plywood, Reinforced concrete, Rubber, Shingles, Shingles (> 110 mph), Shingles (> 110 mph) w/ SWR, Shingles (55 mph), Shingles (55 mph) w/ SWR, Shingles w/ SWR, Single Ply, Single Ply Ballasted, Slate, Steel, Thatch, Tin, TPO, Unknown/Default, Wood, Zinc |
| roof.covering_confidence | Confidence backing covering_desc, 0.0-1.0. number e.g. 0.6 Note: Estimate of the reliability of this code, based on analysis of the reliability of the underlying data. Values: 0.0-1.0 |
| roof.shape_desc | Roof shape/geometry, from the Ping roof taxonomy. text e.g. Hip ValuesUnknown/Default, Complex Mixed, Dome Curved, Flat w/ Parapets, Flat w/ Unknown Parapets, Flat without Parapets, Gable (Braced Unknown), Gable Braced, Gable Unbraced, Gambrel, Hip, Mansard, Pitch (exact angle unknown), Pyramid, Shed-Monoslope, Stepped, Butterfly, Saltbox |
| roof.shape_confidence | Confidence backing shape_desc, 0.0-1.0. number e.g. 0.57 Note: Statistical, not a per-property score: the share of real classification outcomes for properties sharing this reported roof type that actually agreed with shape_desc, from a prior analysis of production data. Values: 0.0-1.0 |
| result | ’success’ when this section populated, otherwise why it is absent. text e.g. success Valuessuccess: The section populated normally.no_data: The source has no record for this location. fetch_failed: The underlying source errored or timed out. not_available: The source was not consulted (not licensed or not requested). |
Perils
Hazard measurements use the form appropriate to each peril: normalized scores where available, FEMA flood-zone categories, USDA wildfire burn probability, and area-normalized tornado/hail event density. Normalized scores are calibrated within their own peril and are not comparable across perils. Source: FEMA National Risk Index; FEMA NFHL; NOAA SLOSH; USDA/USFS wildfire; AAIS; EASI crime; Florida sinkhole dataset; Ping county lookups.| Data Element | Description |
|---|---|
| result | Always success — this section is always present; the sections nested under it may not be. text e.g. success Valuessuccess: The section populated normally. |
Flood
Flood perils: FEMA flood zone, inland (riverine) flood, coastal flood, and watershed (HUC12). Source: FEMA National Flood Hazard Layer (flood zone); FEMA National Risk Index (riverine, coastal); USGS Watershed Boundary Dataset (HUC12).| Data Element | Description |
|---|---|
| fema_zone | FEMA flood zone designation and subtype. object |
| fema_zone.zone | FEMA flood zone designation. text e.g. AE ValuesA: SFHA with no detailed hydraulic study — no Base Flood Elevation (BFE) shown.AE: SFHA with a detailed hydraulic study — BFE shown. Used in place of the older numbered A1-A30 designation on newer maps. A1–A30: SFHA with a detailed hydraulic study and numbered BFE contour — the older-map equivalent of Zone AE. AO: SFHA subject to shallow sheet-flow flooding, 1-3 feet deep; average flood depth shown instead of a BFE. AR: SFHA behind a flood-control system (levee/dam) that was previously accredited and is being restored to base-flood protection. A99: SFHA behind a federal flood-control system under construction that has reached sufficient statutory progress to be treated as complete for insurance rating; no BFE shown. V: Coastal SFHA subject to storm-induced wave action in addition to flooding — no BFE shown. VE: Coastal SFHA subject to storm-induced wave action — BFE shown. Used in place of the older numbered V1-V30 designation on newer maps. V1–V30: Coastal SFHA with wave action and a numbered BFE contour — the older-map equivalent of Zone VE. B: Area of moderate flood hazard (between the 100-year and 500-year flood limits) on older maps — superseded by Zone X (shaded) on modern FIRMs. C: Area of minimal flood hazard (above the 500-year flood level) on older maps — superseded by Zone X (unshaded) on modern FIRMs. D: Area where flood risk has not been determined; no flood hazard analysis has been done. X: Area of moderate-to-minimal flood hazard, outside the SFHA — the modern-map replacement for both Zone B (moderate) and Zone C (minimal). |
| fema_zone.subtype | Sub-designation describing features within the primary FEMA flood zone. text e.g. FLOODWAY |
| fema_zone.risk_category | Flood-risk category derived from the FEMA zone and subtype. text e.g. SFHA ValuesSFHA: FEMA Zone A family Special Flood Hazard Area.Coastal High Risk: FEMA Zone V family coastal high-hazard area. Moderate: FEMA shaded Zone X / X500 or legacy Zone B. Low: FEMA unshaded Zone X or legacy Zone C. None: The FEMA lookup completed successfully but found no containing flood-zone polygon. |
| riverine | Inland (riverine) flood exposure. object Note: Census-tract level: one rating covers the whole tract, not this specific point. |
| riverine.risk_score | Normalized 0-100 exposure score for this peril, based on the FEMA National Risk Index annualized building loss rate. Higher means greater expected annual loss. number e.g. 96.2 Note: Per-peril-relative: reflects this peril’s own loss-rate distribution and is not comparable across perils. A hurricane 50 and a wildfire 50 are not the same expected loss — compare a score only against the same peril at other locations, never across perils. Values: 0-100 |
| riverine.risk_level | Exposure band for risk_score. text e.g. Very High ValuesNo Exposure: Score is exactly 0.Negligible: Score greater than 0 and less than 0.01. Low: Score from 0.01 to less than 5. Moderate: Score from 5 to less than 20. Elevated: Score from 20 to less than 50. High: Score from 50 to less than 80. Very High: Score from 80 to less than 100. Maximum: Score is exactly 100. |
| coastal | Coastal flood exposure. object Note: Census-tract level: one rating covers the whole tract, not this specific point. |
| coastal.risk_score | Normalized 0-100 exposure score for this peril, based on the FEMA National Risk Index annualized building loss rate. Higher means greater expected annual loss. number e.g. 96.2 Note: Per-peril-relative: reflects this peril’s own loss-rate distribution and is not comparable across perils. A hurricane 50 and a wildfire 50 are not the same expected loss — compare a score only against the same peril at other locations, never across perils. Values: 0-100 |
| coastal.risk_level | Exposure band for risk_score. text e.g. Very High ValuesNo Exposure: Score is exactly 0.Negligible: Score greater than 0 and less than 0.01. Low: Score from 0.01 to less than 5. Moderate: Score from 5 to less than 20. Elevated: Score from 20 to less than 50. High: Score from 50 to less than 80. Very High: Score from 80 to less than 100. Maximum: Score is exactly 100. |
| huc12 | USGS 12-digit Hydrologic Unit Code (HUC12) identifying the watershed (sub-watershed) containing the location. text e.g. 030902030805 |
| nearest_flood_zone | Details of the nearest Special Flood Hazard Zone (SFHA). object |
| nearest_flood_zone.distance_to_sfha_miles | Straight-line distance to the nearest Special Flood Hazard Zone (SFHA), in miles. number e.g. 0.74 |
| nearest_flood_zone.distance_to_sfha_feet | Straight-line distance to the nearest Special Flood Hazard Zone (SFHA), in feet. number e.g. 3907.2 |
| nearest_flood_zone.sfha_closest_point_longitude | Special Flood Hazard Zone (SFHA) longitude in WGS84 decimal degrees. number |
| nearest_flood_zone.sfha_closest_point_latitude | Special Flood Hazard Zone (SFHA) latitude in WGS84 decimal degrees. number |
| nearest_flood_zone.nearest_sfha_zone | FEMA flood zone designation of the nearest Special Flood Hazard Area (SFHA). text ValuesA, AE, AH, AO, AR, A99, V, VE |
| result | ’success’ or ‘partial_data’ when this section populated, otherwise why it is absent. ‘insufficient_precision’ can also mark a present section missing some fields. text e.g. success Valuessuccess: The section populated normally.partial_data: The section has real data, but at least one of its underlying sources failed to fetch (as opposed to a plain success, where any null fields are null because there’s genuinely nothing there for this location).no_data: The source has no record for this location. fetch_failed: The underlying source errored or timed out. not_available: The source was not consulted (not licensed or not requested). insufficient_precision: The geocode is not precise enough to trust some or all of this section’s data (e.g. a city-level match cannot support a point-level result). If the section is still present, the fields that need a more precise geocode are omitted. |
Hurricane
Hurricane exposure, county wind tier (Ping and AIG standard), and storm surge. Source: FEMA National Risk Index; NOAA SLOSH (storm surge); Ping county lookup (wind tier, AIG wind tier).| Data Element | Description |
|---|---|
| risk_score | Normalized 0-100 exposure score for this peril, based on the FEMA National Risk Index annualized building loss rate. Higher means greater expected annual loss. number e.g. 96.2 Note: Per-peril-relative: reflects this peril’s own loss-rate distribution and is not comparable across perils. A hurricane 50 and a wildfire 50 are not the same expected loss — compare a score only against the same peril at other locations, never across perils. Values: 0-100 |
| risk_level | Exposure band for risk_score. text e.g. Very High ValuesNo Exposure: Score is exactly 0.Negligible: Score greater than 0 and less than 0.01. Low: Score from 0.01 to less than 5. Moderate: Score from 5 to less than 20. Elevated: Score from 20 to less than 50. High: Score from 50 to less than 80. Very High: Score from 80 to less than 100. Maximum: Score is exactly 100. |
| wind_tier | Ping’s hurricane wind-exposure tier for the property’s county. text e.g. Tier 1 ValuesTier 1: County borders the coastline (Florida and Hawaii are Tier 1 statewide).Tier 2: County borders a Tier 1 county. |
| aig_wind_tier | Hurricane wind-exposure tier for the property’s county, per the AIG wind tier standard. text e.g. Tier 1 Note: Computed independently of wind_tier and will not always agree for the same county. wind_tier is a coastal-adjacency rule (Tier 1 touches the coast, Tier 2 touches a Tier 1 county); aig_wind_tier is a fixed list of Tier 1 counties/states (plus Puerto Rico and the U.S. Virgin Islands) with no Tier 2 — every other location is untiered. ValuesTier 1: County (or state/territory) is on AIG’s Tier 1 hurricane-exposed list. |
| storm_surge | NOAA SLOSH modeled storm surge. object |
| storm_surge.category | Lowest hurricane category (1-5) whose storm surge inundates the location. number e.g. 3 Values: 1-5 |
| storm_surge.height_feet | Storm surge height for the inundating category, in feet. number e.g. 9.0 |
| result | ’success’ or ‘partial_data’ when this section populated, otherwise why it is absent. ‘insufficient_precision’ can also mark a present section missing some fields. text e.g. success Valuessuccess: The section populated normally.partial_data: The section has real data, but at least one of its underlying sources failed to fetch (as opposed to a plain success, where any null fields are null because there’s genuinely nothing there for this location).no_data: The source has no record for this location. fetch_failed: The underlying source errored or timed out. not_available: The source was not consulted (not licensed or not requested). insufficient_precision: The geocode is not precise enough to trust some or all of this section’s data (e.g. a city-level match cannot support a point-level result). If the section is still present, the fields that need a more precise geocode are omitted. |
Severe Convective Storm
Severe convective storm perils: tornado, hail, and lightning. Source: FEMA National Risk Index (tract event frequency and area; lightning risk score).| Data Element | Description |
|---|---|
| tornado | Area-normalized tornado event density and fixed-threshold category. object |
| tornado.event_density | Annualized event frequency per square kilometre of census-tract area. number e.g. 0.00031 |
| tornado.risk_category | Exposure category assigned from fixed peril-specific event-density thresholds. text e.g. High ValuesNegligible, Low, Moderate, High, Extreme |
| hail | Area-normalized hail event density and fixed-threshold category. object |
| hail.event_density | Annualized event frequency per square kilometre of census-tract area. number e.g. 0.00031 |
| hail.risk_category | Exposure category assigned from fixed peril-specific event-density thresholds. text e.g. High ValuesNegligible, Low, Moderate, High, Extreme |
| lightning | Lightning exposure. object |
| lightning.risk_score | Normalized 0-100 exposure score for this peril, based on the FEMA National Risk Index annualized building loss rate. Higher means greater expected annual loss. number e.g. 96.2 Note: Per-peril-relative: reflects this peril’s own loss-rate distribution and is not comparable across perils. A hurricane 50 and a wildfire 50 are not the same expected loss — compare a score only against the same peril at other locations, never across perils. Values: 0-100 |
| lightning.risk_level | Exposure band for risk_score. text e.g. Very High ValuesNo Exposure: Score is exactly 0.Negligible: Score greater than 0 and less than 0.01. Low: Score from 0.01 to less than 5. Moderate: Score from 5 to less than 20. Elevated: Score from 20 to less than 50. High: Score from 50 to less than 80. Very High: Score from 80 to less than 100. Maximum: Score is exactly 100. |
| result | ’success’ when this section populated, otherwise why it is absent. ‘insufficient_precision’ can also mark a present section missing some fields. text e.g. success Valuessuccess: The section populated normally.no_data: The source has no record for this location. fetch_failed: The underlying source errored or timed out. not_available: The source was not consulted (not licensed or not requested). insufficient_precision: The geocode is not precise enough to trust some or all of this section’s data (e.g. a city-level match cannot support a point-level result). If the section is still present, the fields that need a more precise geocode are omitted. |
Earthquake
Earthquake exposure, seismic zone/subzone, and tsunami. Source: FEMA National Risk Index; Ping county lookup (seismic zone/subzone).| Data Element | Description |
|---|---|
| risk_score | Normalized 0-100 exposure score for this peril, based on the FEMA National Risk Index annualized building loss rate. Higher means greater expected annual loss. number e.g. 20.0 Note: Per-peril-relative: reflects this peril’s own loss-rate distribution and is not comparable across perils. A hurricane 50 and a wildfire 50 are not the same expected loss — compare a score only against the same peril at other locations, never across perils. Values: 0-100 |
| risk_level | Exposure band for risk_score. text e.g. Elevated ValuesNo Exposure: Score is exactly 0.Negligible: Score greater than 0 and less than 0.01. Low: Score from 0.01 to less than 5. Moderate: Score from 5 to less than 20. Elevated: Score from 20 to less than 50. High: Score from 50 to less than 80. Very High: Score from 80 to less than 100. Maximum: Score is exactly 100. |
| zone | Broad seismic zone the location falls in, if any. text e.g. CA ValuesCA: California statewide seismic zone.PacNW: Pacific Northwest seismic zone (Oregon, Washington). New Madrid: New Madrid Seismic Zone (Arkansas, Illinois, Indiana, Kentucky, Missouri, Mississippi, Tennessee). AK: Alaska statewide seismic zone. HI: Hawaii statewide seismic zone. PR: Puerto Rico seismic zone. |
| subzone | Finer subdivision of California counties within zone ‘CA’, grouping counties by earthquake exposure. Not assigned for any other zone. text e.g. B3 ValuesA1, A2, A3, B1, B2, B3, C, D, E, F, G, H |
| tsunami | Tsunami exposure. object |
| tsunami.risk_score | Normalized 0-100 exposure score for this peril, based on the FEMA National Risk Index annualized building loss rate. Higher means greater expected annual loss. number e.g. 96.2 Note: Per-peril-relative: reflects this peril’s own loss-rate distribution and is not comparable across perils. A hurricane 50 and a wildfire 50 are not the same expected loss — compare a score only against the same peril at other locations, never across perils. Values: 0-100 |
| tsunami.risk_level | Exposure band for risk_score. text e.g. Very High ValuesNo Exposure: Score is exactly 0.Negligible: Score greater than 0 and less than 0.01. Low: Score from 0.01 to less than 5. Moderate: Score from 5 to less than 20. Elevated: Score from 20 to less than 50. High: Score from 50 to less than 80. Very High: Score from 80 to less than 100. Maximum: Score is exactly 100. |
| result | ’success’ or ‘partial_data’ when this section populated, otherwise why it is absent. ‘insufficient_precision’ can also mark a present section missing some fields. text e.g. success Valuessuccess: The section populated normally.partial_data: The section has real data, but at least one of its underlying sources failed to fetch (as opposed to a plain success, where any null fields are null because there’s genuinely nothing there for this location).no_data: The source has no record for this location. fetch_failed: The underlying source errored or timed out. not_available: The source was not consulted (not licensed or not requested). insufficient_precision: The geocode is not precise enough to trust some or all of this section’s data (e.g. a city-level match cannot support a point-level result). If the section is still present, the fields that need a more precise geocode are omitted. |
Fire
Wildfire exposure and structure-fire protection. Source: USDA/USFS; AAIS; Ping distance datasets.| Data Element | Description |
|---|---|
| wildfire | Wildfire exposure and burn probability. object |
| wildfire.burn_probability | Annual probability of a wildfire burning the location, 0.0-1.0. percentage e.g. 0.008 Values: 0.0-1.0 |
| wildfire.risk_category | Wildfire exposure category derived from annual burn probability. text e.g. High ValuesLow: Annual burn probability below 0.0008.Medium: Annual burn probability from 0.0008 to below 0.0030. High: Annual burn probability from 0.0030 to below 0.0120. Very High: Annual burn probability of 0.0120 or greater. |
| wildfire.risk_category_numeric | Ordinal wildfire exposure category, from 1 (Low) through 4 (Very High). number e.g. 3 Values1, 2, 3, 4 |
| protection | Structure-fire suppression capability. object |
| protection.fire_protection_class | Ping Fire Protection Class, 1-10. Lower values indicate better fire protection. number e.g. 4 Values: 1-10 |
| protection.aais_classification | Fire-protection classification AAIS code, computed from distance to the nearest fire station and water source. text e.g. P2 ValuesP1: Fire station within 1 mile and water source within 1,000 ft.P2: Fire station within 2 miles and water source within 1,000 ft. P3: Fire station within 3 miles and water source within 1,000 ft. P4: Fire station within 4 miles and water source within 1,000 ft. P5: Fire station within 5 miles and water source within 1,000 ft. PP1: Fire station within 1 mile; water source beyond 1,000 ft (or none). PP2: Fire station within 2 miles; water source beyond 1,000 ft (or none). PP3: Fire station within 3 miles; water source beyond 1,000 ft (or none). PP4: Fire station within 4 miles; water source beyond 1,000 ft (or none). PP5: Fire station within 5 miles; water source beyond 1,000 ft (or none). U6: Fire station within 6 miles (no qualifying water source proximity). U7: Fire station within 7 miles. U8: Fire station within 8 miles. U9: Fire station within 9 miles. U10: Fire station within 10 miles. U15: Fire station within 15 miles. U20: Fire station within 20 miles. U25: Fire station within 25 miles. U30: Fire station within 30 miles. U35: Fire station within 35 miles. U40: Fire station within 40 miles. U45: Fire station within 45 miles. U45+: Fire station more than 45 miles away. |
| protection.distance_to_fire_station_feet | Distance to the nearest fire station, in feet. number e.g. 3200 |
| protection.nearest_fire_station | Details of the nearest fire station. object |
| protection.nearest_fire_station.name | Fire station name. text e.g. Station 12 |
| protection.nearest_fire_station.address | Fire station street address. text |
| protection.nearest_fire_station.latitude | Fire station latitude in WGS84 decimal degrees. number |
| protection.nearest_fire_station.longitude | Fire station longitude in WGS84 decimal degrees. number |
| protection.nearest_fire_station.is_volunteer | Whether the station is staffed by volunteers. boolean e.g. false Values: True, False |
| protection.distance_to_fire_hydrant_feet | Distance to the nearest fire hydrant, in feet. number e.g. 250 |
| result | ’success’ or ‘partial_data’ when this section populated, otherwise why it is absent. ‘insufficient_precision’ can also mark a present section missing some fields. text e.g. success Valuessuccess: The section populated normally.partial_data: The section has real data, but at least one of its underlying sources failed to fetch (as opposed to a plain success, where any null fields are null because there’s genuinely nothing there for this location).no_data: The source has no record for this location. fetch_failed: The underlying source errored or timed out. not_available: The source was not consulted (not licensed or not requested). insufficient_precision: The geocode is not precise enough to trust some or all of this section’s data (e.g. a city-level match cannot support a point-level result). If the section is still present, the fields that need a more precise geocode are omitted. |
Sinkhole
Nearest recorded sinkhole. Present for Florida only; omitted elsewhere. Source: Florida state sinkhole dataset.| Data Element | Description |
|---|---|
| distance_to_nearest_feet | Distance to the nearest recorded sinkhole, in feet. number e.g. 18500 |
| nearest | Details of the nearest recorded sinkhole. object |
| nearest.latitude | Nearest sinkhole latitude in WGS84 decimal degrees. number |
| nearest.longitude | Nearest sinkhole longitude in WGS84 decimal degrees. number |
| nearest.event_date | Recorded date of the nearest sinkhole event. date e.g. 2013-03-01 |
| result | ’success’ when this section populated, otherwise why it is absent. ‘insufficient_precision’ can also mark a present section missing some fields. text e.g. no_regional_exposure Valuessuccess: The section populated normally.no_regional_exposure: The peril does not apply to this region (e.g. sinkhole outside FL). no_data: The source has no record for this location. fetch_failed: The underlying source errored or timed out. insufficient_precision: The geocode is not precise enough to trust some or all of this section’s data (e.g. a city-level match cannot support a point-level result). If the section is still present, the fields that need a more precise geocode are omitted. |
Crime
Overall and per-crime exposure. Source: EASI crime.| Data Element | Description |
|---|---|
| risk_score | Approximate national percentile (0-100) of crime exposure. Higher means more crime. number e.g. 41.0 Note: Like every peril, this score is per-peril-relative and not comparable across perils — compare only within crime, across locations. Values: 0-100 |
| risk_level | Exposure band for the overall crime risk_score. text e.g. Elevated ValuesLow: Score from 0 to less than 20.Moderate: Score from 20 to less than 40. Elevated: Score from 40 to less than 60. High: Score from 60 to less than 80. Very High: Score from 80 to 100. |
| grade | EASI A-F overall crime grade for the area. text e.g. B Values: A-F |
| murder | Murder/homicide crime exposure. object |
| murder.risk_score | Approximate national percentile (0-100) of crime exposure. Higher means more crime. number e.g. 41.0 Note: Like every peril, this score is per-peril-relative and not comparable across perils — compare only within crime, across locations. Values: 0-100 |
| murder.risk_level | Exposure band for the crime risk_score. text e.g. Elevated ValuesLow: Score from 0 to less than 20.Moderate: Score from 20 to less than 40. Elevated: Score from 40 to less than 60. High: Score from 60 to less than 80. Very High: Score from 80 to 100. |
| murder.grade | EASI A-F crime grade for the area. text e.g. B Note: grade (EASI percentile cutoffs) and risk_level (quintile of the score) are computed independently and will not always agree one-to-one. Values: A-F |
| rape | Rape/sexual assault crime exposure. object |
| rape.risk_score | Approximate national percentile (0-100) of crime exposure. Higher means more crime. number e.g. 41.0 Note: Like every peril, this score is per-peril-relative and not comparable across perils — compare only within crime, across locations. Values: 0-100 |
| rape.risk_level | Exposure band for the crime risk_score. text e.g. Elevated ValuesLow: Score from 0 to less than 20.Moderate: Score from 20 to less than 40. Elevated: Score from 40 to less than 60. High: Score from 60 to less than 80. Very High: Score from 80 to 100. |
| rape.grade | EASI A-F crime grade for the area. text e.g. B Note: grade (EASI percentile cutoffs) and risk_level (quintile of the score) are computed independently and will not always agree one-to-one. Values: A-F |
| robbery | Robbery crime exposure. object |
| robbery.risk_score | Approximate national percentile (0-100) of crime exposure. Higher means more crime. number e.g. 41.0 Note: Like every peril, this score is per-peril-relative and not comparable across perils — compare only within crime, across locations. Values: 0-100 |
| robbery.risk_level | Exposure band for the crime risk_score. text e.g. Elevated ValuesLow: Score from 0 to less than 20.Moderate: Score from 20 to less than 40. Elevated: Score from 40 to less than 60. High: Score from 60 to less than 80. Very High: Score from 80 to 100. |
| robbery.grade | EASI A-F crime grade for the area. text e.g. B Note: grade (EASI percentile cutoffs) and risk_level (quintile of the score) are computed independently and will not always agree one-to-one. Values: A-F |
| assault | Aggravated assault crime exposure. object |
| assault.risk_score | Approximate national percentile (0-100) of crime exposure. Higher means more crime. number e.g. 41.0 Note: Like every peril, this score is per-peril-relative and not comparable across perils — compare only within crime, across locations. Values: 0-100 |
| assault.risk_level | Exposure band for the crime risk_score. text e.g. Elevated ValuesLow: Score from 0 to less than 20.Moderate: Score from 20 to less than 40. Elevated: Score from 40 to less than 60. High: Score from 60 to less than 80. Very High: Score from 80 to 100. |
| assault.grade | EASI A-F crime grade for the area. text e.g. B Note: grade (EASI percentile cutoffs) and risk_level (quintile of the score) are computed independently and will not always agree one-to-one. Values: A-F |
| burglary | Burglary crime exposure. object |
| burglary.risk_score | Approximate national percentile (0-100) of crime exposure. Higher means more crime. number e.g. 41.0 Note: Like every peril, this score is per-peril-relative and not comparable across perils — compare only within crime, across locations. Values: 0-100 |
| burglary.risk_level | Exposure band for the crime risk_score. text e.g. Elevated ValuesLow: Score from 0 to less than 20.Moderate: Score from 20 to less than 40. Elevated: Score from 40 to less than 60. High: Score from 60 to less than 80. Very High: Score from 80 to 100. |
| burglary.grade | EASI A-F crime grade for the area. text e.g. B Note: grade (EASI percentile cutoffs) and risk_level (quintile of the score) are computed independently and will not always agree one-to-one. Values: A-F |
| larceny | Larceny/theft crime exposure. object |
| larceny.risk_score | Approximate national percentile (0-100) of crime exposure. Higher means more crime. number e.g. 41.0 Note: Like every peril, this score is per-peril-relative and not comparable across perils — compare only within crime, across locations. Values: 0-100 |
| larceny.risk_level | Exposure band for the crime risk_score. text e.g. Elevated ValuesLow: Score from 0 to less than 20.Moderate: Score from 20 to less than 40. Elevated: Score from 40 to less than 60. High: Score from 60 to less than 80. Very High: Score from 80 to 100. |
| larceny.grade | EASI A-F crime grade for the area. text e.g. B Note: grade (EASI percentile cutoffs) and risk_level (quintile of the score) are computed independently and will not always agree one-to-one. Values: A-F |
| vehicle_theft | Motor vehicle theft crime exposure. object |
| vehicle_theft.risk_score | Approximate national percentile (0-100) of crime exposure. Higher means more crime. number e.g. 41.0 Note: Like every peril, this score is per-peril-relative and not comparable across perils — compare only within crime, across locations. Values: 0-100 |
| vehicle_theft.risk_level | Exposure band for the crime risk_score. text e.g. Elevated ValuesLow: Score from 0 to less than 20.Moderate: Score from 20 to less than 40. Elevated: Score from 40 to less than 60. High: Score from 60 to less than 80. Very High: Score from 80 to 100. |
| vehicle_theft.grade | EASI A-F crime grade for the area. text e.g. B Note: grade (EASI percentile cutoffs) and risk_level (quintile of the score) are computed independently and will not always agree one-to-one. Values: A-F |
| result | ’success’ when this section populated, otherwise why it is absent. ‘insufficient_precision’ can also mark a present section missing some fields. text e.g. success Valuessuccess: The section populated normally.no_data: The source has no record for this location. fetch_failed: The underlying source errored or timed out. not_available: The source was not consulted (not licensed or not requested). insufficient_precision: The geocode is not precise enough to trust some or all of this section’s data (e.g. a city-level match cannot support a point-level result). If the section is still present, the fields that need a more precise geocode are omitted. |
Meta
Identifies the output schema version.| Data Element | Description |
|---|---|
| schema_version | Ping Hazard output schema version. text e.g. 2.0 |
A previous version of this datasource, Ping Hazard v1 (
PH), remains available for existing integrations — see Ping Hazard v1.Concepts and Interpretation
This section explains how to interpret the Ping Hazard v2 model in practice.Risk Scoring
Every peril underperils reports risk the same way: a risk_score (0-100) and a bucketed
risk_level label.
{ "risk_score": 96.2, "risk_level": "Very High" }
NRI-derived perils
Hurricane, Earthquake, Tsunami, Tornado, Hail, Lightning, Riverine Flood, Coastal Flood, and Wildfire deriverisk_score from the FEMA National Risk Index’s annualized loss rate to
buildings for that peril, normalized onto a 0-100 scale. risk_level buckets the risk_score:
| Score range | risk_level |
|---|---|
| exactly 0 | No Exposure |
| greater than 0 and less than 0.01 | Negligible |
| 0.01 – less than 5 | Low |
| 5 – less than 20 | Moderate |
| 20 – less than 50 | Elevated |
| 50 – less than 80 | High |
| 80 – less than 100 | Very High |
| exactly 100 | Maximum |
Crime
For crime perils, the risk_score is an approximate national percentile, computed from the EASI crime index (US average = 100).risk_level uses its own 5-band scale instead of
the NRI table above, since a roughly-uniform percentile has no meaningful “No Exposure” /
“Negligible” low end:
| Score range | risk_level |
|---|---|
| 0 – less than 20 | Low |
| 20 – less than 40 | Moderate |
| 40 – less than 60 | Elevated |
| 60 – less than 80 | High |
| 80 – 100 | Very High |
grade, EASI’s own A-F letter grade, computed independently — risk_level
and grade won’t always agree 1:1.
Absent sections
A section or peril that doesn’t apply to the location, has no data, or couldn’t be fetched is never omitted and nevernull. It’s replaced by a single-key object naming the reason:
{ "result": "no_regional_exposure" }
result | Meaning |
|---|---|
no_regional_exposure | The peril doesn’t apply to this region (e.g. sinkhole outside Florida). |
no_data | The source has no record for this location. |
fetch_failed | The underlying source errored or timed out. |
not_available | The source wasn’t consulted (not licensed or not requested). |
insufficient_precision | The geocode isn’t precise enough to trust this section’s data. |
result key to distinguish an absent section from a populated one.