# GovTool支持率看不懂：核DRep、SPO和委员会票数分母

整理：链小知（AI 辅助）
资料核对日期：2026-10-14
引用地址：https://lianxiaozhi.com/tools/guides/govtool-vote-denominator-epoch-role-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

从原行动与票数记录识别单位、epoch及展示/规范化口径，解释弃权、未投票和Unavailable。

## 使用工具
- [Cardano GovTool](https://lianxiaozhi.com/tools/govtool) · [官方入口](https://gov.tools/)

## 前置条件
- 准备已有行动链接/标识、网络、类型、原票数与时点、字段/版本和状态材料；没有原分母或参数就保留未知。

## 1. 定位同一行动、网络和快照时点

准备原Governance Action标识、类型、网络、状态和票数时点。Ratified是达到治理规则要求，Enacted是已经在网络激活；Expired是未在截止前获批准。Info只有记录，不改变链上状态。

FAQ展示公式以live行动为范围；固定汇总源码对已结束行动使用ratified/expired/dropped时的tally epoch，对live使用当前epoch。不要把后来一次余额分布与历史票数相加。

核对结果：行动标识、类型、网络、状态与快照epoch明确，缺项标未知。
依据：[GovTool：治理行动类型与状态](https://docs.gov.tools/cardano-govtool/faqs/what-is-a-governance-action/)
依据：[GovTool：票数页面口径、角色与阈值](https://docs.gov.tools/cardano-govtool/faqs/how-governance-action-vote-totals-are-calculated-in-govtool/)
依据：[GovTool：固定版本规范化票数汇总源码](https://raw.githubusercontent.com/IntersectMBO/govtool/5bad69ac9d891133b58c680ad58f0de755554d9c/govtool/govtool-provider-dbsync/src/governance/proposals/aggregates.ts)

## 2. 先辨字段形状、单位与缺失值

原页面展示字段有dRepYesVotes、poolYesVotes、ccYesVotes等；固定规范化VoteAggregate有role、representation、yes、no、abstain、notVoted、totalEligible。后者DRep/SPO为stake（lovelace），CC为count（人数）；展示组件对DRep/SPO格式化为ada，不能直接按屏幕缩写数当原最小单位。

保留材料的版本与字段形状。展示组件任一yes/no/abstain为null会显示Unavailable；FAQ也说取不到数据不显示零。角色整组省略、Unavailable和真实0不同。两套源码共存未证明当前站点适配路径；字段不足时停止换算。

核对结果：原字段、单位、版本以及缺失/省略/零分开。
依据：[GovTool：票数页面口径、角色与阈值](https://docs.gov.tools/cardano-govtool/faqs/how-governance-action-vote-totals-are-calculated-in-govtool/)
依据：[GovTool：固定版本规范化票数汇总源码](https://raw.githubusercontent.com/IntersectMBO/govtool/5bad69ac9d891133b58c680ad58f0de755554d9c/govtool/govtool-provider-dbsync/src/governance/proposals/aggregates.ts)
依据：[GovTool：同版本VotesSubmitted展示源码](https://raw.githubusercontent.com/IntersectMBO/govtool/5bad69ac9d891133b58c680ad58f0de755554d9c/govtool/frontend/src/components/molecules/VotesSubmitted.tsx)

## 3. DRep按原口径核分母和自动选项

FAQ的Total Active Stake为active DRep stake + auto no confidence −该行动明确Abstain；auto-abstain不在分母。NoConfidence把auto no confidence算Yes，其他行动算No；不要再把它算Not Voted。显示Abstain可含auto-abstain，不能把整项再从已调整分母扣一次。

规范化汇总则把明确abstain放在totalEligible内，计算支持比用yes/(totalEligible−abstain)，auto-abstain仍在eligible外。只按已辨的形状计算。DRep分布按epoch更新、取最新投票；投票后退休会使原票失效，即使后来重新注册也不补回旧票。

核对结果：DRep自动选项、明确弃权和分母只处理一次，使用相同epoch。
依据：[GovTool：票数页面口径、角色与阈值](https://docs.gov.tools/cardano-govtool/faqs/how-governance-action-vote-totals-are-calculated-in-govtool/)
依据：[GovTool：投票权与epoch快照](https://docs.gov.tools/cardano-govtool/faqs/what-is-voting-power/)
依据：[GovTool：固定版本规范化票数汇总源码](https://raw.githubusercontent.com/IntersectMBO/govtool/5bad69ac9d891133b58c680ad58f0de755554d9c/govtool/govtool-provider-dbsync/src/governance/proposals/aggregates.ts)

## 4. SPO与委员会保留展示和汇总的差别

FAQ写SPO最新票按pool_stat.voting_power计权、百分比除pool_stat.stake，Abstain不扣分母；Not Voted数量扣Yes/No/Abstain，但其百分比写100−Yes%−No%。同版本展示组件也保留这种差别，因此该百分比不能直接乘分母还原未投票数量。CC展示为成员计数，同样不要将百分比剩余当纯未投票人数。

规范化源码对SPO用pool distribution/voting_power，并按未投票池的默认策略分类：HardForkInitiation为notVoted，bootstrap为abstain；其他full-governance行动还看奖励账户DRep委托，always-abstain为abstain，always-no-confidence随行动算Yes或No。它与FAQ的无自动调整描述不同，不能将两者混算。CC规范化eligible仅计当时有效、未过期、已授权hot key且未辞任的成员。

核对结果：SPO两种口径的差别、未投票默认策略及CC人数范围保留。
依据：[GovTool：票数页面口径、角色与阈值](https://docs.gov.tools/cardano-govtool/faqs/how-governance-action-vote-totals-are-calculated-in-govtool/)
依据：[GovTool：固定版本规范化票数汇总源码](https://raw.githubusercontent.com/IntersectMBO/govtool/5bad69ac9d891133b58c680ad58f0de755554d9c/govtool/govtool-provider-dbsync/src/governance/proposals/aggregates.ts)
依据：[GovTool：同版本VotesSubmitted展示源码](https://raw.githubusercontent.com/IntersectMBO/govtool/5bad69ac9d891133b58c680ad58f0de755554d9c/govtool/frontend/src/components/molecules/VotesSubmitted.tsx)

## 5. 核适用角色与阈值，勿把省略当零票

协议版本10及以后，FAQ写DRep总数始终显示；New Constitution、Treasury Withdrawal及不触及security-group的Parameter Change不显示SPO；NoConfidence/Update Committee不显示CC。这是角色适用范围，不代表这些角色投了零票。

DRep/SPO阈值取行动类型对应协议参数；CC展示阈值取quorum分子/分母，Info不显示CC阈值。展示组件有格式化和舍入，应保留原参数，不能拿四舍五入百分比断言恰好过线。固定汇总源码还检查committee_min_size，人数不足可passing=false；缺原参数或tally epoch则保留未知。

核对结果：适用角色、原阈值、版本、舍入和委员会最低人数分别核。
依据：[GovTool：票数页面口径、角色与阈值](https://docs.gov.tools/cardano-govtool/faqs/how-governance-action-vote-totals-are-calculated-in-govtool/)
依据：[GovTool：固定版本规范化票数汇总源码](https://raw.githubusercontent.com/IntersectMBO/govtool/5bad69ac9d891133b58c680ad58f0de755554d9c/govtool/govtool-provider-dbsync/src/governance/proposals/aggregates.ts)
依据：[GovTool：同版本VotesSubmitted展示源码](https://raw.githubusercontent.com/IntersectMBO/govtool/5bad69ac9d891133b58c680ad58f0de755554d9c/govtool/frontend/src/components/molecules/VotesSubmitted.tsx)

## 6. 把支持率结论与实际行动状态分开

整理每一角色的原值、分母、单位、epoch、数据是否可用及公式来源；版本映射未确认的记录保留两种说明，不自行选一套当当前站点真值。投票权按epoch快照，界面又可能延迟或缺数据，不能只靠实时余额截图或一张支持率图判已生效。

固定源码在缺分布/参数时可报STALE_DATA且retryable，这不等0票。以已有同一行动状态记录区分未达阈值、已Ratified与已Enacted；缺当前状态记录就保持结局未验证。

核对结果：票数解释有范围，实际状态有记录或明确未验证。
依据：[GovTool：投票权与epoch快照](https://docs.gov.tools/cardano-govtool/faqs/what-is-voting-power/)
依据：[GovTool：服务条款与数据延迟边界](https://docs.gov.tools/legal/terms-of-use/)
依据：[GovTool：治理行动类型与状态](https://docs.gov.tools/cardano-govtool/faqs/what-is-a-governance-action/)
依据：[GovTool：固定版本规范化票数汇总源码](https://raw.githubusercontent.com/IntersectMBO/govtool/5bad69ac9d891133b58c680ad58f0de755554d9c/govtool/govtool-provider-dbsync/src/governance/proposals/aggregates.ts)

## 常见错误
- DRep/SPO以stake计权，委员会以人数计数，三组不能相加比较。
- 展示的Not Voted百分比可能包含弃权残差；规范化totalEligible不是FAQ已扣弃权后的分母。
- 固定源码能证方法与版本冲突，不能证明当前线上实例正在使用某条适配路径。

## 完成检查
- 得到同一行动的票数、角色、单位、epoch与分母对照；官方方法已核，当前实例部署及行动结局仍需原记录确认。

## 相关知识

## 官方依据
- [GovTool：票数页面口径、角色与阈值](https://docs.gov.tools/cardano-govtool/faqs/how-governance-action-vote-totals-are-calculated-in-govtool/)
- [GovTool：治理行动类型与状态](https://docs.gov.tools/cardano-govtool/faqs/what-is-a-governance-action/)
- [GovTool：投票权与epoch快照](https://docs.gov.tools/cardano-govtool/faqs/what-is-voting-power/)
- [GovTool：服务条款与数据延迟边界](https://docs.gov.tools/legal/terms-of-use/)
- [GovTool：固定版本规范化票数汇总源码](https://raw.githubusercontent.com/IntersectMBO/govtool/5bad69ac9d891133b58c680ad58f0de755554d9c/govtool/govtool-provider-dbsync/src/governance/proposals/aggregates.ts)
- [GovTool：同版本VotesSubmitted展示源码](https://raw.githubusercontent.com/IntersectMBO/govtool/5bad69ac9d891133b58c680ad58f0de755554d9c/govtool/frontend/src/components/molecules/VotesSubmitted.tsx)
