__MK__tabaqat · StrataFinancial Services
The Limit Ledger — Concentration & Exposure Analyzer

Which bucket is closest
to its own line?

Exposure buckets ranked by utilisation of the line that binds — breaches pinned to the top — beside a hero map that answers back. And the number nobody else reports: how much new business still fits before the line is crossed.

California reference implementation · 58 county buckets · 517 assertions green On-prem · no keyed provider · no runtime call to any public host
© 2026 Tabaqat · Built on Strata — sovereign geospatial applications. Reference book, balance sheet and appetite limits are GENERATED (seed 20260817) and illustrative — not any institution's.
The decision this drives

Whether to write the next loan in that bucket.

Approve it, price it up, push it to a different geography or sector, or stop. That decision is made weekly by a portfolio manager and ratified quarterly by a board risk committee. It is not a disclosure exercise and it is not a hazard question.

Which is why the app is ranked by utilisation of the binding line, never by size. The largest bucket is almost never the problem; the one at 96 % of its line is. Sorting by exposure puts the same county at the top of every reading ever taken and tells a portfolio manager nothing they did not already know.

Buyer: head of risk analytics Reads over the shoulder: CRO · portfolio manager · the supervisor-facing preparer
2the rank of the largest bucket in the shipped book — $1.113 bn of exposure, and not the reading that matters

Rank 1 holds $154.9 m and sits at 113.4 % of its board appetite line — over by 48 loans at that bucket's own median size.

Under a different denominator and a construction-and-land scope, rank 1 holds $53.7 m. Size never leads.

The finding that shaped the app

There is no Basel geographic concentration limit.

Large exposures is counterparty-only

The Basel LEX standard — reportable at 10 % of Tier 1, hard-limited at 25 % — governs one counterparty or a group of connected counterparties. Geography and sector are explicitly outside it.

Geography lives in Pillar 2

Concentration by geography, sector or product is assessed through the bank's own ICAAP and its supervisor's review — the risks not fully captured by charges that assume a diversified portfolio.

So the line is argued, not looked up

The binding line is one the bank wrote for itself and must defend. An argued number needs different things on screen than a looked-up one — which is the entire design brief.

The published brief named the standard as Basel geographic concentration. Correcting it did not invalidate the solution — it sharpened it.

Why the denominator is on screen at all times

Four regimes. Four denominators. All in force at once.

RegimeDenominatorThe numberIs it a limit?
Basel large exposures (LEX)Tier 1 capitalreportable ≥ 10 %; hard limit 25 %Yes — but counterparty-only
US interagency CRE guidance (2006)Total risk-based capitalC&D ≥ 100 %; total CRE ≥ 300 %No — a screening criterion
OCC Concentrations of Credit (2020)Tier 1 capital plus the ACLno threshold at allNo — a measurement convention
The board's own appetite statementoften % of total loans — not capital at allwhatever the board wrote, with an amber sub-limit under the red oneYes — the only limit the bank chose

The same bucket of the same book is legitimately 18 %, 24 % or 31 % depending only on which rule you divided by. A utilisation figure quoted without its denominator is not checkable, and a breach claimed without one is not defensible to an examiner.

So one named denominator is in force at a time, chosen in the header, printed beside every number and carried into every export. It is provenance, not navigation — the app never stages a debate about which reading is correct.

How that finding is rendered

Three kinds of line — and only one of them is per bucket.

Board appetite limit

On the card, per bucket. The only line written at bucket grain and the only limit the bank itself chose. The rank is computed on it, and the card names it as the binding line in words — never by colour alone.

Supervisory screening trigger

In the portfolio strip. C&D and total CRE against total risk-based capital, past the 100 % and 300 % criteria. Portfolio-level ratios: drawing one on a county would invent it.

Hard regulatory limit

A named absence. The strip reads "Basel large exposures — no geographic line exists", because the published brief invites the reader to expect one. Stated, rather than omitted.

breachutilisation ≥ the appetite line
watch≥ the amber sub-limit, < the line
under< the amber sub-limit — never called "safe"
no line setexposure, but no line written for it

Band edges come from the appetite record, never from a rule of thumb — each line carries its own amber sub-limit as a field. And no line set is never green: a bucket the board never wrote a line for is an unanswered question, not a compliant one. Every band pairs a colour with a glyph and a word.

The application, first paint

Everything needed to defend the number is on screen.

The Concentration & Exposure Analyzer at first paint: the ranked ledger on the left, the California choropleth on the right, the legend filtering by utilisation band, and the portfolio strip beneath.
Shipped build, 2026-08-17 — a browser screenshot taken by the automated driver, not a mock-up.
  • The denominator, in the header. Four choices, exactly one in force, printed beside every number.
  • A persistent notice bar. The generated book, the seed, the boundary vintage, the analytics-only scope — never the status line, which is transient.
  • The ledger, ranked by utilisation. Breaches pinned above the rank order; each card carries the band, the figure the rank is on, and headroom in loans.
  • The legend filters, and counts. Click hides a band, shift-click isolates, Esc clears — a real filter on the source, not a fade. Rows keep n of 58.
  • The unmatched KPI. Rows that failed to join to a boundary are reported, never dropped — the honest error bar on every figure above.
The number that is new

Headroom in units of new business.

Not "utilisation 113 %", and not "$17 m of remaining limit", but the number of loans of this bucket's own median size that still fit — attached to the named line that binds and the named denominator that produced it.

exposure $154.9 m ÷ denominator $4.647 bn = concentration 3.33 %
board appetite line 2.940 % · amber sub-limit 2.420 %
= utilisation 113.4 % of the line that binds
headroom over by 48 loans at a median of $386,943

Two ratios, both printed, never conflated. Concentration is exposure ÷ the denominator; utilisation is concentration ÷ the line. Every term is derived — change the denominator and the band, the rank order, both headroom figures, the KPIs and the legend counts all move in one frame, because they are one expression.

The ledger58 of 58 · ranked by utilisation
1CONTRA COSTA113.4 % ■ BREACH · board appetite — over by 48 loans
$154.9 m · 309 exposures · median $386,943 (generated)
2LOS ANGELES113.0 % ■ BREACH · board appetite — over by 253 loans
$1.113 bn · 1,661 exposures — the largest bucket, at rank 2
3SAN FRANCISCO109.2 % over by 13 loans · $103.0 m · 116 exposures
4SAN MATEO … 55 more · scrolls · no cap
4 in breach of 58  ·  7 on watch  ·  40 unmatched rows, $57.3 m
The rank rail, as shipped. A negative headroom is printed as a negative — rounding a breach to zero headroom would erase the only figure the reader came for.
The signature interaction

Bidirectional, or it does not ship.

A bucket adopted: the ledger card highlighted at rank 1, the map flown to Contra Costa with a selection halo, the bucket detail card filled, and the popup open.
Click the rank-1 card and the map flies to that county, holds a selection halo and opens its popup. Click a county on the map and the ledger scrolls that card into view and highlights it. A second click on either side releases.

The outbound half — row to map — is what every viewer in this shape ships. The inbound half is the one they skip, and without it the map is a picture rather than a partner.

  • The denominator — four choices, one in force; every number below it moves in one frame, and it deep-links.
  • The legend — filters the map and the ledger by band. It changes what is shown, not the reading.
  • Scope — sector and product compose one WHERE every widget follows, and it round-trips through a cold load.
52 behaviours specified and tested
Proof, not promises

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

517assertions green — 246 live · 170 offline · 101 in real headless Chrome
52behaviours specified, each mapped to the suite that exercises it
5.44worst informational contrast ratio, in both light and dark — the floor is 4.5
58of 58 county buckets ranked — no cap, no top-N, the whole geography on screen

The on-prem rehearsal is a test

With every public host blocked, the app boots, ranks all 58, paints, switches denominator and exports — and asks for nothing that was blocked. Asserted from the browser's own network log, not from reading the code.

The denominator is load-bearing

Switch to % of total risk-based capital on a construction-and-land scope and the rank reorders completely: a different county leads at 132.8 %, and the counts move to 2 in breach, 9 on watch, 14 with no line set.

The error bar is on screen

Unmatched rows are reported, never dropped. The published anchor says 1.21 % of California lending by amount belongs to no county — and averages 2.66× the matched mean, a skew the app states rather than smooths.

Reading the figures: the reporting geography and the industry classification are real, published and probed. The exposure book, the balance sheet and the appetite limits are GENERATED (seed 20260817) and illustrative — not any institution's — and labelled as such on every screen, in every popup and in every export.

Stated as boundaries, not caveats

What this application will not do.

  • An analytics layer, never a system of record. It does not compute regulatory capital, does not produce a Call Report figure, and does not decide a credit.
  • On-prem, behind the perimeter. No keyed provider and no external call it cannot make from inside a bank's network. Keyless basemaps; every public call at build time.
  • Read-only, end to end. No write path, no editing, and no marking a breach "remediated" — that needs a writable authenticated backend, and none is named.
  • Team-level views, not per-user entitlements. The perimeter and SSO are the access control.
  • Refresh, not streaming. A concentration ledger is an as-of artefact and shows its as-of in the header and in every export.
  • No hazard layer, at all. The thing on the other side of the exposure here is an appetite line, not a flood or fire polygon.
  • It does not compute Basel LEX. That needs a counterparty-group graph this app does not have and will not build. It reports bucket-level concentration, and says so.
  • English only, and generated demo data. One language, no RTL surface. Public data is never synthesized — a lane with no source renders empty with its citation.

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 extract.
One appetite statement.

Your exposure book at bucket grain, your appetite statement with its amber sub-limits and effective dates, your balance-sheet figures for the denominators, and an owner for your sector mapping. Two weeks, and this ledger reads your portfolio instead of a generated one.

Swappable by configuration, not by code: the reporting geography and the industry code list. No threshold, label, currency or denominator is hardcoded to a US rule — the three kinds of line are a typology the app renders, not a list of US numbers it ships.

tabaqat.net → Solutions → Financial Services info@tabaqat.net
© 2026 Tabaqat · Built on Strata. Reference implementation over California counties; book, balance sheet and limits GENERATED (seed 20260817). Analytics only — not a system of record, and not a regulatory capital calculation.
1 / 11