Read, don't predict.
An RM works across half a dozen tools before lunch. None of them carry the same client's state in the same shape. ICE — the Interpretive Core Engine — pulls those pieces into one view, for one client. The RM reads it. The CO signs.
Five steps from raw signal to human decision.
The first four steps are the machine's job. Step 5 is the human's. Every value on screen traces back to a raw token, then to its source, its timestamp, and the RM who admitted it. Click a step to see what flows through.
01 · RAWSource feedsWhere the engine takes in everything an RM already touches.
- Bloomberg quotes — live price, volume, spread, fx vol
- CRM notes — RM-logged client utterance, meeting log, reply lag
- Compliance feed — regulatory filings, sanctions list updates
- Internal mail — memo threads, escalation notes
- Trade ledger — execution timestamp, order routing, fill record
- Portfolio snapshot — holding deltas, concentration shifts
02 · TOKENTokenisationRaw signals turn into observable tokens. No raw data passes.
- Market — VIX_spike · sector_pressure · fx_vol
- Liquidity — exit_window_days · position_vs_adv · bid_ask_widening_flag
- Credit — counterparty_rating_Δ · CDS_spread_Δ · sovereign_risk_shift
- Regulatory — sanctions_announcement · regulatory_trigger (→ CO Channel)
- Behavioral — option_overload_flag · clarification_request_count · downside_focus_count
03 · LAYER4-Layer scoringEach token feeds one of four layers. Each layer asks something different.
- L1 ← UTCA kernel · Behavioral tokens (clarification, option_overload, downside)
- L2 ← Market tokens · UHNW segment · sector volatility
- L3 ← (dormant — peer cohort not yet available)
- L4 ← Environmental tokens · sanctions · geopolitics · regime shifts
04 · COMPOSITEWeighted aggregationThree active layers combine into one number, then a band.
- Formula — (L1 × 0.40) + (L2 × 0.33) + (L4 × 0.27)
- Threshold bands — CRITICAL ≤ −7.0 · WARNING −7.0~−5.0 · WATCH −5.0~−2.0 · MONITORED > −2.0
- Asymmetric scale — loss ×2.0 · gain ×1.2 · loss aversion λ ≈ 2.25
- Output — single composite score + band + 7-day trajectory
05 · HUMANHuman judgmentThe RM and the CO read the result. The engine never decides.
- RM Desktop — Pre-Meeting brief · top-3 contributing tokens · 7-day trend · next action
- Compliance Terminal — Weekly portfolio pull · full reasoning trail · audit retention
- Engine boundary — no auto-action, no auto-message, no execution authority
Five input categories, one evidence layer.
Raw trade logs and conversation transcripts don't enter the engine. Only anonymised, aggregated metadata passes through, sorted into five categories. The engine reads tokens. Click a card to see what's in each.
01 · MARKET → L1 · L4Bloomberg / market dataThe regime the client trades inside.
- VIX_spike = TRUE
- sector_pressure{ energy: −8.2% }
- fx_vol{ USD/RUB: +34% }
- credit_spread_widening = +180 bps
- safe_haven_flow{ gold, JPY, CHF }
- regime_break_flag = TRUE
02 · LIQUIDITY → L4Exit-window dataWhat the portfolio can actually offload.
- exit_window_days = 12
- position_vs_adv = 3.4x
- bid_ask_widening_flag = TRUE
- block_trade_capacity_drop = 0.42
- settlement_friction_bp = +25
- dark_pool_share_drop = TRUE
03 · CREDIT → L4Counterparty / sovereign signalsPaper that turns before equity does.
- counterparty_rating_Δ = −2 notch
- CDS_spread_Δ = +180 bps
- sovereign_risk_shift{ RU }
- issuer_concentration_flag = TRUE
- default_correlation_rise = 0.18
- covenant_drift_flag = TRUE
04 · REGULATORY → CO ChannelCompliance / MAS feedRouted to the Compliance Terminal. Does not enter L1·L2·L4.
- sanctions_announcement = TRUE
- regulatory_trigger = active
- kyc_re_review_required = TRUE
- cross_border_flag = TRUE
- mas_notice_change_event = TRUE
- holding_period_constraint = active
05 · BEHAVIORAL → L4RM observation / utterance decompositionOne spoken sentence broken into observable tokens.
- option_overload_flag = TRUE
- clarification_request_count = 1
- downside_focus_count = 1
- reply_lag_days = 2.8
- voice_call_urgency = high
- two_path_compare_request = TRUE
"Too many options. Narrow it to two, walk me through the worst downside first." The engine breaks this into the six tokens above (Phan et al., 2016).
Four layers (L1 Behavioral · L2 Market · L3 Explicit Social · L4 Environmental), defined separately, weighted together.
Each layer asks a different thing. The 4-layer frame comes from SRBM+, adapted for private banking. L3 stays defined but off. It needs a peer cohort the project doesn't have yet. Active weights renormalise from (0.30 · 0.25 · 0.25 · 0.20) to L1 0.40 · L2 0.33 · L4 0.27.
The only layer the engine can't see directly. It reads observed behavior. Re-asked questions, untouched options, downside loops, then runs that through UTCA.
call transcripts · RM memos · token decomposition
↓ See UTCA Kernel · Step 05
Where the market is, not where the client is. UHNW cash flow, sector volatility, market mood. Slower than L1, wider in reach.
trade ledger · comms log · portfolio snapshot
L2 = −5.4 locked · ICE Engine v3.2.1.
What the client puts on the record. Goals, limits, do-not-touches. Off until peer-cohort data lands and consent stands up to PDPA.
onboarding sheet · RM 1:1 · stated objective
Weight 0.00, currently.
Things the client didn't choose. Geopolitics, regulatory change, sanctions, regime breaks. On a triggering event the layer hits a 1.5–2.0× multiplier.
market events · news triggers · segment shock data
Inside L1, the UTCA kernel (Understanding · Trust · Complexity · Anxiety) gives a four-axis read of the client's state.
L2 and L4 read from outside data. L1 doesn't. Self-report is skipped on purpose. Clients misread their own state. UTCA takes observed behavior, runs it through four axes, returns one L1 number. Scale is asymmetric: a loss weighs ×2.0, a gain ×1.2.
Information clarity. When understanding breaks, a good option gets picked wrong.
clarification_request_count ↑ · option_overload_flag = TRUE
Predictability and dependability of the RM. Trust shows up first as response speed.
reply_lag_days ↑ · two_path_compare_request = TRUE
Cognitive load of the decision space. More options, worse choice.
downside_focus_count · portfolio_relevance_found
Affective load. Fear, avoidance, downside fixation. Compresses the time horizon and pins attention to threat.
voice_call_urgency · news_trigger_proximity = 2h
Asymmetric scale · loss ×2.0 / gain ×1.2 · loss aversion λ ≈ 2.25.
- C↑ → A↑ Option overload → anticipated regret → anxiety rises.
- A↑ → U↓ Attentional control breaks → working memory shrinks → understanding drops.
- C↑ → U↓ Cognitive load saturates → comprehension pathway closes.
- T↑ → C↓ Trust builds → RM filters options → complexity drops.
- U↓ → T↓ Comprehension fails → reconfirmation rises → trust erodes.
Composite (one number from L1·L2·L4) at one timepoint — T3 pivot.
One frame from the canonical scenario. T3 is the peak-crisis day in the Russia-Ukraine 2022 fixture: US oil embargo announced, mark-to-market trough at −20% peak-to-trough. The RM enters Pre-Meeting; the CO sees the band cross. The Composite below is what the engine fed the RM in that 11-minute window.
| Layer | Score | Weight | Contribution |
|---|---|---|---|
| L1 Behavioral Signal | −9.1 | × 0.40 | −3.64 |
| L2 Market Context | −5.4 | × 0.33 | −1.78 |
| L4 Environmental Events | −8.3 | × 0.27 | −2.24 |
| Composite | −7.66 / CRITICAL | ||
Δ T0 → T3 = −4.55 in 16 days. Δ T3 → T5 = +3.17 over 28 days. Asymmetric scale: loss ×2.0, gain ×1.2. Deterioration is fast, recovery is slower. Loss aversion λ ≈ 2.25 (Kahneman & Tversky, 1992).
Four bands, one decision rule.
Bands turn one composite number into four states the RM and the CO can act on. Thresholds were calibrated to the Russia-Ukraine fixture. Live deployment recomputes against the bank's own loss profile.
Surface immediately. CO audit raised. RM action note required within 24 hours (MAS Notice 626 §11).
Bring forward at next planned RM contact. Tag for CO sample audit.
Visible in the briefing list. Monitored for direction of change.
Default state. Recorded for trend continuity. No action triggered.
T0 → T5 across the canonical scenario.
One scenario, six timepoints. Russia-Ukraine 2022 set the band thresholds and the asymmetric scale. T3 is the canonical anchor; the rest are progression markers. Operational use needs more cases.
| Point | Date | Stage | L1 | L2 | L4 | Composite | Band | Index |
|---|---|---|---|---|---|---|---|---|
| T0 | 02-18 | pre-tension baseline | −2.1 | −5.4 | −1.8 | −3.11 | WATCH | 100 |
| T1 | 02-24 | full-scale invasion | −6.8 | −5.4 | −5.2 | −5.91 | WARNING | 94 |
| T2 | 03-01 | market shock · SWIFT cutoff | −8.2 | −5.4 | −7.1 | −6.98 | WARNING | 86 |
| T3 | 03-08 | US oil ban · pivot | −9.1 | −5.4 | −8.3 | −7.66 | CRITICAL | 80 |
| T4 | 03-15 | central bank intervention | −7.4 | −5.4 | −6.9 | −6.61 | WARNING | 83 |
| T5 | 04-05 | reallocation · stabilizing | −4.2 | −5.4 | −3.8 | −4.49 | WATCH | 90 |
Reading: T0 → T3 deteriorates by −4.55 over 16 days. T3 → T5 recovers by +3.17 over 28 days. L2 fixed at −5.4 across the trajectory (prototype consistency · ICE Engine v3.2.1).
One engine, two exposures.
Same engine, same numbers. What differs is depth, frequency, and who acts on it. The RM Desktop sits with one client at a time. The Compliance Terminal pulls the whole portfolio, weekly. Neither reads into the other's domain.
Compliance Terminal
What this is, and what it is not.
A design prototype tested against one canonical scenario. The list below names what's missing between the prototype and a deployable system.
- Single-scenario validation. Cohen, 1992
Russia-Ukraine 2022 only. Operational use requires multi-case validation, n ≥ 64 (Cohen, 1992 power primer).
- Threshold derivation. Goodhart, 1975
Bands of −7.0 / −5.0 / −2.0 are back-calculated from the single scenario. Aligned with ±σ but lacking external benchmark; Goodhart-Campbell drift risk applies once thresholds are operationalised.
- L2 fixed at −5.4. ICE Engine v3.2.1
Held constant for prototype consistency. Operational deployment recomputes L2 daily from live UHNW segment data.
- L3 excluded. PDPA §13/§14
Defined but not active. Reactivation depends on peer-cohort data and PDPA-aligned consent design.
- RBAC not implemented. MAS TRM §9
Permission separation lives in the UX layer only. Operational deployment requires backend Role-Based Access Control.
- RM observation bias. Kruger & Dunning, 1999
Behavioral tokens depend on what the RM logs. Bias mitigation belongs in RM training and dual-coding, not the engine.
- Weights are scenario-set. SRBM+ basis
L1 0.40 / L2 0.33 / L4 0.27 calibrated to one fixture. Recalibration required on the institution's own loss profile.
- Defensibility = local explainability. EU AI Act Art 86
CO decisions are only as defensible as the per-case reasoning trail the system can render at audit (Ribeiro et al., 2016 LIME-class explainability).
Where the prototype stops.
Five clauses define what the engine can't do on its own. Each anchor blocks one specific class of action.
- GDPR Art 22 → no automated decision
The engine ranks and explains. It does not decide. Every CO action requires a written human sign-off.
- GDPR Art 9 → special-category data
Affect labels, mood, mental-state inference are blocked. Tokens stay on observable behavior (H1 lock).
- EU AI Act · Annex III → high-risk AI in finance
Assistive ranking and scoring of natural persons in financial services falls under high-risk. The system carries the obligations: risk management, logging, human oversight, transparency.
- MAS SFA → suitability + recordkeeping
Suitability basis must be preserved per decision (MiFID II Art 25 alignment). Engine output stored with the decision, not separately.
- PDPA §13 / §14 → consent + purpose
Personal data processed only for the consent scope (§13) and the stated purpose (§14). Tokenisation is the preferred treatment under both.
Sources.
Cited per Cite Them Right (12th ed.). Shared across the Flipbook, the CPJ, and the Studio Report.
- (1974) 'Judgment under uncertainty: Heuristics and biases', Science, 185(4157), pp. 1124–1131.
- (1979) 'Prospect theory: An analysis of decision under risk', Econometrica, 47(2), pp. 263–291.
- (1992) 'Advances in prospect theory: Cumulative representation of uncertainty', Journal of Risk and Uncertainty, 5(4), pp. 297–323.
- (2000) 'When choice is demotivating: Can one desire too much of a good thing?', Journal of Personality and Social Psychology, 79(6), pp. 995–1006.
- (2004) The paradox of choice: Why more is less. New York: HarperCollins.
- (1988) 'Cognitive load during problem solving: Effects on learning', Cognitive Science, 12(2), pp. 257–285.
- (2007) 'Anxiety and cognitive performance: Attentional control theory', Emotion, 7(2), pp. 336–353.
- (1999) 'Unskilled and unaware of it', Journal of Personality and Social Psychology, 77(6), pp. 1121–1134.
- (1992) 'Relationships between providers and users of market research', Journal of Marketing Research, 29(3), pp. 314–328.
- (2014) 'The economic importance of financial literacy: Theory and evidence', Journal of Economic Literature, 52(1), pp. 5–44.
- (2016) 'A deep learning approach for human behavior prediction in social networks: SRBM+', Social Network Analysis and Mining, 6(1), Article 79.
- (2016) '"Why should I trust you?": Explaining the predictions of any classifier', Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 1135–1144.
- (2002) 'k-anonymity: A model for protecting privacy', International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, 10(5), pp. 557–570.
- (1992) 'A power primer', Psychological Bulletin, 112(1), pp. 155–159.
- (2020) NIST Privacy Framework, Version 1.0. Gaithersburg, MD: NIST.
- (2024) Regulation (EU) 2024/1689 (Artificial Intelligence Act).