Interesting that this got voted up. Anyway, here a few notes:<p>1. Mostly, the goal is not to "price options". There's a liquid market for basic calls/puts, and those prices are used to calibrate a model and then interpolate/extrapolate as well as price more exotic things. So the goal is to "fit the market".<p>2. Black Scholes is a well defined bijection between a Call price C(K,T) and a BS vol sigma: C(K,T) = BS(K,T,F,df,sigma). However, prices are such that calls at different strike K have different BS vol, thus the vol can't be a description of the underlying stock price. BS is just "the wrong formula to plug in the wrong number (BS vol) to get the right price". In particular, you can't evolve a stock (in Monte Carlo, going forward, or in a PDE, going backward) using BS vol and reprice all options correctly.<p>2b. But already, BS gives you a means to interpolate and hedge.<p>3. The next huge step forward was local vol (Dupire), LV. Instead of assuming fixed vol, it assume that the vol is a deterministic function of stock price S and time t. Now you can evolve a stock (in MC or PDE) and reprice vanilla options correctly, by and large. However, two problems remained:<p>4a. Forward smile. Take prices as they look today, fit a local vol model, and evolve it forward 2 years. You've hit all the 2yr option prices correctly, and you'll hit all the 3yr option prices. However, the 1yr options IN 2 YEARS will look all wrong (in particular, the smile will have decayed unrealistically).<p>4b. Very short term smile. A gaussian will basically never go more than 3 std devs from its mean, right. So, short term out of the money options should be really worthless. But they aren't, because stock prices in the real world do jump (or move 10 std devs). So, we require enormously high "lognormal" BS or local vols to reproduce observed option prices correctly.<p>4a. is solved with stochastic vol models, SV. Mix SV and LV and you reprice options perfectly, and go a few years forward, and your forward smile still looks reasonable.<p>4b. is solved incorporating jumps, JD (jump diffusion).<p>Mix SV, JD, LV and you get a nice model that fits the market, and evolves reasonably.<p>5. Most exotic products you price have additional features that preclude closed form pricing. If there's path dependency, you often just use Monte Carlo. If there's calculability, you try and use PDEs. If there's both, you have to use advanced methods: either carry state variables with you in the PDE, or use Longstaff-Schwartz like Monte Carlo methods.<p>6. However, in the last decade or so, after the financial crisis, all the fancy stuff receded in the background, and there was more focus on the basics: rates. Different counter parties have different credit risk, different currencies have different credit, giving rise to cross-currency basis, different LIBOR maturities are at different levels, giving rise to intra-currency basis, etc. All that stuff needs to be captured properly.