UMR & Funding Dashboard
Client TRS book vs London hedge counterparty: initial margin received from clients (per $50mm UMR threshold), IM posted on the hedge, net IM funding gap, schedule-based IM estimate, and MVA-style funding cost at SOFR + spread.
description and examples (PDF) · Full documentation (schedule IM proxy, SIMM industry context, proprietary SaiMM equity-delta panel below when batch data is present).
- Load a portfolio — generate a synthetic book or paste your own CSV below.
- Review the margin summary — client IM received vs hedge IM posted, funding gap, and SaiMM engine output.
- Click a netting set bar (Posted IM chart, bottom right) to see its threshold gauge against the $50M UMR cap.
- Adjust funding assumptions — change SOFR, spread, trade life, or discount factor in MVA inputs to see costs update live.
Portfolio
S&P 500 (SPY) — 30 names
Scale 1–10: 1 = very concentrated, 10 = highly diversified.
Generate loads lines across four notional clients (NS_CLIENT_1…NS_CLIENT_4) in round-robin — four netting sets, same as four documented counterparties.
SaiMM (equity delta)
LiveClick a netting set to filter the Client TRS schedule and name-level tables to that client, and to show intra- / across-bucket SaiMM math for that netting set. Click the same row again or use All netting sets to show the full Client TRS list across clients. Same engine scope as a CSA margin portfolio (one IM per netting set).
| Netting set | LMV | SMV | GMV | SaiMM IM | Schedule IM | Sched − SaiMM | Status | Util % | Headroom | VaR 99 | CVaR 99 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Client_A | $35.00M | $0 | $35.00M | $9.45M (27.0%) | $5.25M (15.0%) | $-4.20M | OK | 18.9% | $40.55M | $2.78M | $3.47M |
| Client_B | $28.00M | $0 | $28.00M | $7.56M (27.0%) | $4.20M (15.0%) | $-3.36M | OK | 15.1% | $42.44M | $2.25M | $2.85M |
| Client_C | $0 | $85.00M | $85.00M | $17.00M (20.0%) | $8.50M (10.0%) | $-8.50M | OK | 34.0% | $33.00M | $7.35M | $9.99M |
| Client_D | $22.00M | $0 | $22.00M | $5.94M (27.0%) | $3.30M (15.0%) | $-2.64M | OK | 11.9% | $44.06M | $1.83M | $2.29M |
VaR/CVaR: 3-day 99% from the shared equity VaR engine; positions netted by underlier within the netting set. Percentages are IM divided by GMV (long + short absolute notionals).
By name (netted) — All netting sets
Dollar delta and risk weights feed SaiMM; IM for this netting set is from the bucket aggregation above (not the sum of rows). Schedule IM is the 15%/10% index proxy per name.
| Ticker | NS | Bucket | Δ USD | RW | Weighted Δ | Sched IM |
|---|---|---|---|---|---|---|
| SPY | Client_C | 11 | -$85.00M | 20.0% | -$17.00M | $8.50M |
| AAPL | Client_A | 4 | $35.00M | 27.0% | $9.45M | $5.25M |
| MSFT | Client_B | 4 | $28.00M | 27.0% | $7.56M | $4.20M |
| NVDA | Client_D | 4 | $22.00M | 27.0% | $5.94M | $3.30M |
Schedule IM (delta proxy) — All netting sets
Same definition as the Schedule IM column in the netting-set table: per netted name, |Δ USD| × SF (10% index names, 15% otherwise), summed across all netting sets. When a single netting set is selected, cumulative should match that netting set's Schedule IM column total.
| Ticker | |Δ USD| | SF | Line IM | Cum. |
|---|---|---|---|---|
| AAPL | $35.00M | 15.0% | $5.25M | $5.25M |
| MSFT | $28.00M | 15.0% | $4.20M | $9.45M |
| NVDA | $22.00M | 15.0% | $3.30M | $12.75M |
| SPY | $85.00M | 10.0% | $8.50M | $21.25M |
TRS schedule (row formula) & §23.154 note — All netting sets
UMR client table uses |notional| × supervisory factor × maturity factor, with a fixed 0.6 factor on gross per-underlier IM when both long and short legs exist. This total often differs from the delta-proxy Schedule IM used for SaiMM alignment.
| Underlier | Gross | Netted | L/S |
|---|---|---|---|
| AAPL | $5.25M | $5.25M | L |
| MSFT | $4.20M | $4.20M | L |
| SPY | $8.50M | $8.50M | S |
| NVDA | $3.30M | $3.30M | L |
Versus 17 CFR §23.154(c) (table-based method)
CFTC rule text (e.g. 17 CFR §23.154) requires: (c)(1) gross IM from the standardized schedule (equity row is 15% of notional exposure), and (c)(2) portfolio IM = 0.4×Gross IM + 0.6×NGR×Gross IM, where the net-to-gross ratio (NGR) is based on net vs gross current replacement cost under the eligible master netting agreement—not a fixed 60% of per-name gross.
The schedule IM view here uses a 10% factor for a small index list (not in the CFTC equity row), optional maturity scaling on TRS rows, and a simplified netting shortcut instead of the statutory NGR. For compliance work, use the regulation and your documented methodology—not these proxies alone.
Bucket/risk weights come from the merged CSV + all Optimizer index constituents (run npm run build:saimm-buckets after changing ETFs). Tickers outside that set use bucket 12 (residual).
Client TRS positions
| Netting set | Underlier | Notional | Dir | MtM | VM | IM posted | Utilization | Sched. IM | Δ to cap |
|---|---|---|---|---|---|---|---|---|---|
| Client_C | SPY | $85,000,000 | short | $1,200,000 | $1,200,000 | $8,500,000 | 17% | $8,500,000 | $41,500,000 |
| Client_A | AAPL | $35,000,000 | long | $420,000 | $420,000 | $5,250,000 | 11% | $5,250,000 | $44,750,000 |
| Client_B | MSFT | $28,000,000 | long | -$180,000 | $0 | $4,200,000 | 8% | $4,200,000 | $45,800,000 |
| Client_D | NVDA | $22,000,000 | long | $3,100,000 | $3,100,000 | $3,300,000 | 7% | $3,300,000 | $46,700,000 |
Hedge book — London Bank
- BasketMulti-name equity basket
- Notional$170,000,000
- Directionmixed
- VM posted$4,956,000
- IM posted$23,800,000
Illustrative: net IM gap × all-in rate (matches summary annual funding).
Funding waterfall (IM)
Client IM received + net funding gap = hedge IM posted.
MVA & funding inputs
Adjust any input — all outputs update live.
Approx. spread on the client book needed to cover annual IM funding drag at current gaps.
Posted IM by netting set
IM aggregated per netting set (USD millions). Cap = $50M. Click a bar to see its threshold gauge.
$8.5M
$5.3M
$4.2M
$3.3M
The client table uses a schedule-based IM proxy (15% single-name / 10% index with per-name netting). A netting set is one documented counterparty (CSA); this screen allows up to four. Each CSV line is one TRS row; optional Client/NettingSet groups lines per client. Generate splits lines round-robin across four notional clients. Hedge IM scales for a funding-gap illustration. SaiMM below recomputes from the loaded portfolio (Python batch uses the same engine). OpenGamma SIMM reference figures come from the last run_daily --write-web snapshot, not from SaiMM.