Oneiros Vision Risk Terminal

The User Guide

Oneiros Vision measures. It does not recommend, and nothing in the terminal should be narrated as advice.

This guide covers what you do in the terminal, screen by screen: signing in, every panel on the Regime Monitor and the Portfolio Risk Desk, the workflows a portfolio manager runs, account and API access, and a short methodology reference. For the derivations behind the engine, see the Architecture Whitepaper.

Which terminal this describes. This guide documents the OV Risk Terminal at terminal.oneirosvision.com, screen by screen, in the order the screens appear. Where the guide and the screen in front of you differ, the screen is the authority, and the difference is a fault worth reporting to contact@oneirosvision.com.

1. Your first session

1.1 Signing in

Sign-in is at /login and takes two or three steps. Two factors are mandatory; there is no way to opt out. The sign-in, sign-up and recovery pages link back to oneirosvision.com above the heading, and to the Terms & Conditions, the Privacy Notice and contact@oneirosvision.com below the form; the two documents open in a new tab, so a half-filled form is not lost.

Invited to a firm's account? The invitation e-mail carries your username and a code. Open its link, enter the address it was sent to, the code and a password of your own, then sign in here; the code works for three days, and after that Forgot your password or username? sends a new one. You set up the second factor at that first sign-in, as in Step 2b.

Step 1 — username and password. Enter both and press Authenticate.

What can happen here:

  • The account is locked. Five failed passwords lock it. Use Forgot your password or username? — completing a reset clears the lock. An administrator can also clear it — ask your administrator.
  • An error about reaching the engine. The terminal could not contact the backend. That is an outage, not a credential problem.
  • You land on /pricing after the code step. The subscription has lapsed. The session is real but reaches the billing page only until it is renewed; the bar at the top reads BILLING ONLY. Choosing a plan there renews it: once Stripe confirms the payment, usually within a minute, the terminal opens by itself, without signing in again.
  • "Your firm's subscription has ended." You hold a seat on a firm's account (§5.5) and its subscription has lapsed. Only the firm's administrator can renew it, from their account page.

Step 2a — the six-digit code. If an authenticator app is already enrolled, enter the current code and press Verify Identity. A code from the previous half-minute is still accepted, so one typed as the app rolls over is not refused; each code is spent once, and a code older than the last one spent is refused.

Step 2b — first-time enrolment. If no second factor has ever been set up, the terminal does not show a code box you could never satisfy. It shows a QR code instead. Scan it with Google Authenticator, Authy or any TOTP app — or type the printed key by hand — then enter the code the app shows and press Verify and Activate.

Enrol on a device you will keep. Enrolment refuses to replace a factor that already exists, so a lost phone needs an administrator to reset it — ask your administrator.

The sign-in attempt lapses after five minutes. If it does, the page returns you to the username step and says so; start again.

Then the desk opens. While it loads, the screen is black with OV RISK TERMINAL in the middle and an amber line across the top. The line follows what has actually arrived, and the screen lifts as soon as the first screen's figures are in - usually within a second or two. A figure that is slow to come does not hold the rest back: after a few seconds the screen lifts anyway and that panel shows its own loading line. The opening screen appears once per sign-in, not when you change screens.

1.2 What you are looking at

After the code you land on screen 1, Monitor. The terminal is eight numbered screens behind one header.

+---------------------------------------------------------------------+
| OV RISK TERMINAL  > command ^K   ENGINE ONLINE · SNAPSHOT  Aa  @ [] |
+---------------------------------------------------------------------+
| 1 MONITOR | 2 MARKETS | 3 PORTFOLIO | 4 STRESS | 5 EXECUTION | ...  |
+---------------------------------------------------------------------+
| FAST · LAGGED SYNCED | REGIME · MDI · VOL CAP     DATA CONFIDENCE   |
+---------------------------------------------------------------------+
  • The numbers are addresses. Press 1 to 8 to go straight to a screen. The number is printed on each tab for that reason. Digits do nothing while you are typing in a field, so entering a ticker or a book value will not navigate away.
  • The active tab is deep red with white type; the others are grey. It is deliberately not the alarm red that marks CRITICAL, so a selected tab never reads as an alert.
  • The same red marks every choice in the terminal: the market, range or view chosen in a switch on any screen, and the one button that does a panel's work, such as UPLOAD, ADD TO BOOK or SAVE. Amber is the house accent and never marks a selection.
  • Amber asks to be looked at. One amber line under a panel's figures says what was not measured — holdings with no price history (measured as SPY), with no traded volume, or with no exchange rate — names the first of them and lists them all on hover. It reads the same on every screen. Column headings are grey.
  • A limit check reads the same everywhere: a teal tag within the limit (PASS, WITHIN LIMIT), a red one over it or failed (BREACH, ABOVE LIMIT, FAILED).
  • Hover a tab to see what its screen is for.
  • Screen 8, Admin, is only drawn for administrators. If you are not one it is absent rather than refusing, and a link to it lands you on Monitor.
  • SNAPSHOT is the engine's session, not today's date. The session calendar is New York, so a snapshot dated today may not exist until the New York session has been logged.
  • Aa sets the text size — Standard, Large or Extra large — for this browser. The whole terminal scales, and every screen keeps its layout.
  • The person icon opens /account (§5).
  • The power icon signs out. It clears the session cookie and replaces the history entry, so Back will not return you to the terminal.

The eight screens, and the question each answers:

#ScreenAnswers
1MonitorWhich regime, how close to the next, and what moved it
2MarketsYour market beside the regime, and how it is positioned
3PortfolioWhat the book holds, and where it is exposed
4StressWhat the book does in the days that matter
5ExecutionHow to get to your target, what it costs, and what constrains it
6RecordWhat was called and measured, kept and dated, and whether the VaR held
7ClientsThe firm's whole book, and what leaves the terminal
8AdminAccounts, market data and the audit record

Only the screen you are on is loaded. Each screen fetches its own panels when you open it, and the first visit to a screen is therefore slightly slower than returning to one. This is deliberate: the terminal used to load all twenty-odd panels on every visit whether or not anyone looked at them.

1.3 Moving around

ActionHow
Any screenpress its number, 1 to 8, or click the tab
Next / previous screen← and → while a tab has focus; they wrap
Command paletteCtrl+K / Cmd+K, then Screen 4: Stress and so on
Monitorpress 1, or m
Portfoliopress 3, or r
Documentscommand palette, Document: …
Billing and pricingcommand palette, Billing & Pricing
Account settingsperson icon in the header
API developer accesstype /api-docs — there is no link to it

A screen is a link. The open screen is in the address bar as /risk-desk?w=stress, so a desk can be sent to a colleague on the panel being discussed and survives a reload. On Markets the market is part of the address too: /risk-desk?w=markets&m=eu. Changing screen does not fill the Back button: Back leaves the terminal rather than stepping through the screens you visited.

Two navigation gaps are worth knowing rather than hunting for:

  • /api-docs is not linked from anywhere. It is reachable only by typing the URL. If you sell the Enterprise API tier, that is where the customer's key lives (§5.3).
  • The command palette's View Documentation opens the whitepaper only. This guide is at /docs/user-guide, the tear sheet at /docs/tear-sheet, transaction costs at /docs/transaction-costs, and the regime transfer study at /docs/regime-transfer.

m and r are kept from the two-tab terminal because they are in people's hands; they now open Monitor and Portfolio. Like the digits, they do not fire while you are typing in a field.

The old addresses still work. /dashboard and /admin redirect to screens 1 and 8, so existing bookmarks and the links in the onboarding e-mails are not broken.


2. The market panels

These were one long page called the Regime Monitor. They are now spread across screens 1, 2 and 6, and this section keeps its old order so a panel you know by name is still where you left it in the guide. The map below says which screen each one is on.

§PanelScreen
2.1Status stripevery screen
2.2Commentary1 Monitor
2.3Master Regime1 Monitor
2.4Regime Horizon1 Monitor
2.5Pillars1 Monitor
2.6Volatility Cap1 Monitor
2.7Risk Monitor: Strategy vs SPX2 Markets
2.8Master Danger Index1 Monitor
2.9Pillar History1 Monitor
2.10US Flow Divergence2 Markets · US
2.11US Futures Positioning2 Markets · US
2.12US Broker-Dealer Leverage2 Markets · US
2.13Forward Validation Archive6 Record
2.14Model Drift6 Record
2.15MDI vs US Asset-Manager Positioning2 Markets · US
2.16The market switch2 Markets
2.17SMI / EURO STOXX 50 / FTSE 100 and the Regime2 Markets · CH, EU, UK
2.18Regime Evidence2 Markets · CH, EU, UK
2.19Swiss Franc / Euro / Sterling2 Markets · CH, EU, UK
2.20Confederation / Bund / Gilt Curve2 Markets · CH, EU, UK
2.21Euro Area / UK Stress2 Markets · CH, EU, UK
2.22Worst Falls2 Markets · CH, EU, UK

Screen 1 reads as two bands of three. Along the top: the regime (§2.3), the index's own history (§2.8), and where it is likely to go next (§2.4). Along the bottom: the pillars it is built from (§2.5), how they have moved (§2.9), and the volatility cap above the commentary (§2.6, §2.2).

Screen 2 shows one market at a time (§2.16). Switzerland, the default, the euro area and the UK share one layout. Along the top: the home index beside the regime, every fall of 7% or more and how the regime met it, and what the regime transfer study measured. Along the bottom: the currency, the government curve and systemic stress. The United States carries the strategy chart and the positioning panels.

Every panel on screens 1 and 2 can be expanded, and most downloaded, from the two marks at the right of its header. Expand lays the panel over the whole screen area and leaves the masthead, tabs and status strip in view; press it again, or Esc, to put it back. Download saves what the panel shows — CSV for figures and series, plain text for the commentary. Each file opens with comment lines naming the panel, the source where it can vary (published log or model history), the snapshot date, and when it was saved.

A larger screen shows more. Some panels carry a block that appears only when the whole of it fits in the space the panel has left: on screen 1 the regime term structure (§2.4), the bridge from 50 to the MDI (§2.5), the volatility history (§2.6) and the engine readings (§2.2); on screen 2 three years of the 2- and 10-year yields (§2.20) and the FINRA definitions (§2.12). On a laptop they wait; on a desk monitor they fill the panels; expanding a panel always shows them. A block is never shown cut off.

Every panel states its own as-of date. They are not all the same date, and that is not a fault.

CFTC positioning is weekly, FINRA margin is monthly, and the Swiss government curve is published a month at a time; all three are legitimately older than the MDI beside them.

2.1 Status strip

The amber masthead carries ENGINE ONLINE — or CONNECTING, or ENGINE UNREACHABLE, in which case nothing on the screen is current — and SNAPSHOT, the session the engine last read.

The strip under the tabs sits above every screen:

  • Market beta (fast) synced and Macro/liquidity (lagged) synced — the date each group of inputs last carried new data. Exchange prices close on the session; liquidity, the high-yield spread and the hand-entered survey figures arrive later. Hover either date for the inputs behind it, each with its own.
  • Regime with its day count, and the MDI. PROVISIONAL beside the MDI means the morning's hand-entered put/call ratios (and AAII on Thursdays) are not in yet: the value is built on the previous session's figures and will change when they are entered.
  • Vol cap — SAFE, or the breaker's state.
  • Data confidence — green at 99% and above, amber from 85%, red below, and grey UNKNOWN when it could not be computed at all. A count of degraded inputs in amber means that many feeds were stale or missing.

What to do with it: below 99%, something in the input set is degraded — read the degraded-input count beside it before quoting anything downstream. UNKNOWN is not 100%. It means the confidence calculation itself failed, and everything on the screen should be treated as unverified until it returns.

2.2 Commentary

Commentary on the current reading, composed from the session's measurements: one sentence per measured value, with base rates labelled as the model's own history since 2010, not a forecast. The bar above the paragraph reads MEASURED · NO FORECAST and names the session it describes. No language model writes it.

Beneath the paragraph, when there is room, the engine readings: one line per pillar, named by the pillar it reads.

This text is machine-composed, not analyst judgement. It is fine to lift into a client note; it is not fine to attribute to a person.

2.3 Master Regime

The headline panel.

  • The regime by name, with its colour square — CALM green, CHOP yellow, WARNING orange, CRITICAL red — and the engine's qualifier beside it. Top right, how many sessions it has held.
  • Master Danger Index — the MDI, 0 to 100, with its 1-day and 5-day changes. The changes keep their sign and are not coloured: the index measures danger, so up is worse, whatever a price screen has taught the eye.
  • The regime scale — all four bands on one track, the current one at full strength, today's reading marked in white. The dashed ticks are the exits, the level below which each regime is left: CHOP below 30, WARNING below 45, CRITICAL below 75. An exit also needs the five-day consensus to agree, so the level is necessary, not sufficient. The consensus is the week's most frequent regime; a week with two regimes tied at two sessions each resolves to the calmer of the two.
  • The sentence beneath — how far into its band the MDI sits and the points to the next regime. Past the next boundary it says so rather than "100%", because the regime moves on the five-day consensus; under its band's floor it names the exit the regime is holding above.
  • Conviction, turnover, held — the conviction score, turnover sensitivity (LOW or HIGH), and the sessions the regime has held. The score's fourth factor, the regime's five-session retention, is measured on the published edition's record and held fixed until the next edition.

What to do with it: the changes matter more than the level for daily work. A safe score with a sharply rising 5-day change is a different situation from the same score drifting down, and the sentence under the scale tells you how much room is left before the difference becomes a regime change.

2.4 Regime Horizon

A bar per regime: the probability of occupying it five sessions from now, given the current regime, which is named in white. One distribution from the current state, not a transition matrix: only that row is measured, so only that row is drawn.

The escalation figure is a range and must be quoted as one. The header shows the point estimate and its interval at the same size, and the interval is drawn as a whisker on the bar escalation means — WARNING from CHOP, CHOP from CALM. Beneath, the number of independent regime episodes sits beside the number of sessions.

Those two counts differ by more than an order of magnitude. A regime holding six weeks contributes thirty sessions and one episode. The interval is built on the smaller number, which is the honest denominator.

What to say: "The base rate is about 7%, with a 95% interval of roughly 5 to 10, across 73 regime episodes." A due-diligence analyst will respect that. They will discount 7.13%, and then privately rebuild it with wider bounds than yours.

In CRITICAL there is no interval, because there is no riskier regime to escalate to. The panel says so rather than showing a zero.

How long this run has held. A sentence sets the current run against the regime's completed runs in the same history: "Day 44 of this CHOP run: longer than 81% of the 70 completed CHOP runs behind these rates, which lasted a median 19 sessions and at most 178." It describes the past, and it is not a forecast that the run must end. The base rates above say how often runs like it have ended, and that is as far as the panel goes: neither is a forecast.

1 to 20 sessions ahead. When there is room, the same distribution at every horizon from one to twenty sessions, stacked to 100%; the bars above are its five-session column, marked by the dashed line. Read across, it shows how fast "still here" gives way to the regime's long-run mix. These are point estimates: the interval is measured for the five-session escalation only.

2.5 Pillars

Each pillar's current reading with its 1-day and 5-day changes, beside a sparkline of its recent history. The sparklines follow the source and range chosen on the Master Danger Index chart (§2.8), and the header says whose history they are and the last date it holds pillar values for — the log is written after the session, so it can trail the snapshot by a day.

PillarDirection
SpeedometerRises as risk rises
SentimentFalls as risk rises — fear pushes it negative
Macro HealthFalls as risk rises — higher is a healthier backdrop

The changes are not coloured. Read the direction from this table, not from the sign.

The saturation note matters more than anything else on this panel. When a pillar reaches its bound it stops responding to its inputs entirely — its reading sits at the limit while the data underneath keeps moving. The note, in amber, names the pinned pillar and states how many index points the clip absorbed. Macro is pinned on roughly 41% of CRITICAL sessions, which is exactly when you are most likely to be reading this.

Without the note, a frozen reading and a stable one look identical.

Today's drivers shows the six inputs moving the score most, in index points from a neutral 50, as bars either side of zero: amber raises the index, slate lowers it, and the bars share one scale, so length compares across the sign. Each carries the pillar it works through — SPD, SENT, MAC — because VIX and MOVE enter through two pillars each and can appear twice. When a client asks why the index moved, answer from this strip rather than from intuition. When a pillar is pinned, the correct statement is "Macro is at its ceiling and no longer differentiating" — not a reading of its inputs. The download has all seventeen.

How the MDI is built. When there is room, a bridge from the neutral 50 to today's figure, one pillar at a time: each step is what that pillar actually added to the index, after any clip, so the steps end exactly on the MDI.

2.6 Volatility Cap

  • Status — SYSTEM SAFE beside a green square, CIRCUIT BREAKER TRIPPED in red, or STATE UNKNOWN in grey — and SPX realised volatility over the engine's window.
  • A bullet bar: realised volatility drawn against the trip line, which is marked where it falls. Everything past the line is shaded, so whether the reading is near the limit is visible without reading a number.
  • The sentence beneath — the distance to the trip line in points ("14.3 points below the trip", or "above" once it has gone), the 5-day change, the exposure multiplier in force, and the last date it tripped.
  • The history, when there is room — realised volatility over the dates the Master Danger Index chart is showing (published log or model history), with the trip line across it and the region beyond it shaded, then the window's high and how many sessions were at or above the trip. The line is the breaker's own measure, so it ends on the figure printed above it.

The window and the trip level are read from the engine and displayed, never written into the terminal. A reading that could not be made shows STATE UNKNOWN and no figure.

What to do with it: the breaker overrides the regime allocation. If it has tripped, target exposure has been scaled down regardless of what the regime says — which is the point, and a straightforward thing to explain to a conservative client.

2.7 Risk Monitor: Strategy vs SPX

Strategy and SPX rebased to 100 at the start of the window, on one axis, with the MDI on its own strip beneath over the same dates. Windows: 3M / 6M / 1Y / 3Y (63, 126, 252, 756 sessions), 1Y by default.

Both index series are rebased to the selected window, so switching windows changes the levels. They share an axis because they share a base, and the panel says "indexed to 100" on screen so you can see why that is honest.

The MDI is not on a second axis. It is a danger score rather than a price, and a second scale lets two series appear to cross, lead or confirm one another depending on where the scales were put — none of which a reader can check. The crosshair is linked across both plots, so hovering a date reads the strategy, the index and the danger score together.

A three-axis radar of the pillars sat here until 2026-09-20. It is gone: with three axes a radar's area means nothing and its shape changes entirely with the order of the axes. Everything it drew is on Pillars (§2.5), which also carries the changes, the saturation notes and the drivers it never had.

2.8 Master Danger Index

The MDI over time. A thin strip above the plot names the regime each stretch was in; the current band is drawn as dashed lines labelled with value and regime — 55 WARNING, 35 CHOP — and the current regime's exit in grey (30 exit). A marker names the most recent regime change and its date.

  • LOG, the default, plots the live signal log: each session as it was called and published, from 20 July 2026, never restated. MODEL plots today's model run over the past three years — a reconstruction, and the panel says so whenever it is showing. The Forward Validation Archive (§2.13) keeps the two apart in the same way.
  • Range — 1M, 3M, 6M, YTD, 1Y, MAX. A range longer than the chosen series holds is greyed out rather than drawing what MAX already draws.
  • The source and range also set the Pillars sparklines (§2.5) and the Pillar History (§2.9), so the index and its parts are always read over the same dates.

A crossing on this chart is not a regime change. The band lines are the raw boundaries; the state machine applies asymmetric hysteresis and a five-day consensus on top, so a reader watching the line touch a boundary should not expect a call that has not happened.

2.9 Pillar History

The three pillars over the dates the Master Danger Index chart shows, as three stacked charts, one per pillar, each on its own scale — fitted to its own values, and marked "own scale" under its name.

They do not share a unit — Speedometer is 0 to 100 while the other two are z-score-like and cross zero — so one axis would flatten the pair into a line along the bottom, and two axes would let series on different scales appear to cross and diverge wherever the scales happened to be put.

The crosshair is linked across all three, so hovering one row reads all three at that session. Heights are not comparable between rows; shapes and dates are.

2.10 US Flow Divergence

All three contracts — S&P 500, Nasdaq-100 and Russell 2000 — over 104 weeks: asset managers in amber, leveraged funds in slate, each as a percentile of its own prior five years of weekly reports. Beside each contract are its latest two percentiles.

Asset managers are the long-only institutional base; leveraged funds are the hedge-fund complex. The panel is called divergence because the signal is the two moving apart — the fast money positioning against the slow money. Ranked this way the two share one 0–100 axis honestly, so a crossing means something; in contracts they could not, since asset managers hold several times what leveraged funds do.

2.11 US Futures Positioning

One table, a row per contract per holder type: net position, week-on-week change, and the five-year percentile drawn as an amber tick on a 0–100 track as well as printed. Columns compare by eye.

  • The extremes in either direction are the signal. Read the tick's position: near either end is unusual, the middle is not.
  • P— in grey means the percentile was not measured, not that it sits at the median. There was too little history to rank the reading.
  • The header carries the week ending and the estimated release date. The CFTC reports a Tuesday snapshot the following Friday, so this is always days old.
  • STALE in amber is normal, not an error. The CFTC skips releases around holidays and shutdowns.

2.12 US Broker-Dealer Leverage

FINRA margin debt and free credit, each with its level, month-on-month and year-on-year change, its percentile against up to ten years of prior months, and its 36-month trend. Changes are printed in ink; the sign gives the direction.

  • A short record is drawn short. If fewer than 36 months are stored, the trend is as long as the record and labelled, for example, 14 of 36 months.
  • An em dash means unavailable — fewer than 13 months for a year-on-year change — rather than a change of exactly zero. percentile — likewise means too little history to rank.
  • Each trend scales to its own range, so it shows direction and relative size, not level.

Monthly data, published roughly three weeks after month end. A reading can legitimately be seven weeks old and still be the newest that exists.

2.13 Forward Validation Archive

The live out-of-sample record, and the firm's central evidential claim. LIVE RECORD is each call as it was published on the day, since 20 July 2026, append-only and never backfilled. MODEL HISTORY is today's model run over the past since 2010: a reconstruction, never published on those dates, labelled as such and never merged with the live record.

  • The tiles: sessions in the window, regime calls (changes), whipsaws (a regime replaced within ten sessions) and the current regime with its run. The record's first regime is never a whipsaw: it was already in force when the record began, so how long it held is not known.
  • Each call and what followed — every regime call, newest first: its date, the regime, the MDI at the call, how many sessions it stood, and what the index you choose (S&P 500, STOXX 50, SMI, FTSE) did while it stood — its return and its deepest fall, from the close of the session the call was made on to the close of the next call's. The running call is marked RUNNING and measured to the last close. CSV exports every call.
  • Every session on the right: date, MDI, regime and data confidence.

There is no score. No hit rate and no average by regime is computed: a summary of a few dozen calls would claim more than the evidence carries. It is the record, call by call — including the calls a rally followed.

What to do with it: this is what you use when a client asks what the regime said before, and what happened. When a client is frustrated by a whipsaw, show them the engine tested the water, found the footing unstable, and pulled back.

2.14 Model Drift

Structural breaks in the signal itself.

  • The lead — the most recent break, how many sessions ago, and the run length before and after it. A sharp collapse in run length is amber.
  • The table — every break in the scanned window, with its restart probability.
  • Inputs that shifted — which inputs tripped, how often, and when last.

A break is not a regime change, and this panel never shows a regime. A regime is a known state the MDI is built to name. A break is the process generating the signal departing from what it has been — the MDI can read CALM while the statistical behaviour of its inputs is breaking, because a z-score says nothing about whether its own distribution still holds.

A detection lowers confidence in the model. It never overrides the regime call. Never present it to a client as a competing view on what regime obtains. It is a reason to widen the uncertainty you quote, not a reason to change an allocation.

It sits beside the Forward Validation Archive on purpose: both answer is the model still the model. The archive shows it reproducing what it logged; this shows whether the process it measures has shifted underneath.

2.15 MDI vs US Asset-Manager Positioning

The MDI and asset-manager positioning in one contract — SPX, NDX or RTY — on one 0–100 scale. Positioning is ranked against its own five years of weekly reports, which is what puts it on the MDI's scale, and the MDI is read on each report's date (the last session on or before it), so both lines have one point a week. 1Y by default; 3Y and 5Y a click away. The line above the chart gives the latest week's two readings.

The positioning line steps rather than slopes, because a weekly report holds until the next one is published. The panel is a measurement: it draws no conclusion from where the lines sit.

2.16 The market switch

Screen 2 shows one market at a time. The strip under the status strip switches it: CH Switzerland (the default), EU Euro area, UK United Kingdom, US United States. The choice is in the address (/risk-desk?w=markets&m=uk), and the terminal keeps it when you leave the screen and come back.

Every MDI input is American. The Swiss, euro-area and UK views show your market beside the regime and what was measured on the past. None of it is a European signal, and the strip says so on every one of those views.

MarketTop rowBottom row
CHSMI and the regime (§2.17), worst falls (§2.22), regime evidence (§2.18)Swiss franc (§2.19), Confederation curve (§2.20), euro area stress (§2.21)
EUEURO STOXX 50 and the regime, worst falls, regime evidenceEuro, Bund curve, euro area stress
UKFTSE 100 and the regime, worst falls, regime evidenceSterling, gilt curve, UK stress
USStrategy vs SPX (§2.7), US futures positioning (§2.11)US flow divergence (§2.10), MDI vs asset managers (§2.15), US broker-dealer leverage (§2.12)

2.17 SMI / EURO STOXX 50 / FTSE 100 and the Regime

A session still open on the exchange is never shown as a close. The three indices are read at 06:15 and 13:15 New York; a day's row appears only once that exchange has closed (17:30 in Zurich and Frankfurt, 16:30 in London), so LAST, 1D and the volatility figures always describe a finished session.

The home index — the SMI on CH, the EURO STOXX 50 on EU, the FTSE 100 on UK — with the regime each session was in as a strip above it, and how far below its peak it stood beneath. Above the chart: the last close, its one-day, one-month and year-to-date change, its distance from the 52-week high, and its 21-session realised volatility. Windows: 3M / 6M / 1Y / 3Y / MAX, MAX from 2010.

  • The regime is the engine's model history, carried onto the index's own calendar by the rule the transfer study measured with: each close carries the regime of its date, and a day New York was shut carries the last call.
  • The drawdown is from the running peak since 2010, not from the window's own high, so a window that opens mid-fall opens below zero.
  • Closes are fetched twice a day, after the European close and early the next morning.

2.18 Regime Evidence

Whether an American signal says anything about your market, in the regime transfer study's own numbers for the index on screen. One row per regime:

ColumnMeaning
TimeShare of sessions since 2010 spent in the regime
Fwd 21D drawdownThe index's average worst fall over the 21 sessions that followed; the bars draw the gradient
VolIts annualised volatility over those sessions
Worst 1%Share of the index's worst 1% of sessions that fell in the regime

Below the table: tail capture (the share of the worst 1% that fell in WARNING or CRITICAL), defensive time (the share of all sessions spent there) and the number of independent stress episodes.

  • PASSED or FAILED against criteria fixed before the study ran, counted over those that apply. The franc restatement is n/a on an index already in francs, and is not counted as met.
  • Positions are taken two sessions after each call. The figures are served from the study's committed results, not typed in. The panel speaks for the index on screen; every index the study measured, and every result, is in the full study at /docs/regime-transfer. Measured on the past; not a forecast.

2.19 Swiss Franc / Euro / Sterling

EUR/CHF and USD/CHF on CH; EUR/USD and EUR/CHF on EU; GBP/USD and EUR/GBP on UK. Each pair shows its last value, one-month and one-year change and 21-session volatility, over 6M / 1Y / 3Y, and each chart is labelled with its window's low and high.

These are the engine's own inputs — USD/CHF and EUR/USD — so they cannot disagree with what the MDI was computed from; EUR/CHF is their product, francs per euro.

In the MDI today is how many MDI points the currency's volatility is adding, or, when it is quieter than usual, taking away, with its history beneath. The currencies enter the MDI through their volatility, not their level: a fast move in either direction raises it.

Sterling is not an MDI input, and the UK view says so. Its MDI row reports the dollar index instead, which the MDI reads through its level: a stronger dollar adds points. Sterling comes from the terminal's market table rather than the engine's inputs.

2.20 Confederation / Bund / Gilt Curve

The government curve today, a month ago and a year ago, 1 to 30 years, with the 2-year, the 10-year and the 10Y–2Y slope quoted above and their one-month moves in basis points. When the panel has room, the 2- and 10-year over three years.

All three are zero-coupon curves: the Swiss National Bank's spot rates on Confederation bonds, the Bundesbank's Svensson curve for listed Federal securities, and the Bank of England's spot curve for gilts.

The Swiss curve is usually three to five weeks old. The SNB releases a month of daily rates at the start of the next month, so the latest Swiss value is the newest that exists, and the panel says how many days old it is. The Bund and gilt curves are published the next business day.

2.21 Stress Gauges

The four published stress indices, each read against its own history, on every market view: the European Central Bank's Composite Indicator of Systemic Stress (CISS) for the euro area, the United States and the United Kingdom, one method on one scale of 0 to 1, and the Office of Financial Research's Financial Stress Index (OFR FSI), which is zero at its long-run average. The CISS combines money-market, bond, equity, currency and bank-sector stress and rises most when they are stressed together, which is what separates a systemic episode from a bad week in one market. The home market's gauge is listed first and marked HOME. There is no Swiss equivalent: the Swiss view lists the euro area's first and says so.

Each tile gives the level as published, its one-week change, its percentile among every reading on record on a bar from the lowest reading to the highest with the median marked, the date the reading is good to and how many days old it is, and the last sixty readings as a sparkline. Pressing a tile charts that gauge below.

LEVEL charts the chosen gauge on its own axis over 1Y / 3Y / MAX; for the OFR index the hover also lists its five category contributions (credit, equity valuation, safe assets, funding, volatility) and the OFR's long-run average is marked at zero. PERCENTILE charts all four as a percentile of their own history, each on its own 0-to-100 chart: the only scale on which a bounded index and an unbounded one compare. A percentile is a reading's rank among every reading stored, including later ones: a rank, not what was known on the day.

No threshold is drawn and no gauge is called high or low: the publishers draw none, and the MDI is the terminal's one signal. The gauges are context with their own publication lag: the ECB's values arrive a few days in arrears, the OFR's two business days after the session. None is an MDI input.

2.22 Worst Falls

Every fall of 7% or more in the home index since 2010, worst first, and how the regime met it. The falls are counted by the regime transfer study's own rule, so the count is the study's episode count, run on the stored closes through today.

ColumnMeaning
PeakThe last session at the high before the fall
FallPeak to trough
InThe regime held as the fall began: the call that set the position on the first losing session, made before it began
TurnedSessions from the peak to the first WARNING or CRITICAL call; 0 if already there, — if it never turned before the trough
HeldThe share of the fall's loss taken while the position was defensive

Above the table: the number of falls, how many began defensive, the median share held defensively, and the share of all sessions the regime spends defensive anyway. Read the count against that base rate: if a third of falls began defensive and the regime is defensive a third of the time, the regime did not see those falls coming.

What the table shows, honestly: outside the United States the regime mostly reacts rather than anticipates. In the large falls it typically turned within days and held most of the decline defensively; smaller dips it often sat out, which is by design, since it is built not to react to noise. Every fall is listed, including those it never turned for. Hover a row for the trough date and the regime at the trough. Measured on the past; not a forecast.


3. The portfolio panels

These were the Portfolio Risk Desk. They are now spread across screens 3 to 7; the order here is unchanged.

§PanelScreen
3.1The book bar and loading a portfoliotab row of 3, 4, 5, 7
3.2Book by Regime3 Portfolio
3.3Regime Exposure3 Portfolio
3.4Holdings vs HRP3 Portfolio
3.5Monte Carlo Drawdown4 Stress
3.6Historical Scenario Replay4 Stress
3.7Correlation Matrix3 Portfolio
3.8Risk Contribution3 Portfolio
3.9Hedge Breakdown4 Stress
3.10Target Allocation, Orders and the Trading Schedule5 Execution
3.11Risk Perception Gap7 Clients
3.12Domicile and UK Availability3 Portfolio
3.13Liquidity Stress4 Stress
3.14Transaction Taxes on the Orders5 Execution
3.15Mandate Record6 Record
3.16Depreciation Monitor7 Clients
3.17Shock Scenarios4 Stress
3.18Down Weeks4 Stress
3.19Book of Business7 Clients
3.20VaR Backtest6 Record
3.21Breach Log6 Record

3.0 The book every panel reads

Every panel in this section analyses one portfolio: the book named in the book bar at the right of the tab row. It stays selected as you move between screens, so a scenario on screen 4 and a trade ticket on screen 5 are about the same book.

Screen 3 reads as two bands of three. Along the top: what the book is made of by sleeve (§3.3), what it holds against a risk-parity reference (§3.4), and where its risk sits (§3.8). Along the bottom: what it is denominated in and where it is domiciled (§3.12), how its holdings move together (§3.7), and, in the right-hand column, the book's private and illiquid holdings (§3.1) above how the book has behaved in each regime (§3.2).

With no book loaded, the book screens measure nothing. Portfolio, Stress and Execution show NO BOOK LOADED with UPLOAD A BOOK (and CHOOSE A SAVED BOOK where the account has some), and the book bar reads No book loaded; on Clients the firm's panels stay and only the Risk Perception Gap asks for a book. Monitor and Markets need no book. No figure is ever shown for a stand-in index in a client book's place.

The sample book. Portfolio, Stress and Execution also offer LOAD THE SAMPLE BOOK: a Swiss balanced mandate of ten SIX shares, an S&P 500 fund, Swiss government and corporate bond funds, gold and cash, worth CHF 10 million at the latest closes, with a mandate of its own (equity at most 60%, any single position at most 15%, cash at least 2%, foreign currency at most 30%). It is there to try the screens before you upload a client's book. It is loaded only when you press the button, carries SAMPLE wherever it is named, and is nobody's client: Clients, the nightly mandate record and every e-mail leave it out. Pressed again, it opens the sample already saved rather than a second copy; delete it from the book list like any book. It is illustrative, not a recommended allocation, and it has no target: set your own on Execution to try the orders.

3.1 The book bar and loading a portfolio

The book bar sits on the tab row of the four screens that analyse a book: Portfolio, Stress, Execution and Clients.

BOOK [ Balanced mandate ▾ ]  [ ⤒ UPLOAD ]  [ ⤓ DOCUMENTS ]  CCY CHF
  • The book name opens the Books drawer over the right of the screen, where you switch books, delete one, or upload. Esc or the close mark puts it away.
  • UPLOAD (in red) opens the drawer and your file chooser in one step.
  • DOCUMENTS, beside it, opens one menu for everything that leaves the terminal: this book's reports (PDF risk briefing, client summary, and the CSV allocations and regime exposure), the reference documents (this guide, the whitepaper, the tear sheet, the cost study and the regime transfer study), and the holdings template.
  • CCY is the book's base currency: every book screen measures in it.
  • SANDBOX · REVERT appears when the desk is showing weights you are trying out rather than a saved book (TRY AS BOOK in Target Allocation on screen 5 sets them, §3.10). Click it to return to the saved book.

In the Books drawer:

  1. Saved portfolios, at the top, lists every book on your account (up to 50); the tick marks the one in use. Click another to analyse it.
  2. DELETE on a row removes that book, and its private holdings with it. It asks once, Delete? Yes, delete / Keep, because a deleted book cannot be brought back.
  3. BOOK CURRENCY sets the currency of the file: the new book's base currency, and the currency of any value or cash line that does not name its own. It starts on the currency of the book you are looking at.
  4. UPLOAD HOLDINGS MATRIX takes an XLSX or CSV, up to 1MB. Give each holding its shares, or its market value; write cash as a line of its own, CASH (in the book's currency) or CASH EUR. DOWNLOAD CSV TEMPLATE gives you a file of shares with a cash line and each holding's company name. A CSV is read as your spreadsheet writes it: cells separated by commas, semicolons or tabs, figures with a decimal point (0.45, 1,234.56) or a decimal comma (0,45, 1.234,56), Swiss apostrophes (1'234.50) and percent signs. A figure the terminal cannot read is reported with its row, never dropped.
  5. The file name becomes the saved portfolio's label, is stored, and appears in exported reports. Name files by mandate, not by client.
  6. The active book's summary gives its positions and what they are worth at the latest close, and Loaded holdings lists each one's shares, value and weight. Confirm the largest positions are what you expect.

A book of shares is held as institutional systems hold one. The terminal values each position at the latest close, in the book's currency, and works out every weight from those values: the weights always add up to 100%, cash is a line of its own, and they move with the market as the book does. A position given as a market value is turned into shares at the latest close and moves with its price from then on. A column for the values' currency (currency, ccy) is read where the file has one.

Codes are read as the listings they are priced from. A Bloomberg code (PKO PW Equity) is read as its exchange's listing, an ISIN (as the holding, or in an isin column) is looked up, and a code the price feed does not know is looked for by its ISIN. Give each holding's company name as well (a name, company name or security name column): a code with no prices is then looked for by that name, on the same exchange only, so WWB.VI beside "Wienerberger AG" is read as WIE.VI. The name is used for nothing else.

A client account is uploaded as positions — shares or market values — never as weights. The weight of every position is worked out by the terminal.

A file of weights alone (ticker, weight) is saved as a model portfolio: a prospect's allocation from a factsheet, say, where no share counts exist. It is labelled MODEL in the books list and beside the book's name on every book screen, so it is never taken for an account. If the weights add up to less than 100%, the rest is held as cash in the book's currency, and the drawer says how much. If they add up to more than 100%, nothing is saved: correct the file, or press SCALE TO 100% AND SAVE, which keeps the proportions and makes every position smaller than the file says. If they add up to less than half the book, nothing is saved until you press SAVE WITH …% CASH: a book mostly in cash is more often a misread file than a book.

One file is one book, named after the file. A portfolio, account or mandate column names sleeves of that book. Where the weights add up to 100% across the whole file, the book is saved as it stands. Where instead each portfolio adds up to 100% on its own — twelve country sleeves of a European model, say — the file does not say how much of the book each portfolio is, and nothing is saved until you press SAVE AS ONE BOOK — N PORTFOLIOS OF EQUAL SIZE (…% EACH): 100% divided by the number of portfolios in the file (12 give 8.3% each, 4 give 25%), the weights inside each kept. A file of shares or market values needs no such answer: the values weigh the sleeves.

The file never leaves your machine. Parsing happens in the browser, and the analytics receive only the positions or weights and the label.

What to check after loading:

  • Not valued from a close, in amber: a holding with no stored price, or a London listing whose quote unit (pence or pounds) could not be read. It carries no weight until it can be priced, or is held at the value in the file.
  • does not sum to 100 in amber, on a book of weights saved before October 2026. Check the holding count against what you expected.
  • Rejected rows are listed, up to six with a count of the rest. Whatever parsed cleanly is still loaded.
  • Read as listings: every holding read under another code than the file's, and how - BLOOMBERG CODE, BY ISIN, or BY NAME with the company the name found. Check each BY NAME line is the holding you meant.
  • No prices found, in amber: a code with no price history, even by its ISIN or name. It is measured on the SPY stand-in until the file gives its exchange listing, ISIN or company name and is uploaded again.

Private & illiquid, the panel above Book by Regime on screen 3, lists the book's holdings with no daily price (a private fund, real estate, private credit, infrastructure, art): the holding and what kind it is, the public proxy it is measured through, the illiquidity beta that scales the proxy's volatility, and its weight. The header gives how many there are and what share of the book they make up. A private holding's risk figure is its proxy's, scaled, which is why the proxy is always shown.

  • ADD PRIVATE / ILLIQUID ASSET opens a short form over the panel. Start with Asset type, by kind and then region or strategy: the terminal fills in the listed fund the holding is measured through and names it under the field.

    Asset typeProxy filled in
    Real estate · United StatesVNQ, Vanguard Real Estate ETF (US listed REITs)
    Real estate · EuropeIPRP.AS, iShares European Property Yield ETF (euros)
    Real estate · United KingdomIUKP.L, iShares UK Property ETF (sterling)
    Real estate · SwitzerlandSRFCHA.SW, UBS SXI Real Estate ETF (listed Swiss property companies, francs)
    Private equity · BuyoutPSP, Invesco Global Listed Private Equity ETF
    Private equity · Venture and growthIWO, iShares Russell 2000 Growth ETF
    Private credit · United StatesBIZD, VanEck BDC Income ETF (listed direct lenders)
    Private credit · EuropeIHYG.L, iShares Euro High Yield Corporate Bond ETF
    Infrastructure · GlobalIGF, iShares Global Infrastructure ETF
    Othernone: type the ticker of a listed fund that moves with it

    These are measurement defaults, the listed market each kind of holding is usually compared with, not suggestions to buy the fund. Any ticker can replace them: if a client's fund has a closer listed comparable, use it. The proxy must be a ticker: "real estate" typed in that field is refused, with the reason. Then give the holding's name, the beta, and its value in a book of shares or its weight in a book of weights. A value is carried as stated until you change it, and the holding's weight is worked out from it like every other position's; nothing else in the book changes. A weight is kept exactly, and the other positions scale into what is left. Esc or CANCEL closes the form.

  • The pencil on a row opens the same form filled in with that holding, to change its type, proxy, beta and value or weight. SAVE CHANGES replaces the old holding.

  • The bin on a row removes that holding. Nothing else is rescaled: in a book of weights its weight is then held as cash.

  • The beta is your estimate, not a measurement, and it starts at 1.0, which measures the holding at its proxy's full volatility. A private fund's reported valuations are smoothed, so it looks calmer than its listed market; a beta below 1 takes that appearance at face value and lowers the holding's measured risk. You can set one, and the panel then says what it assumes.

  • Holdings are saved into the book, so the panel asks you to upload one first, and to revert a sandbox before adding or changing one.

3.2 Book by Regime

What the regime means for this book. The bottom-right panel on screen 3 measures how the book, as held today, has behaved in each of the four regimes since 2010, in the book's base currency:

ColumnWhat it is
Timethe share of sessions the regime was in force
Volthe book's daily volatility in that regime, annualised
Bad monththe 21-session return exceeded on the downside one month in twenty, among months that began in the regime
Deepest fallthe deepest peak-to-trough fall inside one spell of the regime, drawn as a bar in the regime's colour
Beta, Corrthe book's beta and correlation to its own market (the same index the crisis replay uses: SMI for a Swiss book, EURO STOXX 50 for a euro-area one), on 5-session returns

Every figure reads against the index. Beneath each of the book's figures for Vol, Bad month and Deepest fall, in grey, is the same figure for the book's own market on the same sessions; on the Deepest fall bar the market is a grey tick. A book whose WARNING bad month is −6.9% against −8.5% for its index has been more defensive than its market in that regime.

The regime in force leads, marked NOW, with one sentence above the table: how long it has held, and what the book's volatility and bad month have been in it, beside its index's. Hover a row for its sessions, its spells and how much of the book was priced from its own history; hover a column heading for its definition.

How to read it. The figures are the book's own history on its holdings as held today, so a holding that listed late is filled from its market before it (the real-price share on hover says how much). A regime counts from the session after it was published, so no figure rests on a call nobody could have acted on. A regime with under 120 sessions is marked THIN; a regime never in force shows dashes, not zeros. Holdings with no price history are named in amber.

What to do with it: this is the conversation the regime exists for — "in WARNING this book has run at 18% volatility and its bad month has been −7%; WARNING is in force for 12% of the time." It is history, not a forecast, and it says nothing about what to hold.

3.3 Regime Exposure

A row per sleeve over six buckets: Growth, Deflation, Credit, Stagflation, Defensive equities and Defensive cash, each in its own colour, with the book's share as a bar on one scale (the whole book) and the figure beside it. The header names the regime in force. These are the sleeves the regime engine reasons in; how each regime has treated the book is Book by Regime (§3.2).

Read the note under the rows. Growth is also the fallback bucket for tickers the classifier does not recognise, so the panel states how many holdings landed there. An unrecognised book can look aggressive on no evidence, and this is how you catch it.

When the panel has room, Holdings by sleeve lists which holdings put the book where it is.

What to do with it: this is the panel for the diversification conversation. A client holding fifteen funds may be entirely exposed to a Growth shock, and the rows show it in a way a holdings list does not.

3.4 Holdings vs HRP

A row per holding: weight, HRP weight, drift, share of risk and annualised volatility. Weight carries an amber bar and HRP a slate bar on one scale, so the two allocations compare by length; drift carries a grey bar either side of zero.

  • HRP is a hierarchical risk-parity reference built from the book's own holdings. It is not a target. Your own target is set in Target Allocation on screen 5 (§3.10).
  • Drift is weight minus HRP weight, in points. It is drawn in grey because it is a difference, not a verdict.
  • SPY PROXY beside a ticker means that holding has no price history and its numbers on the row are SPY's, not its own.
  • CASH · HELD marks cash (a T-bill or money-market fund, measured under 2% volatility a year). Risk parity weights each holding by the inverse of its risk, and cash has almost none, so fitting it would put nearly the whole book into it. The reference therefore keeps cash at the book's own weight and shares the rest across the risky holdings; the note under the table names what was held. A currency fund is not treated as cash: it carries real exchange-rate risk and stays in the fit.

When the panel has room, three readings sit below the table: which covariance measured the risk and volatility figures (LEDOIT-WOLF, the sample covariance shrunk toward constant correlation, each holding's own volatility kept; or SAMPLE, where there is too little history to estimate the shrinkage), how many sessions it was fitted on, and the share of the book proxied to SPY. The HRP reference itself is fitted on the Gerber covariance (§7.4).

There is no BUY/SELL column, and its absence is deliberate. A directive is an instruction to trade, and issuing one from a drift figure alone, with no tax lot, no wash-sale check and no client mandate in view, is not something this panel can stand behind. The drift is shown; the decision stays with the desk.

The download mark writes the grid as displayed.

3.5 Monte Carlo Drawdown

Three headline tiles — 95% max drawdown, median drawdown, worst 1% tail — over a fan of percentile paths.

Read the fan the right way round. These are maximum-drawdown-so-far paths, so every value is negative and each path only ever falls. The 5th percentile is the worst case and the 95th is the mildest — the opposite of a price fan, where a high percentile is the good outcome.

This is a loss disclosure, not a return forecast. The caption says so, and that framing is the regulatory posture of the whole panel.

Two things to check before quoting a number:

  • The data note. If any holding has no price history, an amber line above the tiles gives the share of the book it represents and names the holdings (all of them on hover). Those holdings are simulated as SPY and reflect SPY, not themselves.
  • The method. By default the paths resample this portfolio's own history, which preserves volatility clustering and mean reversion. Where the figures differ materially, what a parametric model would have said is printed in small type beneath each tile. Which is larger depends on the portfolio and on whether the draw is conditioned on the current regime — the two models differ, and the panel shows the difference rather than resolving it.
  • The amber fallback. If the panel says Parametric draw in amber, resampling was not possible and these figures come from a different model. They are not directly comparable with another portfolio's resampled figures.

What to say: quote the frequency, never a cap. "In the simulation, 19 of 20 scenarios keep the worst drawdown inside X% — which means roughly one in twenty is worse than that, and the tail scenarios reach Y%." X is a percentile of a model, not a floor under the portfolio. For what a crisis has actually done to this book, use the panel beside it.

3.6 Historical Scenario Replay

The current book run through every crisis window — 2008, the 2011 euro crisis, the 2015 franc floor, Brexit, 2018, COVID, 2022 and the rest — in one table: for each, the book's deepest fall and its return beside the same figures for its home market's index (EURO STOXX 50 for a euro-area book, MSCI Switzerland for a Swiss one), on the same sessions. Choose a row to draw it: the book in amber against the index dashed. Under the chart, COST MOST names the three holdings that cost the book most in that window — each holding's return over the window times its weight today, in points of the book — and the line above the chart gives the same window in other currencies.

The benchmark is why this panel is useful. A drawdown figure alone says nothing: a portfolio down 24% in early 2020 was well ahead of the market. Always read the two together.

What to do with it: this is the evidence for a sceptical institutional prospect. It is measured on their own holdings, in windows they remember.

3.7 Correlation Matrix

How the book's holdings move together, from −1 to +1. Three views, switched in the panel header:

  • HOLDINGS — the answer first: the book's average correlation in a word (LOW below 0.3, MODERATE to 0.6, HIGH above), the most alike pair, and how many pairs are above 0.7. A book of up to twelve holdings then shows the full grid; a wider one shows two ranked lists — the holdings that move most with the rest of the book, and the most alike pairs. The full matrix is in the download.
  • COUNTRY — how the book's countries move against each other. Each country's holdings are combined into one return, weighted as the book holds them. Each row carries the country's share of the book; hover a label for its holdings. A share counts in its issuer's country: Sony's New York ADR is Japan, AstraZeneca's Stockholm line is the United Kingdom. A single-country fund counts in its country; any other fund is grouped as Funds (not looked through), and a holding OV could not identify as Not identified.
  • SLEEVE — the same for OV's macro sleeves, as Regime Exposure (§3.3) classifies the holdings.

Cash, and holdings with no price history (measured with the SPY stand-in and named in amber), are left out of the summary and of the groups.

Teal moves opposite, violet moves together, and grey is near zero (within ±0.1). None of them is a regime colour, so no cell can be read as CALM or CRITICAL, and no colour implies a verdict. The colours step every 0.2 from 0.1, four steps each way, so read the shade for the pattern and the printed value for the number. The diagonal is a dash.

Check the line under the matrix. It names the estimator, the return frequency and the currency. LEDOIT-WOLF is the sample covariance shrunk toward constant correlation: each holding's own volatility is kept, and the correlations are pulled toward the book's average by as much as the data requires. SAMPLE means there was too little history to estimate that, and the correlations are less reliable. WEEKLY means the book's markets close hours apart — Europe before New York — and daily returns would understate how they move together.

A single holding has no correlation structure, and the panel says so rather than drawing an empty square.

3.8 Risk Contribution

The header carries VaR 95 and CVaR 95 side by side, plus an EVT-fitted VaR where one was computed, and a Thin tail warning with a session count when the tail estimate rests on very little.

Expected Shortfall leads because it is the measure the Basel framework adopted in VaR's place. VaR says how bad a bad day is; Expected Shortfall says how bad the days beyond it are.

One row per holding, largest share of risk first, with three marks:

MarkMeaning
Amber barShare of portfolio volatility
Slate tickThe equal-risk share: 100% divided by the number of holdings, what risk parity would give each
White ringShare of tail loss (95% Expected Shortfall)

A bar past its tick carries more risk than an equal-risk allocation would give it. The gap between the ring and the end of the bar is the finding. Volatility contribution describes an average day; tail share describes the days that matter. A position can be a fifth of the variance and half the loss, and that gap is invisible on a volatility decomposition.

A ring left of zero is a genuine hedge: that holding gained while the portfolio was losing. It is drawn, never clamped.

What to do with it: this is the panel for finding a position that is poisoning the book. A 5% holding carrying 35% of the tail loss is a surgical target in a way a 5% holding carrying 35% of the volatility is not.

3.9 Hedge Breakdown

Year by year for the portfolio's main hedging pair: both legs' returns, the correlation, and the share of sessions where both fell. A year is marked failed in red when both legs lost money. The header names the pair and lists the failed years.

The pair is the book's risky holdings against its hedge assets: government bonds, gold and commodities. Defensive shares are not hedge assets (they still fall with their market) and cash is not (it does not move), so a book of shares and cash has no hedge to test, and the panel says so. Two holdings of your choice can still be compared.

On screen 4 the hedge test is the HEDGE TEST view of Shock Scenarios (§3.17), offered when the book holds a hedge asset.

This table is the evidence for the "correlation went to 1.0" conversation. Lower tail dependence — whether both assets are in their worst days together — reads near zero for stocks and bonds through 2022, which would say the hedge held. It plainly did not: bonds ground down on rate repricing rather than crashing on the same sessions. What shows the failure is the sign of the correlation and the share of sessions both fell, which is what the table reports.

What to say: quote the sign change and the co-decline share. "These two correlated negatively every year for a decade, then positively in 2022, with both down and a third of sessions falling together." That is measured, on the client's own holdings, and it is what the thesis actually claims.

3.10 Target Allocation, Orders and the Trading Schedule

Screen 5 turns your target into the orders that reach it, as an institutional rebalancer hands them to a trading desk. Oneiros Vision does not supply a target and proposes no trade of its own.

Target Allocation (left column) lists every holding of the saved book, with its weight today, a field for your target weight in percent and the change.

  • TARGET FROM fills the fields from any other saved book — the MODEL portfolios are labelled — or UPLOAD reads a file of ticker and weight (a file of several portfolios each adding up to 100% gives each an equal share). A file of shares is refused: a target is weights. ADD puts in a holding by hand; FROM TODAY starts from today's weights. To give several accounts the same model at once, use APPLY A MODEL on screen 7 (§3.19).
  • SAVE TARGET stores the target with the book. Short of 100%, the rest is held as cash in the book's currency; over 100% cannot be saved. Nothing is ever scaled.
  • TRY AS BOOK puts the target on the desk as a sandbox, so screens 3 and 4 measure it before anything is traded; SANDBOX · REVERT returns to the book. CLEAR TARGET removes a saved target.

The whole screen follows what you type. Orders, the schedule, the mandate check and the risk block below update a moment after you stop typing, marked DRAFT, NOT SAVED until you press SAVE TARGET (DISCARD returns to the saved target). Orders always start from the book as held — never from a sandbox, which is a book nobody holds.

What the target does to risk, under the table: the book today beside the target, on the risk model every other panel uses — volatility, one-day VaR and CVaR at 95%, beta to the book's own market, the largest position, the cash and the number of holdings. The pre-trade risk impact a rebalancer shows beside the trades; it measures your target and does not judge it.

Orders (top right) is the rebalance: every holding that moves, sells first and then buys, with its side, the number of shares (whole units, at the latest close), the price and the amount in the book's currency, its weight now and at target, the days it needs and the tax on a purchase (§3.14). Beneath them: total sells, buys, taxes, and the cash before and after. Where the purchases and their taxes cost more than the sales and the cash raise, the panel says by how much the book is short of cash. The download writes the list for your order system.

BOOK VALUE, first above the orders, is what turns weights into amounts. A book of positions values itself at the latest closes (FROM POSITIONS). A model portfolio — a book of weights — takes the value stated in its mandate (FROM MANDATE; CHANGE edits it). A book with neither says so in amber and takes the value right there: type it and press SAVE. It is kept with the book's mandate, the same figure the Liquidity panel (§3.13) and Mandate Compliance read. Until there is a value the orders are stated in weights, and CLIENT CASH and SKIP UNDER, which are amounts, are greyed out. Uploading the book with shares or market values gives it a value of its own.

Beside it, three settings. Each takes effect when you press Enter or leave the field; until then the figure you typed stays amber, marked ↵.

  • CLIENT CASH — money the client takes OUT of the book or puts IN, in the book's currency, for this rebalance and this book only. The orders take the book at its new size TO TARGET, or keep TODAY'S MIX (every holding sold or bought in proportion; the only choice without a target). The tiles add the client cash, and the cash after counts it.
  • SKIP UNDER — orders smaller than this amount are left out.
  • DRIFT BAND — holdings within this many points of their weight are left alone (not applied to client cash, which every holding shares).

What is left out is counted under the orders, with the amount and the list on hover; the totals and the cash are those of the orders kept. The minimum and the band are remembered in your browser; client cash is not. An instruction that cannot be carried out — a withdrawal of the whole book or more — is refused with the reason under the settings, which stay on screen so the figure can be changed.

Trading Schedule (bottom middle) is how long the market needs for them: each order's amount over 20% of its average daily traded value, the days to complete the slowest, and the share of the amount done in one day and in five, with the slowest orders drawn. A holding with no traded volume is named. The desk sets the pace; a larger share of the volume moves the price.

IPS / Mandate Compliance (bottom right) checks every limit twice — the book today and the book after the orders — and draws each as a bar: the figure, a tick at the limit, today as a ring and after the orders as a dot. One tag reads today's verdict and then the after one (PASS → BREACH), and a limit the orders would break says THE ORDERS WOULD BREACH THIS: the pre-trade check an institutional system runs before anything is sent. A mandate with a book value but no limits says No limits set — nothing was checked, never "0 breaches".

What to do with it: the target is your decision. The screen gives you its orders, their cost, how long the market needs and the mandate after them — and does not judge it.

3.11 Risk Perception Gap

7 Clients, every mandate at once: what each client said they could lose in a year, beside the 95% drawdown bound recorded for their book, and the distance between the two.

  • The tiles — how many mandates have a tolerance stated, how many measure above stated by more than the 2-point band, and how many have none stated.
  • The table, widest distance first: the mandate, the stated tolerance (type it into the row and press Enter; empty clears it), the measured bound from the mandate's latest record entry, the gap in points (measured minus stated), both on one bar (the measured bound as the bar, the stated tolerance as the tick), and the reading: above stated, aligned (within 2 points), below stated, not stated or not measured (no record entry yet).

This is a disclosure, not a recommendation, and the distinction is load-bearing. Oneiros Vision is not a registered investment adviser. The panel reports two numbers and their difference. It does not assess suitability and it does not suggest that any position be changed. Nothing in it is drawn in an alarm colour.

Do not narrate it as advice. The correct framing is "here is what you told us and here is what we measure". The client draws the conclusion. If you find yourself reaching for consider, should, or reduce, stop.

The stated figure is supplied by the client and is not verified; the measured figure is a simulation output, the same one STRESS shows, as recorded on the session named on hover.


3.12 Domicile and UK Availability

3 Portfolio, beside Underlying Currency. Two readings of the same book.

  • Exposure by domicile — where each holding is incorporated or registered, resolved from its ISIN where the uploaded file carried one and from a curated map where it did not.
  • By basis — how much of the book was read from an ISIN rather than looked up, and how much is in neither. A holding in neither is reported as unknown, never assumed.
  • UK availability — listed security, UK-authorised fund, US fund, overseas fund, or not known.

Domicile is not currency and is not derivable from it. EWL holds Swiss equities and is a US-registered fund: francs, and American. The two panels sit side by side so neither pairing is easy to misread.

Nor is it country of risk. The switch in the header, LEGAL | COUNTRY OF RISK, shows the same book by where each holding's value comes from rather than where it is registered: Sony's New York ADR is a US instrument and Japanese risk. A share counts in its issuer's country, a single-country fund in the country it holds; any other fund is shown as a fund not looked through, and a holding OV could not identify is named. The availability rules belong to the legal domicile and are shown only there.

What to do with it: the US-fund weight is the number to look at first. A US fund is generally not available to a UK or EU retail client, whatever it holds, and a book assembled without that in mind can be entirely unsuitable while looking perfectly diversified.

The funds regime is a register entry this product does not read. The panel reports the form of a holding and its domicile. Whether a particular overseas fund is recognised for sale to a UK client is a recognition status the terminal does not check and does not assert. It narrows the question; it does not close it.

3.13 Liquidity Stress

4 Stress. How long the book would take to sell, and whether it could meet a redemption. Written against ESMA's guidelines for UCITS and AIFs (ESMA34-39-897), which require the test and the evidence of it.

  • Days to liquidate per holding, at a stated participation rate — the fraction of a normal day's volume the seller assumes they can be. 20% by default.
  • The book by liquidity band — one day, 2–7 days, 8–30 days, over 30 days, and not measured.
  • Redemption coverage — whether a 10%, 25% or 50% redemption could be met within one day and within seven.

This panel needs a position size, not a weight. Days to liquidate is a position value divided by a day's tradeable volume, and a percentage has no position value. A book of positions states its own value; a model portfolio whose mandate states no book value is reported as unconfigured rather than answered from an assumed size — enter the value in the panel itself. It is the same book value the orders on screen 5 are sized against (§3.10).

The participation rate is the whole model. Halving it doubles every figure without anything about the instruments changing. The figure is "days at that participation", not "days before the money arrives", and it says nothing about the price achieved.

Read the caveat that travels with every figure. Exchange volume understates an ETF's capacity, often by a lot: what backs an ETF is creation and redemption against the underlying basket, not the screen. Read on exchange volume alone, the most defensive holdings in a European book appear to be the least liquid things in it. This is not a footnote — carry it to the client.

3.14 Transaction Taxes on the Orders

5 Execution, on each purchase in the Orders panel and totalled beneath it. Each tax falls on the buyer of a share of a company incorporated in its country, whoever the buyer is and wherever the trade is booked:

Incorporated inTaxRate
United KingdomUK stamp duty (SDRT)0.5%
IrelandIrish stamp duty1.0%
FranceFrench financial transaction tax0.3%
SpainSpanish financial transaction tax0.2%
ItalyItalian financial transaction tax0.1%

Incorporation decides it, not the listing venue. Glencore and Ruffer trade in London and are exempt because they are incorporated in Jersey and Guernsey; a UK investment trust feels like a fund and is charged, because it is a UK-incorporated company; an ADR is exempt while its ordinary share is charged. Funds and ETFs are not shares and attract none of these. Sales attract nothing. A purchase whose country of incorporation is not known is named, not charged and not called exempt. Hover a tax for its reason.

They are transaction costs, not tax advice, and the panel says so. The estimate may be too high, deliberately: France and Spain tax only companies worth more than EUR 1bn, Italy exempts those under EUR 500m and the UK shares on AIM, and the product does not know a company's size or market segment, so every such share is charged. Swiss stamp duty and the Belgian stock exchange tax depend on the client's bank rather than the security and are not computed.

3.15 Mandate Record

6 Record, beside the Forward Validation Archive. Both are dated, append-only evidence rather than another reading.

Every other measurement on the terminal is taken and then forgotten when the tab closes, which is no use to a supervisor asking what the manager knew in March.

  • One entry per session per mandate, newest first, with a sequence column giving the append order.
  • The chain line, above the data — each entry carries the digest of the one before it, so an entry edited after the fact stops verifying. It sits above the rows because it describes whether the rows can be trusted.
  • Risk over time — above the rows, the 95% drawdown bound and the 95% one-day VaR as they were written on each session, the regime beneath, and a red mark on every session that carried a breach. Nothing is recomputed; a figure a session could not measure leaves a gap.
  • Acknowledgements — the manager's own note against a session. An acknowledgement is its own entry pointing back at a session, never a column written onto the measurement: editing a closed row is exactly what the chain exists to make detectable.
  • Export carries the whole history; the panel shows the recent rows.

What to do with it: this is the answer to "what did you know, and when". A Swiss manager's supervisory organisation audits its risk controls, MiFID II requires records a supervisor can check kept for five years, and when a client disputes a loss that is the first question asked.

3.16 Depreciation Monitor

7 Clients, every mandate at once, because the duty is owed to every client.

  • The tiles — mandates crossed (a notice is owed), approaching (past -8%), and how many are recorded.
  • The table, crossed first, then approaching, then the rest closest first: the change since the reporting period began, the points left to the next 10%, the state (teal NORMAL, amber APPROACHING, red CROSSED, as labelled statuses), and the notice deadline where one is owed. A mandate not yet recorded reads next session; a monitor switched off reads OFF.
  • Choose a mandate for its detail: the period start, the next threshold, multiples crossed, the deadline, the sessions measured, the basis and the rule it is cited under — COBS 16A.4.3R for a UK mandate, MiFID II Article 62 of Commission Delegated Regulation (EU) 2017/565 for an EU one.

The citation changes with the jurisdiction and nothing else does. The threshold and the deadline are identical in each, because the UK onshored the provision and no divergence has been confirmed.

This is the one obligation on the terminal with a clock on it. The client must be told by the end of the business day the threshold is crossed. The panel reports the state and the deadline; sending the notice is the firm's act, and the terminal neither sends it nor records that it was sent. It does e-mail you every mandate approaching or past 10% with the nightly record (§4.5).

3.17 Shock Scenarios

What the book would do if its market fell 10, 20 or 30%, and if each foreign currency moved 10% against its base — the hypothetical half of a stress page, beside the historical replay.

  • The market: each holding's beta to the book's own market, measured on three years of weekly returns in the book's currency, times the fall; the book moves by the sum, which is its own beta (BOOK BETA) times the fall. Each row names the holdings that move the book most, in points of the book. A holding without a year of its own prices is left out and named, never guessed.
  • Currencies: each foreign currency's share of the book, as the Currency panel counts it, and the book's move if that currency falls or rises 10% against the base; ALL FOREIGN is every one at once. Funds holding several currencies are named, not shocked.

First-order, not a forecast. In a real crash betas and correlations rise, so a 20% fall in the market can cost more than the beta says; the replay above it shows what actually happened.

When the book holds government bonds, gold or commodities, a SHOCKS / HEDGE TEST switch in the header offers the hedge test (§3.9) in the same place.

3.18 Down Weeks

How the book, as held today, did in the weeks its market fell.

  • DOWNSIDE CAPTURE — the book's average return in the weeks its index fell, divided by the index's average in those weeks: 56% means the book fell 56% as much as its market, on average. The figure beneath gives the two averages.
  • UPSIDE CAPTURE — the same for the weeks the index rose. A low downside capture with a high upside capture is a defensive book; low on both is a book that simply moves less.
  • The index's ten worst weeks since the book's history begins, worst first: the week (by its Friday), the regime known as the week began, the index's return, the book's, and COST MOST — the holdings whose weight times return cost the book most that week, in points of the book.

The regime column is the record, not a claim: for European and UK books the regime has more often reacted to a fall than anticipated it.

3.19 Book of Business

7 Clients, at the top of the screen.

Every book saved on your account in one table. Scoped to you — it shows your own books and no one else's. On a firm's account (§5.5) it shows the firm's books, every adviser's, with the adviser who saved each one under its name. Sample books are left out.

  • The tiles: the firm's assets in the reporting currency you choose in the panel's title bar (USD, EUR, CHF, GBP; at first, the one most books are held in), with how many books could be valued; how many mandates, how many are growth-concentrated (growth sleeve above 60%), the firm-wide growth and average cash, and the book furthest from its target.
  • Firm-wide sleeve mix: EQUAL counts each mandate once; BY VALUE weights each by its value in the reporting currency, as an asset manager's firm position is read, leaving out books that could not be valued.
  • Each row: positions, the value in the book's own currency (a book of positions at the latest closes; a model portfolio at the book value stated in its mandate, else a dash), the mix across the macro sleeves (each bar drawn against 100%, so a sleeve not measured shows as a gap rather than being shared out among the others), growth and cash, and:
    • DRIFT — the one-way turnover the book needs to reach the target you set for it, in percent of the book; a dash where no target is set. Books with a target are listed furthest first.
    • FURTHEST — the holding furthest from its target weight, in points: + above target, − below.
  • A model portfolio — a book of weights — is labelled MODEL.

APPLY A MODEL (top of the panel) is for a desk running one model across many accounts:

  1. Choose the MODEL — any book saved as weights.
  2. Tick the accounts that follow it.
  3. SET AS THEIR TARGET stores the model's weights as each ticked account's target. Short of 100%, the rest is held as cash in the account's currency, as with any target.
  4. EXPORT ORDERS (CSV) writes the orders of every ticked account to the model — each from its own holdings, in its own currency — into one file with an account column, for your order system. SKIP UNDER and DRIFT BAND from the Orders panel (§3.10) apply to every account, the minimum in each account's own currency; client cash belongs to one account and does not. An account with no book value is exported in weights only, and the panel names it.

The model and the accounts are your choice: OV builds no model and picks no account. The drift measures your own targets; it is not a call to trade.

What to do with it: see at a glance which accounts have drifted furthest from the targets you set, and how concentrated the firm's book is if the regime turns.

3.20 VaR Backtest

6 Record. Did the terminal's own VaR hold on this book? Every institutional risk system shows it beside its VaR, and the CESR/10-788 guidelines the UCITS panel follows require a VaR UCITS to backtest its model.

Each of the last 250 sessions' one-day 99% VaR is read from every session before it — the terminal's own historical method, nothing the day itself carries — and set against that session's return, the book held as it is today.

  • Overshoots 99% — sessions that lost more than the VaR, beside the 2.5 a correct model would show, with the Basel traffic light: GREEN 0–4, YELLOW 5–9, RED 10 or more in 250 sessions (teal, amber and red as labelled statuses).
  • Kupiec p — is the count the one 99% promises? as expected, too many, or too few: a VaR that is rarely exceeded is conservative, and that fails the test as surely as too many.
  • Clustering p — Christoffersen's test of whether overshoots arrive together: apart or together; needs 2 below two overshoots.
  • Overshoots 95% — the same count at 95%, beside the 12.5 expected.
  • The chart — each session's return as a bar, red where it overshot, and the VaR as a dashed line. The latest overshoots are listed beneath; the CSV carries every session.

Indicative. The fund's own risk management process governs, and its own backtesting is what a supervisor examines. A VaR read from every session the book has is steady by design, so in a calm year expect too few.

3.21 Breach Log

6 Record, beside the Mandate Record. Every breach on the record as an episode — the shape a compliance officer reads, where the record itself is one row per session.

  • The tiles — breaches open now, breaches on record, and those not noted by anyone.
  • The table, open first: the limit, from (the first session in breach), cleared (the first session measured within the limit again, or OPEN), the sessions in breach, and noted — who wrote the first acknowledgement against a session inside it, and how many days after it began (amber none where nobody did).

A mandate rule is in breach on each session it said BREACH; the 10% depreciation threshold while it was CROSSED (APPROACHING is a warning), with its deepest change. The record keeps each rule's outcome, not its figure, so a rule has no "worst excess". With no limits set the panel says so rather than reporting a clean record. It counts; whether the response was adequate is the firm's judgement.


4. Client workflows

The five things a PM actually does, as sequences.

4.1 Morning: check the regime

  1. Sign in. You land on the Regime Monitor.
  2. Status strip — is the engine online, what is the snapshot date, is confidence green?
  3. Master Regime — the regime, and the 1-day and 5-day changes. The direction is the news, not the level.
  4. The regime scale — where the MDI sits, and how many points to the next regime.
  5. Volatility Cap — has the breaker tripped?
  6. Pillars — if the score moved, which inputs moved it. Check for a saturation note before explaining anything.

Under two minutes once you know the order. Steps 2 and 6 are the ones people skip, and they are the two that prevent quoting a stale or pinned number.

4.2 Reviewing a book

  1. UPLOAD the holdings file from the book bar. Check the holding count, the weight total, and any rejected rows.
  2. Regime Exposure on screen 3 — the book's share in each sleeve, with the regime in force. Note how many holdings fell into the Growth fallback.
  3. Holdings vs HRP — the largest drifts, and any proxied to SPY rows.
  4. Risk Contribution — positions whose tail diamond sits well above their volatility bar.
  5. Shock Scenarios and Down Weeks on screen 4 — what a 20% fall in the book's market would cost, and how much of its market's falls it has taken. With bonds or gold in the book, the HEDGE TEST view: has the hedge actually hedged, year by year?
  6. Correlation matrix — check the estimator line under the matrix before quoting anything from it. For a wide book, read the COUNTRY view.

4.3 Running a scenario

  1. Load the portfolio.
  2. Historical Scenario Replay — every crisis in one table; choose a row to draw it. Read the book's fall and its index's together, and the holdings that cost the most.
  3. Shock Scenarios — the book under a 10, 20 and 30% fall of its market and a 10% move of each currency. First-order: the replay shows what a crash did.
  4. Monte Carlo Drawdown — check for the proxy banner and the method note, then quote the frequency rather than a cap.

To measure a different allocation before trading it, type it in Target Allocation on screen 5 and press TRY AS BOOK (§3.10): every screen then measures the target, and SANDBOX · REVERT returns to the book.

4.4 Producing a PDF

Exports, on screen 7, Clients — one view of the panel it shares with the alerts; switch with EXPORTS and ALERTS in its title bar.

  1. Choose the book in the book bar first — the exports read the book on the desk.
  2. PDF risk briefing — your book against the current regime, rendered by the backend from live engine output, with the licensee's firm on its cover and in its confidentiality notice. Client summary is the same measurement as one page in plain words, for the client rather than the desk.
  3. Twenty per account per day, the two together. The panel's header shows how many are left today, rather than saying so only when you reach the limit.

Client summaries, several books — tick the books and one summary per book is saved, each its own file, within the day's quota (the browser may ask once to allow several downloads).

CSV client table is the whole firm as one file: every book with its value, mix, drift, 10% state and deadline, and stated tolerance beside the measured bound. CSV allocations (today's weights, beside your target where one is set) and CSV regime exposure are built in the browser from figures you already have, so they have no quota.

4.5 Setting an alert

Alerts, on screen 7, Clients (the ALERTS view of the panel shared with the exports). What the terminal e-mails you, plain text, each reporting a measurement and none saying what to do:

  • Regime shift — when the regime changes, as the session is logged. Your trigger decides which changes (from the backend, so the wording you pick is what the dispatcher matches on). It fires on a change of regime, not on an MDI level. Send test sends one now.
  • Limit breach — when one of your mandates opens a breach of a limit you set, with the nightly record; once when it opens, not every day it stays open.
  • 10% depreciation — every mandate approaching or past 10%, with the nightly record. Always sent: the duty has a deadline.

One recipient for all three; clear it and save to return the alerts to your account address. Switch either of the first two off and press Save settings; the settings are stored with your account.


5. Account and access

5.1 Changing your password

Person icon in the header, then /account.

You are asked for your current password even though you are signed in. That is the backend's rule and it is worth understanding rather than resenting: a session is not proof of presence, and a password change that needs only an open tab is one an attacker makes silently.

If the new password is refused, every rule it broke is listed. Fix them together. What you typed is kept on a refusal, so you correct one field rather than retyping all three.

Changing your password signs out every other session of the account; the one you changed it from stays. A session that was signed in somewhere else sees the sign-in page on its next request.

Sign out everywhere else, the card below the password, does the same without a password change: for a phone you no longer hold or a desk left unlocked. No password is asked for, because ending sessions is the safe direction. An administrator's reset of your second factor, a completed password reset and the end of a subscription also end every session.

5.2 Recovering an account

/recover, linked from the sign-in page. Two modes.

  • Forgotten password — request a code by email, then set a new password with it. This also clears a lockout.
  • Forgotten username — request it by email.

Both request steps answer identically whether or not the address is registered. That is deliberate. If a request appears to succeed and no email arrives, the address is probably not the one on file.

A signed-in user who simply wants a new password should use /account (§5.1), not this flow — recovery writes a password_reset entry into the audit trail, which would describe something that did not happen.

5.3 The API key and IP restrictions

/api-docs, from the command palette (API Credentials & Developer Access, offered to accounts with API access) or by typing the URL (§1.3).

  • The key is shown once. The page shows the first twelve characters of your key, enough to tell which key you hold, and never the whole key: the terminal stores only a digest of it, so a copy of the database is not a credential. Rotate key issues a new key and shows it once; copy it then, because it cannot be shown again. The previous key stops working the moment the new one is issued.
  • A key issued with the plan, or by an administrator, is stored as a digest too. Rotate once on this page to receive a key you can use.
  • Allowed IPs restrict the key to named addresses. Individual addresses only — ranges are refused rather than stored unenforceable, so a CIDR block will not silently fail open.

The page also carries worked curl examples and links to the backend's own OpenAPI document, which is the schema that cannot drift.

5.4 Billing

Buying. /pricing, via the command palette or Choose a plan on the account page. Tiers and prices are fetched from the backend rather than written into the page, so what you see is what Stripe will charge. Subscribing during the free trial keeps the days left: Stripe takes the first charge when the trial ends, and Checkout states that date before you confirm. An account that already has a subscription cannot buy a second one beside it; the page points it to the account page. A lapsed subscription is held on this page until it is renewed. The founding plan sells ten places. Once they are taken its card says so and it can no longer be bought; a place is not reopened when a founding member cancels, and a founding member who returns keeps theirs. Back from a completed checkout, the bar under the masthead reads CHECKOUT COMPLETE until Stripe confirms the subscription to us, then SUBSCRIPTION ACTIVE; an account that had lapsed is taken straight into the terminal at that moment.

Managing and cancelling. Account → Subscription & billing states where the subscription stands, read from Stripe, and offers only the actions that fit:

StateThe panel saysActions
Free trialwhen the trial endsChoose a plan
Subscribed during the trialplan, price, first charge dateManage subscription, Cancel subscription
Activeplan, price, renewal dateManage subscription, Cancel subscription
Cancelledwhen access ends; nothing more is chargedResume subscription, Manage subscription
Payment failedStripe is retryingUpdate payment method, Cancel subscription
Ended, or noneno subscriptionChoose a plan
A seat on a firmthe firm pays, and who manages its subscriptionnone

Manage subscription opens Stripe's billing page: payment method, invoices and billing details. Cancel subscription opens it on the cancellation itself; access continues to the end of the period already paid for, and nothing more is charged. Resume subscription withdraws a cancellation before it takes effect. A failed payment is retried on Stripe's schedule and access continues while it is; it is restricted only after the last attempt fails. To change plan, write to contact@oneirosvision.com.

Receipts and payment e-mails. Stripe sends these for Oneiros Vision, from oneirosvision.com: a receipt for every payment, with the invoice; a reminder seven days before the first charge, if you subscribed with more than seven days of the free trial left; a notice when the card on file is about to expire or a payment fails, with a link to update it; and, when your bank asks for a payment to be confirmed (3D Secure), a link to confirm it. Replies reach billing@oneirosvision.com. Card statements show the charge as ONEIROSVISION.COM.

5.5 Firm accounts

The Practice plan is a firm account: one subscription, three named advisers, one set of books. Buying it opens the firm, with the buyer as its administrator; a practice that chose the Practice plan on the website trials it the same way once its application is approved. An administrator of Oneiros Vision can also open a firm, and sets more seats on request.

The books are the firm's. A book saved by any adviser is on every adviser's book bar, with who saved it, and every adviser can open and change it. Only the adviser who saved a book, or the firm's administrator, can delete it; a colleague's book shows Firm book where the delete would be. Each adviser keeps their own active book, so switching books never moves a colleague's desk. If two advisers save the same books at the same moment, the second save is refused with a message to reload, rather than overwriting the first. Clients (§3.19) reads across the whole firm, and a mandate's record (§3.15) is one record whoever wrote to it. A firm book's breach and 10% e-mails go to every adviser who has those e-mails switched on.

Account → Firm account. The administrator sees each seat: the adviser, their address and whether they have signed in and set up a second factor.

  • Invite. A colleague's name and business address. They receive their username and a code to set a password, which works for three days, and set up a second factor at their first sign-in. A throwaway mail address is refused, as at sign-up; an address that already has an account cannot also hold a seat (write to contact@oneirosvision.com to move it).
  • Remove. Takes the seat away and deletes the colleague's account, after a confirmation. The books they saved stay with the firm.
  • Rename. Changes the firm's name on every seat.

A colleague sees the firm, its administrator and the other advisers, and no controls. Their billing panel says the firm pays; they cannot buy a plan of their own on a seat. Access follows the firm: while its subscription or trial runs, every seat signs in; when it lapses, colleagues are told the administrator can renew it. The administrator cannot delete their own account while colleagues hold seats, because the firm's books would go with it: remove the colleagues first.


5.6 Deleting your account

Account → Delete account, with your password entered again. It is permanent. A running subscription is cancelled at once, with no refund for the rest of the period (Terms 1.2 clause 6.2; 2.0 clause 11.2); if Stripe cannot be reached the deletion is refused and nothing changes, so a subscription is never left running behind a deleted account. Your books, mandate records, alert settings, API key, second factor and every personal field go at once, and every session ends. If the account ever held a paid subscription, a record with only your username and the billing reference stays for twelve months and is then erased; an account that never paid is erased entirely. Invoices are kept for five years, as Romanian accounting law requires, and backups taken before the deletion expire within 13 months; the Privacy Notice (section 9) sets out all four. The e-mail address can register again at once; the username only after the record is gone.

5.7 When the Terms change

At least 30 days before a material change to the Terms & Conditions takes effect, every account is told by e-mail, as the Terms promise (clause 13 of version 1.2, clause 16 of version 2.0), and a strip across the top of the terminal names the version, the day it takes effect and what changes, with a link to the new text. The strip can be put away for that version in your browser. The current Terms apply until the day.

On the day it takes effect, the terminal asks you once, before it opens, to read the new version and accept it; the acceptance is recorded with the date and the address it came from. Account stays open while the question is shown: if you do not agree, cancel your subscription or delete your account there (§5.6).

From version 2.0 the question has a second box. Romanian law (Civil Code art. 1203) gives effect to certain clauses of standard terms only once they are accepted expressly and in writing: automatic renewal, suspension, the limits of liability, the governing law, the courts and the others the Terms list at their end. The box names them; ticking it is that acceptance, and it is recorded beside the acceptance of the Terms. The sign-up form shows the same box.

Version 2.0 was announced on 21 October 2026 and applies from 25 November 2026. The terminal switches on that date by itself.

5.8 Your data: what you can export, and in what form

This section is the register of data structures and formats that the EU Data Act (Article 26) asks a provider to keep, and that the Terms (Schedule 3) point to. Every file below is yours to take at any time while the subscription runs.

ExportWhereFormatContents
Mandate recordClient workflows, the mandate record's Export CSVCSV, one row per entry, the whole historyseq, entry_type, entry_date, regime, mdi, var_95_pct, drawdown_bound_95_pct, mandate_configured, mandate_breaches, depreciation_state, depreciation_change_pct, depreciation_estimated, alerts_sent, actor, note, acknowledged_at, digest, created_at
AllocationsExports panel, CSV allocationsCSVticker, current_weight, and with a target set target_weight and delta
Regime exposureExports panel, CSV regime exposureCSVsleeve, portfolio_pct
Client table (a firm)Exports panel, CSV client tableCSV, a three-line header naming the date and the firm's assetsone row per book: name, value and currency, the regime mix, drift, the 10% depreciation state, the stated tolerance and the measured bound
Risk briefing, client summaryExports panelPDFthe book against the current regime, as rendered by the backend
Panelsthe download mark on a panelCSV, or plain text for the commentarywhat the panel shows, after comment lines naming the panel, its source and the snapshot date
OrdersExecution, EXPORT ORDERS (CSV)CSVthe orders of every ticked account

On request. The books as stored (holdings, quantities, values and cash), mandate limits, targets, stated tolerances, notes, the alert settings and the account's own record are sent within five business days of an e-mail to contact@oneirosvision.com, as JSON (account.json, books.json) and one CSV per mandate record. After a subscription ends, books stay retrievable this way for 30 days and the mandate record and account data for 365 days.

Switching. To move to another provider or to your own systems, write to contact@oneirosvision.com; the Terms (Schedule 3) set out the 30-day transition, the retrieval period and the erasure that follows. No charge applies.

5.9 The e-mails the terminal sends

Service e-mails come with the account and cannot be switched off: sign-in codes, invitations, security notices, billing, notices of a change to the Terms, and the trial's reminder and end. Alerts go as your settings on the account page ask. During a trial, two product letters explain the engine and its record in backtest; each carries a Stop these e-mails link, which opens a page in the terminal that asks once and then stops them. Nothing else changes.


7. Methodology reference

Enough to read the screens. The whitepaper carries the derivations.

7.1 The four regimes

CALM (Risk-On), CHOP (Neutral), WARNING (Hedged), CRITICAL (Risk-Off).

The regime is named from the MDI's position within fixed bands, with asymmetric hysteresis applied by a state machine. This is why the MDI crossing a boundary on the Master Danger Index chart (§2.8) is not itself a regime change.

7.2 The Master Danger Index

An absolute 0–100 score of systemic risk, built from seventeen inputs over sixteen series across three pillars (VIX and MOVE enter two of them), decomposing exactly from a neutral 50.

  • Speedometer — the velocity of risk expansion. A violent spike signals a liquidity vacuum: the market moving too fast, warning of cross-asset stress.
  • Sentiment — stress in positioning and hedging demand (VIX, MOVE, put/call ratios, the bull/bear spread). Fear raises the MDI; it is not a contrarian gauge.
  • Macro Health — net systemic liquidity and yield-curve dynamics. The structural fail-safe: when it turns negative, the foundation is deteriorating regardless of surface calm.

The Speedometer rises as risk rises. Sentiment and Macro Health fall as risk rises. Sentiment and Macro Health are z-score-like and routinely negative; Speedometer is bounded 0–100. That difference is why they are drawn as three separate charts in §2.9 rather than forced onto one scale.

Two pillars clip. Once Sentiment or Macro reaches its bound, it stops responding to its inputs entirely — see the saturation note in §2.5.

7.3 Asset classification

Client tickers are translated into five regime-sensitivity buckets by a two-layer engine.

Layer 1 — exact match. A pre-compiled database of actively traded instruments: S&P 500, STOXX Europe 600, FTSE 100, DAX, MDAX and SMI constituents; European-domiciled UCITS ETFs (VWRL.SW, CSSPX.SW, ZGLD.SW and similar) that Swiss and EU managers need under PRIIPs/MiFID II; and global treasuries, corporates and money-market funds.

Layer 2 — GICS router. Anything not found falls back to a live metadata lookup:

GICS sectorBucket
Technology, Consumer Cyclical, Financials, Communication ServicesGrowth
Healthcare, Utilities, Consumer DefensiveDefensive Equities
Energy, Basic Materials, Real Estate, Physical CommoditiesStagflation
Bond, Sovereign Debt (asset-class override)Deflation
Money Market, Cash (asset-class override)Defensive Cash

Growth is also the fallback when nothing matches, which is why §3.3 reports how many holdings landed there.

The same six names everywhere. The whitepaper's section 2 describes these six sleeves under the names used here and in the API's holdings_classified.

7.4 Covariance and the HRP benchmark

The reference allocation on the Risk Desk is Hierarchical Risk Parity, fitted on a covariance matrix built with the Gerber statistic and cleaned by Marchenko–Pastur denoising (eigenvalue clipping).

Traditional mean-variance optimisation is highly sensitive to estimation error and requires matrix inversions that break down in exactly the correlated crash regimes you care about. Gerber filters co-movement artefacts; Marchenko–Pastur scrubs random noise from the covariance matrix; HRP allocates iteratively over the correlation hierarchy and needs no expected-return assumptions.

When the holdings share too little history for the Gerber statistic, HRP is fitted on the plain sample covariance. The correlation matrix and the risk contributions are measured separately, on the sample covariance shrunk toward constant correlation (§3.7).

9. API developer integration

For institutional users on the Enterprise API Data License. The full reference, with live examples and the account's key management, is at /api-docs.

9.1 Obtaining your key

  1. Sign in to the terminal.
  2. Open /api-docs: from the command palette (API Credentials & Developer Access, offered to accounts with API access) or by typing the URL.
  3. Press Rotate key. The new key is shown once; copy it into your systems then. Afterwards the page shows only its first twelve characters, and the previous key stops working the moment the new one is issued.

The terminal stores a digest of the key, not the key, so nobody - including Oneiros Vision - can read it back. A key issued with the plan is stored the same way, which is why the first visit to the page is a rotation. Do not share it.

Optionally restrict the key to named IP addresses on the same page (§5.3).

9.2 Base URL and authentication

All endpoints are served from:

https://api.oneirosvision.com

Every request carries the key as a header. It is X-API-Key — not an Authorization: Bearer token:

X-API-Key: ov_prod_...

Rate limits are per endpoint, and range from 60 requests a minute on the regime and pillar reads down to 3 a minute on the heaviest. /v1/portfolio/regime-profile is 20. Exceeding a limit returns 429.

The limits are not advertised in response headers, so a client that needs to pace itself should track its own request rate rather than expect a RateLimit-Remaining to read.

9.3 Endpoints

Latest MDI and regime

GET /v1/risk/mdi

Returns the live MDI, its 1-day and 5-day deltas, the regime label, the conviction score, turnover sensitivity, and the three pillar readings:

{
  "mdi_score": 43.35,
  "mdi_1d_delta": 1.25,
  "mdi_5d_delta": -2.10,
  "regime": "WARNING (Hedged)",
  "regime_conviction_score": 0.62,
  "turnover_sensitivity": "HIGH",
  "speedometer": 47.32,
  "sentiment": 7.19,
  "macro_health": -0.02,
  "date": "2026-09-04"
}

A portfolio in each regime

POST /v1/portfolio/regime-profile
{
  "tickers": {"NESN.SW": 0.5, "ROG.SW": 0.5},
  "currency": "CHF"
}

Returns, for each regime, how the portfolio as held has behaved since 2010: its share of the time, volatility, bad month, deepest fall, and beta and correlation to the portfolio's home market, with the regime in force.

Complete schema: the backend's own OpenAPI document, linked at the foot of /api-docs. That is the one place the schema cannot drift from the code.