⚖️ Forces Analysis Template
May 3, 2026 · View on GitHub
📌 Template Instructions: Copy to
analysis/daily/{date}/{article-type}-run{N}/classification/forces-analysis.md. Apply Lewin force‑field analysis: driving forces vs. restraining forces on the period's dominant issue, prioritised by reversibility and intervention leverage. See methodologies/per-artifact-methodologies.md §forces-analysis.
🎯 Purpose: Structured force‑field view of the political pressures pushing for or against a policy outcome, with explicit intervention‑point identification, EU multi‑national lens, and reader‑facing translation. Multi‑national extension over Riksdagsmonitor: every force is tagged with member‑state cluster origin so cross‑border dynamics surface explicitly.
📋 Document Metadata
| Field | Value |
|---|---|
| Report ID | [REQUIRED: FA-YYYY-MM-DD-runNN] |
| Issue Focus | [REQUIRED: one-line issue frame] |
| Procedure / Decision Anchor | [REQUIRED: EP procedure ID, plenary item, or coalition motion] |
| Driving Forces Identified | [REQUIRED: count ≥5] |
| Restraining Forces Identified | [REQUIRED: count ≥5] |
| Confidence | [REQUIRED: 🟢 HIGH / 🟡 MEDIUM / 🔴 LOW] |
| PIR Tags | [REQUIRED] |
1️⃣ Issue Frame
[REQUIRED: ≥120 words paragraph describing the policy/political question, why it is the dominant pressure point of the period, and the observable outcome being pushed for vs. resisted. Cite the anchor procedure / vote / motion. Include the multi‑national dimension (which member‑state clusters care most).]
Status quo if no change: [REQUIRED: ≥40 words — what happens by default if neither side prevails.]
Outcome if drivers prevail: [REQUIRED: ≥40 words]
Outcome if restraints prevail: [REQUIRED: ≥40 words]
2️⃣ Driving Forces
| # | Force | Magnitude (1‑5) | Reversibility | Origin | Member-state cluster | Evidence |
|---|---|---|---|---|---|---|
| 1 | [REQUIRED] | [1‑5] | [Hard / Soft] | [Institutional / Political / Economic / External / Public‑opinion] | [N / W / S / CE / EU‑27] | [REQUIRED: citation] |
| 2 | [REQUIRED] | [1‑5] | […] | […] | […] | [REQUIRED] |
| 3 | [REQUIRED] | [1‑5] | […] | […] | […] | [REQUIRED] |
| 4 | [REQUIRED] | [1‑5] | […] | […] | […] | [REQUIRED] |
| 5 | [REQUIRED] | [1‑5] | […] | […] | […] | [REQUIRED] |
(≥5 required. Reversibility: Hard = embedded treaty/directive; Soft = position paper / coalition statement that can flip.)
3️⃣ Restraining Forces
| # | Force | Magnitude (1‑5) | Reversibility | Origin | Member-state cluster | Evidence |
|---|---|---|---|---|---|---|
| 1 | [REQUIRED] | [1‑5] | [Hard / Soft] | […] | […] | [REQUIRED] |
| 2-5 | [REQUIRED] | […] | […] | […] | [REQUIRED] |
(≥5 required.)
4️⃣ Net Pressure Diagram
Color‑coded force‑field. Width of arrows reflects magnitude.
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","secondaryTextColor":"#ffffff","tertiaryColor":"#FF9800","tertiaryTextColor":"#000000","mainBkg":"#1565C0","secondBkg":"#2E7D32","tertiaryBkg":"#FF9800","noteBkgColor":"#FFC107","noteTextColor":"#000000","errorBkgColor":"#D32F2F","fontFamily":"Inter, Helvetica, Arial, sans-serif"}}}%%
flowchart LR
subgraph DRIVE [🟢 Driving forces]
D1[D1 magnitude]
D2[D2 magnitude]
D3[D3 magnitude]
end
subgraph ISSUE [🎯 Issue]
I[Status quo<br/>vs. change]
end
subgraph REST [🔴 Restraining forces]
R1[R1 magnitude]
R2[R2 magnitude]
R3[R3 magnitude]
end
D1 -->|push| I
D2 -->|push| I
D3 -->|push| I
R1 -->|hold| I
R2 -->|hold| I
R3 -->|hold| I
classDef driver fill:#2E7D32,stroke:#1B5E20,color:#ffffff;
classDef restraint fill:#D32F2F,stroke:#B71C1C,color:#ffffff;
classDef issue fill:#1565C0,stroke:#0A3F7F,color:#ffffff;
class D1,D2,D3 driver;
class R1,R2,R3 restraint;
class I issue;
Net narrative: [REQUIRED: ≥80 words — direction of net pressure, the "tilt", and the procedural window in which it operates.]
5️⃣ Cross‑Cluster Force Origin
How the forces map onto EU member‑state geography. This is the dimension that distinguishes EU Parliament analysis from a national parliament — every force has a multi‑national signature.
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","tertiaryColor":"#FF9800","fontFamily":"Inter, Helvetica, Arial, sans-serif"}}}%%
flowchart TB
NORTH[🇸🇪🇩🇰🇫🇮 Northern cluster] --> ISSUE[🎯 Issue]
WEST[🇩🇪🇫🇷🇳🇱 Western cluster] --> ISSUE
SOUTH[🇪🇸🇮🇹🇵🇹 Southern cluster] --> ISSUE
CE[🇵🇱🇨🇿🇭🇺 Central-Eastern cluster] --> ISSUE
EXT[🌍 External / global pressure] --> ISSUE
Cluster narrative: [REQUIRED: ≥80 words explaining which cluster carries the dominant force and which is the swing block.]
6️⃣ Intervention Points (Top‑3 Leverage Levers)
For each leverage point: what to push, who pushes it, when, and what indicates success.
Lever 1: [REQUIRED: name]
Type: [Procedural / Coalition / Public‑opinion / Economic / External]
Time window: [REQUIRED: specific date range or EP cycle stage]
[REQUIRED: ≥100 words — what change in input would shift the balance, who has the agency to deploy it, what observable signal would confirm the lever has been pulled.]
Success indicator: [REQUIRED: one observable metric or vote outcome.]
Lever 2: [REQUIRED]
(Repeat structure)
Lever 3: [REQUIRED]
(Repeat structure)
7️⃣ Reader Briefing — Plain‑Language Translation
📰 What this means in one paragraph:
[REQUIRED: ≥60 words — newsroom‑grade summary of who is winning the push‑pull and what to watch.]
- What changes if drivers win:
[REQUIRED: ≥30 words plain language] - What changes if restraints win:
[REQUIRED: ≥30 words plain language] - Earliest decision point:
[REQUIRED: date + venue]
8️⃣ Data Sources & Provenance
EP MCP tools used: analyze_coalition_dynamics, compare_political_groups, get_procedures, analyze_country_delegation (REQUIRED: ≥3)
| Source | Type | Admiralty | Link |
|---|---|---|---|
[REQUIRED] | […] | [A1‑F6] | [URL] |
[REQUIRED] | […] | […] | […] |
9️⃣ Confidence & Top Uncertainty
- Overall confidence:
[REQUIRED: 🟢/🟡/🔴] - Top uncertainty:
[REQUIRED: ≥40 words] - What would change my mind:
[REQUIRED: ≥30 words — observable signal forcing re‑rating.]
🔟 EP MCP Tool Inputs
| EP MCP tool | Used for which section | Notes |
|---|---|---|
track_legislation | §1 Issue Frame (procedure status) | COD/CNS/APP procedure timeline. |
analyze_coalition_dynamics | §2 Driving Forces (coalition support) | Cohesion / alliance signals. |
compare_political_groups | §2 + §3 (seat arithmetic) | Floor-majority math. |
get_voting_records | §2 Driving (positive RCVs); §3 Restraining (oppositional RCVs) | Aggregate margins. |
get_speeches | §2 + §3 (rhetorical force) | Topic-tag distribution. |
monitor_legislative_pipeline | §3 Restraining (procedural friction) | Stalled procedures, bottleneck index. |
get_external_documents | §3 Restraining (Council resistance, industry pushback) | Position papers, non-papers. |
get_committee_documents | §2 Driving (committee throughput) | ENVI/AGRI/ECON/LIBE volume. |
early_warning_system | §4 Net pressure (escalations) | Severity per force. |
correlate_intelligence | §5 Intervention points | Aggregated alerts. |
1️⃣1️⃣ Worked Pass-1 → Pass-2 Example (AI Act enforcement, force field)
❌ Pass-1 (thin, 23 words):
"Forces drive AI enforcement. Some restrain it. Net pressure is moderate. Watch for changes. Intervention points include rapporteur leadership."
✅ Pass-2 (compliant, 105 words, sourced):
Lewin force-field on AI-Office implementing-act enforcement (April 2026): driving forces total +18 (Grand-Coalition floor majority +5, Commission DG-CNECT push +4, civil-society NGO coalition +3, Council BE-PL Presidency timeline +3, EP rapporteur leadership +3). Restraining forces total -14 (PfE+ESN procedural amendments -4, industry burden lobbying -3, Council general-approach delta -3, Renew internal dissent on biometric exemptions -2, ECR shadow tactical-amendments -2). Net pressure: +4 — moderately favourable to enforcement adoption Q3 2026. Top intervention point: pre-clearing Rule-71 consolidated-text fallback would convert one restraining force (-3 industry) to neutral, raising net to +7 (high-likelihood adoption).
1️⃣2️⃣ Worked Lewin Force-Field Tables
Driving Forces (positive, AI-Act enforcement)
| # | Force | Strength 1-5 | Source |
|---|---|---|---|
| D1 | Grand-Coalition floor majority (EPP+S&D+Renew, 408 of 720 seats) | 5 | compare_political_groups 2025-10 |
| D2 | Commission DG-CNECT implementation push (Cmsr Virkkunen roadmap 2026-04-09) | 4 | get_external_documents |
| D3 | Civil-society NGO coalition (EDRi + 7 others, 8-signatory letter 2026-04-02) | 3 | external press |
| D4 | Council BE-PL Presidency adoption-by-Q3-2026 timeline | 3 | track_legislation |
| D5 | EP rapporteur Tudorache (Renew/RO) drafting leadership + ITRE coordinator authority | 3 | assess_mep_influence |
| Total driving | +18 |
Restraining Forces (negative)
| # | Force | Strength 1-5 | Source |
|---|---|---|---|
| R1 | PfE+ESN procedural amendments (47 in Strasbourg-I) | 4 | get_voting_records |
| R2 | Industry burden lobbying (DigitalEurope opposed-on-implementation-detail) | 3 | get_external_documents |
| R3 | Council general-approach delta (11 new recitals not in EP mandate) | 3 | track_legislation 2024/0145(COD) |
| R4 | Renew internal dissent (Strack-Zimmermann + 10 on biometric exemptions) | 2 | analyze_voting_patterns |
| R5 | ECR shadow tactical-amendments (12 of 47 PfE amendments co-signed) | 2 | analyze_coalition_dynamics |
| Total restraining | -14 |
Net pressure: +18 - 14 = +4 (moderately favourable, weeks-out horizon).
1️⃣3️⃣ Anti-patterns — REJECT on Pass-2 Review
| # | Banned pattern | Why it fails |
|---|---|---|
| 1 | Forces listed without strength scores 1-5 | Net pressure incomputable. |
| 2 | Restraining forces total = 0 (only driving forces listed) | Force-field requires both vectors; cannot be unidirectional. |
| 3 | Force without source citation (track_legislation, get_voting_records, etc.) | Unsourced political claim. |
| 4 | Net pressure stated without arithmetic shown | Reviewer cannot reproduce. |
| 5 | "Intervention point" recommendation that does not name a specific restraining force to neutralise | Non-actionable. |
| 6 | Forces ≥10 (overload) or ≤2 (skeletal) per side | Diversity floor (3-7 per side). |
| 7 | Net pressure forecast without WEP band + horizon | Tradecraft violation. |
1️⃣4️⃣ Cross-References — Controlling Methodology
../methodologies/per-artifact-methodologies.md#forces-analysis— construction rules.../methodologies/political-risk-methodology.md— net-pressure feeds Likelihood column of risk-matrix.../methodologies/osint-tradecraft-standards.md— WEP band on net-pressure forecast; Admiralty per force../scenario-forecast.md— net-pressure thresholds gate scenario branches../actor-mapping.md— force agents are individual MEPs / institutions../stakeholder-map.md— institutional view consumes force scores.
1️⃣5️⃣ Stage-C Completeness Signals
scripts/validate-analysis-completeness.js checks for this artifact:
| Check | Threshold | Source |
|---|---|---|
| Line floor | ≥120 lines | reference-quality-thresholds.json |
| Required H2 substrings | "Issue Frame", "Driving Forces", "Restraining Forces", "Net Pressure", "Intervention Points", "Reader Briefing" | structuralRequirements.requiredSections |
| Mermaid block | ≥2 (force-field xychart + intervention-flow) | mermaidRequired |
| Tradecraft markers | Strength score per force; Admiralty per evidence; WEP on net-pressure forecast | osint-tradecraft-standards.md |
| Source diversity | ≥3 EP MCP tools across forces | sourceDiversityRequired (when applied) |
| Reader briefing | Required For Citizens / Plain Language block | readerBlockRequired |
Document Control: /analysis/daily/{date}/{type}-run{N}/classification/forces-analysis.md · Template v2.2 · Depth floor: 120 lines · Mermaid diagrams: ≥2 · Reader briefing: required.