Back to Documentation

Monte Carlo Simulation

A single point estimate of college ROI is misleading. Tuvelan runs 10,000 simulated income trajectories for each school+major combination to show the full range of financial outcomes you might experience.

Why Simulation Matters

College rankings that report a single median salary are hiding the variance. A computer science graduate from a top-20 university has a median starting salary around $85,000 -- but the 10th percentile might be $52,000 (those who pivot to non-technical roles or face a weak job market) and the 90th percentile might be $145,000 (FAANG offers in a hot market). That spread completely changes the risk profile of the investment.

Monte Carlo simulation captures this uncertainty. Instead of one deterministic cash flow, we generate 10,000 plausible career paths and compute NPV for each one. The result is a probability distribution of outcomes, not a false-precision point estimate.

Major-Specific Salary Distributions

Each simulation draw samples from a log-normal earnings distribution calibrated to College Scorecard data. The calibration uses three anchor points per school+major:

25th Percentile

Lower-bound earnings from Scorecard field-of-study data. Represents graduates in lower-paying roles or geographies.

50th Percentile

Median earnings -- the central tendency. Anchors the mode of the log-normal distribution.

75th Percentile

Upper-bound earnings. Captures graduates who land in high-paying metro areas or specialized subfields.

When field-of-study data is suppressed (College Scorecard redacts cells with fewer than 30 observations), we fall back to institution-level earnings with a CIP-code adjustment factor derived from BLS Occupational Employment Statistics for the mapped SOC codes.

Employment Probability

Not every graduate earns the median salary. Some face periods of unemployment, underemployment, or leave the labor force entirely. Each simulation year applies an employment probability drawn from BLS data:

  • Year 1-2 post-graduation: Field-specific unemployment rates from BLS Current Population Survey. STEM fields average 2.5%; arts and humanities average 5.5%.
  • Year 3-10: Convergence toward the overall bachelor’s degree unemployment rate (~2.2% long-run average).
  • Year 10+: Age-adjusted labor force participation rates from BLS, accounting for voluntary career exits.

In any simulation year where the draw indicates unemployment, earnings drop to a state-specific unemployment insurance floor rather than zero, reflecting partial-year employment and benefits.

Career Path Branching

Real careers are not smooth curves. Tuvelan models three types of discontinuities that create branching paths within the simulation:

1

Graduate School Transition

At year 3-5, a probability-weighted branch models going to graduate school (2-4 years of reduced/zero earnings followed by a higher earnings trajectory). Probability and earnings uplift are CIP-specific from NSF Survey of Earned Doctorates and Census ACS advanced degree premiums.

2

Industry Switching

At year 5-10, some graduates pivot to adjacent industries. BLS occupational mobility matrices inform the probability and earnings impact of cross-industry moves for each starting SOC code.

3

Geographic Relocation

Cost-of-living and wage adjustments for interstate moves. Census migration flow data provides the probability of moving from the school’s state to each destination state, with BLS area wage differentials applied.

Output Distribution

After running 10,000 scenarios, Tuvelan reports the following summary statistics for each school+major combination:

  • Mean NPV -- the average across all scenarios. Sensitive to right-tail outliers (high earners).
  • Median NPV -- the 50th percentile. More robust to outliers; represents the “typical” outcome.
  • 10th percentile NPV -- the downside planning number. If this is negative, there is at least a 10% chance the degree destroys financial value.
  • 90th percentile NPV -- the upside scenario. Shows what the best plausible outcome looks like.
  • P(NPV < 0) -- the probability that the degree has a negative financial return. This is arguably the single most important number in the analysis.
  • Full histogram -- 50-bucket distribution available via the API for custom visualization.

API Endpoint

Request Monte Carlo simulation results via the calculate endpoint. Set simulations to control the number of iterations (default: 10,000; max: 50,000 on premium plans).

POST/v1/calculate
curl -X POST https://tuvelan-api.smarttechinvest.com/v1/calculate \
  -H "X-API-Key: tuv_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "institution_id": 110635,
    "major_cip": "14.0901",
    "simulations": 10000,
    "include_distribution": true
  }'

The response includes mc_mean_npv, mc_median_npv, mc_p10_npv, mc_p90_npv, mc_prob_negative, and mc_histogram (50-bucket array).