Skip to content
AA

Policy Coherence Kit — Multi-Stakeholder Coherence Analysis

Desktop application for assessing, aggregating, and analysing policy coherence across multiple decision-makers — n×n interaction matrices on a 7-point scale, three aggregation methods, and a suite of analytical views.

6 min read

Policy coherence analysis asks a deceptively hard question: across a set of policies, which ones reinforce each other, which work against each other, and which are most influential overall? Answering it across several decision-makers — each with their own view of every policy pair — is a matrix-bookkeeping problem that doesn't fit a spreadsheet. Policy Coherence Kit captures each decision-maker's judgments, aggregates them, and runs a suite of analytical tools over the result.

Problem

For n policies, every decision-maker fills an n × n matrix rating how each policy influences every other on a 7-point coherence scale. With multiple experts that's a stack of matrices that has to be:

Done by hand this is tedious and easy to get wrong, especially reconciling disagreements between decision-makers.

Coherence Rating Scale

Cells are rated on a structured 7-point scale that maps words to a signed score:

RatingScoreMeaning
Indivisible+3Policies are fully intertwined and inseparable
Reinforcing+2Policies mutually strengthen each other
Enabling+1One policy helps the other work better
Neutral0No meaningful interaction
Constraining−1One policy limits the other's effectiveness
Counteracting−2Policies work against each other
Cancelling−3One policy completely negates the other

Diagonal cells are permanently locked to Neutral — a policy doesn't influence itself.

Approach

Input works two ways: type policy names one per line and rate each cell with colour-coded dropdowns, or import a multi-sheet Excel workbook where each sheet becomes one decision-maker. The importer validates that row and column headers match exactly and accepts the 7 rating labels case-insensitively.

Aggregation across decision-makers offers three rules:

Analysis runs per aggregation as a set of tabs:

TabWhat it shows
Aggregated MatrixNumeric score matrix (−3…+3), colour-coded
Coherence ScoresOI, II, WOI, WII — outgoing/incoming influence counts and sums
Range of InfluenceShannon entropy per policy — concentrated vs distributed influence
PCA2D scatter of policy influence profiles (PC1 + PC2), optional entropy colouring
Network AnalysisDirected weighted network + betweenness / closeness centrality
LLM InterpretationStructured AI narrative across 7 sections

The network view offers four layouts — Circular (baseline), Force-Directed Fruchterman-Reingold (default), Spectral (eigenvector clustering of similar policies), and Shell (high-betweenness policies in the centre ring) — so the same graph can be read for different structure.

Project management keeps multiple independent studies — each with its own decision-makers, matrices, and results — alive in a single session.

What It Delivers

Tradeoffs

What I'd Do Differently

Known Limitations

Architecture

Project  (independent study, multiple in one session)
  ├─ Matrix input  (manual dropdowns  |  multi-sheet Excel import)
  │     └─ one n×n matrix per decision-maker, diagonals locked to Neutral
  └─ Aggregation  (Average | Majority Rule | Weighted)
        └─ Aggregated matrix (−3…+3)
             ├─ Coherence scores (OI / II / WOI / WII)
             ├─ Range of influence (Shannon entropy per policy)
             ├─ PCA  (NumPy → 2D scatter on Tkinter canvas)
             ├─ Network  (centrality + 4 layouts on Tkinter canvas)
             └─ LLM tab → 7-section interpretation
                  └─ Export: Excel workbook · .txt/.pdf · PNG/PostScript

Stack

ToolVersionRole
Python3.9+Language / runtime
TkinterstdlibDesktop GUI, matrix widgets, canvas plotting + PostScript
NumPylatestAggregation, entropy, PCA, network computations
openpyxllatestMulti-sheet Excel import + workbook export
ReportLablatestPDF export of LLM interpretations
PillowoptionalPNG export of PCA / network plots
LLM APIsGroq / OpenAI interpretation