Methodology

How We Calculate Portfolio Projections

A transparent, detailed explanation of the quantitative models behind Infnits portfolio projections, dividend forecasting, and risk analysis.

1. Model Overview

Infnits uses a Monte Carlo simulation engine to project your portfolio's future value. Unlike simple compound interest calculators that show a single smooth curve, our model generates 2,000 independent simulation paths to capture the full range of possible outcomes for your specific portfolio.

Each simulation path models your portfolio's growth using Geometric Brownian Motion (GBM) — the same stochastic process used by quantitative analysts and the foundation of the Black-Scholes option pricing model. The key insight is that your portfolio's future value isn't a single number — it's a probability distribution.

Portfolio ValueTime (Years)TodayP90P75MedianP25P10
Figure 1: Monte Carlo simulation generates thousands of possible portfolio paths. The shaded regions show confidence bands derived from the distribution of outcomes at each time step.

Pipeline Architecture

The projection engine follows a four-stage pipeline:

  1. Data Collection — Aggregate your holdings, historical prices (up to 2 years), fundamentals (beta, dividend yield), and dividend payment history from our database.
  2. Parameter Calibration — Compute per-holding expected returns, volatility, and dividend growth rates from historical data. Then combine into portfolio-level parameters using value-weighted averaging.
  3. Simulation — Run 2,000 independent GBM paths at monthly resolution, incorporating monthly contributions and dividend reinvestment.
  4. Aggregation — Extract percentile bands (P10, P25, P50, P75, P90) and dividend forecast streams from the simulated paths.

2. Parameter Calibration

The accuracy of any projection model depends on the quality of its input parameters. We calibrate two key parameters for each holding in your portfolio:

2.1 Expected Annual Return (μ)

We compute the annualized log return from the most recent ~504 trading days (~2 years) of daily closing prices:

ri = ln(Pi / Pi-1)   —   daily log return

μdaily = (1/n) ∑ ri

μannual = μdaily× 252

The total expected return adds the holding's current dividend yield to the price return, since dividends are a real component of total return that compound over time.

2.2 Annual Volatility (σ)

Volatility is estimated as the annualized standard deviation of daily log returns:

σdaily = √[ (1/(n-1)) ∑ (ri -μdaily)² ]

σannual = σdaily× √252

This uses the standard unbiased sample variance (Bessel's correction with n-1). The square-root-of-time scaling assumes returns are independently and identically distributed — a standard assumption in financial modeling.

2.3 Portfolio-Level Aggregation

Individual holding parameters are combined into portfolio-level values using value-weighted averaging:

wi = Vi / ∑ Vj  —   value weight for holding i

μportfolio = ∑ wi· μi

For portfolio volatility, we account for diversification effects using an empirical average correlation of 0.40 between holdings (the long-run average for diversified US equity portfolios):

σ²portfolio = ∑ wi² ·σi² + 2 ∑i<jwi wj ·σi σj · ρ

where ρ = 0.40 is the assumed average pairwise correlation. This captures the key insight that a diversified portfolio has lower volatility than the weighted average of its components' volatilities.

Price History(504 days)Fundamentals(beta, yield)Per-Holdingμ, σ, yield, betaPortfolio Paramsμp, σp, Sharpe, Beta
Figure 2: Calibration pipeline. Historical prices and fundamentals are combined into portfolio-level parameters that drive the simulation.

3. Geometric Brownian Motion

We model portfolio value evolution using the Geometric Brownian Motion stochastic differential equation:

dS / S = μ dt + σ dW

where:

  • S — portfolio value at time t
  • μ — expected annual return (drift)
  • σ — annual volatility (diffusion)
  • dW — Wiener process increment ~ N(0, √dt)

The exact solution for each time step (monthly, Δt = 1/12) is:

S(t + Δt) = S(t) · exp[(μ - σ²/2) · Δt + σ · √Δt · Z]

where Z ~ N(0,1) is a standard normal random variable generated using the Box-Muller transform. The term -σ²/2 is the Ito correction that ensures the expected value of the geometric process equals the arithmetic expected return.

GBM has several properties that make it appropriate for portfolio modeling:

  • Prices are always positive (exponential process)
  • Returns are log-normally distributed (consistent with empirical observations)
  • The model has a well-known analytical solution for parameter estimation
  • It captures the key trade-off between expected return and risk

4. Monte Carlo Simulation

We run a multi-asset Monte Carlo simulation with 2,000 correlated paths at monthly resolution. Rather than simulating the portfolio as a single entity, we group your holdings into asset buckets and simulate each one individually with correlated random shocks, then sum them to produce the portfolio total.

4.1 Asset Grouping

Your holdings are partitioned into groups for simulation:

  • Top 3 holdings (by portfolio weight) are each simulated individually using their own calibrated return and volatility
  • “Other” bucket aggregates all remaining holdings into a single sub-portfolio, with its return and volatility computed using the same value-weighted averaging and cross-correlation formula as the overall portfolio

This means on each simulated path, at every time step:

Sportfolio(t) = S1(t) + S2(t) + S3(t) + Sother(t)

This identity holds exactly on every path — the portfolio total is always the sum of its parts.

4.2 Correlated Shocks via Cholesky Decomposition

In reality, holdings tend to move together. A market downturn affects most stocks simultaneously. To capture this, we generate correlated random shocks using Cholesky decomposition of the correlation matrix.

We construct a correlation matrix C using the same average pairwise correlation ρ = 0.40, then compute its lower-triangular Cholesky factor L such that C = L · LT. At each time step:

  1. Generate n independent standard normal variables Z1, Z2, ..., Zn
  2. Correlate them: εi = ∑jLij · Zj
  3. Apply correlated GBM step to each asset: Si(t) = Si(t-1) · exp[drifti + diffusioni · εi] + Ci

This ensures the correlation structure of real markets is preserved in the simulation, and the diversification benefit of holding multiple assets is accurately reflected in the portfolio-level volatility.

4.3 Percentile Extraction

After all 2,000 paths are generated, we sort values at each time step to extract percentile-based statistics for both the portfolio total and each individual asset group.

We chose 2,000 paths as the optimal balance between statistical accuracy and response latency. At this count, the standard error of the median estimate is approximately σ / √(2000) ≈ 2.2% of the volatility — sufficiently precise for investment planning without sacrificing real-time interactivity.

5. Confidence Bands

Instead of showing a single projected line (which implies false precision), we display probabilistic confidence bands derived from the distribution of simulated outcomes:

BandPercentile RangeInterpretation
Inner bandP25 – P7550% of simulated outcomes fall within this range
Outer bandP10 – P9080% of simulated outcomes fall within this range
Median lineP50The middle outcome — equally likely to end above or below

We also render 5 sample paths spread across the outcome distribution (at roughly P15, P35, P50, P65, P85) to give visual texture and remind users that real portfolio trajectories are jagged, not smooth.

6. Dividend Forecasting

Dividend income is projected stochastically alongside portfolio growth, riding on the same multi-asset Monte Carlo paths described in Section 4. This means dividend uncertainty is directly tied to portfolio value uncertainty — higher-value paths produce more income, and vice versa.

6.1 Per-Holding Calibration

  1. Dividend yield: For each holding, the trailing twelve-month (TTM) dividend yield is computed from actual dividend payment events divided by the latest closing price. Each asset group (top 3 holdings + “Other” bucket) carries its own yield.
  2. Growth rate: For each holding, we compute the compound annual growth rate (CAGR) of dividends over the past 3 years from actual dividend payment history. The “Other” bucket uses a value-weighted average of its constituents' growth rates.

6.2 Stochastic Dividend Computation

On each of the 2,000 Monte Carlo paths, at each monthly time step, every asset group generates a dividend payment:

Di(t) = Si(t) · yi · (1 + gi)t/12 / 12

where:

  • Si(t) — value of asset group i at month t on that specific path (not the median)
  • yi — TTM annual dividend yield for asset group i
  • gi — annual dividend growth rate for asset group i

The portfolio-level dividend for each path is the sum across all asset groups:

Dportfolio(t) = ∑ Di(t)

Cumulative dividends are tracked per path, and percentile bands (P10, P25, P50, P75, P90) are extracted across all 2,000 paths — the same way portfolio value bands are computed. This gives users a probabilistic view of their dividend income, not just a single deterministic estimate.

6.3 Per-Holding Breakdown

Because dividends are computed per asset group per path, we can show which holdings contribute what share of the income. The Holdings view displays stacked areas where each holding's cumulative dividend P50 is shown proportionally — e.g., a high-yield REIT may contribute 40% of income despite being only 15% of portfolio value.

6.4 Two Sources of Growth

Dividend income grows from two compounding effects: (1) the underlying asset values appreciate (capital growth via GBM), which increases the base on which yield is applied, and (2) the dividend per share grows over time at each holding's historical growth rate. Both effects interact stochastically across all paths.

Cumulative IncomeTime (Years)P50 (median)P25–P75P10–P90
Figure 3: Dividend income grows from two sources: portfolio appreciation increases the base, and dividend growth rate compounds on top. Confidence bands capture the uncertainty from stochastic portfolio paths.

7. Monthly Contributions

When you set a monthly contribution amount, it is added to the portfolio value at each monthly time step after the GBM growth step. This models the real-world behavior of dollar-cost averaging into your portfolio:

S(t) = S(t-1) · exp[drift + diffusion · Z] + Cmonthly

The contribution is applied deterministically (it's not subject to market randomness), while the existing portfolio value is subject to the stochastic GBM process. This correctly models the fact that new contributions start compounding from the date they're added, not retroactively.

8. Risk Metrics

The calibration card displays several portfolio-level risk metrics derived from the simulation parameters:

Sharpe Ratio

Sharpe = (μportfolio - rf) / σportfolio

where rf is the risk-free rate (currently 4.5%, based on US Treasury bill yields). A Sharpe ratio above 1.0 indicates strong risk-adjusted returns; below 0.5 suggests the portfolio may not be adequately compensating for its risk.

Portfolio Beta

The value-weighted average of each holding's beta, sourced from Yahoo Finance fundamentals. Beta measures the portfolio's sensitivity to broad market movements — a beta of 1.0 means the portfolio moves in line with the market; above 1.0 implies amplified market exposure.

Expected Return & Volatility

Displayed as annualized percentages. The expected return represents the drift parameter of the GBM process; volatility represents the diffusion parameter. Together, they define the risk-return profile that drives all simulated paths.

9. Limitations & Disclaimers

Our projection model, like all financial models, involves simplifying assumptions. Users should be aware of the following limitations:

  • Stationarity assumption: The model assumes that historical return and volatility patterns persist into the future. Structural market changes, regime shifts, or black swan events are not captured.
  • Constant correlation: We use a fixed average pairwise correlation of 0.40 rather than estimating a full correlation matrix. In market stress, correlations tend to increase, which means our diversification benefit may be overstated in tail scenarios.
  • Log-normal returns: GBM assumes log-normal returns, which underestimates the probability of extreme events (fat tails). Real market returns exhibit excess kurtosis.
  • No tax modeling: Projections do not account for capital gains taxes, dividend taxes, or tax-loss harvesting strategies.
  • No transaction costs: Trading costs, expense ratios (for ETFs/funds), and advisory fees are not deducted from projected returns.
  • Dividend stability: Dividend forecasts assume that current payers continue paying and grow at their historical rate. Dividend cuts, suspensions, or special dividends are not modeled.
  • Lookback window: Using ~2 years of price history for calibration means the model is influenced by recent market conditions. This can overestimate returns after bull markets and underestimate them after bear markets.

Important: Infnits projections are for informational and educational purposes only. They do not constitute investment advice, a recommendation, or a guarantee of future performance. Past performance is not indicative of future results. All investing involves risk, including the possible loss of principal. Consult a qualified financial advisor before making investment decisions.