Sequential Decision Analytics for a Climate Engineering Megaproject (Powell-style SDAM + simulations)

Historical, precomputed report (Plotly embedded). The charts inspect saved results; this page does not rerun their simulator.
Back to decision experiments

Read this as a saved modelling experiment

The numerical paths, bands, action frequencies and Sankey below are precomputed results preserved from an earlier prototype. Changing the framing form does not change those figures. The generating solver is not included in this HTML, so its policy implementation and calculation cannot be independently reproduced here.

Coefficients and climate responses are unverified teaching assumptions, not a calibrated climate model. The saved results establish neither an optimal policy nor superior management. Use the path, parameter and framing views to inspect what was assumed; treat target misses or negative funding balances as model problems to investigate.

Open the rerunnable decision simulator · Powell’s model framework · Policy definitions

1) Problem statement as a strict SDAM loop

Cadence: each quarter begins with the information already received in the current state. Management chooses scope and monitoring; new shocks and observations then arrive and update the next decision state. Repeat.

Climate-engineering SDAM model spec (state, decisions, exogenous info, transition, objective)
{
  "State S_t": {
    "Physical R_t": [
      "T_t: global temperature anomaly at start of quarter t",
      "u_t: deployed intervention scope/intensity (0..1)",
      "B_t: remaining budget"
    ],
    "Information I_t": [
      "g: baseline warming trend per quarter (assumed known/updated outside model)",
      "policy_support_t: latent political/regulatory support index (observed via proxies)"
    ],
    "Belief B_t": [
      "\u03bc_t, \u03c3_t: posterior mean/SD of intervention effectiveness k",
      "optionally: belief over implementation drag factor"
    ],
    "S_t (minimal)": "S_t = (T_t, u_t, B_t, \u03bc_t, \u03c3_t, policy_support_t)"
  },
  "Decision x_t": [
    "\u0394u_t \u2208 {\u2212\u03b4, 0, +\u03b4}: adjust scope for the coming quarter",
    "m_t \u2208 {low, med, high}: monitoring intensity (measurement noise & cost)"
  ],
  "Exogenous W_{t+1}": [
    "\u03b5^{proc}_{t+1}: natural variability affecting temperature change",
    "\u03b5^{meas}_{t+1}(m_t): measurement noise (depends on monitoring)",
    "c^{shock}_{t+1}: cost shock",
    "p^{shock}_{t+1}: political shock affecting implementation factor"
  ],
  "Transition S_{t+1} = S^M(S_t, x_t, W_{t+1})": [
    "u_{t+1} = clip(u_t + \u0394u_t, 0, 1)",
    "T_{t+1} = T_t + g \u2212 k_true\u00b7u_eff(u_{t+1}, p^{shock}_{t+1}) + \u03b5^{proc}_{t+1}",
    "observe trend y_{t+1} = (T_{t+1}\u2212T_t) + \u03b5^{meas}_{t+1}",
    "update belief (\u03bc_{t+1}, \u03c3_{t+1}) via Bayesian/Kalman update using y_{t+1}",
    "B_{t+1} = B_t \u2212 (fixed + var\u00b7u_{t+1} + info_cost(m_t) + c^{shock}_{t+1})"
  ],
  "Objective": "Choose a policy \u03c0 mapping S_t\u2192x_t to minimize expected (temperature deviation penalty + overshoot risk + spending + change friction) over t=0..T."
}

Interpretation: (R_t, I_t, B_t) is the factored state: physical resources, deterministic information, and beliefs (posterior summaries).

2) One saved narrative trajectory (earlier lookahead-labelled policy)

Raw data for this single path (first 10 rows)
 q     temp  temp_next  dT_true  trend_obs  residual        scope    scope_eff  delta_scope   action info_level     mu_k  sigma_k    budget  budget_next  quarter_cost  political_shock
 0 1.200000   1.212193 0.012193   0.010549 -0.000351 2.000000e-01 2.000000e-01        -0.05 Decrease        low 0.008017 0.002985 50.000000    49.183589      0.816411        -0.454671
 1 1.212193   1.218385 0.006191   0.006552 -0.004745 1.500000e-01 1.500000e-01        -0.05 Decrease        low 0.008193 0.002977 49.183589    48.132556      1.051032        -0.492207
 2 1.218385   1.226882 0.008497   0.011436 -0.000244 1.000000e-01 1.000000e-01        -0.05 Decrease        low 0.008199 0.002973 48.132556    47.329023      0.803533         0.105414
 3 1.226882   1.234280 0.007398   0.007222 -0.004868 5.000000e-02 5.000000e-02        -0.05 Decrease        low 0.008258 0.002972 47.329023    46.574728      0.754295        -1.344215
 4 1.234280   1.244492 0.010212  -0.001195 -0.013695 1.387779e-17 8.326673e-18        -0.05 Decrease        low 0.008258 0.002972 46.574728    46.218159      0.356569        -1.841735
 5 1.244492   1.255816 0.011325   0.003720 -0.008780 1.387779e-17 1.387779e-17         0.00     Hold        low 0.008258 0.002972 46.218159    45.627469      0.590690         0.156751
 6 1.255816   1.267382 0.011565  -0.003535 -0.016035 1.387779e-17 1.387779e-17         0.00     Hold        low 0.008258 0.002972 45.627469    45.158273      0.469196        -0.048501
 7 1.267382   1.280448 0.013067   0.003886 -0.008614 1.387779e-17 1.387779e-17         0.00     Hold        low 0.008258 0.002972 45.158273    44.679936      0.478337        -0.978519
 8 1.280448   1.288904 0.008456   0.014821  0.002321 1.387779e-17 1.387779e-17         0.00     Hold        low 0.008258 0.002972 44.679936    44.251066      0.428870        -0.032522
 9 1.288904   1.305826 0.016922   0.013420  0.000920 1.387779e-17 1.387779e-17         0.00     Hold        low 0.008258 0.002972 44.251066    43.717821      0.533245         0.110464

Seed: 7 | true effectiveness k_true: 0.00900

3) Saved Monte Carlo paths under the earlier assumptions

4) Branching paths visualized (action sequences as a flow)

Sankey shows frequencies of action transitions (Decrease/Hold/Increase) in the saved simulated sample. These are not empirical observations of real climate programmes.

5) A small “frame-your-project” tool (Powell SDAM + RL view)

Fill the boxes; the tool emits a structured SDAM specification and an equivalent RL/MDP framing, plus a lightweight “information attention” checklist.

Heuristic: if an uncertainty changes your decision, it probably belongs in B_t (or its sufficient statistics belong there).

Click Load climate example or fill the form and click Generate frame.

6) Parameter record attached to the saved simulation

Click to view parameters
{
  "seed": 7,
  "k_true": 0.009001845230036222,
  "target_temp": 1.5,
  "baseline_trend": 0.0125,
  "T_quarters": 40,
  "initial": {
    "temp0": 1.2,
    "scope0": 0.25,
    "budget0": 50.0,
    "mu_k0": 0.008,
    "sigma_k0": 0.003
  },
  "params": {
    "process_sigma": 0.005,
    "step_scope": 0.05,
    "fixed_cost": 0.5,
    "var_cost": 2.0,
    "info_costs": {
      "low": 0.05,
      "med": 0.1,
      "high": 0.2
    },
    "meas_sigmas": {
      "low": 0.006,
      "med": 0.003,
      "high": 0.0015
    },
    "lookahead_H": 4,
    "risk_weight": 4.0,
    "change_penalty": 0.15,
    "temp_penalty": 60.0,
    "overshoot_penalty": 140.0,
    "budget_soft_floor": 2.0
  }
}

Notes