Monte Carlo Lab

RideWave's scooter business from the midterm and final, simulated in your browser. Six short stations, each one key idea of Monte Carlo simulation, with the matching Excel RAND() and @RISK steps. MBA 60310, Simulation module.

The model (one month)

Rides per scooter R ~ Normal(180, 50)
Demand (rides) D ~ Normal(20,000 − 1,500 × price, 2,000)
Cost per ride c ~ Uniform($2, $3)
Unavailable scooters U ~ Discrete(0, 5, 10, 15, 20, 25 with probs 0, .1, .2, .3, .2, .2)
Rides served = MIN(D, (scooters − U) × R)
Profit = rides × (price − c) − $20,000 fixed cost

Decisions

$8.00
50

Both apply to every station. Negative normal draws are set to 0.

From RAND() to a random draw

Every random input starts as a uniform number between 0 and 1. Reading that number on the vertical axis and across the distribution's cumulative curve gives the draw. This is what NORM.INV(RAND(), …) and RiskNormal do.

Cumulative probability (CDF)Your RAND() and its drawHistogram of draws so far
0.730

Why it works. A RAND() value lands in any slice of [0, 1] with probability equal to the slice's width. The CDF is steepest where the distribution has the most probability, so many RAND() values map there.

Drag the slider: values of RAND() near 0.5 give draws near the middle; values near 0 or 1 give the tails. Then draw 500 and watch the histogram take the distribution's shape.