The closed-form Black-Scholes formula above is built on assumptions that the market routinely violates. Five of them, in plain language:
Black-Scholes assumes one σ for all strikes and expiries. The market disagrees — out-of-the-money puts trade richer than ATM (volatility skew), and the entire term structure flexes with regime. The IV curve below, plotted from the live chain you just used, is the proof.
BS assumes daily returns are normally distributed. Real returns have fatter tails (kurtosis) — extreme moves happen far more often than a normal distribution would predict. The histogram below overlays the actual SPY return distribution (blue) against the equivalent normal curve (red dashed).
BS assumes price moves continuously — no overnight gaps, no circuit-breaker holes, no earnings surprises. In reality every gap is mispriced under BS, and overnight risk is fundamentally not hedgeable.
The replication argument that produces BS requires re-hedging delta continuously. With transaction costs and discrete trading, perfect delta-neutrality is impossible — gamma exposure leaks into your P&L on every move you don't hedge.
Vanilla BS ignores dividends. For dividend-paying names, the model misprices on ex-dividend dates and underprices puts (since the underlying drops by the dividend amount). Real desks use the Merton/forward-price extension.