Load a portfolio to begin.

Pairwise Correlation Matrix

Correlation Pairs Summary

AI Analysis
Analysis will appear here after running the portfolio.

Market Regime Timeline & Portfolio Cumulative Return

Regime Distribution

Per-Regime Statistics

AI Analysis
Analysis will appear here after running the portfolio.

Current Factor Exposures (with 95% CI)

Rolling Factor Exposures (252-day window)

Factor Descriptions

AI Analysis
Analysis will appear here after running the portfolio.

Return Distribution

Rolling 12-Month Maximum Drawdown

Worst 10 Drawdown Days — Contribution by Holding

AI Analysis
Analysis will appear here after running the portfolio.

Stress-Period Correlations by Instrument

Volatility Reduction at 10% / 20% Allocation

Hedge Effectiveness Table — Historically Observed Offsets

AI Analysis
Analysis will appear here after running the portfolio.

Cumulative Return — Portfolio vs STI ETF (ES3.SI)

Active Return vs Benchmark

Rolling 12-Month Return — Portfolio vs Benchmark

Calendar Year Returns

Statistics — Portfolio vs STI ETF (ES3.SI)

AI Analysis
Analysis will appear here after running the portfolio.
Analyses 50 SGX names across 3Y of price data using two-pass AI + quant engine. Runtime: ~10–15 seconds.
Portfolio construction scenarios are generated using 3-year historical price data and quantitative optimisation. They represent mathematical outcomes under historical conditions only. Liquidity, governance, transaction costs, and forward-looking factors are not fully captured. This is not investment advice. Consult a licensed investment advisor before making portfolio changes.

Market & Price Data

All price data is fetched at runtime from Yahoo Finance via the open-source yfinance library. Data is daily adjusted closing prices. Corporate action adjustments (splits, dividends) are applied by Yahoo Finance automatically but may be incomplete for less liquid SGX names.

TickerNameUsed InNotes
.SI tickersPortfolio holdings (user-defined)All modulesSGX-listed equities; prices in SGD
ES3.SISPDR STI ETF (Straits Times Index)Regimes, Factors, Benchmark, HedgingUsed as the SGX market benchmark throughout
SGDUSD=XUSD/SGD spot rateFactors, Hedging (Gold)Yahoo Finance FX rate; used for FX sensitivity factor and Gold SGD conversion
GC=FGold Futures (COMEX front-month)Hedging OffsetsUSD-denominated; converted to SGD terms using SGDUSD=X for hedging analysis
AAXJiShares MSCI All Country Asia ex Japan ETFHedging OffsetsUsed as a regional diversification / hedging candidate
AXJRiShares Asia ex Japan REIT ETFHedging OffsetsFrequently unavailable via Yahoo Finance; omitted from hedging results when data fails

SGD Interest Rate Proxy (SORA)

The Factor Exposure module uses a SGD interest rate proxy as a third factor alongside market beta and FX sensitivity. The proxy is sourced via a waterfall of fallbacks tried in order at runtime. The first source that returns valid data is used.

Source (priority order)TickerTypeAvailability
1 — SGS 2Y Bond Yield2YY=RYield level (Reuters format)Frequently unavailable on Yahoo Finance (404)
2 — SGS 10Y Bond YieldSG10YT=RRYield level (Reuters format)Frequently unavailable on Yahoo Finance (404)
3 — iShares Asia IG Bond ETFA35.SISGX-listed bond ETF priceReliably available; current active fallback
4 — US 3M T-Bill (last resort)^IRXYield levelBackup only; logs a console warning when used

Sign convention: Each series is differentiated (pct_change) and sign-adjusted so that a positive regressor value means rates are rising. A35.SI moves inversely to rates (bond price rises as yields fall), so its return is multiplied by −1 before use. A positive SGD Rate Sensitivity coefficient therefore means the portfolio benefits when rates rise; a negative coefficient means it is hurt.

Limitation: A35.SI is an investment-grade Asian bond ETF, not a pure SGD rate instrument. Its price reflects credit spreads, duration of its holdings, and USD/SGD translation, not just the SORA overnight rate. It is a reasonable directional proxy for rate sensitivity but should not be read as a precise SORA beta. For production use, connect directly to the MAS SORA daily fixings API.

AI Interpretations

Each module's AI narrative is generated by the Anthropic Claude API (claude-sonnet-4-6). The model receives the quantitative output of that module and is prompted to interpret the numbers in plain English for a Singapore-focused equity portfolio context. AI text is generated on demand and is not cached between sessions.

Limitation: Claude has a knowledge cutoff and does not have access to live news, earnings releases, or MAS regulatory announcements. Interpretations reflect historical statistical patterns only. They should not be treated as forward-looking analysis or investment advice.

Construction Scenarios

The Construction Scenarios module runs a two-pass engine against a universe of 50 SGX names (STI 30 + approximately 20 next by market cap). Price data for the full universe is fetched separately using 3 years of daily closes at startup. Optimisation objectives are Maximum Sharpe, Minimum Volatility, and CVaR minimisation, all solved with pure NumPy (no scipy/statsmodels).

Limitation: Optimised weights are derived entirely from historical returns and covariances. Transaction costs, bid-ask spreads, SGX lot sizes, and forward-looking views are not incorporated. The engine does not account for holding-period restrictions, withholding tax on REIT distributions, or SGX-specific corporate governance risks. Do not use output weights directly for live trading.

Known Data Limitations

  • Yahoo Finance is not a licensed data provider. Data may be delayed (15–20 min intraday), have gaps on Singapore public holidays, or be silently stale. For institutional production use, replace yfinance with SGX DataConnect, Refinitiv, or Bloomberg.
  • SGS bond yield tickers (2YY=R, SG10YT=RR) are unreliable. Yahoo Finance often returns 404 for Reuters-format SGS yield tickers; the app falls back to A35.SI automatically but logs which source was used.
  • AXJR is frequently delisted / unavailable on Yahoo Finance. It is silently skipped in Hedging Offsets when data cannot be fetched.
  • Adjusted close prices are adjusted for splits and dividends by Yahoo Finance, but accuracy varies — especially for SGX counters with complex dividend histories or rights issues.
  • Gold (GC=F) is COMEX front-month USD futures. Roll costs and basis between spot and front-month are not modelled. The SGD conversion uses a daily FX rate, not the specific settlement convention of each contract.
  • All analyses use calendar-day aligned daily closes. SGX and US market holiday calendars differ; on US-only holidays, SGDUSD=X and GC=F may have gaps that are forward-filled (up to 5 days).
  • Rolling OLS window (252 days) means the first ~12 months of data produce no rolling factor estimates. For short analysis periods (1Y), the rolling chart will have very few or no data points.

Initialising...