Back to Horizons ·

🇸🇮 Slovenia calculation walkthrough

Inputs you supplied

Monthly income
€4,000
Employment
freelance
Lifestyle
comfortable
Horizon
10 years
Starting savings
€0
Invest fraction
0%
Annual return (nominal)
7.0%
Income growth (nominal)
4.0%

Formulas & explanations

Every line in the year-by-year walkthrough below is computed by one of these. Read this section once and the math becomes auditable.

Monthly cost
cost_of_living.monthly_budget_single_{tier}_eur · converted to € from native currency

Country-specific cost-of-living estimate for your selected lifestyle tier (tight or comfortable). Stored in the country's native currency, converted to € at current FX.

Survival on savings
survival_days = starting_savings ÷ monthly_cost × 30.44

Income-blind: how many days your starting lump sum alone funds this country's monthly cost. Doesn't assume any income — pure runway from the lump sum.

Effective tax
freelance: taxes.freelance_effective_rate · employee: progressive bracket sum ÷ annual_income

Freelance mode reads a single flat percentage. Employee mode walks the country's income-tax brackets and divides total tax by income to get an effective rate.

Annual income
annual_income = monthly_income × 12

Year-1 gross annual income before tax, in €.

Annual tax
annual_tax = annual_income × effective_tax_rate

Year-1 tax owed at the country's effective rate.

Annual cost
annual_cost = monthly_cost × 12

Year-1 cost of living. Held flat in real terms across the horizon (because the projection runs in today's purchasing power).

Annual save
annual_save = annual_income − annual_tax − annual_cost

Year-1 surplus. Subsequent years differ when raises beat or lag inflation — see the year-by-year walkthrough.

Inflation rate
inflation_rate = 5-year CPI avg (per country, hard-coded in HorizonCalculator::INFLATION_5Y_AVG)

World Bank CPI 2019–2023 average, rounded to 0.5%. Default 5% when no country-specific value is set. Drives both real_growth and real_return.

Real growth
real_growth = income_growth_rate − inflation_rate

How fast your income grows in today's purchasing power. Positive when raises beat inflation; negative when raises lag. Simple subtraction (Fisher exact form would be (1+nominal)/(1+inflation)−1).

Real return
real_return = annual_return − inflation_rate

How fast your invested pot grows in today's purchasing power. Same simple-subtraction approximation as real_growth.

Real income (year y)
real_income_y = annual_income × (1 + real_growth)^(y−1)

Year-1 income compounded by real_growth each year. y=1 equals annual_income; y=2 has one round of growth applied.

Real save (year y)
real_save_y = real_income_y × (1 − effective_tax_rate) − annual_cost

Year y's surplus. Cost stays at annual_cost because it's already in real terms. Tax scales with income.

Invest deposit (year y)
invest_y = max(0, real_save_y) × invest_fraction

Year y's contribution to the invested pot. Negative real_save means no deposit (we don't auto-borrow).

Cash add (year y)
cash_y = real_save_y − invest_y

Year y's contribution to the cash pot. Stays negative if real_save is negative — the deficit is funded by your lump sum.

Invested pot
invested_pot_y = invested_pot_(y−1) × (1 + real_return) + invest_y

End-of-year deposits. The previous balance grows by real_return first, then this year's deposit is added (it doesn't earn interest the year it's deposited).

Cash pot
cash_pot = starting_savings + Σ cash_y · for y = 1..horizon

Cumulative cash savings, including your starting lump sum. Cash earns no return in this model.

Heading (end-of-horizon total)
horizon_total = cash_pot + invested_pot

Real-€ total at the end of the horizon. Already accounts for raises, taxes, cost of living, and compound returns — all in today's purchasing power.

Raise gain (real)
raise_gain = Σ (real_income_y − annual_income) · for y = 1..horizon

Cumulative real € your raises added above year-1 income. Always 0 in year 1; grows each year if raises beat inflation. Already folded into the heading — this is a decomposition, not a side number.

Inflation drag (nominal)
drag = Σ (annual_cost × (1 + inflation)^(y−1) − annual_cost) · for y = 1..horizon

Cumulative nominal € you'd pay extra at the till for the same cost-of-living basket. Pure communication metric — not subtracted from the heading (the heading is already in real terms).

Compound interest
compound_interest = invested_pot − Σ invest_y · for y = 1..horizon

Pot value minus the actual sum of deposits put into it. Pure interest-on-interest at the real_return rate — no raise-driven money mixed in. Matches the "Compound interest" band in the chart.

Runway
runway_years = first y where (cash_pot_y + invested_pot_y) ≤ 0

Year your starting savings + ongoing saves first dip below zero. Null if you stay solvent the entire horizon.

Derived constants for Slovenia

Monthly cost
€1,800.00
Annual cost
€21,600.00
Annual income
€48,000.00
Effective tax rate
4.00%
Annual tax (Y1)
€1,920.00
Annual save (Y1)
€24,480.00
Inflation rate
5.50%
Real growth
-1.50%
Real return
1.50%
Deposits (actual)
€0.00
Deposits (Y1 baseline)
€0.00

Where the heading came from

Stacked decomposition. Each band's height at year y is the contribution of that source to the total at that point. Top band of any column equals the Total cell in the row below.

Cash saves (Σ cash_y above starting)

Only one layer is contributing to your projection. Set a starting savings amount or move the Invest % slider above zero on /horizons to see the decomposition come alive.

Year-by-year walkthrough

Y Real income Tax Cost Save Invest dep. Cash add Pot grown Pot after dep. Cash cum. Total Drag (nom.)
1 €48,000 −€1,920 −€21,600 €24,480 €0 €24,480 €0 €0 €24,480 €24,480 €0
2 €47,280 −€1,891 −€21,600 €23,789 €0 €23,789 €0 €0 €48,269 €48,269 €1,188
3 €46,571 −€1,863 −€21,600 €23,108 €0 €23,108 €0 €0 €71,377 €71,377 €2,441
4 €45,872 −€1,835 −€21,600 €22,437 €0 €22,437 €0 €0 €93,814 €93,814 €3,764
5 €45,184 −€1,807 −€21,600 €21,777 €0 €21,777 €0 €0 €115,591 €115,591 €5,159
6 €44,506 −€1,780 −€21,600 €21,126 €0 €21,126 €0 €0 €136,717 €136,717 €6,630
7 €43,839 −€1,754 −€21,600 €20,485 €0 €20,485 €0 €0 €157,202 €157,202 €8,183
8 €43,181 −€1,727 −€21,600 €19,854 €0 €19,854 €0 €0 €177,056 €177,056 €9,821
9 €42,534 −€1,701 −€21,600 €19,232 €0 €19,232 €0 €0 €196,288 €196,288 €11,549
10 €41,895 −€1,676 −€21,600 €18,620 €0 €18,620 €0 €0 €214,908 €214,908 €13,372

Hover any column header to see its formula. All € figures are rounded to whole euros for readability — the underlying calc keeps two decimals.

How card numbers map back

Heading (end-of-horizon)
€214,908.08

= Cash pot + Invested pot · last row of the Total column above.

Cash pot
€214,908.08

= starting_savings + Σ cash_y · last row of "Cash cum.".

Invested pot
€0.00

Final value of the compounding pot · last row of "Pot after dep.".

Compound interest
€0.00

= invested_pot − Σ invest_y · pure interest-on-interest at real_return. Matches the chart's "Compound interest" band.

Raise gain (real)
€-31,137.42

= Σ (real_income_y − annual_income) · already folded into the heading.

Inflation drag (nominal)
€62,107.64

= Σ Drag column · pure communication, NOT subtracted from the heading.