__MK__tabaqat · StrataFinancial Services
The Noise Floor — Climate Scenario Explorer

At which horizon do two pathways
stop agreeing for this portfolio?

One geography drawn twice, a divider between the futures, and a fixed register of assets underneath both. Plus the number nobody else publishes: whether that disagreement is bigger than the disagreement between the models inside either pathway.

California reference implementation · 10,667 cells · 1,996 assets · 712 assertions green On-prem · keyless basemaps · the whole substrate read at build time
© 2026 Tabaqat · Built on Strata — sovereign geospatial applications. The scenario data is real and published; the asset register is SYNTHETIC (seed 20260818) and illustrative — not any institution's. Modelled scenarios, not forecasts.
The decision this drives

Whether the scenario choice is load-bearing — or presentational.

IFRS S2 ¶22(b) requires a preparer to disclose which scenarios were used, their sources, and the time horizons considered — and it deliberately does not prescribe those horizons. It requires only that the timeframes chosen reflect when climate-related risks are expected to become financially material.

That sentence is the product requirement. Choosing a horizon is a disclosure obligation, and nothing in the toolchain helps a preparer choose one on evidence. What leaves this app is an input — a defended horizon and a movement count with their provenance intact — not a filing, not a board pack, not a scored register.

Buyer: the chief risk officer Beside them: the sustainability lead · the disclosure author
6of the largest US banks hit this exact problem in the Federal Reserve's Pilot Climate Scenario Analysis Exercise — and nobody measured it

The report records that participants noted the "limited differentiation between the scenarios over the 10-year horizon."

The physical module fixed every participant at a single year — 2050 — and stepped severity instead. The exercise could not have produced the year at which the pathways begin to separate, and no participant reports one.

The finding that reshaped the build

The substrate the brief named does not ship. The app says so on screen.

NGFS has no machine route

Every anonymous path to the scenario data returns the same 1,847-byte SPA shell — a soft 404 served at HTTP 200. And the physical-risk basis of Phase V is retracted from Nature. A preparer told to disclose against NGFS needs to know that.

The served California cells carry zero SSP

Of 935 published series: 305 RCP 4.5, 359 RCP 8.5, 231 historical — and no SSP at all. The CMIP6 downscaling exists, but as cloud object stores whose per-pathway ensembles are 33 / 62 / 34 model-members, a different model missing from each.

So it ships on what answered

CMIP5 / LOCA at 0.0625° ≈ 6 km, RCP 4.5 against RCP 8.5 — served as cells, keyless, CORS-open, bulk-downloadable. The family is printed in the persistent notice, and the export reads "no NGFS pathway is rendered here" with its reason.

The published brief specified "NGFS Phase 5 scenario data + IPCC CMIP6 SSP layers." Neither half survived the probe. Stating that is part of the product — not a caveat appended to it.

What the market already gives away free

The divider is table stakes. Selling it as the innovation would be selling what a supervisor already has.

Free toolWhat it drawsCompares two pathways side by side?Holds your register?
NGFS Climate Impact ExplorerISIMIP3b 0.5°, national and subnational, with model-agreement mapsYes — a headline feature, across warming levels and emissions scenariosNo — California is one polygon
IPCC WGI AR6 Interactive AtlasCMIP5, CMIP6 and CORDEX over reference regionsYes — scenario and warming-level selection over mapsNo — reference regions
Probable FuturesCORDEX-CORE downscaling, 10–50 km cellsYes — a literal swipe divider between two model outputsNo
Cal-AdaptCalifornia's own platform — the 3 km CMIP6 downscaling and its SSPsYes, at the scenario levelNo portfolio in it
This buildThe same cells, drawn as cells, with the bank's own assets on both sidesYes — with one break set and one renderer object, or it is not a comparisonYes — and it counts them

Stepping horizons is not novel either — Jupiter steps 5-year increments to 2100, Munich Re publishes 2030 / 2040 / 2050 / 2100, Moody's answers at any year between 2020 and 2100. Offering every horizon is not the same as naming the one that matters for this book.

And every commercial product read 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. That is the procurement gate, and it is why an in-perimeter comparison app is buyable at all.

The number that is new — and it is not the divider

The gap, as a share of the spread.

Two pathways disagree by some number of degrees. The 32 models inside a single pathway also disagree with each other. Divide the first by the second and you have the only quantity that turns a class-movement count into evidence — and nothing read in the market study publishes it.

pathway gap 0.522 °C ÷ 32-model spread 3.447 °C
= 15.1 % of the spread, at horizon 2050
cells where the gap exceeds the spread: 0 of 10,667
at every one of twelve horizons, for both variables tested

A design that showed class movements without the spread would be reporting model disagreement as a scenario result. So the noise-floor gauge is the most important widget on the page, and the rail always prints the continuous gap in °C beside the count.

100%
15.1 %
Below the noise floor
At 100 % the two pathways would differ by as much as the models inside one pathway disagree with each other. Below it, the difference between the pathways is not distinguishable from model spread.
Across 1,996 assets, RCP 4.5 and RCP 8.5 already place 86 of them (4.31 %) in different temperature classes at 2030 — the first horizon this app offers — rising to 543 (27.20 %) by 2085. But at no horizon does the difference between the two pathways exceed the disagreement between the 32 models inside either pathway. It reaches 5.4 % of that spread at 2030 and 48.4 % at 2085, and never crosses it in a single one of the 10,667 California cells. 958 assets (48.0 %) never change class at all. The app's own headline sentence, derived from state at every load and carried verbatim into the export — never asserted.
The application, first paint

One geography, drawn twice, with the portfolio underneath both.

The Climate Scenario Explorer at first paint: California drawn as LOCA cells under RCP 4.5 to the left of a vertical divider and RCP 8.5 to the right, the horizon rail across the header set to 2050, the synthetic asset register drawn on both sides, the shared five-class viridis legend and a trajectory chart beneath, and the reading rail at right carrying the divergence counts, a noise-floor gauge at 15.1 per cent and the provenance block.
Shipped build, 2026-08-23 — a browser screenshot taken by the automated driver, not a mock-up.
  • One break set, both panes. A comparison whose sides are classified independently is not a comparison, so the renderer object is built once and both layers reference it.
  • The assets are ONE layer drawn on both sides. The divider hides nothing about the portfolio; only the cells beneath it change. Movers carry a ring — a stroke, not a hue, so it survives dark mode and a greyscale print.
  • Neither pathway gets a colour of its own. One shared ramp, identical in both themes. Nothing is labelled mitigated, unmitigated or avoided.
  • Drawn as cells, never smoothed. 0.0625° ≈ 6 km ≈ 3,600 hectares — a district, not a building. Every per-asset result reads "this asset falls in a cell where…"
  • The notice bar is seeded in the markup, before any data is read, and grows once the model is in hand. Progress never overwrites a caveat.
viridis — perceptually uniform, colour-blind safe, and carrying no good/bad reading
The signature interaction

Step the horizon, drag the divider — and the rail says whether it means anything.

An asset adopted at horizon 2050: both panes flown to the same cell in San Mateo County with movement rings visible on nearby assets, a popup open reading a pathway gap of 0.431 degrees against a 32-model spread of 3.231 and a gap-over-spread of 13.3 per cent, the movers table at right scrolled to that row and highlighted, and the this-cell detail card filled beneath it.
Click a movers row and both panes fly to that record, hold a selection halo and open its popup; click again and it releases. Click a cell and the reading is phrased "falls in a cell where…" — never as a per-asset verdict.

The loop in one sentence: the cells change under a fixed set of assets, and the rail names how many of them changed class — and whether that change is bigger than the models disagree with each other.

  • Extent sync is bidirectional — pan either pane and the other follows. One-way is a bug.
  • The legend filters both panes in the same frame — a real filter on the source, not a fade. It changes what is shown, not the reading.
  • A KPI selects the population it counts — including never separate, which reports as a count with no rows.
  • The deep link round-trips horizon, divider, hidden classes, selection and theme, on a cold load.
43 behaviours wired · 42 driven by a named suite
The trap that decided the arithmetic

On single model-years, the pathways appear to re-converge.

Read one annual raster per horizon and the divergence curve is not monotonic: at 2045 fewer cells differ (4.65 %) than at 2030 (7.00 %). That is interannual variability, not a climate. A horizon stepper built on single years reports that the pathways converge in the 2040s — which is false, and it looks exactly like a finding.

So the app steps 30-year centred climatological windows instead, and the same measurement rises monotonically at every step. The window is printed beside the horizon, always.

A second sensitivity, stated on screen rather than smoothed. The movement count is break-sensitive and can fall while the gap rises: on extreme-heat days the gap climbs monotonically from 1.57 to 25.13 days a year while the moved-cell count runs 30.55 % → 24.97 % → 24.63 % → 31.44 %, because both pathways can cross a shared break together. The rail therefore always prints the continuous gap beside the count, and the legend always prints the break set. A movement count without its breaks is not a reproducible number.

HorizonWindowGap °CSpread °CGap / spreadCells moved
20302016–20450.1703.175
5.4 %
368
20352021–20500.2203.213
6.9 %
388
20402026–20550.2913.211
9.1 %
498
20452031–20600.3903.305
11.8 %
655
20502036–20650.5223.447
15.1 %
875
20552041–20700.6743.618
18.6 %
1,191
20602046–20750.8473.709
22.8 %
1,479
20652051–20801.0343.767
27.5 %
1,789
20702056–20851.2443.894
31.9 %
2,150
20752061–20901.4763.885
38.0 %
2,550
20802066–20951.6883.872
43.6 %
2,929
20852071–20991.8843.893
48.4 %
3,299

10,667 California cells · tasmax · 32-model ensemble. The last window is truncated to 29 years — the published series ends 2099, and the app says so on screen and in the export.

What leaves the app

One sentence and one figure, with their conditions attached.

The comparative-reading export sheet: the headline sentence at the top, a table of the current horizon's figures including pathway gap, 32-model spread and gap as a share of the spread marked below the noise floor, then every horizon from 2030 to 2085 with its window, gap, spread, ratio, cells moved, assets moved and exposure — and a print or save-as-PDF control.
The export carries the pathway names, the release vintage, the substrate and its cell size, the climatological window, the ensemble, the break set and the register seed — so a disclosure author can quote it without stripping it of its conditions.

The CRO does not act on asset #1,412 changing band. They act on 171 assets change class at 2050, carrying $92.7 m of $1.059 bn — and the pathway gap is 15.1 % of the model spread. Per-asset detail exists to make the count auditable, never to issue a verdict.

  • Synthetic and measured are never summed. 171 of 1,996 assets and 875 of 10,667 cells (measured) are two readings on the page and two in the export.
  • The withheld variable is visible. The threshold defining an "extreme heat day" is not retrievable from any live URL, so it appears in the selector as a disabled entry naming that reason. A variable whose definition cannot be cited cannot carry a disclosure figure.
  • The open licence item is printed. Redistribution rights for the classic LOCA raster API are not published; the notice bar and the export both say so.
Proof, not promises

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

712assertions green — 243 live · 322 offline · 147 in real headless Chrome
43behaviours wired, each mapped to the suite that exercises it
5.38worst informational contrast ratio, in both light and dark — the floor is 4.5
504GeoTIFFs ≈ 42 MB read at build time — nothing is fetched at runtime

The seed reproduces, row for row

The offline suite re-runs the register generator from the cached anchor and asserts it reproduces the shipped file — 0 differing of 1,996. The algorithm (mulberry32) is named in the notice bar, the provenance strip and every export, because a seed without its generator is not reproducible.

Three defects only a screenshot could find

The pathway-B label sat under the zoom cluster; two drawer spans ran together as "CARTO Positronlight"; the resize grip scrolled away with the rail's content. Every non-visual suite was green through all three. Each now carries a geometry assertion so it cannot regress.

The notice bar was throttled and watched

Under a ~500 KB/s link the driver samples every loading frame and asserts the bar carried its lasting statements throughout — not forecasts, register SYNTHETIC, no NGFS pathway is rendered. A progress message may never displace a caveat.

Reading the figures: the scenario substrate, the reporting geography and the HMDA anchor are real, published and probed. The asset register is SYNTHETIC (seed 20260818, mulberry32) — 1,996 positions across California's 58 counties in proportion to published 2023 origination counts, carrying no LTV and no valuation — and labelled as such on every screen, in every popup and in every export. The counties sum to 99.54 % of the published statewide count; the residual is recorded, not hidden.

Stated as boundaries, not caveats

What this application will not do.

  • An analytics layer, never a system of record. Its output is an input to a disclosure someone else writes. No filing, no board pack, no scored register.
  • No per-asset verdict. No combined multi-pathway score, no return-period control, no present-day hazard zone. It reports band membership and band movement; it does not price, rate, underwrite or grade.
  • The cell is a district, not a building. ≈ 6 km, roughly 3,600 hectares. Property-level numbers are a downscaling project with their own provenance.
  • Modelled scenarios, not forecasts. Persistent on screen and in every export — never a status-line note.
  • On-prem, read-only, keyless. No write path, no keyed provider, and no external call it cannot make from inside a bank's network. Team-level views — per-user entitlements need the auth release.
  • Refresh, not streaming. Scenario vintages move on a multi-year cycle; the app states its vintage rather than implying freshness.
  • The CMIP6 upgrade is specified and costed — and not built. LOCA2-Hybrid at 3 km is a 4× gain in cell area, but the stores need a Python ingest and the ensembles must first be reduced to a common model set that is then printed.
  • English only, and California-verified. No Arabic surface, no RTL. Porting to Maryland or the GCC is a re-sourcing exercise, not a re-configuration — the cell goes to 25 or 50 km and every per-asset sentence changes with it.

Every one of these is written into the delivered application's own README. And SB 261 — the statute that names TCFD and IFRS S2 — is enjoined as of 18 November 2025, with CARB not enforcing the 1 January 2026 date. The statute stands; enforcement is paused. Both halves are true, and a deck that states only one of them is wrong on some date.

Point it at your register

One extract.
Two pathways you have to defend.

Your asset register with coordinates and exposure, the pathway pair your disclosure names, and the horizons your strategy actually runs to. The comparison then reads your book instead of a generated one — inside your perimeter, with nothing transmitted out.

Swappable by configuration: the variable, the break set, the horizon axis, the climatological window and the reporting geography. Not swappable by configuration: the substrate — a different jurisdiction is a re-sourcing exercise, and the app will print the coarser cell rather than imply a precision it does not have.

tabaqat.net → Solutions → Financial Services info@tabaqat.net
© 2026 Tabaqat · Built on Strata. Reference implementation over California — CMIP5 / LOCA at 6 km, RCP 4.5 vs RCP 8.5, production 2016-04-02; asset register SYNTHETIC (seed 20260818). Modelled scenarios, not forecasts. Analytics only — not a system of record, and not a disclosure.
1 / 12