NRC ERNS Chemical Spill & Release Incident Screener by Address avatar

NRC ERNS Chemical Spill & Release Incident Screener by Address

Pricing

from $6.60 / 1,000 result rows

Go to Apify Store
NRC ERNS Chemical Spill & Release Incident Screener by Address

NRC ERNS Chemical Spill & Release Incident Screener by Address

Screen any US property against the National Response Center (ERNS) release-report corpus, 2005-present. Tiered coordinate / address / city / county matching with an explicit match class on every row, because only ~19% of NRC records carry a coordinate. Materials, CAS, evacuations, injuries, damage.

Pricing

from $6.60 / 1,000 result rows

Rating

0.0

(0)

Developer

Kyle Maloney

Kyle Maloney

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

NRC / ERNS Chemical Spill & Release Incident Screener

Screen any US property against the National Response Center (NRC) release-report corpus — the database formerly published as ERNS, the Emergency Response Notification System, and one of the federal standard environmental record sources named in ASTM E1527-21 §8.2.1.

Every CERCLA §103 / CWA §311 reportable release call taken by the NRC watch floor since calendar year 2005 — oil, chemicals, natural gas, pipeline and rail releases, vessel discharges, unknown sheens — joined across all ten relational sheets NRC publishes and matched to your property with an honest, labelled match ladder.


The one thing that makes this different

Only about 19% of NRC records carry a usable coordinate.

Measured live on 2026-08-11: 4,051 of 21,533 CY2025 incidents (18.81%) carry a numeric degrees/minutes/seconds position, and of those only 3,992 carry a clean quadrant pair. CY2026 runs at 22.34%. The other four out of five records are address, nearest-city or county only.

A point-proximity screener built the obvious way therefore answers "no reported releases near this property" for four out of five records in the database, on a Phase I, while the run reports SUCCESS and bills you.

So this actor screens on a four-tier ladder, and labels every single row with which tier matched it:

TierWhat it meansdistance_miles
coordinateNRC published a coordinate and it is inside your radiusmeasured
addressNo coordinate; the NRC street address matches your property addressnull
cityNo coordinate; NRC's nearest city matches your property citynull
countyNo coordinate; NRC's county matches your property countynull

A city or county hit is never presented as a radius answerdistance_miles stays null and match_basis says so in words.

And every property gets an asset_summary row carrying the disclosure that makes a zero meaningful:

  • records_in_asset_county_total — everything NRC holds in your county for the years read
  • records_without_coordinates_in_county — how many of those a radius search can never reach
  • coordinate_coverage_pct_in_county
  • radius_search_possible / county_tier_possible

Who it is for

  • Phase I ESA consultants — ERNS is a named ASTM E1527-21 standard federal source. EDR bills for it; this returns it as structured data.
  • Environmental counsel and insurers — release history, materials, CAS, quantities, water impact, evacuations, injuries, fatalities and damage claims per incident.
  • Spill-response and industrial-services firms — incident density and material mix by county.
  • Compliance teamsdelta mode watches the live current-year file for newly reported incidents in your states.

Scope limit you must read

The NRC FOIA corpus begins at calendar year 2005. CY2000.xlsx and CY1990.xlsx return an HTTP 302 redirect to an error page, not data. ASTM E1527-21 asks for historical records back to first developed use or 1940; this source cannot satisfy that window, and every row says so in corpus_limitation. This is a screening tool, not a determination.

For the pre-2005 window pair this with usgs-historical-topo-records-review.


Example input

{
"mode": "screen",
"assets": [
{ "label": "Houston Ship Channel - Deer Park terminal",
"lat": 29.7317, "lon": -95.1267, "city": "Deer Park", "county": "Harris", "state": "TX" },
{ "label": "Greeley County KS - rural control",
"lat": 38.48, "lon": -101.8, "city": "Tribune", "county": "Greeley", "state": "KS" }
],
"radiusMiles": 3,
"yearsBack": 3,
"matchTiers": ["coordinate", "address", "city", "county"],
"includeNonRelease": true
}

An address works too — it is geocoded by the US Census geocoder and the county is resolved from the FCC block API:

{ "assets": [{ "label": "Site A", "street": "5900 Highway 225", "city": "Deer Park", "state": "TX" }] }

Delta mode:

{ "mode": "delta", "deltaStates": ["TX", "LA"], "deltaOnly": true }

What it does that a flat dump does not

  • Joins all ten NRC sheets on SEQNOSCALLS, INCIDENT_COMMONS, INCIDENT_DETAILS, MATERIAL_INVOLVED, MATERIAL_INV0LVED_CR (yes, the upstream sheet name has a zero where the O belongs), plus presence flags from INCIDENTS, TRAINS_DETAIL, DERAILED_UNITS, VESSELS_DETAIL and MOBILE_DETAILS.
  • Reconstructs the coordinate honestly. NRC packs position into eight DMS/quadrant columns. Quadrant letters measured live include M, 8, B, V, Q, 2, N/N and W/W. A parser that trusts the quadrant to set the sign puts a Gulf of Mexico spill in Kazakhstan. Unmappable quadrants withhold the coordinate with a stated reason; the reconstructed value is still published under latitude_reconstructed so nothing fetched is thrown away.
  • Cross-checks every coordinate against its own LOCATION_STATE with a 4-degree offshore allowance calibrated on live data. Legitimate Gulf lease blocks filed under Louisiana survive; a dropped digit (LA at -9.25 for -90.25), an E/W inversion (Bakersfield CA published at +119 East) and Guam (which NRC publishes with LONG_QUAD=W although Guam is at 144.7 East) are rejected — 40 of 4,051 CY2025 rows, 1.0%.
  • Classifies releases honestly. RAILROAD NON-RELEASE is 11.3% of CY2025 and by definition involves no material released; it ships with is_release: false, never silently dropped and never counted as a release. 87% of NRC fatality records (914 of 1,052) are RAILROAD NON-RELEASE trespasser strikes — read any_fatalities beside is_release.
  • Never publishes the CAS sentinel. CAS_NUMBER = "000000-00-0" is on 91.0% of material rows and means "no CAS registry number in this record". It is nulled with a stated basis; the usable identity is CHRIS_CODE + NAME_OF_MATERIAL.
  • null never means zero. NUMBER_EVACUATED is the empty string on 21,227 of 21,533 CY2025 rows; Number('') is 0, which would publish "0 people evacuated" for a field nobody filled in. Every count is null when unrecorded. Y/N/U becomes true/false/nullU is the source's own "unknown", which is not false.
  • The corpus is not US-onlyLOCATION_STATE includes CN, MX, NI and XX alongside PR, GU, VI and AS. Rows are labelled location_is_us / location_is_us_territory rather than silently dropped.
  • Caches annual files by Last-Modified in a named key-value store. Historical years are frozen and download once ever; the current-year file is re-fetched only when NRC actually replaces it (files are replaced in place, so data_as_of is on every row).

Gates that run before any billable row

The run fails and bills nothing rather than publishing an answer it cannot stand behind:

  • Sheet contract — all ten expected sheets must resolve, including the zero-for-O one.
  • Column contract — every required column per sheet; SheetJS phantom __EMPTY columns are dropped (CY2025 parses to 41 columns against 29 real ones; CY2026 is clean at 29).
  • Live drift gate — row-count floors, the CAS sentinel rate inside a measured 60-99.5% band, coordinate coverage inside 5-95%, a minimum distinct-type and distinct-state count, and a RAILROAD NON-RELEASE presence canary (if that class vanishes, the vocabulary was recoded and every release rollup silently starts counting rail trespasser strikes).
  • Positive canary — NRC report SEQNOS 1421048, a Houston Ship Channel sheen at Deer Park TX on 2025-01-14, must come back with its exact county, city, type, both date encodings, material, CHRIS code and coordinate, and its CAS sentinel must be nulled.
  • Negative control — a synthetic impossible state/county must match zero incidents, proving the tier filters actually filter.
  • Partial-window guard — if more than a third of the requested years could not be read, the run fails rather than reporting an absence it never verified.
  • Payload shape guard — content-type plus zip magic bytes, so an HTML error page served at HTTP 200 can never be parsed into a clean empty answer.
  • Rows are buffered and gated before pushData.

Use as an MCP tool

This actor is callable by AI agents over mcp.apify.com.

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--actors", "malonestar/erns-nrc-release-incident-screener"],
"env": { "APIFY_TOKEN": "<your token>" }
}
}
}

Worked agent prompt: "Screen 29.7317, -95.1267 in Deer Park, Harris County TX against the National Response Center release corpus for the last five years. Tell me how many incidents matched by coordinate versus county, how many county records carry no coordinate at all, and which of the matches involved a material that reached water."

Billing is unchanged when called as a tool, and a run that cannot answer fails without billing.

Chain it with

Pricing

Pay per result: $12 per 1,000 rows, with graduated paid-plan discounts. One asset_summary row per property plus one row per matched incident. A run that fails a gate emits nothing and bills nothing.


Output fields

Every one of the 149 declared fields, in full. asset_summary rows carry the asset and coverage fields; incident rows carry those plus the incident fields.

Row identity and asset context

FieldTypeDescription
record_typestring or nullasset_summary for the per-asset roll-up row, or incident for one matched NRC release report.
asset_labelstring or nullThe label you supplied for this property (or Asset N when none was given).
asset_latitudenumber or nullLatitude used for the radius search, either supplied or geocoded. Null when the property could not be located.
asset_longitudenumber or nullLongitude used for the radius search. Null when the property could not be located.
asset_streetstring or nullStreet line supplied for the property.
asset_citystring or nullCity used for the city match tier.
asset_countystring or nullCounty used for the county match tier, supplied or resolved from the FCC block API.
asset_statestring or nullTwo-letter state used for every non-coordinate tier.
asset_location_statusstring or nullHow well the property was located: coordinate_and_county, coordinate_only, county_only, city_only, or unresolved. An unresolved asset is never reported as clear.
asset_location_basisstring or nullExactly how the location was derived, including any geocoder or FCC lookup that failed.
asset_geocode_sourcestring or nullWhich geocoder produced the coordinate, or null when you supplied it.
search_radius_milesnumber or nullRadius in miles applied to the coordinate tier only.
match_tiers_enabledstring or nullWhich of coordinate, address, city, county were enabled on this run.

Asset summary: match counts and the coverage disclosure

FieldTypeDescription
incidents_matched_totalnumber or nullTotal NRC incidents matched to this property across every enabled tier.
incidents_emittednumber or nullHow many of those were emitted after maxIncidentsPerAsset.
incidents_truncatedboolean or nullTrue when the per-asset cap suppressed matches. Never read a capped answer as a complete one.
matches_tier_coordinatenumber or nullMatches made by measured distance. NRC publishes a usable coordinate on only about 19 percent of records.
matches_tier_addressnumber or nullMatches made on a street address because NRC published no coordinate.
matches_tier_citynumber or nullMatches made on nearest city. NOT a radius answer.
matches_tier_countynumber or nullMatches made on county. NOT a radius answer.
non_release_incidents_suppressednumber or nullHow many RAILROAD NON-RELEASE style records were withheld because includeNonRelease was false. Always reported, never silently dropped.
records_in_asset_county_totalnumber or nullEvery NRC record in this property county for the years read, matched or not. The honest denominator.
records_without_coordinates_in_countynumber or nullHow many of those carry no coordinate and therefore can NEVER be reached by a radius search. This is the number that makes a coordinate-only zero meaningless.
coordinate_coverage_pct_in_countynumber or nullPercentage of county records that carry a usable coordinate.
radius_search_possibleboolean or nullFalse when the property has no coordinate, so no distance-based answer exists for it.
county_tier_possibleboolean or nullFalse when neither a county nor a state could be resolved for the property.

How this incident matched

FieldTypeDescription
match_tierstring or nullWhich tier matched this incident: coordinate, address, city or county.
match_basisstring or nullPlain-language statement of why this incident matched, including whether a distance could be measured at all.
distance_milesnumber or nullGreat-circle miles from the property. Populated ONLY on coordinate-tier matches; null on every other tier because no coordinate exists to measure from.

Incident identity, timing and class

FieldTypeDescription
seqnosstring or nullNRC incident sequence number. The identity used for the SEQNOS join and for delta tracking.
corpus_yearnumber or nullWhich annual NRC file this record came from.
incident_datetimestring or nullIncident date and time in UTC ISO form, parsed from the string encoding in INCIDENT_COMMONS.
incident_datetime_basisstring or nullWhich encoding was used, or why the value could not be read: mdy_string, excel_serial, iso_string, unparseable, not_recorded.
incident_yearnumber or nullCalendar year of the incident.
report_received_datetimestring or nullWhen the National Response Center took the call, parsed from the Excel serial encoding in CALLS.
report_received_datetime_basisstring or nullWhich encoding was used for the call timestamp.
incident_dtgstring or nullWhether the incident time is when it OCCURRED or was DISCOVERED.
type_of_incidentstring or nullNRC incident class: FIXED, VESSEL, UNKNOWN SHEEN, RAILROAD NON-RELEASE, MOBILE, PIPELINE, STORAGE TANK, RAILROAD, PLATFORM, AIRCRAFT, CONTINUOUS.
is_releaseboolean or nullTrue when the incident class describes an actual or suspected release. FALSE for RAILROAD NON-RELEASE, which is 11.3 percent of the file. NULL for a class outside the measured vocabulary.
release_basisstring or nullWhy is_release holds the value it does.
potential_release_onlyboolean or nullNRC POTENTIAL_FLAG. True marks a POTENTIAL release, not a confirmed one.
incident_causestring or nullNRC cause code, e.g. EQUIPMENT FAILURE, OPERATOR ERROR, DERAILMENT, UNKNOWN.
incident_location_labelstring or nullNRC free-text location label.
description_of_incidentstring or nullThe caller narrative as recorded by the NRC watchstander.

Location as NRC recorded it

FieldTypeDescription
location_addressstring or nullNRC free-text location address. Frequently a pointer such as SEE LAT AND LONG rather than a street.
location_street1string or nullFirst street line as recorded.
location_street2string or nullSecond street line as recorded.
location_nearest_citystring or nullNearest city as reported by the caller. Backs the city match tier.
location_statestring or nullTwo-letter state or territory. Includes CN, MX, NI and XX: the corpus is NOT US-only.
location_countystring or nullCounty as reported. Populated on 100 percent of records, which is why the county tier exists. UNKNOWN appears on roughly 1 percent and never matches a real county.
location_zipstring or nullZIP code as reported.
location_is_usboolean or nullFalse for CN, MX, NI and XX records. Null when no state was recorded.
location_is_us_territoryboolean or nullTrue for PR, GU, VI, AS, MP and similar.
distance_from_citynumber or nullReported distance from the nearest city. Null when not recorded, never 0.
distance_from_city_unitsstring or nullUnits for distance_from_city.
direction_from_citystring or nullReported bearing from the nearest city.
location_sectionstring or nullPLSS section as reported.
location_townshipstring or nullPLSS township as reported.
location_rangestring or nullPLSS range as reported.

Coordinate reconstruction and positional honesty

FieldTypeDescription
latitudenumber or nullDecimal latitude, populated ONLY when the DMS and quadrant reconstructed AND passed the state cross-check. Null on roughly four of five records.
longitudenumber or nullDecimal longitude under the same contract as latitude.
latitude_reconstructednumber or nullThe reconstructed latitude even when it was rejected, so nothing fetched is silently discarded.
longitude_reconstructednumber or nullThe reconstructed longitude even when it was rejected.
positional_classstring or nullHow the position was derived: dms_reported_state_verified, dms_reported_offshore_of_state, dms_reported_state_not_checked, no_coordinate_reported, coordinate_unusable, or coordinate_contradicts_state.
positional_basisstring or nullPlain-language explanation of the positional class.
coordinate_rejected_reasonstring or nullWhy a reconstructed coordinate was withheld: quadrant_unmappable, dms_components_invalid, state_bbox_mismatch, outside_wgs84_envelope or null_island. Null on a healthy record.
lat_quadrant_rawstring or nullThe raw LAT_QUAD letter. Garbage values such as M, 8, B, V and 2 occur and are never guessed into a sign.
lon_quadrant_rawstring or nullThe raw LONG_QUAD letter.
state_bbox_gap_degreesnumber or nullDegrees between the reconstructed point and its own state bounding box. 0 inside, up to 4 for legitimate offshore, beyond 4 the coordinate is rejected.

Reporting party

FieldTypeDescription
call_typestring or nullNRC call type code.
call_sourcestring or nullHow the report reached the NRC.
responsible_companystring or nullCompany named as responsible by the caller. Often null on unknown-source releases.
responsible_org_typestring or nullOrganisation type of the responsible party.
responsible_citystring or nullCity of the responsible party.
responsible_statestring or nullState of the responsible party. XX means unknown.
responsible_zipstring or nullZIP of the responsible party.

Materials released

FieldTypeDescription
materialsarray or nullEvery material row joined from MATERIAL_INVOLVED, each with chris_code, cas_number, cas_basis, un_number, name_of_material, amount_of_material, unit_of_measure, reached_water, amount_in_water and unit_of_measure_in_water.
material_countnumber or nullHow many material rows were joined to this incident.
material_namesstring or nullSemicolon-joined material names for easy CSV reading.
material_cas_numbersstring or nullSemicolon-joined REAL CAS numbers. The 000000-00-0 sentinel, which is on 91 percent of material rows, is excluded because it is not a CAS number.
material_chris_codesstring or nullSemicolon-joined USCG CHRIS codes, the usable material identity when no CAS exists.
any_material_reached_waterboolean or nullTrue when any joined material reached water, false when every material was checked and none did, null when it was not recorded.
is_continuous_release_recordboolean or nullTrue when the incident appears in the continuous-release sheet MATERIAL_INV0LVED_CR, whose upstream name contains a zero where the O belongs.

Consequences

FieldTypeDescription
fire_involvedboolean or nullFire involved. Null when NRC recorded U for unknown.
fire_extinguishedboolean or nullFire extinguished. Null when unknown.
any_evacuationsboolean or nullWhether an evacuation occurred.
number_evacuatednumber or nullPeople evacuated. NULL, never 0, when NRC left the field blank, which is 98.6 percent of records.
who_evacuatedstring or nullWho was evacuated, e.g. EMPLOYEES, EVERYONE, NUMBER UNKNOWN.
radius_of_evacuationstring or nullEvacuation radius as recorded.
any_injuriesboolean or nullWhether injuries were reported.
number_injurednumber or nullPeople injured, null when not recorded.
number_hospitalizednumber or nullPeople hospitalised, null when not recorded.
any_fatalitiesboolean or nullWhether a fatality was reported. NOTE: 87 percent of NRC fatality records are RAILROAD NON-RELEASE trespasser strikes involving no material release. Read this beside is_release.
number_fatalitiesnumber or nullFatalities reported, null when not recorded.
any_damagesboolean or nullWhether property damage was reported.
damage_amount_usdnumber or nullDamage in US dollars as reported by the caller, null when not recorded.
water_supply_contaminatedboolean or nullWhether a drinking-water supply was reported contaminated. Null on the 99 percent of records NRC marks U.
waterway_closedboolean or nullWhether a waterway was closed.
road_closedboolean or nullWhether a road was closed.
track_closedboolean or nullWhether rail track was closed.
air_corridor_closedboolean or nullWhether an air corridor was closed.
major_artery_affectedboolean or nullWhether a major traffic artery was affected.
medium_affectedstring or nullEnvironmental medium affected: WATER, LAND, AIR or similar.
additional_medium_infostring or nullFree-text detail about the affected medium.
body_of_waterstring or nullNamed receiving water body.
tributary_ofstring or nullLarger water body the receiving water flows to.
release_securedboolean or nullWhether the release had been secured at the time of the report. Null when unknown.
estimated_duration_of_releasestring or nullReported duration of the release.
release_ratestring or nullReported release rate.
remedial_action_descriptionstring or nullRemedial action described by the caller.
state_agency_on_scenestring or nullState agency reported on scene.
state_agency_notifiedstring or nullState agency notified.
federal_agency_notifiedstring or nullFederal agency notified.
sheen_size_lengthnumber or nullReported sheen length, null when not recorded.
sheen_size_length_unitsstring or nullUnits for sheen length.
sheen_size_widthnumber or nullReported sheen width, null when not recorded.
sheen_size_width_unitsstring or nullUnits for sheen width.
sheen_colorstring or nullReported sheen colour.
offshoreboolean or nullWhether NRC recorded the incident as offshore.
media_intereststring or nullReported press interest.
additional_infostring or nullAny additional narrative recorded on the report.

Per-source join status and auxiliary-sheet presence

FieldTypeDescription
has_source_specific_detailboolean or nullTrue when the INCIDENTS sheet holds equipment-specific detail (tank, pipeline, platform, NPDES, grade crossing) for this SEQNOS. Not expanded into columns in v1.0.
has_train_detailboolean or nullTrue when TRAINS_DETAIL holds a row for this SEQNOS.
has_derailed_units_detailboolean or nullTrue when DERAILED_UNITS holds a row for this SEQNOS.
has_vessel_detailboolean or nullTrue when VESSELS_DETAIL holds a row for this SEQNOS.
has_mobile_detailboolean or nullTrue when MOBILE_DETAILS holds a row for this SEQNOS.
incident_details_statusstring or nullok when the INCIDENT_DETAILS row joined, no_matching_row when NRC published none. Every consequence field is null in the second case, which is not checked rather than negative.
calls_statusstring or nullok when the CALLS row joined, no_matching_row otherwise.

Delta mode

FieldTypeDescription
is_new_since_last_runboolean or nullDelta mode only. True when this SEQNOS was absent from the named cross-run baseline, false when it was present, NULL when no usable baseline existed, which is not checked rather than new.
delta_baseline_statusstring or nullok, initialized (first run for this scope) or unavailable.
delta_baseline_sizenumber or nullHow many SEQNOS the baseline held before this run.

Run provenance, vintage and gate results

FieldTypeDescription
data_sourcestring or nullThe upstream this row came from.
corpus_first_yearnumber or nullThe first calendar year NRC publishes. CY2000 and earlier redirect to an error page.
corpus_limitationstring or nullStates on every row that the corpus begins in 2005 and therefore cannot satisfy the ASTM E1527-21 historical window (first developed use or 1940).
years_requestedstring or nullWhich annual files this run asked for.
years_readstring or nullWhich annual files were actually read.
years_unavailablestring or nullWhich requested years could not be read. Null on a complete run.
years_partialboolean or nullTrue when at least one requested year was unavailable, so an absence of hits is not a verified negative for the full window.
data_as_ofstring or nullLast-Modified vintage of every annual file read. NRC replaces files IN PLACE, so this is the only honest vintage.
current_year_file_last_modifiedstring or nullLast-Modified of the current-year file, which NRC refreshes continuously.
vintage_verified_all_yearsboolean or nullFalse when a cached copy was served without a successful HEAD revalidation.
corpus_coordinate_coverage_pctnumber or nullPercentage of all records read that carry a usable coordinate. Measured 18.81 on CY2025 and 22.34 on CY2026.
drift_gate_statusstring or nullAlways passed on an emitted row: the run fails and bills nothing when the gate trips.
canary_statusstring or nullpassed, or not_applicable when CY2025 was outside the run scope. A failed canary fails the run.
canary_basisstring or nullWhat the canary check concluded.
negative_control_statusstring or nullpassed. A synthetic impossible state/county must match zero incidents, proving the tier filters filter.
screened_atstring or nullUTC timestamp of this run.
matched_rows_totalnumber or nullTotal rows produced before maxResults, so a capped answer is never mistaken for a complete one.
results_truncatedboolean or nullTrue when maxResults capped the dataset.

FAQ

Is ERNS the same as the National Response Center database? Yes. EPA's Emergency Response Notification System was the release-notification database named in ASTM E1527; the National Response Center is where those notifications are taken and published today. This actor reads NRC's own annual FOIA workbooks.

Why does a property show zero coordinate matches but dozens of county matches? Because NRC publishes a usable coordinate on only ~19% of records. That is the whole point of the match ladder, and records_without_coordinates_in_county on the asset_summary row tells you exactly how many records the radius could never have reached.

Does zero rows mean the property is clean? No. It means NRC holds no matching reported release for the years read, on the tiers you enabled. Reporting is caller-initiated and incomplete by nature, the corpus starts in 2005, and years_unavailable will tell you if part of your window could not be read. This is a screening tool, not a determination.

Why is latitude null when latitude_reconstructed has a value? The DMS reconstructed, but it failed a validation — an unmappable quadrant, an out-of-range DMS component, or a position that contradicts its own LOCATION_STATE by more than the 4-degree offshore allowance. coordinate_rejected_reason says which. Nothing is discarded; the value is published, just not sold to you as a usable coordinate.

Why do so many "fatality" records have no material released? Because 87% of them are RAILROAD NON-RELEASE trespasser strikes, which are reportable rail events with nothing spilled. Filter on is_release before building any release rollup.

How far back does it go? Calendar year 2005. See the scope-limit section above.

Can I monitor for new incidents? Yes — mode: "delta" reads the live current-year file and compares against a named cross-run baseline of SEQNOS. The first run for a scope stores the baseline and fails loudly rather than billing you for the whole file labelled "new".

Does this cover state-reported spills? No. NRC is the federal notification channel. Pair it with state-tank-spill-registry-screener for NY/CA state registries and epa-contaminated-site-screener for SEMS/RCRA/ECHO.


Data source and licence

US Coast Guard National Response Center annual FOIA workbooks, https://nrc.uscg.mil/FOIAFiles/CY<yy>.xlsx, CY05 through the current year. US federal government work, public domain. Keyless. Files are replaced in place; the Last-Modified vintage of every file read is published on every row as data_as_of.