LessonThis is a lesson restated in new words. Any figure in it is an example from the source, not this desk's record.
A Volterra process is a Gaussian process you can build from the past alone. A kernel weights Brownian increments up to the current time, and that kernel chooses the covariance. The same discretization then simulates ordinary Brownian motion, a mean-reverting path, or a fractional path used to study the short-dated volatility smile. A spectral method such as the Davies-Harte scheme needs the whole path in advance, which is the wrong shape for a contract that must be priced as time moves forward.
Why it matters
Rough-volatility models have drawn attention because they fit the implied-volatility skew, especially for zero-day options. The Volterra integral is a causal subclass of Gaussian processes: the value at time s depends on increments up to s, not on a shock that has not happened. The lecture starts from the covariance between the process at two times. For a standard Brownian building block the mean is zero, so the covariance is the expected product of the two integrals. Itô isometry turns the expected product of stochastic integrals into an ordinary integral of the two kernels, and only the diagonal survives, because Brownian increments at different times have expectation zero and the square of an increment behaves like a time step.
Causality trims the upper limit. The kernel is zero when its integration variable sits in the future of either time. The product is therefore zero unless that variable is at most the earlier of the two times. The covariance collapses to an integral, from zero to the minimum of the two times, of the product of the kernels. Pick the kernel and you pick the dependence.
The idea in plain words
A trivial kernel, identically one, reproduces Brownian motion. An exponential decay reproduces an Ornstein-Uhlenbeck, mean-reverting path. A kernel with a Hurst parameter reproduces fractional Brownian motion and the long memory the rough-volatility literature uses for the skew. Time to the horizon is known. The value at each date is not. If the horizon is T and you want n steps, the step is T divided by n, and the grid points are i times that step. The last index lands on T. The process starts at zero. Each new value adds a discrete integral: the kernel at the new time and each earlier grid time, times that step's Brownian increment. The previous state cancels when you look at the increment, and what remains still depends on the whole history whenever the kernel is nontrivial. That is the non-Markov property, and it is expensive, because every step rereads the path. A Markov increment would be drawn from a law that ignores the path. The kernel equal to one is that special case: you are summing Brownian increments, and the value at T is normal with mean zero and variance T. You could have sampled the terminal law directly. A European payoff, which needs only the end, is why you would. A barrier, which needs the path, is why you would not.
How to use it
The lecture's notebook implements the grid and the loop. Brownian motion from the Volterra sum and Brownian motion built from raw increments share a terminal histogram. The law of large numbers is the reason. You would not bother with the kernel for that process in production. The mean-reverting example sets the decay parameter to 2. Paths oscillate around zero. An empirical covariance from 1,000 paths sits near the theoretical surface and misses it for two reasons the lecture names: the time step is finite, and the number of paths is finite. Shrink the step and add paths, and the gap closes.
What usually goes wrong
Using a non-causal simulator for a contract that is marked through time imports future increments into today's value. Using the Volterra sum for a European claim on Brownian motion is correct and wasteful, because the terminal normal law was available in closed form. Trusting one path to "look like" the target covariance fails the lecture's own check. The test is the empirical covariance against the integral formula, across many paths.
Questions people ask
What does the kernel decide?
The covariance. One gives Brownian motion, an exponential decay gives mean reversion, and a Hurst-type kernel gives a fractional path. The simulation loop stays the same.
Why is the upper limit a minimum of two times?
Because the kernel is zero on future increments. Only times no later than both arguments contribute, which is what "causal" means here.
How did the lecture check the fractional paths?
Against the theoretical covariance, using 10,000 paths after a kernel bug was fixed. The remaining gap is step size and sample size. A Hurst parameter of 0.9 produced the smooth paths.