Hands-on walkthroughs from your first portfolio to advanced Monte Carlo simulations.
Head to the sign-up page and register with a username, email, and password (minimum 8 characters). Once registered, you are automatically logged in and your session persists across browser restarts.
Click Open Platform in the navigation bar or visit /app. You will see the main dashboard with the portfolio panel on top, risk metrics in the middle, and optimisation tools below.
In the portfolio panel, type a ticker symbol (e.g. AAPL) into the search field. Enter the number of shares and your average cost basis, then click Add. Soavalon fetches the latest market price and immediately displays your position value and unrealised P&L.
Once you have at least two holdings, click Run Analysis. Soavalon computes:
Your portfolio is automatically saved to your browser's localStorage. When logged in, click Sync to Cloud to access your portfolio from any device.
The top section displays all your positions in a table with columns for ticker, shares, cost basis, current price, market value, and unrealised P&L. The summary row at the bottom shows total portfolio value and aggregate P&L. Click any column header to sort.
Below the holdings table you will find toggle buttons for configuring how risk is estimated:
After clicking Run Analysis, results appear showing all three VaR methods side by side. The method you selected is highlighted, but all three are always visible for easy comparison. Below VaR you will see Expected Shortfall, portfolio volatility, and the correlation matrix.
The bottom panels contain portfolio optimisation (Max Sharpe, Min Variance, Risk Parity, Equal Weight) and stress testing. These are covered in detail in the Intermediate and Advanced tutorials.
Type a valid ticker symbol into the search field (e.g. MSFT, TSLA, SPY). Enter the number of shares you hold and your average cost basis per share, then click Add. The position appears in your holdings table with live pricing.
Click the edit icon on any row to modify the share count or cost basis. Click the trash icon to remove the position entirely. All changes are auto-saved to localStorage.
The P&L column shows your unrealised gain or loss for each position:
Green values indicate gains; red values indicate losses. The total P&L in the summary row aggregates all positions.
Click Export to download your entire portfolio as a JSON file. To restore a backup or transfer between devices, click Import and select the JSON file.
You can create multiple named portfolios and switch between them. Each portfolio maintains its own set of holdings, risk configuration, and optimisation results. Use this to compare different allocation strategies side by side.
VaR answers: “What is the maximum I can expect to lose over a given time horizon at a given confidence level?” For example, a 1-day 95% VaR of $10,000 means there is a 5% chance of losing more than $10,000 in a single day.
Assumes portfolio returns are normally distributed. The formula is:
VaR = μ − zα · σ
where zα is the standard normal quantile (e.g. 1.645 for 95%, 2.326 for 99%). It is fast and widely used but underestimates tail risk for skewed or fat-tailed distributions.
Adjusts the normal quantile using the portfolio's skewness (S) and excess kurtosis (K):
zCF = z + (z²−1)S/6 + (z³−3z)K/24 − (2z³−5z)S²/36
When the portfolio exhibits negative skew or positive excess kurtosis (fat tails), CF VaR will be larger than Parametric VaR — this is the correct behaviour, as it captures tail risk that the normal distribution misses.
Sorts the actual historical daily returns and picks the percentile corresponding to your confidence level. No distributional assumptions needed, but results depend entirely on the observed sample. If a particular type of market event did not occur in your lookback window, Historical VaR will not capture it.
Time horizons (1-day, 5-day, 10-day, 21-day) are scaled using the square-root-of-time rule: VaRT = VaR1 · √T.
Before running optimisation, set minimum and maximum weight bounds. For example, no position below 2% or above 40%. These constraints are enforced during the numerical solver, preventing concentrated bets.
Optionally reserve a percentage in cash (earning the risk-free rate). The optimiser allocates the remaining capital across risky assets. This is useful for investors who want to maintain liquidity.
Select your strategy, configure constraints, and click Optimize. The results show:
Max Sharpe tends to concentrate in high-return assets, while Risk Parity produces more balanced allocations. Min Variance favours low-volatility assets. Compare all four to understand the trade-offs between return, risk, and diversification.
Sample correlation matrices estimated from limited data can be noisy and poorly conditioned. This is especially problematic when the number of assets is large relative to the number of observations. Shrinkage blends the noisy sample estimate toward a structured target to produce a more stable matrix.
ρadj = w · ρsample + (1 − w) · ρtarget
Use the slider in the Risk Configuration panel to adjust the shrinkage weight.
For portfolios with 5+ assets and lookback windows under 1 year, moderate shrinkage (w = 0.5 – 0.7) typically improves optimisation stability. Blume-adjusted beta is recommended for CAPM expected return estimates, as raw betas tend to overestimate risk for high-beta stocks and underestimate it for low-beta stocks.
In the dashboard sidebar, click Fundamentals. The section has five sub-tabs: Calculators, Summary, Valuation Metrics, Earnings & Growth, and Balance Sheet. Enter any ticker at the top to load its financial data.
The Capital Asset Pricing Model estimates the expected return of an asset:
E(R) = Rf + β(E(Rm) − Rf)
Enter the risk-free rate, market return, and beta. You can also solve for any one variable by toggling the Solve For buttons. The calculator auto-fills beta when you enter a ticker.
Weighted Average Cost of Capital blends the cost of equity and debt:
WACC = (E/V)Re + (D/V)Rd(1 − T)
Input market cap (E), total debt (D), cost of equity (from CAPM), cost of debt, and tax rate. The result tells you the minimum return a company must earn to satisfy all capital providers.
The Summary tab displays hero cards with current price, market cap, and beta, plus snapshot tables for valuation, earnings, and balance sheet highlights. The dedicated tabs go deeper:
Navigate to the Portfolio Comparison section in the Analysis tab. Select Portfolio A and Portfolio B from your saved portfolios using the dropdown selectors. Both portfolios must have holdings with historical price data available.
The comparison chart overlays the cumulative return paths of both portfolios over the selected lookback period. This gives an immediate visual picture of which portfolio has performed better and how their return profiles differ over time. Hover over the chart to see exact values at any date.
Below the chart, a side-by-side metrics table compares:
Soavalon computes the probability that one portfolio outperforms the other over random sub-periods. If Portfolio A dominates with 70% probability, it means that in 70% of sampled time windows, A delivered higher risk-adjusted returns than B.
The optimal blend feature finds the allocation split between A and B that maximises the Sharpe ratio. For example, the result might show “65% Portfolio A + 35% Portfolio B” as the optimal mix. Use this to understand whether combining strategies can improve your overall risk-return profile.
A detailed table lists every holding from both portfolios, showing which assets are unique to each and which overlap. Overlapping positions display the weight difference, helping you identify where the two portfolios diverge most.
A factor model explains asset returns as a function of common risk factors. Soavalon's default uses two factors: SPY (broad market) and QQQ (tech/growth). Each asset's sensitivity to these factors is estimated via multivariate regression on historical returns.
Enter hypothetical percentage changes for each factor. For example:
Soavalon then estimates per-position P&L as: Position Value × (Factor Loading × Shock Magnitude).
The stress test output shows a breakdown for each asset:
The total row aggregates all per-position impacts.
If a single position dominates the total stress loss, your portfolio has concentration risk. Consider rebalancing or hedging that exposure. Compare results across different shock scenarios (mild, moderate, severe) to understand how your portfolio responds to varying levels of market distress.
Monte Carlo simulation generates thousands of possible future return paths by randomly sampling from a statistical model. By aggregating outcomes across all paths, you can estimate the full distribution of portfolio returns — including rare tail events that parametric methods may miss.
Each asset's price path follows:
St+1 = St · exp((μ − σ²/2)Δt + σ√Δt · Z)
where Z is a standard normal random variable, μ is the expected return, and σ is the volatility. This ensures prices stay positive and returns are log-normally distributed.
For a portfolio, asset returns must be correlated. Soavalon uses a Cholesky decomposition of the correlation matrix to generate correlated random variables:
This preserves the pairwise correlation structure across all simulated paths.
After running N simulations (e.g. 10,000), sort the terminal portfolio values. The 5th percentile gives the 95% VaR; the 1st percentile gives the 99% VaR. The average of all values below the VaR threshold gives the Expected Shortfall.
In the dashboard sidebar, click Options. The section has two sub-tabs: Black-Scholes and Taylor Expansion. You can auto-fill the current stock price by entering a ticker at the top.
Enter the five standard parameters:
Select Call or Put, then choose what to solve for. The default solves for the option price, but you can toggle to solve for Implied Volatility (given a market price) or Stock Price (given a target option value).
After computing the price, Soavalon displays all five Greeks:
The right-hand panel shows a quick reference with the Black-Scholes formula, key relationships, and boundary conditions. Use this as a cheat sheet while experimenting with different inputs.
Switch to the Taylor Expansion tab to estimate how an option position’s value changes under scenario shifts. Enter your current position details (option price, quantity, Greeks), then specify hypothetical changes:
The estimated P&L is computed using a second-order Taylor approximation:
dV ≈ Δ·dS + ½Γ·dS² + Θ·dt + ν·dσ
A contribution breakdown bar shows how much of the total P&L comes from each Greek, making it easy to identify which risk factor dominates.