⚠ News insights and the advisor are paused: the LLM API circuit breaker opened at 09:12 (3 timeouts). All figures below are computed by deterministic services and are unaffected.
⚠ Live price API is rate-limited (HTTP 429, retry with backoff exhausted) — showing the cached snapshot from 2026-09-05 18:00. Figures are marked snapshot until the live feed returns.
+
+
+
+
Tickers configurable set
+
🔍 filter…
+
+
▸ NVDANVIDIA
+
▸ ASMLASML Holdingselected
+
▸ NESNNestlé
+
▸ ROGRoche
+
▸ MSFTMicrosoft
+
+
+ add ticker
+
Range: 1M6M1Y5Y
+
+
+
ASML — daily close, 1 year MarketDataService v1 · normalised series
+
+
+
+
Source: live API (e.g. Yahoo Finance) via MarketDataService · contract independent of the provider's format · last live fetch 2026-09-05 18:00 · Refresh
+
+
+
Recent closes from the cache
+
+
Date
Close
Src
+
2026-09-05
742.30
cache
+
2026-09-04
719.80
cache
+
2026-09-03
724.10
cache
+
2026-09-02
711.55
cache
+
2026-09-01
703.90
cache
+
+
Feed health System → breakers
+
+
timeout 3 s · retries 3 (backoff) · breaker: half-open
+
fallback: snapshot file prices_2026-09-05.parquet
+
demo mode: snapshot pinned for reproducible grading
+
+
+
+
+
1Mandatory cache/snapshot fallback when the live API is unavailable or rate-limited (§2.1).
+
2Stable, versioned interface for downstream services — the provider's format never leaks (§2.1).
+
3Resilience on every external call: timeout, retry with backoff, circuit breaker, defined fallback (§4.2).
+
SKETCH 2/7 · wireframe, not a specification
+
diff --git a/project_exercise/ui_sketches/03_news_insights.html b/project_exercise/ui_sketches/03_news_insights.html
new file mode 100644
index 0000000..a773816
--- /dev/null
+++ b/project_exercise/ui_sketches/03_news_insights.html
@@ -0,0 +1,47 @@
+Sketch 3 – News and insights
+
+
+
Portfolio Intelligence Platform thin dashboard · no business logic · calls the API
Raw news stored with provenance by NewsIngestionService · structured Insight extracted by ResearchAgent (schema-validated) · every insight checked against the ontology before it enters the system
+
+
+
+
Ingested news filter: validatedrejectedall
+
+
ID
Headline
Source · time
Guard
+
N-1023
ASML raises full-year 2026 guidance on AI demand
Reuters · 07:12
✓ validated
+
N-1021
Nestlé recalls infant formula batch in three countries
FT · 06:40
✓ validated
+
N-1019
Roche phase-III trial meets primary endpoint
SwissInfo · 06:05
✓ validated
+
N-1017
"Acme-X to be acquired", says blog post
blog · 05:50
✗ rejected
+
N-1015
Fed minutes hint at slower cuts
WSJ · 05:20
⋯ pending
+
N-1012
Chip export rules: EU opens consultation
Politico · 04:45
✓ validated
+
+
Rejected N-1017: ticker ACMEX not in ontology · event type "rumour" not allowed → insight discarded, raw text kept with provenance for audit.
+
+
+
Insight for N-1023 ResearchAgent → Insight (schema v3)
Ask the advisor AdvisorAgent (orchestrator) · answers are explained and cited
+
Should I reduce my exposure to semiconductors after this week's news?
Ask
+
+
+
Answer request r-4471 · 2026-09-07 09:31 · analysis as of 06:00 ingestion
+
Summary. Your semiconductor exposure is 35.5 % of the portfolio, concentrated in two names. This week's validated news is positive for both, so the case for trimming rests on concentration risk, not on sentiment.
+
Evidence. ASML raised 2026 guidance N-1023; EU consultation on chip export rules is a regulatory watch item N-1012. No validated negative item for NVDA this week.
+
Numbers(computed by deterministic services, not by the agent): portfolio volatility 18.2 %, VaR 95 %/1d −2.7 % (RiskService); semiconductor weight 35.5 %, top-2 concentration 40.7 % (RiskService).
+
Proposal. A mean–variance run with max 25 % per sector suggests NVDA 15 % · ASML 10 % · NESN 18 % · ROG 18 % · MSFT 21 % · cash 18 % — volatility falls to 15.9 % at −0.6 pp expected return (OptimizationService). Open in Optimisation
+
Caveats. Guidance-driven optimism can reverse; data freshness is the 06:00 ingestion; this is analysis, not investment advice or a trade.
Frontier and both points computed by the services; the chart only draws their output.
+
+
+
Allocation: current → proposed OptimizationService
+
+
Asset
Now
Proposed
+
NVDA
22.1 %
15.0 %
+
ASML
13.4 %
10.0 %
+
NESN
18.1 %
18.0 %
+
ROG
16.1 %
18.0 %
+
MSFT
18.6 %
21.0 %
+
Cash
11.7 %
18.0 %
+
+
Explanation OptimizationAgent
+
"The proposal trims the two semiconductor names to respect the 25 % sector cap, which removes most of the concentration risk; expected return falls by 0.6 pp while volatility falls by 2.3 pp. The cash weight is a by-product of the caps, not a market view."
+
Figures quoted from the service output · no number originates in the agent.
+
+
+
+
1Performance, Risk, Optimization services are pure and deterministic; exact tests against the provided reference vectors (§2.3, §4.3).
+
2Agents explain the numbers; the OptimizationAgent calls OptimizationService and never computes an allocation itself (§2.5).