__MK__tabaqat · StrataFinancial Services
The Return-Period Ladder — Asset-Level Exposure Scoring

At which published level
does this asset change band?

A portfolio scored against the severity levels a jurisdiction actually publishes — one peril at a time, on that peril's own ladder. And the number nobody else reports: the assets for which no published level exists at all.

California reference implementation · 2,000 positions · 426 assertions green On-prem · no keyed provider · every hazard value baked inside the perimeter
© 2026 Tabaqat · Built on Strata — sovereign geospatial applications. A screening indicator over published mapping, not a catastrophe model. The asset register is GENERATED (seed 20260816) and illustrative — not any institution's book.
The decision this drives

Which assets get a survey, a repricing, or an exclusion.

Every credit and climate-risk policy is written at one severity level — almost always "1-in-100". That is a statement about one line on one map. This app names the assets that sit close enough to that line for the choice of line to be the whole answer.

The buyer of record is the lender, not the insurer: the person who signs the physical-risk methodology note under IFRS S2 ¶29(c) — the amount and percentage of assets vulnerable to physical risk — and who must disclose, under ¶22 and ¶25, the inputs, the assumptions and the significant areas of uncertainty. A screening output that cannot name the map, the panel date and the severity level behind each classification is not evidence for those paragraphs.

Buyer: head of climate risk, a bank Reads over the shoulder: credit risk · the disclosure preparer · the supervisor
27assets outside the FEMA 1 % floodplain — the line almost every portfolio screen is drawn at — and inside California's 200-year outline, where a statutory urban level of flood protection applies

Of 41 assets inside the state's 200-year outline, 27 are invisible to a 1 % screen.

That crossing exists only because California publishes a rung between the two FEMA levels — and because SB 5 made it a legal threshold rather than a modelling choice.

The finding that shaped the app

The perils do not share a severity axis.

Flood steps three times

1 % annual chance → 200-year → 0.2 % annual chance. Three published levels, and a band change between them is a published fact the state drew — an asset is inside a polygon or it is not.

Earthquake steps twice

475-year → 2,475-year, read off a continuous ground-motion grid. A band change there depends on class breaks this app chose, so every quake band carries its break set and the raw value beside the degree.

Wildfire does not step at all

Fire Hazard Severity Zones are an ordinal hazard class under PRC §4201–4204. No annual probability, no recurrence interval. The ladder has one rung and cannot be stepped.

There is no year at which all three perils have something to say. A combined score "at 1-in-100" is therefore a fiction — so the app scores per peril and refuses to combine, structurally, not by a rule someone has to remember.

Rendered as three ladders, each owning its rungs

The control is the ladder — and it is the primary control on the page.

Flood · 3 rungs
1 %annual chance · 100-year
FEMA / Cal OES DFIRM panels
200urban level of flood protection (SB 5)
USACE Comprehensive Study · 2002
0.2 %annual chance · 500-year
FEMA / Cal OES DFIRM panels
A polygon. Inside or outside — the state drew the line.
Earthquake · 2 rungs
47510 % in 50 years · MMI from PGA
CGS Map Sheet 48 · 2025, on the USGS 2023 NSHM
2,4752 % in 50 years · MMI from PGA
the same grid, five times further out
A continuous field. The degree is published; the floor is ours, and the card prints the raw value beside it.
Wildfire · 1 rung
NO PUBLISHED RECURRENCE
CAL FIRE / OSFM Fire Hazard Severity Zones
SRA 2023-09-29 ∪ LRA 2025-03-24
Both chevrons disabled. The absence of a ladder, shown as a ladder that cannot move — which no caption achieves and no reader scrolls past.

Step a rung and the portfolio re-scores in place: the map reclasses, the KPIs move, the distribution shifts, the ranked list reorders, and a band-change counter names the assets whose classification moved. / step from anywhere on the page; the chevrons disable at the ends of a ladder rather than wrapping.

Ten products read, page by page

The gap is not "nobody publishes a return period."
Two vendors do.

ProductWhat it emitsReturn period exposed?
Jupiter Intelligence — ClimateScore Globalasset-level metrics, seven hazards, IPCC scenarios to 2100Yes — its own 2/5/10/20/50/100, extended to 200/500/1,000 for flood & wind
Moody's / RMS — Climate on Demand Prohazard and financial-impact scores, RCP and NGFS scenariosYes — its own damage ratios at chosen exceedance probabilities
XDI — Climate Risk EnginesVAR% / MVAR% — technical premium as a share of replacement costNo — the opposite: severity is integrated away into an annualized figure
Climate X · First Street · HazardHub · ZestyAIloss metrics, a 1–10 Flood Factor, A–F letter grades, annual probabilitiesNo, or opaque at the surface the buyer sees
This appa band per asset per published rung, with the map and vintage that drew itThe jurisdiction's own rungs — including the ones with nothing on them

Procurement, not capability

Every product above is delivered as SaaS or an API. Using one means transmitting the asset register — where the assets are and what they are worth — outside the institution. None publicly documents an in-perimeter deployment.

Harmonisation, which is the number

Every vendor that steps return periods steps its own harmonised grid. That harmonisation is a model output — and under IFRS S2 ¶22/¶25 it is exactly what the preparer must disclose and defend. A model grid is not an answer to a question about a panel.

The second reason it refuses to combine — measured, not argued

The two ladders are not equally informative.

9.2 % of the register changes band on the flood ladder. 94.2 % changes band on the earthquake ladder — and 1,828 of those 1,883 step exactly one MMI degree.

A band-change count is therefore a discriminator for flood and noise for earthquake. So the earthquake rungs carry a permanent line saying that near-total movement is an expected property of reading a continuous field five times further out — rather than letting the reader mistake it for a finding.

This is the second, independent reason the app emits no combined score. The first is that the ladders share no rung. The second is that even where both speak, they are not saying things of the same weight.

No combined multi-peril score, at any rung Not a limitation to be lifted later
9.2 %flood — 184 of 2,000 assets, $3.17 bn, change band between the 1 % and the 0.2 % annual chance. A real discriminator: these are the assets a policy written at "1-in-100" is silent about.
94.2 %earthquake — 1,883 of 2,000 change MMI band between 475 and 2,475 years. Almost everything moves, so the count discriminates nothing, and the rung says so.
Both figures are derived from state on every render, from this build's register (seed 20260816) — never stored as constants, and never copied forward from the study.
The application, first paint

Every band names the map behind it.

Asset-Level Exposure Scoring at first paint: peril tabs, the rung ladder at the 1 % annual chance, a score rail with three KPIs, the California map classed by band, the filtering legend, and a ranked table naming the map and vintage behind every row.
Shipped build, 2026-08-20 — a browser screenshot taken by the automated driver, not a mock-up.
  • The rung, with its authority and vintage. On screen always: 1 % annual chance · 100-year · FEMA / Cal OES DFIRM panels.
  • A persistent notice bar. Screening indicator · no loss estimated · the GENERATED register with its seed · no combined score — never the status line, which is transient.
  • Three KPIs per rung, each with a count, a share of the register and a value. Clicking one isolates the population it counts.
  • The legend filters, and counts. Click hides a class, shift-click isolates, Esc clears — a real map filter, never a fade. Rows keep n of N.
  • The ranked table carries provenance — map behind the band, vintage, county, value, and GENERATED — seed 20260816 on every row.
The number that is new

Counts about what the jurisdiction published — including its silences.

register 2,000 positions · $38.719 bn
= exactly 0.5 % of California's published building exposure
$7,743,807,739,479 across 9,106 FEMA NRI tracts

band movers, 1 % → 0.2 %  184 (9.2 %) · $3.17 bn
inside the 200-year outline  41 — of which 27 outside the 1 % SFHA
no published wildfire recurrence  2,000 (100 %)

The silence is reported as a count, not filled. Every benchmark closes that gap by modelling it. Reporting "no published level exists here" as a first-class number, with its citation, is the honest move — and the one a disclosure preparer can cite under ¶22/¶25, which require uncertainty to be disclosed, not resolved.

Unscorable is never low. It is hatched, drawn above the low band in the legend, and decomposed into its three causes — because only one of the three is an authoritative statement.

Flood unscorable, decomposed1,588 of 2,000 · $31.9 bn
No polygon on either surface — 1,397Not a measurement of "unmapped": these surfaces answer is there a polygon here, not is there a map here. Labelled on screen as an upper bound on silence.68.4 %
Zone D — published as un-analysed — 150The one authoritative lane: FEMA states that this ground was not analysed. The only silence the app can defend as a finding.7.5 %
State polygon, not classifiable — 41Inside the 200-year outline, which carries no zone code — so it cannot be placed on the FEMA ladder at all.2.1 %
Three different silences, and the app refuses to add them into one number without saying which is which. The layer that would settle the largest lane sits behind a host that resets TLS — so the app states the limit rather than estimating past it.
The signature interaction

Step the rung, and everything re-scores in place.

The 200-year rung: the ladder reads 200-year, urban level of flood protection (SB 5), USACE Comprehensive Study via CA GIO, 2002, SAC–SJ Valley only. The map has flown to the Sacramento–San Joaquin Valley and the KPIs read 41 inside, 505 outside within the mapped valley, and 1,454 with no 200-year map here.
The 200-year rung flies to the Sacramento–San Joaquin Valley — its only extent — and prints no 200-year map here for everything outside it. Never low.

The rung is the primary control; selection is the second loop. Click an asset — on the map or in the ranked table — and its decomposition card fills across every peril and every rung at once: the published class, the layer that drew it, that layer's vintage, and the unscorable perils named rather than scored.

  • Bidirectional. Row → the map flies and opens the popup; map click → the row highlights and scrolls into view; a second click on either side releases.
  • A band-change count needs a declared comparison — so the 200-year rung declares itself not comparable instead of printing a false number.
  • A deep link round-trips peril, rung, band scope, selection and theme. The CSV export carries the peril, the rung, the map, its vintage and the provenance.
58 behaviours specified and tested
Proof, not promises

Built, driven and measured — 2026-08-20.

426assertions green — 196 live · 124 offline · 106 in real headless Chrome
58behaviours specified, each mapped to the suite that exercises it
5.90worst informational contrast ratio, in both modes — the floor is 4.5, and the gate exits non-zero below it
2,000of 2,000 assets scored at every rung — no cap, no top-N, nothing truncated

The ring gate — one ring array, three different answers

The state's 200-year outline is 2 features, 1,247 rings — 183 exterior and 1,064 holes. Esri does not guarantee that a hole follows its own exterior in the array.

ReadingAssets inside
Union every ring as its own polygon45
Parent each hole to the most recent exterior42
Even-odd across all rings, orientation-agnostic41 ✓

Only the last matches the server feature-for-feature. The build gate caught it by consequence, not by inspection — it failed on exactly one asset out of 2,000, 106 m from the nearest edge, and refused to continue.

The on-prem constraint is a security finding

Querying the public hazard service would send each asset's coordinates outside the perimeter, one request at a time. Every seismic value is baked at build time from the staged grid instead.

Provenance is declared, never derived

Computing the source column by stripping _band silently printed "map behind the band: Very High" on the one peril whose whole point is that it has none. Three assertions now forbid it.

Reading the figures: the hazard mapping, the tract frame and the classifications are real, published and probed. The asset register is GENERATED (seed 20260816) — derived from published figures, never from published geometry, filtered so it cannot attach to a real feature, and labelled on every screen, in every popup and in every export row.

Stated as boundaries, not caveats

What this application will not do.

  • A screening indicator, never a catastrophe model. No loss, no damage ratio, no premium, no probability of default, and no verdict about any property.
  • No combined multi-peril score, at any rung. Not a limitation to be lifted later — the ladders share no rung and are not equally informative.
  • An analytics layer, never a system of record. It coexists with whatever risk and GIS stack the institution runs; no output is styled as reviewed, approved or filed.
  • Read-only, end to end. No write path anywhere; nothing in this app edits a feature.
  • Refresh, not streaming. These layers republish on a publication cycle measured in months, so the app prints its vintage rather than implying freshness.
  • Team-level views, not per-user entitlements. The perimeter and SSO are the access control.
  • English only, LTR throughout. No language switcher, no Arabic surface, no RTL — by decision, recorded rather than rediscovered.
  • California is where the data is, not where the buyer is. Porting is a re-sourcing exercise, not a re-configuration — the rungs themselves change.

Every one of these is written into the delivered application's own README. A tool that hides its edges costs you the project it cannot finish.

Point it at your book

One register.
Your jurisdiction's own rungs.

Your asset register with a location, a value and a valuation date; the severity levels your regulator and your state actually publish; and an owner for the class breaks on any continuous surface. The ladders get re-sourced, and this workbench scores your portfolio instead of a generated one.

It runs where your data already is. On-prem behind the perimeter and SSO, keyless OSM-derived basemaps, every hazard value staged and baked inside the network — because sending an asset register out to be scored is a procurement gate, not a technical detail.

tabaqat.net → Solutions → Financial Services info@tabaqat.net
© 2026 Tabaqat · Built on Strata. Reference implementation over California's published hazard mapping, probed 2026-08-20; asset register GENERATED (seed 20260816). A screening indicator over published mapping — not a catastrophe model, and not a system of record.
1 / 12