Skip to content

feat(permanence): reversal-risk view over the disturbance-exposed reserve scenarios#75

Open
holoros wants to merge 1 commit into
mainfrom
feat/permanence-reversal-risk
Open

feat(permanence): reversal-risk view over the disturbance-exposed reserve scenarios#75
holoros wants to merge 1 commit into
mainfrom
feat/permanence-reversal-risk

Conversation

@holoros

@holoros holoros commented Jun 12, 2026

Copy link
Copy Markdown
Owner

What

Adds a Permanence / risk tab that answers the question single-model reversal tools (e.g. the Wilkes carbon-reversal-risk tool) center on — how durable is stored carbon under elevated disturbance? — but on PERSEUS's multi-model footing.

It reuses data already in the API (the reserve (no harvest, disturbance-exposed) and reserve (no harvest, mortality-stressed) buckets from v1.4), so no new modeling or data is introduced. For the selected state it computes the cross-engine ensemble median of each reserve scenario and surfaces:

  • a graduated risk verdict (lower / moderate / high),
  • scorecards: passive reserve vs disturbance-exposed vs mortality-stressed at horizon, with % shortfall,
  • peak-to-end drawdown of the disturbance-exposed reserve (flags where passive storage plateaus or turns into a net source),
  • a gap-shaded trajectory chart with hover-to-isolate.

Why

This is the one decision dimension no competitor matches with a multi-model ensemble, and per the v1.4 changelog the underlying scenarios are already grounded (FIA COND + GRM, historical / 2x / 3x disturbance). Sanity check on the ensemble medians: ME passive 568 Tg → −66% disturbance-exposed; GA −48%; IN −84%.

Scope / risk

  • Two files: new src/PermanenceRisk.jsx (self-contained, dependency-free SVG, mirrors GrowthChart patterns) + 4 wiring lines in App.jsx (import, tab, disabled rule, render).
  • Graceful empty state where a state lacks the buckets.
  • npm run build passes.

Follow-up (not in this PR)

A CONUS choropleth of the reversal-risk metric would need all-state series loading; scoped as a next increment to keep this reviewable.

Opened for review — not auto-merged.

… scenarios

New 'Permanence / risk' tab. Contrasts the passive no-harvest reserve
against the disturbance-exposed and mortality-stressed reserve buckets
already shipped in the v1.4 API, as the cross-engine ensemble median.
Surfaces per-state reversal-risk: end-of-horizon shortfall vs the passive
reserve, peak-to-end drawdown (does the reserve become a net source), a
graduated risk verdict, scorecards, and a gap-shaded trajectory chart.

Directly addresses the dimension single-model reversal tools center on,
but on PERSEUS's multi-model footing. Data already present (ME/GA/IN/MN +
focal states); graceful empty state where the buckets are absent. Build
verified; reversal math sanity-checked against ME/GA/IN.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant