Back to Documentation

Monte Carlo Income Simulation

Your future income is not a straight line. We model the uncertainty to give you confidence intervals, not false precision.

Why Income Uncertainty Matters

Income-driven repayment (IDR) plans tie your monthly payment directly to your Adjusted Gross Income. A raise increases your payment; a job loss drops it to zero. Over a 20-25 year repayment horizon, the range of possible income paths -- and therefore the range of possible total costs -- is enormous. A single "expected salary growth" assumption hides this risk.

How the Simulation Works

  1. Calibration. We anchor on your current income and SOC (Standard Occupational Classification) code. BLS Occupational Employment and Wage Statistics (OES) provide the 10th, 25th, 50th, 75th, and 90th percentile wages for your occupation nationally and by metro area.
  2. Growth distribution. Year-over-year salary growth is modeled as a log-normal distribution calibrated to your occupation's historical wage trajectory. The median growth rate, standard deviation, and kurtosis are derived from 10 years of OES survey data.
  3. Job loss events. Each simulation year draws from a Bernoulli distribution with probability calibrated to BLS JOLTS layoff/discharge rates for your industry. A job loss event sets income to unemployment insurance benefits for a stochastic duration (geometric distribution with median 14 weeks), then re-employment at a wage drawn from the OES distribution.
  4. 1,000+ draws. We run at least 1,000 independent income trajectories through the full repayment timeline for every eligible plan. Each trajectory produces a unique payment stream, interest accrual path, and forgiveness amount.
  5. Aggregation. Results are summarized into the mean, median, 5th percentile (best case), and 95th percentile (worst case) total NPV cost for each plan.

Salary Growth Distributions

We do not assume a flat percentage raise each year. Real wage growth is heteroskedastic: early-career workers see larger variance (rapid promotions or stagnation), while mid-career growth is more stable. The simulation adjusts the variance parameter based on years of experience, which you provide or we impute from your age and education level.

Job Loss Probability

Industry-level layoff rates from BLS JOLTS data range from approximately 0.8% per month in government to 3.5% per month in leisure and hospitality. We use the most granular industry match available (2-digit NAICS) and apply it as a monthly Bernoulli shock. Unemployment duration follows a geometric distribution calibrated to BLS CPS median weeks unemployed by industry.

Reading the Results

  • Mean NPV -- the probability-weighted average cost. Use this for expected-value decisions.
  • Median NPV -- the 50th percentile outcome. More robust to outlier scenarios than the mean.
  • 95th percentile NPV -- the "bad luck" scenario. Use this for conservative planning.
  • Confidence interval width -- a wide interval means the plan's cost is highly sensitive to income volatility. Narrow intervals indicate stability.

API Reference

POST/v1/compute/monte-carlo

Runs Monte Carlo income simulation for a borrower profile and returns percentile cost distributions across eligible repayment plans.

curl -X POST https://talovex-api.smarttechinvest.com/v1/compute/monte-carlo \
  -H "X-API-Key: tlv_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "balance": 85000,
    "weighted_rate": 0.065,
    "agi": 62000,
    "family_size": 1,
    "filing_status": "single",
    "soc_code": "15-1252",
    "industry_naics": "54",
    "years_experience": 5,
    "simulations": 2000
  }'

Response includes distributions[] per plan with p5, p25, p50 (median), p75, p95 NPV values, mean, standard deviation, and a histogram of outcomes.