Advanced widgets
The widgets that do real mathematics — not just sums and group-bys. Each one lists its data inputs, the exact formula, a worked example, and the caveats we want you to know.
Net worth over time
The headline number. Market value of everything you own, minus everything you owe, charted year by year.
Inputs
-
•
asset_market_amount (per asset, per year)
-
•
mortgage_amount (per asset, per year)
Caveats
Uses your actual entered values up to the current year; future years come from the prognosis engine, not this widget.
Formula
\[ NW_y \;=\; \sum_{a \in A_y} M_{a,y} \;-\; \sum_{a \in A_y} L_{a,y} \]
\(NW_y\) net worth in year \(y\), \(M_{a,y}\) market value of asset \(a\), \(L_{a,y}\) mortgage balance, \(A_y\) all active assets for the chosen configuration.
Worked example
Year 2024 — assets total 8 450 000, mortgages total 3 200 000. \(NW_{2024} = 8\,450\,000 - 3\,200\,000 = 5\,250\,000\).
FIRE number & progress
How much wealth you need to retire — and how far you already are. The single most important number on the dashboard.
Inputs
-
•
expence_amount (all assets, current year)
-
•
asset_market_amount (liquid + preserved, current year)
Caveats
The 25× multiplier is the inverse of the 4% safe-withdrawal rule. For a more conservative plan, raise the multiplier (30× ⇒ 3.33% SWR).
Formula
\[ F \;=\; 25 \times E \qquad\quad p \;=\; \min\!\left(\tfrac{P}{F},\, 1\right) \]
\(F\) FIRE number, \(E\) annual expenses, \(P\) current portfolio value, \(p\) progress toward FIRE (0 to 1).
Worked example
Annual expenses 540 000, portfolio 7 200 000. \(F = 25 \times 540\,000 = 13\,500\,000\); \(p = 7\,200\,000 / 13\,500\,000 \approx 53.3\%\).
FIRE crossover point
The moment your portfolio can pay for your life from passive income alone. After this you are, in principle, free.
Inputs
-
•
asset_market_amount (current year)
-
•
expence_amount (current year)
Caveats
Binary indicator — not a sell-down simulation. For year-by-year withdrawal feasibility across three scenarios, the full prognosis engine runs a real liquidation against your actual assets and taxes.
Formula
\[ \text{crossover} \;\Longleftrightarrow\; 0.04 \cdot P \;\geq\; E \]
\(P\) current portfolio, \(E\) annual expenses. The 0.04 constant is the classic 4% safe-withdrawal rate.
Worked example
Portfolio 15 000 000, expenses 540 000. Passive income \(0.04 \times 15\,000\,000 = 600\,000 \geq 540\,000\) ⇒ crossover achieved.
FIRE metrics over 30 years
Projects net worth forward 30 years against an inflation-adjusted FIRE target, so you can see the year the two lines cross.
Inputs
-
•
current net worth
-
•
annual savings (\(I - E\))
-
•
growth rate \(r = 7\%\)
-
•
inflation \(\pi = 3\%\)
Caveats
Uses constant \(r\) and \(\pi\) for readability. The main prognosis engine runs the same projection per asset, per year, across three scenarios with configurable change rates.
Formula
\[ P_{t+1} \;=\; (P_t + S)(1 + r), \qquad F_t \;=\; F_0 \cdot (1 + \pi)^t \]
\(P_t\) projected portfolio in year \(t\), \(S\) annual savings (income minus expenses), \(r\) nominal growth rate, \(F_t\) FIRE number inflated from \(F_0\) by \(\pi\).
Worked example
Start \(P_0 = 5\,000\,000\), \(S = 300\,000\). After one year \(P_1 = (5\,000\,000 + 300\,000) \times 1.07 = 5\,671\,000\). After ten years \(P_{10} \approx 14\,020\,000\).
Savings rate over time
The single best predictor of your FIRE timeline. A 50% savings rate brings financial independence in roughly 17 years regardless of income.
Inputs
-
•
income_amount (per year, income assets)
-
•
expence_amount (per year, all assets)
Caveats
Historic years only — the widget never projects into the future. Negative when expenses exceed income (drawing down).
Formula
\[ s_y \;=\; \frac{I_y - E_y}{I_y} \]
\(s_y\) savings rate in year \(y\), \(I_y\) total income, \(E_y\) total expenses. Expressed as a percentage. Benchmark line drawn at 20%.
Worked example
Income 900 000, expenses 540 000. \(s = (900\,000 - 540\,000) / 900\,000 = 40\%\).
Retirement readiness
Projects today's net worth to your planned retirement age against a capital-adequacy target, using your own expense baseline.
Inputs
-
•
current net worth
-
•
birth_year, pension_wish_year, death_year
-
•
annual income, annual expenses
Caveats
The 80% replacement ratio is a widely used rule of thumb, not a personal forecast. Pension payouts from tjenestepensjon/IPS/offentlig pensjon are modelled separately by the tax engine.
Formula
\[ T \;=\; 25 \times 0.80 \times E \qquad\quad NW_{t} \;=\; (NW_{t-1} + S)(1+r) \]
\(T\) retirement target (25× of 80% of current expenses — the classic 70–80% income-replacement rule), \(NW_t\) projected net worth at age \(t\), \(r\) assumed growth (default 7%).
Worked example
Expenses 540 000 ⇒ \(T = 25 \times 0.80 \times 540\,000 = 10\,800\,000\). Starting from 3 000 000 at age 40 with 300 000 annual savings, \(NW_{65} \approx 23\,100\,000\) — comfortably above target.
Capital Inversion point & wealth stage
The moment your money starts earning more than you do. Tracked as its own simulation-dashboard widget, alongside an income-rich benchmark and a three-stage classification.
Inputs
-
•
metrics_total_return_amount (liquid assets, per year)
-
•
income_amount (assets typed "salary" only, per year)
-
•
median_national_salary_nok (configurable reference figure)
Caveats
Labor salary only counts assets typed "salary" — pensions, government benefits and portfolio dividends are deliberately excluded so the comparison is job income vs. portfolio growth, not a mix of both.
Formula
\[ CI_y \;=\; \frac{R_y}{S_y} \times 100, \qquad I_{\text{rich}} \;\Longleftrightarrow\; S_y > 2 \times M \]
\(CI_y\) Capital Inversion ratio in year \(y\), \(R_y\) the liquid portfolio's own annual return that year, \(S_y\) gross annual labor salary that year, \(M\) the median national salary reference figure. Capital Inversion is achieved when \(CI_y \geq 100\).
Worked example
Labor salary 1 000 000, portfolio return that year 1 050 000. \(CI = 1\,050\,000 / 1\,000\,000 \times 100 = 105\%\) ⇒ inversion achieved. Below 50% the widget shows "High Earner" (if income-rich) or "Building"; 50–99% shows "Capital Accumulator"; 100%+ shows "Capital Inverted".
Dynamic withdrawal guardrails (Guyton-Klinger)
A fixed 4% withdrawal every year is inefficient. Guardrails cut spending after a bad year and allow more after a good one, without a rigid rule.
Inputs
-
•
original target withdrawal rate \(w_0\) (set at start of decumulation)
-
•
planned withdrawal (per year)
-
•
portfolio value (per year)
Caveats
This is a decision rule the AI advisor applies by walking your existing year-by-year simulation output, not a live conditional the engine runs automatically every year.
Formula
\[ w_y \;=\; \frac{D_y}{P_y}, \qquad \begin{cases} \text{cut } 10\% & w_y > 1.2\,w_0 \\ \text{raise } 10\% & w_y < 0.8\,w_0 \end{cases} \]
\(w_y\) withdrawal rate in year \(y\), \(D_y\) that year's planned withdrawal, \(P_y\) portfolio value that year, \(w_0\) the original target rate set when decumulation started.
Worked example
Original target 4%. A market drop pushes this year's rate to 5% — 25% above target, past the 20% guardrail — so the capital preservation rule cuts the planned withdrawal by 10%.
Actual effective tax rate
Your real tax burden — every tax the engine calculated, divided by taxable base. Not a headline rate, the rate you actually pay.
Inputs
-
•
income_tax
-
•
fortune_tax
-
•
property_tax
-
•
capital_gains_tax
-
•
taxable_income_base
Caveats
Fortune tax and property tax are wealth-based but are included in the numerator because they are a real cash outflow. The ratio is not directly comparable to a marginal income-tax rate.
Formula
\[ \tau_y \;=\; \frac{T^{\text{income}}_y + T^{\text{fortune}}_y + T^{\text{property}}_y + T^{\text{gains}}_y}{B_y} \]
\(\tau_y\) effective tax rate in year \(y\), \(T^{\star}_y\) the tax paid of each kind, \(B_y\) the taxable base (gross income + realised gains).
Worked example
Gross base 950 000, total taxes 278 400. \(\tau = 278\,400 / 950\,000 \approx 29.3\%\).
Financial metrics heatmap
For every income-producing asset, every year: return, leverage risk and yield side by side, colour-coded against sensible thresholds instead of buried in a spreadsheet.
Inputs
-
•
asset_market_amount, acquisition_amount, paid_amount (per asset, per year)
-
•
income_amount, expence_amount, property_tax_amount (per asset, per year)
-
•
mortgage_balance_amount, mortgage_term_amount, equity_amount (per asset, per year)
-
•
cashflow_after_tax_amount (per asset, per year)
Caveats
The same year-by-year data also feeds Gross Rental Yield, Gross Rent Multiplier, Debt-to-Equity, Return on Assets, Price-to-Book and an EV/EBITDA proxy (enterprise value over NOI) and a liquidity current-ratio proxy — computed for every asset every year but not yet surfaced in their own widget. DSCR and LTV colour-coding: DSCR \(\geq 1.25\) good, \(\geq 1.0\) caution, below danger; LTV \(\leq 70\%\) good, \(\leq 85\%\) caution, above danger.
Formula
\[ \begin{aligned} \text{ROI} &= \frac{(M - C) + CF}{C} & \text{DSCR} &= \frac{NOI}{D_{\text{term}}} \\[4pt] \text{ROE} &= \frac{CF}{Eq} & \text{CoC} &= \frac{CF}{C_{\text{paid}}} \\[4pt] \text{LTV} &= \frac{L}{M} & \text{Cap Rate} &= \frac{I - Ex - T_{\text{prop}}}{C} \\[4pt] \text{Net Yield} &= \frac{I - (Ex + T_{\text{prop}} + D_{\text{term}})}{C} & NOI &= I - Ex - T_{\text{prop}} \end{aligned} \]
\(M\) market value, \(C\) acquisition cost (falls back to market value if not set), \(CF\) cash flow after tax, \(NOI\) net operating income, \(D_{\text{term}}\) annual mortgage payment, \(Eq\) equity, \(C_{\text{paid}}\) cash actually paid in (down payment plus contributions), \(L\) mortgage balance, \(I\) rental income, \(Ex\) operating expenses, \(T_{\text{prop}}\) property tax.
Worked example
A rental bought for 3 000 000, now worth 3 450 000, with 200 000 rental income, 40 000 expenses, 15 000 property tax, a 90 000 mortgage payment, 1 800 000 mortgage balance and 1 650 000 equity: \(NOI = 200\,000 - 40\,000 - 15\,000 = 145\,000\); \(\text{DSCR} = 145\,000/90\,000 \approx 1.61\); \(\text{LTV} = 1\,800\,000/3\,450\,000 \approx 52.2\%\); \(\text{Cap Rate} = 145\,000/3\,000\,000 \approx 4.8\%\).
Real (inflation-adjusted) net worth
A bigger nominal number isn't automatically real progress. This deflates each year's projected net worth to today's purchasing power, so you can see the line that actually matters: what your money can buy, not just what it's labelled.
Inputs
-
•
asset_market_amount (per asset, per year)
-
•
kpi change rate (per year, per simulation's own rate track)
-
•
current calendar year (the anchor)
Caveats
The anchor is always the current calendar year, not a fixed date — revisiting this chart next year shifts every real figure slightly, because the reference point for "today's money" has itself moved forward. That's intentional, not a bug. Currently shown for total asset market value only, on the Simulation dashboard's Trends tab; income and expenses are deliberately not deflated the same way yet, because most income types already assume KPI-linked nominal growth, so a blended real-income figure would mostly show the structural effect of retirement (salary stopping, pension starting) rather than genuine inflation erosion.
Formula
\[ P(\text{anchor}) = 1, \quad P(y) = P(y-1)(1+\pi_y) \;\text{for } y > \text{anchor}, \quad P(y) = \frac{P(y+1)}{1+\pi_{y+1}} \;\text{for } y < \text{anchor} \]\[ \text{Real}(y) \;=\; \frac{\text{Nominal}(y)}{P(y)} \]
\(P(y)\) the cumulative price index for year \(y\) relative to the anchor year (today), \(\pi_y\) that year's KPI/inflation rate on the simulation's own rate track. \(P>1\) for future years discounts them down to today's purchasing power; \(P<1\) for past years grosses their smaller nominal figures back up to be comparable.
Worked example
Anchor year 2026, 5% annual inflation. A projected net worth of 525 000 in 2027 is \(P(2027) = 1.05\), so \(\text{Real}(2027) = 525\,000 / 1.05 = 500\,000\) in 2026 kroner — the portfolio grew 5% nominally but stood still in real terms.