Methodology

How we calculate scores.

PoliTruth turns public records into clear scores using the same rules for every politician, regardless of party.

The short version

Promise Score measures kept promises out of resolved promises. Ethics Score comes from structured public integrity data. The graphs and leaderboards reuse those same fields; they do not create separate hidden ratings.

Promise Score

The promise score is calculated from each politician's tracked promises, votes, and actions:

Promise Score kept / (kept + broken) x 100

Kept means the public record shows the politician acted in line with the promise or stated position. Broken means the record contradicts it. In progress means it is still unresolved, so it does not count for or against the percentage yet.

Example: if a politician has 12 kept promises, 8 broken promises, and 5 still in progress, the score is 12 / (12 + 8) = 60.

Integrity Index: Grade & Methodology

Our grades. Members of Congress are graded based on a combination of their fundraising breakdown and personal finances. PoliTruth imports this Integrity Index score and letter grade, then shows the supporting signals behind it. Profiles without a valid public score are marked as unavailable instead of being forced into a ranking.

The formula Final Score = base_score + components

Every member starts at a base score of 75. From there the score adds and subtracts components for donor mix, PAC money, stock holdings and trades, earmarks, PAC reliance, ethical choices, and pledges. The final result is floored at 0 with no upper cap.

Press for full calculation method

The formula

Final Score = base_score + components, floored at 0 (no upper cap) components = donor + pac + stock + trade + earmark + pac_reliance + ethical + pledges Donor Score = Σ (bracket_% × bracket_weight), clamped to [floor, cap] PAC Penalty = −Σ (pac_$ × type_weight), floored at max_penalty Stock Penalty = −max_penalty × Hill(avg_value) Trade Penalty = −max_count × Hill(count) − max_value × Hill(value) Earmark Penalty = −earmark_$ × per_$_weight [excl. ActBlue/WinRed earmarks] PAC Reliance = −max_penalty × Hill(pac_%) Ethical Bonus = +points if no_corp_pac / no_stocks Pledge/Bill Bonus = per category: pledge → pledge_pts, bill only → bill_pts, neither → 0

Variables included

  • Stocks held
  • Number of stocks traded
  • Value of stocks traded
  • Percentage of funds from PACs
  • Amount of funds from PACs by type (Corporate, Lobbyist, Trade, Political, Ideological, Union/Labor, Other/Unclassified)
  • Percentage of funds from individuals by size
    • Small = <$200
    • Medium = $200–$499
    • Large = $500–$999
    • XLarge = $1,000–$1,999
    • XXLarge = $2,000–MAX
  • Funds from earmarked donations

Weights

PAC score penalty per dollar

Members of Congress
Corporate0.00001875
Lobbyist0.0000075
Trade0.000003
Political0.0000015
Ideological0.0000015
Union/Labor7.5e-7
Other/Unclassified7.5e-7
Senate
Corporate0.0000125
Lobbyist0.000005
Trade0.000001
Political5e-7
Ideological5e-7
Union/Other2.5e-7

Individual donation weight

Members of Congress
Small20
Medium14
Large7
XLarge3
XXLarge2
Self1
Joint Fundraising1
Senate
Small16
Medium12
Large6
XLarge3
XXLarge2
Self1
Joint Fundraising1
Earmark score penalty per dollar0.0000075
Base score75
PAC reliance max penalty10

Curves

Stock holding
Max penalty−20
Hill exponent0.745
Hill midpoint400,000
Stock trading
Max count penalty20
Trade count Hill exponent0.745
Trade count Hill midpoint50
Max trade value penalty0.00001
Trade value Hill exponent0.745
Trade value Hill midpoint8,000

Bonuses

  • 2 points for abstaining from taking corporate PAC funds
  • 1 point for pledging not to take corporate PAC funds
  • 1 point for abstaining from holding individual stocks
  • 1 point for cosponsoring legislation to "ban lobbying for former members" (1 point for taking the pledge)
  • 1 point for cosponsoring a Congressional stock trading ban (1 point for taking the pledge)
  • 1 point for cosponsoring legislation to overturn Citizens United (1 point for taking the pledge)

Notes

  • If someone purposefully sells off all of their stock or places it in a qualified blind trust, we remove their stock penalties.
  • All earmarked funds are penalized equally, including AIPAC, JStreet, Club for Growth, Emily's List, and many others.

Funding Metrics

Funding snapshots come from public campaign-finance and disclosure data. The site tracks individual donor share, PAC donor share, corporate PAC money, self-funding, cash on hand, stock holdings, and net assets when those fields are available.

Money-heavy graph axes use a log scale so one very large portfolio or PAC total does not flatten everyone else into the corner.

Leaderboards

Promise Keepers are sorted by promise score, then kept count, resolved count, fewer broken promises, and name. Worst Promise Scores reverse the score direction and prioritize more broken promises. Ethics Scores sort by ethics score, pledge count, lower corporate PAC money, and name.

Graphs

Every purple dot is a politician. Hover shows the profile, click opens it, and filtering recalculates the visible trend line. The starting chart uses stock holdings versus ethics score because the current data shows a clearer relationship than promise score versus ethics score.

The correlation label is Pearson's r for the dots currently visible on the graph. It updates when you filter by party or change axes.

Important note

PoliTruth is a neutral starting point, not a final verdict. We use public records and consistent formulas, but you should verify important claims with primary sources whenever possible.