Skip to content

DRep Vote Correlations Across Governance Actions

This case study asks whether DReps vote as stable blocs across multiple Conway-era governance actions, or whether alignment changes by action type, proposal epoch, rationale-anchor behaviour, and vote arrival order.

The dataset is a 5,299-transaction lattice: 11 action submission transactions and 5,288 unique vote transactions covering 20 governance actions from proposal epochs 576 through 632.

Dataset and queries

Dataset assembly is documented in Dataset selection, with the full transaction list in selections.txt, the entity overlay in overlay.yaml, and the reproduce pipe in README.md. SPARQL evidence is split into one page per question: Q1 pairwise agreement, Q2 bloc detection, Q3 swing prevalence, Q4 action-type correlation, Q5 anchor coverage, and Q6 arrival-time dynamics.

The correlation queries use unambiguous DRep/action observations: DRep/action groups with exactly one vote row. That leaves 4,563 observations after excluding 538 revote rows, because the current cq-rdf lattice does not carry block time and therefore cannot choose the latest vote deterministically.

Entity rules

overlay.yaml names the two entities shared by all selected treasury withdrawals. io.budget-guard-policy names guard policy fa24fb305126805cf2164c161d852a0e7330cf988f1fe558cf7d4a64. intersect.treasury-holding names stake credential 8583857e4a12ffe1e6f641a1785a0f2f036c565cfbe6ff9db8e5a469.

Gov action IDs remain raw query filters because the current overlay.yaml grammar has no GovActionId leaf type.

Findings

Pairwise DRep agreement

Among DRep pairs with at least 10 common selected actions, the lattice contains 19,440 comparable pairs. The most-aligned pairs include exact matches over 20, 19, and 18 common actions. The most-divergent pairs include several pairs with 0% agreement over 11 to 14 common actions. See Q1 for the top aligned and divergent pairs.

Bloc detection

Using an edge threshold of at least 12 common actions and at least 90% agreement, the agreement matrix yields 4 connected components with at least two DReps. The largest component has 142 DReps and spans proposal epochs 576 through 632, so it is stable across the selected time range. This clustering step is a post-process over a SPARQL-produced edge table, not a pure SPARQL hierarchy. See Q2.

Swing-voter prevalence

For DReps with at least 5 unambiguous selected-action votes, 229 of 313 changed verdict at least once. The mono-verdict population is 84 DReps: 82 Yes-only and 2 No-only. Swinging is concentrated in the proposal epochs that contain several selected treasury withdrawals: 42.3% in epoch 576 and 48.3% in epoch 632. See Q3.

Action-type correlation

Pooled (size-weighted) same-verdict pair rates differ sharply by action type. The single selected ParameterChange action is highly concentrated at 93.2%. The selected TreasuryWithdrawals actions are much looser at 60.6%, while InfoAction lands at 79.6%. The committee action is now reported from the emitted UpdateCommittee RDF class rather than the older Koios NewCommittee label. See Q4.

Voter-anchor heuristics

Among DReps with at least 5 unambiguous observations, 109 anchored at least half of their votes and 204 did not. High-anchor DReps were not in larger high-agreement neighbourhoods in this dataset: their average 90%-agreement degree was 13.5, versus 19.3 for lower-anchor DReps. See Q5.

Arrival-time dynamics

The current cq-rdf lattice cannot answer early-vs-late voter dynamics on its own because vote transaction block time is not emitted into RDF. The Koios sidecar used during selection can compute the comparison, but Q6 documents it as a follow-up boundary rather than presenting it as a SPARQL-native case-study claim. Block-context emission is tracked in #46. See Q6.

What changed since the original run

The lattice was re-emitted against the typed-walker emitter that includes native scripts (#48), auxiliary data (#51), certificates (#52), body fields 21 and 22 (#53), and governance actions (#54).

Q4 now uses typed governance-action triples for TreasuryWithdrawals, ParameterChange, UpdateCommittee, and NewConstitution. The same-verdict rates did not change, but the committee row is now named by the RDF class UpdateCommittee.

Q5 attempted the new DRep certificate-anchor path from #52. This selected transaction lattice contains no anchored RegDRep or UpdateDRep certificates, so the manifesto-anchor split remains unavailable for this dataset and the vote-anchor result is unchanged.

Q6 remains outside the RDF lattice because block time and block height are not emitted yet (#46).

How to reproduce

The reproduce pipe is documented in README.md. In summary, from this directory:

cq-rdf overlay --in overlay.yaml > overlay.ttl
xargs -P8 -n1 cq-rdf body --provider koios < selections.txt > bodies.ttl
cat overlay.ttl bodies.ttl > package.ttl

# Extract any SPARQL block from a query page into a .rq file and run it.
arq --data package.ttl --query q1.rq

The action filters in the query pages use (txid, index) pairs rather than governance action bech32 strings. That mirrors cq-rdf body's typed cardano:GovActionId shape: cardano:hasTxId/cardano:bytesHex plus cardano:hasIndex.