NOAA Sea Level Rise Screener - Site Inundation Threshold
Pricing
from $4.40 / 1,000 screened sites
NOAA Sea Level Rise Screener - Site Inundation Threshold
Batch coordinates to the NOAA sea level rise increment at which each site first floods (0-10 ft above MHHW), with confidence class, inundated vs low-lying split, levee-exclusion flag and nearest high-tide-flooding thresholds. Out-of-coverage is reported explicitly, never as a false clear. MCP-ready.
Pricing
from $4.40 / 1,000 screened sites
Rating
0.0
(0)
Developer
Kyle Maloney
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
At what sea level rise does this property flood? Give it coordinates; it returns the NOAA sea-level-rise increment at which each site first becomes inundated - plus NOAA's own confidence class, a separate low-lying flag, a levee-exclusion flag, an explicit out-of-coverage status, and the nearest high-tide-flooding thresholds.
Built directly on the NOAA Office for Coastal Management Sea Level Rise viewer
services (coast.noaa.gov). Keyless, no scraping of the viewer UI, one billable row
per site.
Why this actor is not just "did the blue layer cover my point"
Three things about this data will produce a confident wrong answer if you get them wrong, and all three were measured live before this actor was written.
1. "Not inundated" and "not modelled" look identical. Anchorage, Alaska is outside
the NOAA sea-level-rise model entirely. Its inundation tile comes back HTTP 200 with a
fully transparent pixel - byte-identical to Beacon Hill in Boston, which is inside
the model and genuinely dry through 10 ft. Only the data-extent polygon layer separates
them. This actor queries that layer for every site and reports
in_slr_coverage / out_of_coverage on every row. It will never call an unmodelled
site clear.
2. Inundated and low-lying are different findings. NOAA maps low-lying areas -
ground below the modelled water level but hydrologically disconnected from the
ocean - separately from connected inundation. They are different answers to different
questions, and they are shipped as separate fields (first_inundation_ft and
first_low_lying_ft, plus a per-increment class). Watch a site move through all three:
the Charleston City Market is dry to 1.5 ft, low-lying from 2 ft, and inundated
from 3.5 ft.
3. Leveed areas are excluded from the model, not found to be safe. The New Orleans
French Quarter reads not inundated at every increment from 0 to 10 ft. That is not a
finding of no risk - NOAA does not model inundation behind the mapped levees. This actor
checks NOAA's Louisiana, Texas and Washington leveed-area polygons and returns
behind_levee: true, levee_system_name: "Orleans Metro Polder" and the verdict
not_modelled_behind_levee rather than a false clear.
Who buys this
| Persona | What they do with it |
|---|---|
| Coastal real-estate / CRE due diligence | Screen a portfolio before LOI. first_inundation_ft under 3-4 ft on a 30-year hold is a financing and insurance conversation. |
| Insurers and reinsurers | Batch-score books of coastal exposure with a nationally consistent federal model, and pair the threshold with the nearest station's minor/moderate/major flood levels. |
| Infrastructure, ports and energy siting | Substations, terminals, landfall points and O&M yards. Screen candidate parcels before survey spend. |
| Phase I ESA / climate-risk disclosure | A defensible, citable federal screening line for a physical-risk section, with the model's coverage gaps stated rather than hidden. |
| AI agents (MCP) | One tool call, one flat row per coordinate, every uncertainty on the row. |
Example input
{"assets": [{ "lat": 32.7808, "lon": -79.9297, "label": "Charleston City Market, SC" },{ "lat": 25.7907, "lon": -80.13, "label": "Miami Beach City Hall, FL" },{ "lat": 29.9511, "lon": -90.0715, "label": "New Orleans French Quarter, LA" },{ "lat": 42.3583, "lon": -71.0656, "label": "Beacon Hill, Boston MA" }],"stepFt": "1","maxFeet": 10,"includeConfidence": true,"includeLevees": true,"includeHighTideFlooding": true}
Real results from that input (measured live):
| Site | Verdict | First inundated | First low-lying | High-confidence wet |
|---|---|---|---|---|
| Charleston City Market, SC | inundated within range | 4 ft | 2 ft | 3 ft |
| Miami Beach City Hall, FL | inundated within range | 6 ft | - | 7 ft |
| Embarcadero, San Francisco CA | inundated at current MHHW | 0 ft | - | 0 ft |
| New Orleans French Quarter, LA | not modelled behind levee | - | - | - |
| Beacon Hill, Boston MA | not inundated through 10 ft | - | - | - |
| Anchorage, AK | out of SLR coverage | - | - | - |
Set stepFt: "0.5" to walk half-foot increments: Miami Beach City Hall sharpens from
6 ft to 5.5 ft. NOAA publishes its confidence raster for whole feet only, so
half-foot steps carry no confidence column at all (rather than a permanently empty one).
Output fields
One row per asset. Every field is nullable: null means "not checked", never
"checked and negative".
Identity and row health
| Field | Meaning |
|---|---|
asset_label | Your label, echoed back. |
asset_lat, asset_lon | The coordinates screened (WGS84). |
row_status | ok, invalid_input (coordinates missing or out of range), or error (no NOAA layer answered). |
row_error | Why the row could not be screened. Null on a healthy row - that is good news, not a dead column. |
Coverage - read this before you read anything else
| Field | Meaning |
|---|---|
slr_coverage_status | ok if NOAA's data-extent layer answered, unavailable if it did not. |
in_slr_coverage | True if NOAA has modelled this location. Null if the layer did not answer. |
out_of_coverage | True when NOAA has not modelled the location. Not a finding that it does not flood. |
slr_data_extent_oid | OBJECTID of the containing data-extent polygon. |
Known gaps: all of Alaska, Guam and other Pacific territories are outside the extent. Hawaii, Puerto Rico, the US Virgin Islands and the CONUS coasts are inside it.
The answer
| Field | Meaning |
|---|---|
slr_verdict | inundated_at_current_mhhw, inundated_within_modelled_range, not_inundated_through_10ft, not_modelled_behind_levee, out_of_slr_coverage, or indeterminate. It can never read a clear value while a contributing layer is unavailable. |
slr_verdict_explained | A plain sentence stating exactly what the verdict does and does not assert. |
first_inundation_ft | Lowest increment (ft above current MHHW) at which NOAA shows the site inundated - connected to the ocean. |
first_wet_ft | Lowest increment at which the site is inundated or low-lying. |
first_low_lying_ft | Lowest increment at which NOAA maps the site as a low-lying area (below the water level, hydrologically disconnected). |
first_low_confidence_ft | Lowest whole foot at which NOAA's confidence raster reads "low confidence, wet or dry". |
first_high_confidence_wet_ft | Lowest whole foot at which it reads "high confidence area wet". |
inundated_at_max_modelled_increment | Whether the site is inundated at the highest requested increment. Null if that increment was never sampled. |
max_increment_modelled_ft | Highest increment this run asked for. |
highest_increment_answered_ft | Highest increment NOAA actually served. Below max_increment_modelled_ft means the top of the range was not checked. |
increment_step_ft | 1 or 0.5. |
Honesty accounting
| Field | Meaning |
|---|---|
increments_requested / increments_ok / increments_unavailable | How many increments were asked for, answered, and missing. |
increments_unavailable_list | Which increments (ft) did not answer. Null when all answered. |
inundation_monotonic_ok | Inundation must be non-decreasing as the water rises. False means NOAA returned a physically impossible sequence for this site. |
inundation_monotonic_violations | Which increments broke it. Null on a healthy row. |
confidence_monotonic_ok / confidence_monotonic_violations | The same test on the confidence class. |
partial_result | True when at least one requested increment could not be sampled, so the true threshold may sit inside the gap. |
Levee exclusion
| Field | Meaning |
|---|---|
levee_status | ok, partial, unavailable, or not_requested. |
behind_levee | True inside a NOAA-mapped leveed area. Null if a levee layer did not answer - never false on an unchecked site. |
levee_system_name | e.g. Orleans Metro Polder. |
levee_source_state | LA, TX or WA - the three states NOAA publishes leveed areas for. |
levee_layers_checked / levee_layers_failed | How many of the three answered, and which did not. |
Nearest high tide flooding station
NOAA's 99 high-tide-flooding tide stations, with the water levels at which NOAA declares minor, moderate and major flooding today.
| Field | Meaning |
|---|---|
htf_status | ok, unavailable, or not_requested. |
nearest_htf_station_name / nearest_htf_station_id | Station name and NOAA CO-OPS id. |
nearest_htf_station_distance_km | Distance to it. A distant station is a weak local reference - read this before relying on the thresholds. |
htf_minor_ft_above_mhhw / htf_moderate_ft_above_mhhw / htf_major_ft_above_mhhw | Flood thresholds in feet above mean higher high water. |
htf_station_mhhw_ft | The station's published HTF datum offset. |
Per increment
For each increment F in the requested set (ft0, ft0_5, ft1 ... ft10):
| Field | Meaning |
|---|---|
ft<F>_status | ok, unavailable, out_of_coverage, or not_requested. unavailable means NOT CHECKED - it is never the same as not inundated. |
ft<F>_inundation | inundated, low_lying, or not_inundated. Null when not checked. |
ft<F>_confidence | high_confidence_wet, low_confidence, or high_confidence_dry. Whole feet only - NOAA publishes no confidence raster for half-foot steps, so those columns do not exist. |
ft<F>_depth_symbology_rank_pct | Position on that increment's depth colour ramp, 0 = shallowest rendered, 100 = deepest. See the depth note below - this is NOT a depth in feet. Null unless inundated at that increment. |
Provenance
| Field | Meaning |
|---|---|
sample_zoom_level | Cached tile level the pixel was read from (15 - the finest level both the inundation and confidence services publish, about 4.78 m/px). |
sample_resolution_m | Ground size of the sampled pixel. |
sample_tile_row / sample_tile_col / sample_pixel_x / sample_pixel_y | Exactly which cached pixel produced the answer, so any row can be re-derived by hand. |
drift_gate_status | passed, or passed_with_unavailable_increments. |
drift_gate_checks | Every value the live drift gate measured on this run, as JSON. |
data_source | The NOAA service family. |
low_lying_definition | The exact meaning of low_lying, restated on every row. |
depth_note | Why there is no numeric depth field. |
disclaimer | NOAA's own statement of what this dataset is and is not. |
screened_at_utc | ISO-8601 run timestamp. |
What this actor deliberately does NOT publish
A numeric inundation depth in feet. NOAA serves the depth layer as a continuous,
per-increment stretched colour ramp - one tile at Charleston contains 162 distinct
colours, and the stretch is rebuilt for every increment. There is no numeric depth in
these services to read. Rather than reverse-engineer a plausible number, this actor
publishes ft<F>_depth_symbology_rank_pct: a relative position on that increment's
own ramp, clearly named, with a depth_note on every row. If you need modelled depth
in feet, download the NOAA SLR depth rasters directly.
A verdict when a source did not answer. If the coverage layer or every increment
fails, the verdict is indeterminate and the row says so. If nothing could be
screened for any asset, the run fails and bills nothing rather than emitting one
billable "error" row per site.
Live drift assertions
An offline fixture cannot see a silently degraded upstream, because the fixture was shaped from the degraded data. So this actor re-measures the source on every run, before a single billable row exists, and fails loudly rather than publishing:
- Legend vocabulary. The low-lying colour and all three confidence classes are read
from NOAA's live
/legendand compared to the values this build was verified against. A re-symbolisation fails the run instead of silently re-meaning every answer. - Coverage extent. Polygon count and total area must stay in band (54 polygons and
1.4376e12 m2 when verified),
exceededTransferLimitis read, and a polygon with no numeric area is a problem rather than zero area. - The whole increment set. A Charleston Harbor marsh point that NOAA models as
inundated at every increment is sampled at every requested increment. Any increment
that does not read
inundatedthere is marked unavailable for the whole run; more than two and the run fails. - A threshold canary. Miami Beach City Hall must read dry at 4 ft and inundated at 8 ft, which proves the increments are still ordered as this build expects.
- A low-lying canary. A known disconnected pocket must still read
low_lyingat 6 ft. - A negative control. Beacon Hill, Boston must be inside coverage and dry at 10 ft - the geospatial form of catching a query that silently matches nothing.
- An out-of-coverage control. Denver must fall outside the extent.
- Per-site monotonicity. Inundation must be non-decreasing as the water rises.
- Projection. Station coordinates are checked by coordinate magnitude, so a Web Mercator response is caught instantly.
Every measured value is logged and written to drift_gate_checks on every row.
You can prove the failure path yourself: set simulateOutage to tiles, coverage,
legend, levees, htf or all. The run FAILS, emits 0 rows and bills nothing.
Use as an MCP tool
Available through mcp.apify.com. One call, one flat row per coordinate, no follow-up
lookups needed - coverage, verdict, threshold, confidence, levee status and tide-station
thresholds all arrive together, and every uncertainty is a field rather than a footnote.
Pricing
$8 per 1,000 results. One result = one screened coordinate, whatever the increment step. A failed run emits nothing and bills nothing. Graduated discounts apply on paid Apify plans.
FAQ
Is 10 ft realistic? It is the top of NOAA's modelled range and is used as a
stress-test bound, not a forecast. NOAA's 2022 Interagency report projects roughly
0.8-1.2 ft of US average rise by 2050. Sites with first_inundation_ft of 1-3 ft are
the ones that matter on a normal hold period.
Is this a flood zone determination? No. It is a screening tool for potential sea-level-rise inundation, and it excludes erosion, subsidence, future construction, wind-driven tides and storm surge. It is not FEMA flood-zone data and it is not for navigation, permitting or legal purposes. Pair it with FEMA NFIP claims history and county risk before drawing conclusions.
Why is my site dry at 10 ft when it floods today? Check behind_levee first, then
in_slr_coverage. If both are clean, the site is genuinely above the modelled water
level - and nearest_htf_station_* will tell you what today's nuisance-flooding
thresholds are at the nearest tide gauge.
How precise is a single point? The sample is one 4.78 m pixel from NOAA's cached
tiles. NOAA states the data shows the scale of potential flooding, not the exact
location. sample_tile_row/sample_pixel_x and friends let you re-derive any row.
Related actors
Screen the same coordinates against the rest of the coastal and flood shelf:
- NFIP Flood Loss Risk Screener - actual paid FEMA flood claim history nearby.
- FEMA NRI County Risk Profile - county and tract expected annual loss by peril.
- CBRS Coastal Barrier Screener - whether federal flood insurance is barred outright.
- FWS Wetlands Proximity Screener and NHD Surface Water 404 Screener - the jurisdictional water picture.
- Site Due Diligence Bundle - 20 layers for one coordinate in one call.
Data: NOAA Office for Coastal Management, Sea Level Rise viewer services
(coast.noaa.gov/slr). A screening-level planning tool. Verify with a site visit.


