Scene summary
- Objective: frame storage, swing, hydro as control problems, then surface the numerical and calibration failure modes that create residual PnL.
- Products: storage, swing, hydro; with operational constraints as first-class inputs.
- Key tension: a flex book produces regime shifts; linear explain and linear VaR treat it as smooth.
Transcript
- Location: same meeting room. Whiteboard wiped clean except for one stubborn line: PAYOFF → MODEL → NUMERICS → RISK → HEDGES.
- Time: 15:10.
- Ambient: Anna has moved from curious to operational. Lukas has moved from explainer to owner. This is the part where a quant can lose trust for a year with one careless sentence.
Anna opens her notebook. Three words at the top: STORAGE / SWING / HYDRO.
Anna: “Let’s dig into storage, swing, hydro. This is where I feel the gap between how we see the world and how your engine does.”
Lukas nods and writes three boxes, each with State, Decision, Constraints.
1) Start from the control problem, not the product label
Lukas: “Storage first.”
He writes:
State: inventory
Decision: inject / withdraw / hold each period
Constraints:
- plus costs: fuel, losses, tariffs
Lukas: “Swing is similar, but the contract wraps the flexibility differently.”
He adds a second list:
State: cumulative take , plus sometimes a local counter (week / month)
Decision: daily nomination
Constraints:
- daily min/max
- global min/max over life
- sometimes penalties for deviating from a profile
Then hydro:
- State: reservoir level
- Decision: generate vs store (and spill if forced)
- Dynamics:
- Constraints: capacity, turbine limits, environmental flows
Anna looks at the board and smiles once.
Anna: “So not Black-76 then.”
Lukas: “Definitely not.”
He underlines Decision.
Lukas: “These are stochastic control problems. The value comes from choosing well over time. Which means two things you care about: the policy can change abruptly, and the exposures can be regime-dependent.”
Anna points.
Anna: “That’s the thing the risk pack never admits. It prints a delta as if it’s a bond.”
2) Numerics: why the method matters and where it breaks
Lukas draws a triangle and labels the corners:
Accuracy — Speed — Stability
Lukas: “You asked whether trees, PDE, or Monte Carlo choice matters to you. It matters because it determines which corner you sacrifice.”
He writes three short rows:
- Trees/lattices: good intuition, early exercise OK, but state space blows up
- PDE: accurate in low dimension, but impractical with many factors and constraints
- Monte Carlo + regression (LSMC): handles many factors and constraints, but Greeks can be noisy
Anna interrupts with the desk question.
Anna: “Give me the failure modes in plain language.”
Lukas nods. He writes four headings.
Failure mode A — boundary kinks
Lukas: “Near constraint boundaries—inventory near empty or full, reservoir near cap—the policy flips. Small input changes can cause big mark changes. That looks like jump risk even without a market shock.”
Failure mode B — discretisation artefacts
Lukas: “If the time step is too coarse—monthly instead of daily—the optimiser does dumb things. It might inject on dates you can’t actually inject. That produces wrong value and wrong hedge.”
Anna: “So the choice of time grid is not a technical detail.”
Lukas: “Correct. It is part of the product spec.”
Failure mode C — regression instability (LSMC)
Lukas: “In LSMC, you approximate continuation value with a regression. Bad basis functions or too little data gives you noisy exercise. Noisy exercise gives you noisy Greeks.”
Anna: “That becomes hedging ghosts again.”
Failure mode D — too many factors, too little budget
Lukas: “The more realism you add—multiple hubs, weather, outages—the more expensive it gets. Then people cut paths or simplify dynamics. You can end up with a model that is fast and wrong.”
Anna: “Or slow and still wrong.”
Lukas: “Yes.”
3) The calibration fight: what is being calibrated, and to what?
Anna crosses her arms.
Anna: “Now calibration. This is where I lose patience. You calibrate something Friday night, and Monday morning my marks move. Explain your philosophy.”
Lukas does not defend the current setup. He frames the contract between desk and quant.
Lukas: “Calibration is a promise. It says: given this market snapshot, this model reproduces these reference instruments. If we don’t agree on the reference set and stability rules, calibration becomes a source of PnL.”
He draws two layers:
Layer 1 — Vanilla calibration (market-traded anchors) Layer 2 — Structured valuation (policy-driven instruments)
Lukas: “Layer 1: we calibrate to instruments the market actually trades and quotes in a consistent way. Vanilla options on forwards, sometimes spread options where we have robust quotes. Objective is: fit market implied vols with weights, enforce no-arbitrage, keep parameters stable.”
Anna: “So vanillas anchor the dynamics.”
Lukas: “Yes. Layer 2: we feed that into the structured engine to value storage, swing, hydro. But here is the uncomfortable truth: structured deals often have no unique calibration. Two models can fit vanillas equally well and give you different storage values.”
Anna’s eyes narrow.
Anna: “So which one is right?”
Lukas answers like someone who has sat through model risk committees.
Lukas: “Neither is right. We choose a model class and then control it with governance: stability, backtesting on realised optionality, and consistency with desk marks on a fixed reference pack.”
Anna taps her notebook.
Anna: “That’s what I want in writing: what is fixed, what can move, and how we detect when the engine moved.”
4) What gets versioned, and what gets reported
Lukas writes three IDs on the board:
- Snapshot ID: curves + vols + fixings + build config
- Model ID: code version + parameters + constraints config
- Run ID: trade set + snapshot + model + valuation settings
Lukas: “If you only remember one thing: every number we hand you needs a run ID. Otherwise we cannot explain Monday.”
Anna points at constraints config.
Anna: “That’s important. For storage: injection curves, fuel, losses. For hydro: inflow scenario set. Those are inputs, not model. But they move the mark.”
Lukas: “Exactly. That’s why we treat them as artefacts. And we log them.”
He adds, without embellishment:
- calibration fit metrics (RMSE, weighted errors)
- parameter time series monitors
- regression diagnostics for LSMC (exercise frequency stability, out-of-sample checks)
- numerical settings (time grid, paths, seed, basis)
Anna looks at him.
Anna: “And you show me what changed.”
Lukas: “Yes. A diff.”
5) The desk acceptance criteria: when do you trust the numbers?
Anna writes her own list on the board.
Anna: “My acceptance criteria are simple.”
- Marks do not jump day-to-day without a market reason or a clearly stated model reason.
- Greeks are directionally sane and stable enough to hedge.
- Explain residual is explainable: data vs model vs mapping vs lifecycle.
- I know the limits: when linear explain and VaR break, and which scenario ladder to use instead.
Lukas nods.
Lukas: “Agreed. And we can formalise this into two outputs you get daily.”
He writes:
- Stability card: what changed (snapshot/model/run diffs, expected impact)
- Trust signals: how reliable are today’s Greeks (noise indicators, boundary proximity, calibration drift)
Anna looks at the clock. 15:45.
Anna: “Good. Now connect this to what risk asked Friday: why VaR missed it.”
Lukas answers without hedging.
Lukas: “Because their VaR and explain assumed local linearity. Your book is policy-driven and non-linear. When the optimal policy regime shifts, the PnL distribution has jumps. A percentile based on linear shocks will miss regime change risk.”
Anna nods.
Anna: “That is the truth. Now we need it to be acceptable.”
Lukas picks up the marker again.
Lukas: “Then Scene 5 is: how we present risk for optionality books. Not just VaR. A scenario ladder, regime shifts, and a stress narrative that maps to hedgeable actions.”
Anna caps the meeting.
Anna: “Do that. And also: no more silent releases.”
Lukas does not argue.
Lukas: “Agreed. We’ll put a pre-release impact run against your reference pack. If it moves your mark by more than a tolerance, it gets flagged before it hits production.”
Anna stands up.
Anna: “That’s what I needed to hear.”
Key takeaways
- Storage, swing, and hydro are decision problems; exposures can flip near constraints.
- Numerical choices create distinct failure modes: kinks, discretisation artefacts, regression noise, and compute shortcuts.
- Calibration is a governance contract; without versioning and impact diffs it becomes a PnL source.