cycle-trajectory.md

May 3, 2026 · View on GitHub

Hack23 Logo

📈 Cycle Trajectory Template

🗳️ The 24th Artifact — Election-Cycle Workflow ONLY
📊 Multi-Year Trend · ICD 203 BLUF · Horizon Bands T+1y / T+2y / T+5y

Owner Version Effective Date Classification

📋 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 as analysis/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.

SlotValue
Owning methodologyper-artifact-methodologies.md
Owning gate checkLong-horizon Check (election-cycle blocking) — see 05-analysis-gate.md
Required inputsSCB national accounts, IMF WEO, Riksdag throughput
Horizon bandcycle (T+1y/T+2y/T+5y) (per scripts/horizon-context.ts)
Output familyFamily D — Electoral & Domain (cycle only)
Aggregation order14 of 30 in canonical order (see scripts/render-lib/aggregator/order.ts)
Reader Intelligence Guiderow generated from cycle-trajectory.md (see scripts/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

ElementValue
MethodologyMulti-year trend synthesis (Strategic Extensions + Long-Horizon Forecasting); ICD 203 BLUF mandatory at every horizon band
Primary sourcesSCB national accounts (NR0103), IMF WEO (multi-vintage compare across at least Apr + Oct of the cycle), Riksdag voteringar bulk export, KU årsredogörelse
Time-frameFull mandate (≥ 4 years)
Update cadenceTwice yearly (March + September) at every cycle workflow run
Cycle anchorcurrent (Tidö 2022-26) OR next (post-2026) — derived from registry
AudienceDecision-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)

DimensionTrajectoryWEPConfidenceSources
Macro (NGDP_RPCH)IMF WEO …; SCB …
Fiscal (GGXWDG_NGDP)IMF FM …; ESV …
Coalition cohesionVoteringar …
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

IndicatorWEO Apr-2026 (T+1)WEO Oct-2026 (T+1)DeltaImplication
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:

MetricCycle-to-dateAnnual run-ratevs prev cycleNote
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)ProbabilityBranch (governing coalition)Branch probabilityImplication
(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

TriggerThresholdHorizonSourceAction 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} ($currentscorecard 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.