cycle-trajectory.md
May 3, 2026 · View on GitHub
📈 Cycle Trajectory Template
🗳️ The 24th Artifact — Election-Cycle Workflow ONLY
📊 Multi-Year Trend · ICD 203 BLUF · Horizon Bands T+1y / T+2y / T+5y
📋 Document Owner: CEO | 📄 Version: 1.0 | 📅 Last Updated: 2026-05-01 (UTC) 🏢 Owner: Hack23 AB (Org.nr 559534-7807) | 🏷️ Classification: Public
📌 Template instructions: Produce ONLY for
news-election-cycle. Save asanalysis/daily/${ARTICLE_DATE}/election-cycle/${CYCLE_ANCHOR}/cycle-trajectory.md. Blocking for the cycle workflow's analysis gate (see.github/prompts/05-analysis-gate.md§ long-horizon checks). Other workflows MUST NOT produce this artifact.
✨ What to produce: A multi-year trend assessment of Swedish political-economic trajectory across the full 4-year mandate, expressed as ICD 203 BLUF + WEP per year, with explicit horizon bands T+1y / T+2y / T+5y. Combines SCB national-accounts trajectory + IMF WEO multi-vintage projections + Riksdag throughput metrics (vote counts, committee productivity, KU reprimands).
📐 Template Contract — every fill of this template MUST satisfy this row.
Slot Value Owning methodology per-artifact-methodologies.mdOwning gate check Long-horizon Check (election-cycle blocking) — see 05-analysis-gate.mdRequired inputs SCB national accounts, IMF WEO, Riksdag throughput Horizon band cycle (T+1y/T+2y/T+5y) (per scripts/horizon-context.ts)Output family Family D — Electoral & Domain (cycle only) Aggregation order 14 of 30 in canonical order (see scripts/render-lib/aggregator/order.ts)Reader Intelligence Guide row generated from cycle-trajectory.md(seescripts/render-lib/aggregator/reader-guide.ts)Canonical evidence anchor | claim | evidence (dok_id / vote / MP intressent_id / primary-source URL) | retrieved_at | confidence |— every analytical claim row uses this schema.Cross-reference:
README.md §Template ↔ Methodology ↔ Gate-Check Matrix.
🔄 Tradecraft Context
| Element | Value |
|---|---|
| Methodology | Multi-year trend synthesis (Strategic Extensions + Long-Horizon Forecasting); ICD 203 BLUF mandatory at every horizon band |
| Primary sources | SCB national accounts (NR0103), IMF WEO (multi-vintage compare across at least Apr + Oct of the cycle), Riksdag voteringar bulk export, KU årsredogörelse |
| Time-frame | Full mandate (≥ 4 years) |
| Update cadence | Twice yearly (March + September) at every cycle workflow run |
| Cycle anchor | current (Tidö 2022-26) OR next (post-2026) — derived from registry |
| Audience | Decision-makers, civil-society groups, journalists, academic political-science readers |
1 — BLUF (ICD 203)
TRAJECTORY-BLUF — <CYCLE_ID>:
We assess [WEP] that the <CYCLE_LABEL> will <outcome statement>
with confidence [HIGH/MEDIUM/LOW] [horizon:cycle].
Key driver: <single most important factor>.
Falsification trigger: <specific dated event that would update this assessment>.
Every word matters. WEP language at the cycle band cannot exceed likely without ≥ 3 cycle-aged corroborated sources.
Trajectory band visual (T+1y → T+5y)
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","lineColor":"#FFBE0B","secondaryColor":"#7B1FA2","tertiaryColor":"#2E7D32","fontFamily":"Inter, Helvetica, Arial, sans-serif"}}}%%
flowchart LR
BLUF["🎯 BLUF<br/>WEP @ cycle band<br/>≤ likely (default)"]:::bluf
Y1["Year T+1<br/>NGDP_RPCH · GGXWDG_NGDP<br/>Coalition cohesion · KU"]:::near
Y2["Year T+2<br/>Mid-mandate inflection"]:::mid
Y3["Year T+3<br/>Pre-election framing"]:::mid
Y5["Year T+5<br/>Post-mandate projection<br/>IMF WEO multi-vintage"]:::far
FALSIFY["🛑 Falsification triggers<br/>≥ 5 dated thresholds"]:::falsify
BLUF --> Y1 --> Y2 --> Y3 --> Y5
Y1 -.cycle-anchor=current.-> SCORE["📋 Mandate scorecard<br/>≥ 10 Tidö rows"]:::current
Y3 -.cycle-anchor=next.-> FORECAST["🗳️ 12-leaf coalition forecast<br/>4 base × 3 governing branches"]:::next
Y5 --> FALSIFY
classDef bluf fill:#1565C0,color:#ffffff,stroke:#FFBE0B,stroke-width:2px
classDef near fill:#2E7D32,color:#ffffff
classDef mid fill:#FF9800,color:#000000
classDef far fill:#7B1FA2,color:#ffffff
classDef falsify fill:#D32F2F,color:#ffffff,stroke:#FFBE0B,stroke-width:2px
classDef current fill:#00897B,color:#ffffff
classDef next fill:#FF006E,color:#ffffff
Colour coding: 🟦 BLUF anchor → 🟢 near year → 🟠 mid years → 🟣 far / projection → 🔴 falsification. The dotted branches activate based on activeCycleAnchor(articleDate) — current enters the Tidö mandate scorecard; next enters the 12-leaf coalition-formation forecast.
2 — Horizon-Stratified Year-by-Year Outlook
For each of the four mandate years, populate:
Year T+1 (closest year)
| Dimension | Trajectory | WEP | Confidence | Sources |
|---|---|---|---|---|
| Macro (NGDP_RPCH) | … | … | … | IMF WEO …; SCB … |
| Fiscal (GGXWDG_NGDP) | … | … | … | IMF FM …; ESV … |
| Coalition cohesion | … | … | … | Voteringar … |
| Legislative throughput (votes/year) | … | … | … | Riksdag bulk … |
| KU reprimands (count/year) | … | … | … | KU årsredogörelse … |
Year T+2 (mid-mandate)
(same dimension table)
Year T+3
(same dimension table)
Year T+5 (post-mandate, projection)
(same dimension table — IMF projection-year stamps mandatory)
Aggregator rule. Each year's table must be present even if the trajectory is "no observable change yet" — the deliberate emptiness encodes the WEP correctly.
3 — Multi-Vintage IMF Compare
| Indicator | WEO Apr-2026 (T+1) | WEO Oct-2026 (T+1) | Delta | Implication |
|---|---|---|---|---|
| NGDP_RPCH (SWE) | … | … | … | … |
| GGXWDG_NGDP (SWE) | … | … | … | … |
| (Nordic peers DNK, NOR, FIN — same indicators) | … | … | … | … |
A delta > 0.3 pp between vintages MUST trigger an editorial review note in
methodology-reflection.md.
4 — Cumulative Riksdag Throughput
For the cycle being analysed:
| Metric | Cycle-to-date | Annual run-rate | vs prev cycle | Note |
|---|---|---|---|---|
| Total propositions tabled | … | … | … | … |
| Total motions tabled | … | … | … | … |
| Total chamber votes | … | … | … | … |
| Average coalition cohesion | … | … | … | … |
| KU reprimands count | … | … | … | … |
Lagrådet kritik count | … | … | … | … |
5 — Cycle-Anchor-Specific Block
When cycleAnchor=current (Tidö Mandate scorecard mode)
A condensed scorecard table mirroring election-2026-analysis.md → mandate fulfilment but ordered by topic. ≥ 10 rows expected (Tidö-agreement bullets, ranked by KCRIT).
When cycleAnchor=next (Coalition formation forecast mode)
A 4 × 3 = 12-leaf scenario table:
| Base scenario (top-level) | Probability | Branch (governing coalition) | Branch probability | Implication |
|---|---|---|---|---|
| (4 base scenarios × 3 governing-coalition branches each) | sum 100 % | … | sum 100 % within branch | … |
Each branch lists which parties form government, who provides confidence support, and the opposition. Branches are anchored on Sainte-Laguë seat projections (cite source + retrieved-at).
6 — Falsification Triggers
| Trigger | Threshold | Horizon | Source | Action if breached |
|---|---|---|---|---|
| (≥ 5 rows) … | … | T+1y / T+2y / T+5y | … | … |
7 — Pass-2 Self-Audit
- BLUF present + WEP at `cycle$ \text{band} \text{passes} \text{degradation} \text{rule}
- \text{Year}-\text{by}-\text{year} \text{tables} \text{populated} \text{for} \text{T}+1, \text{T}+2, \text{T}+3, \text{T}+5
- \text{Multi}-\text{vintage} \text{IMF} \text{compare} ≥ 4 \text{indicators} \times ≥ 4 \text{countries} (\text{SWE} + 3 \text{Nordic} \text{peers})
- \text{Riksdag} \text{throughput} \text{table} \text{populated} \text{with} \text{cycle}-\text{to}-\text{date} \text{and} \text{prev}-\text{cycle} \text{comparison}
- \text{Cycle}-\text{anchor}-\text{specific} \text{block} ($current
scorecard ornext` 12-leaf forecast) - Falsification triggers ≥ 5 rows with thresholds + sources
- Every WEP term carries
[horizon:<band>]tag - IMF citations carry projection-year stamps T+1 / T+2 / T+5
8 — Filename + Aggregator
This template is canonical at cycle-trajectory.md. Aggregator section title: "Cycle Trajectory". Loaded by scripts/render-lib/aggregator/order.ts only when subfolder=election-cycle.