⌂ front page · command center
rendered 2026-07-03T12:35:48Z

MacroGuru — Frontier‑of‑Human‑Development Scenario Spec

Companion to docs/SCENARIO_LIFECYCLE_SOP.md. The SOP is the lifecycle for any scenario; this spec is the framework for one specific coverage axis: the developments that re‑shape our species. Read the SOP for the pipeline and gates; read this before commissioning a frontier lane.

Last updated: 2026‑06‑28 · Owner: Vikas · Status: LIVE / authoritative.


1. Why this axis exists

Most macro scenarios are about crises and cycles — a rate shock, a war, a bank run, a drought. But the biggest moves in human welfare (and in markets, over a decade) come from the frontier of what our species can do: a drug that turns cancer into a managed condition, a model that automates cognitive work, a reactor that makes power nearly free — and the shadow side of each, the engineered pathogen, the AI‑capex bust, the orbital‑debris cascade.

The product's job is to let a person peek into that future, manage the emotion it provokes, and decide better. That requires covering the frontier honestly — which means the founding rule of this axis:

⛔ The good/bad rule

Every frontier force gets both a good scenario (the breakthrough, RISK‑ON) and its probable‑negative tail (the bust or shock, RISK‑OFF). Never the hope without the tail; never the fear without the hope. A one‑sided frontier theme is incomplete and must not ship.

This is invariant #4 in the SOP. It is what separates a foresight product from either techno‑utopian hype or doom‑scrolling.


2. The seven tracked domains

We track seven streams of human development. Every frontier scenario belongs to at least one:

# Domain What we watch Example good / bad pair
1 Medicine trials, approvals, therapies cancer vaccine works / antibiotic resistance outpaces R&D
2 AI capability, compute, agents AGI‑level model arrives / AI‑capex bubble bursts
3 Technology robotics, compute, cyber humanoid robots reach the factory / AI‑run attack hits critical infra
4 Science journals Nature/Science results AI compounds scientific discovery / frontier capability plateaus
5 Patents & discoveries materials, energy, physics room‑temp superconductor / LK‑99‑style refutation
6 Biology genomics, longevity, biosecurity longevity drug adds a decade / engineered pathogen escapes a lab
7 Nature ecosystems, climate frontier coordinated rewilding succeeds / pollinator collapse hits crops

These map onto the existing scenario categories (ai_compute, health_biotech, power_energy, climate_frontier, automation_labor, tech_cyber, metals_mining, agri_food_water, society_politics) — no new category is needed; the root factors below are what make a scenario "frontier".


3. The root vocabulary (signed, bidirectional)

The engine routes a scenario by its roots{factor: signed_weight}. The frontier factors are bidirectional: a positive weight is the good/abundance direction (RISK‑ON), a negative weight is the deflation/disappointment direction. The bad‑event scenarios use the explicit risk factors (biosecurity_risk, biodiversity_loss) or a negative weight on a good factor (e.g. clean_energy: -0.4 = "fusion stays 20 years away").

Factor Good direction routes to … Wired in
ai_breakthrough NVDA, NDX, SMH ↑, robot_productivity, risk_appetite ↑ propagation.py
scientific_breakthrough risk_appetite, growth_surprise, NDX ↑ propagation.py
biotech_breakthrough SPX, risk_appetite ↑, labor_surplus, consumer_discretionary propagation.py
longevity labor_surplus, growth_surprise, consumer_discretionary propagation.py
clean_energy CL ↓, BRENT ↓, XLE/XOM ↓, NDX ↑, inflation_expectations ↓ propagation.py
space_economy LMT, NOC, RTX, NDX ↑ propagation.py
neuro_interface NDX, robot_productivity, risk_appetite ↑ propagation.py
biosecurity_risk risk_appetite ↓, VIX ↑, XAU ↑, recession_signal ↑ propagation.py
biodiversity_loss food_inflation ↑, WHEAT, CORN ↑, climate_supply ↑ propagation.py

Adding a new frontier factor — touch all four: 1. macroguru/cascade/propagation.py — add _E(factor, asset/factor, coef, reason) edges (the cascade routing). 2. bin/build_scenarios.py — add a human label to FACTOR_LABELS. 3. bin/merge_ccar_scenarios.py — add the factor to FRONTIER_FACTORS (so the merge validator accepts it). 4. bin/build_history.py — add a branch in root_tags() so scenarios using it match the right analogues.

Skip any one of the four and the factor silently fails: unlabelled in the UI, rejected at merge, or zero‑evidence (noindex). The four‑file rule is non‑negotiable.


4. The lane method (good + bad in one file)

Frontier scenarios are authored as JSON lane files in data/gen/, then merged by bin/merge_ccar_scenarios.py (same machinery as the CCAR expansion). The three founding frontier lanes:

Lane file Theme Count
data/gen/Lf01_ai_compute.json AI, compute, automation, cyber 18
data/gen/Lf02_biomed_longevity.json medicine, longevity, biosecurity, neuro 16
data/gen/Lf03_energy_space_nature.json fusion/solar, space, biodiversity, food 17

Each lane is authored good‑and‑bad as a set — when you write "Commercial fusion delivers power" you also write "Fusion stays 20 years away"; when you write "Universal cancer vaccine works" you also write "Antibiotic resistance outpaces R&D". A lane that is all‑upside or all‑downside fails the good/bad rule at review.

Each record:

{"category":"ai_compute","probability":0.35,"timeline":"1–3 years",
 "title":"AGI-level model arrives",
 "scenario":"A frontier lab ships a model that matches expert humans across most economically valuable cognitive work…",
 "countries":["United States"],
 "roots":{"ai_breakthrough":0.9,"ai_capex":0.7,"robot_productivity":0.5,"risk_appetite":0.4}}

Timelines must be one of 0–6 months / 6–18 months / 1–3 years / 3–10 years (en‑dash). Probabilities are base‑rate‑anchored priors in [0.01, 0.95]. The merge dedups by normalised title and assigns fresh ids.


5. Historical analogues (the evidence)

Frontier scenarios are measured, not asserted — they match real e4-frontier-* events in config/historical_events.yaml. The seeded analogue library (with verified source URLs):

Theme Analogues
AI AlphaGo (2016), AlphaFold (2020), ChatGPT (2022), GPT‑4 (2023), Nvidia $1T / AI‑capex wave (2023)
Medicine mRNA vaccine (2020), Wegovy/GLP‑1 (2021), Casgevy CRISPR (2023), Human Genome (2003), pig‑heart xeno (2022), mRNA Nobel (2023)
Biosecurity He Jiankui CRISPR‑baby (2018)
Energy/Physics NIF fusion ignition (2022), LK‑99 (2023), Higgs (2012), LIGO (2016)
Space SpaceX booster landing (2015), JWST (2022)
Nature IPBES biodiversity assessment (2019)
Neuro Neuralink first human implant (2024)

bin/build_history.py root_tags() maps frontier factors → tags (tech_ai_bull, science, biotech, energy_transition, space, pandemic, biosecurity, climate, …) so build_history.py finds these analogues.

The deviation thesis is a feature. A genuinely novel scenario (commercial fusion has never happened) will show agree=False against its imperfect analogue — the cascade is theory‑driven where history is silent. The product surfaces that gap honestly rather than hiding it. Do not "fix" an honest disagreement by faking an analogue.


6. The live‑feed pipeline (intel → cascade)

Static scenarios cover the space; the live feed keeps watch so a new development is detected and routed. The full chain, all wired:

science_news.latest_claims()           macroguru/data/science_news.py
   │   Nature · Science · arXiv(cs.AI,q-bio) · MIT Tech Review · MIT News · FDA
   ▼
corroboration.classify_topic(text)     macroguru/data/corroboration.py  (TOPIC_KEYWORDS)
   │   → a frontier topic (ai_breakthrough, biotech_breakthrough, biosecurity_alarm, …)
   ▼
alert bus: corroborate across CLASSES  macroguru/data/alerts.py  (run_alert_cycle)
   │   SCIENCE_JOURNAL + WIRE_NEWS = 2 independent classes → ALLOW; a lone source → WATCH
   ▼
alerts.TOPIC_TO_EVENT[topic]           → a frontier ontology event id
   ▼
to_detected_events() → cascade         config/event_ontology.yaml  (the impact magnitudes)
   ▼
live monitor / paper trades

Source independence classes (in corroboration.SourceClass) — two sources in the same class don't count as independent corroboration: - SCIENCE_JOURNAL — Nature, Science, arXiv (peer‑reviewed / preprint primary research) - SCIENCE_MEDIA — MIT Tech Review, MIT News (editorial science/tech desks) - REGULATORY_APPROVAL — FDA (official health‑tech fact)

SCIENCE_JOURNAL and REGULATORY_APPROVAL are in alerts._OFFICIAL_CLASSES: a lone Nature paper or FDA approval can lift a blocked topic to WATCH (reduced size) on its own — like a BLS print on the macro tape — but it takes a second independent class (e.g. a Reuters write‑up) to reach ALLOW (full size).

Feeds (verified live 2026‑06‑28; arXiv is empty on weekends/holidays by design → degrades to zero claims, never an error). Registered in science_news.FEEDS and polled every 15 min via scheduler/tasks.py::_tick_alerts; listed in alerts.DEFAULT_SOURCES.

6.1 The frontier ontology events (the live cascade brain)

In config/event_ontology.yaml, magnitudes are event‑window medians seeded from the analogues above; tails run 2–4× larger. Recompile after editing (compile_ontology() in bin/refresh_site.pyevent_ontology_compiled.json).

Topic Ontology event Direction Anchor analogue
ai_breakthrough ai_capability_breakthrough RISK‑ON (NVDA/SMH/NDX ↑, VIX ↓) ChatGPT, Nvidia blowout
ai_capex_bust ai_capex_bust RISK‑OFF (NVDA/SMH ↓, VIX ↑) dot‑com capex unwind
biotech_breakthrough biomedical_breakthrough mild RISK‑ON (slow‑diffusing) Wegovy, Casgevy
biosecurity_alarm biosecurity_shock RISK‑OFF (VIX ↑↑, XAU ↑, SPX/airlines/crude ↓) COVID Feb–Mar 2020
clean_energy_breakthrough clean_energy_abundance oil‑bearish / NDX‑bullish (CL/BRENT/XLE ↓) NIF fusion, solar LCOE
space_milestone space_economy_milestone space/defense bid (LMT/NOC/RTX ↑) first booster landing
science_discovery scientific_discovery broad RISK‑ON, low conviction LK‑99 spike, Higgs

7. Quality rules (frontier‑specific)

On top of the SOP's universal gates:

  1. Good/bad completeness. Each frontier force ships both sides (§1). Reviewer rejects a one‑sided theme.
  2. Classifier precision over recall. Frontier keywords use word boundaries: \bagi\b not agi (which matches "magic", "agitation", "imagine"). After any TOPIC_KEYWORDS change, run the false‑positive guard (poetry/agitation/animal‑testing headlines must classify to None). The 2‑class corroboration gate is the second line of defence; the ontology magnitudes (low confidence on slow‑diffusing themes) are the third.
  3. In‑universe tickers only. Every ontology impact asset must be in the tradable universe (the merge/build validators enforce this for roots; the ontology has no validator, so check by hand — the off‑universe guard in the build smoke test catches it).
  4. Honest magnitudes. A Nature paper does not move the S&P 1%. Slow‑diffusing breakthroughs (biomedical, space, science) carry small magnitudes and confidence near the confidence_floor (0.40) — they surface as context/WATCH and rarely drive size. The biosecurity tail (COVID‑calibrated) is the deliberate exception.
  5. Calibrate, don't clairvoy. Frontier probabilities are priors. As the real world resolves (a model ships, a trial reads out), recalibrate via the standard override path — never silently rewrite history.

8. Worked examples (verified end‑to‑end)

From the live build (ids 5142–5191):


9. The frontier checklist (tear‑off)

When adding a frontier theme: - [ ] Author the good AND bad scenario(s) in a data/gen/Lf*.json lane. - [ ] Roots use the signed frontier factors (§3); a new factor touches all four files. - [ ] Confirm matchable analogues exist in historical_events.yaml (seed e4-frontier-* if not). - [ ] If it should be live‑detectable: add TOPIC_KEYWORDS (word‑boundaried) → TOPIC_TO_EVENT → an ontology event → recompile. Add the source to science_news.FEEDS + DEFAULT_SOURCES if it's a new wire. - [ ] Run: merge_ccar_scenarios.pybuild_scenarios.pybuild_history.pybuild_seo_pages.py. - [ ] Verify: classifier false‑positive guard, pytest, stats.json (all indexable, events compiled), good/bad pairs both present. - [ ] Commit (selective add — exclude periodic‑refresh churn) → push → verify on prod by SHA.


The frontier is where hope and fear are largest. Cover both, measure both, and help someone meet either one calmly.