Markets: A Rigorous Course

12.5 Scenario analysis: decision trees and Bayesian updating

Core about 15 min

Motivation

Geopolitical outcomes have no stationary distribution and few historical analogues. Desks therefore reason in a small set of scenarios with subjective probabilities, update them as news arrives, and size positions by expected value and worst case. Doing this explicitly, with numbers, is how you avoid the two classic errors: under-reacting to strong evidence and over-reacting to vivid but uninformative headlines.

12.5.1Bayes' rule for scenarios#

Let scenarios s=1,…,Ss=1,\dots,S be mutually exclusive and exhaustive, with prior P(s)P(s). A news item nn has likelihood P(n∣s)P(n\mid s) under each scenario.

Proposition 12.5posterior

P(s∣n)=P(n∣s)P(s)∑jP(n∣j)P(j).(12.16)P(s\mid n)=\frac{P(n\mid s)P(s)}{\sum_{j}P(n\mid j)P(j)}. \tag{12.16}

For any two scenarios A,BA,B:

P(A∣n)P(B∣n)=P(A)P(B)×P(n∣A)P(n∣B)⏟likelihood ratio.(12.17)\frac{P(A\mid n)}{P(B\mid n)}=\frac{P(A)}{P(B)}\times\underbrace{\frac{P(n\mid A)}{P(n\mid B)}}_{\text{likelihood ratio}}. \tag{12.17}

If news items n1,…,nkn_1,\dots,n_k are conditionally independent given the scenario,

ln⁡P(A∣n1:k)P(B∣n1:k)=ln⁡P(A)P(B)+∑j=1kln⁡P(nj∣A)P(nj∣B).(12.18)\ln\frac{P(A\mid n_{1:k})}{P(B\mid n_{1:k})}=\ln\frac{P(A)}{P(B)}+\sum_{j=1}^k\ln\frac{P(n_j\mid A)}{P(n_j\mid B)}. \tag{12.18}

So the posterior does not depend on the order in which the news arrived.

Proof

By the definition of conditional probability, P(s∣n)P(n)=P(n∣s)P(s)P(s\mid n)P(n)=P(n\mid s)P(s). The law of total probability gives P(n)=∑jP(n∣j)P(j)P(n)=\sum_jP(n\mid j)P(j), which proves (12.16). Taking the ratio of (12.16) for AA and BB cancels P(n)P(n) and gives (12.17). Conditional independence means P(n1:k∣s)=∏jP(nj∣s)P(n_{1:k}\mid s)=\prod_jP(n_j\mid s). Apply (12.17) to the joint news and take logs to get (12.18). The right-hand side is a sum, so it is invariant to permutation.∎

Three consequences shape how a trader should read news:

  1. Only the likelihood ratio matters. A headline that is equally likely under every scenario ("officials hold talks") carries zero information, however dramatic it sounds. test_uninformative_news_leaves_prior checks this.
  2. Evidence adds in log-odds. Two moderately informative items (likelihood ratios of 3 each) move the odds by a factor of 9. Strong evidence comes from accumulating independent signals.
  3. Conditional independence is the weak point. Ten news outlets repeating one wire report is one signal, not ten. Treating correlated news as independent is the fastest way to become overconfident.

Worked example 12.2Hormuz, early November 2026

These are illustrative subjective numbers, not forecasts. Take three scenarios for the next three months:

  • S0S_0, a de-escalation deal: Brent $80;
  • S1S_1, a stalemate with partial flows: Brent $98;
  • S2S_2, escalation: Brent $125.

The escalation level is consistent with Eurasia Group's $110–125 escalation range reported by CNBC on 5 Nov 20261. The prior is (0.5,0.3,0.2)(0.5,0.3,0.2), so E[Brent]=$94.4\mathbb E[\text{Brent}]=\$94.4.

News 1: "Tanker attacked near Hormuz." Assume likelihoods P(n1∣s)=(0.2,0.6,0.9)P(n_1\mid s)=(0.2,0.6,0.9).

  • Unnormalised posterior: (0.10,0.18,0.18)(0.10,0.18,0.18). The evidence probability is P(n1)=0.46P(n_1)=0.46.
  • Posterior: (0.217,0.391,0.391)(0.217,0.391,0.391), and E[Brent]=$104.7\mathbb E[\text{Brent}]=\$104.7.
  • In odds form, escalation versus deal moves from 0.2/0.5=0.40.2/0.5=0.4 to 0.4×4.5=1.80.4\times4.5=1.8.

News 2: "Iran agrees to talks." Assume likelihoods (0.8,0.5,0.1)(0.8,0.5,0.1).

  • Posterior: (0.426,0.479,0.096)(0.426,0.479,0.096), and E[Brent]=$92.9\mathbb E[\text{Brent}]=\$92.9.

By (12.18), applying the two items in reverse order gives the same posterior. m12_scenarios.sequential_update reproduces all of these numbers.

Where the likelihoods come from This is the hard part, and it is judgement:

  • base rates from analogous episodes (how often did tanker attacks precede escalation in 1987–88, 2019, 2024?);
  • the incentives of the actors;
  • whether the news is costly to the sender, since costly signals are more informative.

Write the likelihoods down before seeing the market reaction. Otherwise you will back them out of the price move.

12.5.2Expected value, decision trees and the value of information#

For actions aa with payoff x(s,a)x(s,a) in scenario ss, the expected value is EV(a)=∑sP(s)x(s,a)EV(a)=\sum_sP(s)x(s,a). A decision tree alternates decision nodes (you choose) and chance nodes (nature chooses). It is solved by backward induction:

V(chance)=∑bpbV(childb),V(decision)=max⁡oV(childo).(12.19)V(\text{chance})=\sum_bp_bV(\text{child}_b),\qquad V(\text{decision})=\max_{o}V(\text{child}_o). \tag{12.19}

The expected value of perfect information is

EVPI=∑sP(s)max⁡ax(s,a)−max⁡a∑sP(s)x(s,a) ≥0.(12.20)EVPI=\sum_sP(s)\max_ax(s,a)-\max_a\sum_sP(s)x(s,a)\ \ge 0. \tag{12.20}
Proof of EVPI≥0EVPI\ge0

For every aa, max⁡a′x(s,a′)≥x(s,a)\max_{a'}x(s,a')\ge x(s,a). Take expectations, then the maximum over aa on the right.∎

EVPI is the most you should pay, in time, cost or forgone carry, to wait for the uncertainty to resolve. A "wait" branch in a tree (Problem 12.10) is a real option. Waiting has value whenever the best action differs across scenarios and the information will arrive before the payoff.

Create a free account

Reading is open to everyone. An account keeps your progress, answers, notes and code drafts, and gives you the study plan, the journals and the simulator. Running code needs an account approved for it.