This document demonstrates the full functionality of the
biparty R package, which provides Congressional
Bipartisanship Scores (CBS) for all members of the U.S. House
and Senate from 1983 to 2024, spanning the 98th through the 118th
Congresses. The scores are introduced and described in Authors (2026).
This work was supported and funded by the Portman Center for Policy
Solutions.
The package provides two complementary measures of bipartisan behavior for each member-Congress-chamber observation:
Both measures are available in raw (unweighted) and precision-weighted variants. The weighted version adjusts for imprecise measurement associated with legislators with low bill activity. Scores range from 0 to 1, with higher scores indicating more cross-party activity.
# install.packages("remotes")
remotes::install_github("congressional-bipartisanship-scores/biparty")The package provides two datasets. Load them with
data():
aggregate.cbsOne row per legislator-Congress-chamber observation. Contains overall attract and offer scores (weighted and unweighted), member identifiers, and crosswalk columns.
## [1] "congress" "chamber"
## [3] "bioguide_id" "name"
## [5] "party" "attract_aggregate_weighted"
## [7] "offer_aggregate_weighted" "attract_aggregate_unweighted"
## [9] "offer_aggregate_unweighted" "state"
## [11] "district" "thomas_id"
## [13] "icpsr_id" "govtrack_id"
## [15] "wikipedia" "wikidata"
## [17] "total_n_bills_sponsored" "prop_bills_with_cosponsor"
aggregate.cbs %>% select(congress, chamber, name, party,
attract_aggregate_weighted, offer_aggregate_weighted) %>%
head(6)## # A tibble: 6 × 6
## congress chamber name party attract_aggregate_we…¹ offer_aggregate_weig…²
## <dbl> <chr> <chr> <chr> <dbl> <dbl>
## 1 98 HOUSE GARY ACK… D 0.276 0.0647
## 2 98 HOUSE JOSEPH A… D 0.365 0.128
## 3 98 HOUSE DANIEL A… D 0.358 0.109
## 4 98 HOUSE DONALD A… D 0.318 0.117
## 5 98 HOUSE WILLIAM … D 0.379 0.0861
## 6 98 HOUSE GLENN AN… D 0.352 0.0745
## # ℹ abbreviated names: ¹attract_aggregate_weighted, ²offer_aggregate_weighted
aggregate.cbs %>%
summarise(
n_observations = n(),
n_legislators = n_distinct(bioguide_id),
congress_min = min(congress),
congress_max = max(congress),
n_congresses = n_distinct(congress)
)## # A tibble: 1 × 5
## n_observations n_legislators congress_min congress_max n_congresses
## <int> <int> <dbl> <dbl> <int>
## 1 11549 2056 98 118 21
issue.area.cbsSame row structure as aggregate.cbs, but with attract
and offer scores computed separately within each of 34 CRS policy
areas.
issue.area.cbs %>%
select(congress, chamber, name, party,
attract_health_weighted, offer_health_weighted,
attract_defense_weighted, offer_defense_weighted) %>%
head(6)## # A tibble: 6 × 8
## congress chamber name party attract_health_weigh…¹ offer_health_weighted
## <dbl> <chr> <chr> <chr> <dbl> <dbl>
## 1 98 HOUSE GARY ACKE… D NA 0.249
## 2 98 HOUSE JOSEPH AD… D 0.660 0.0291
## 3 98 HOUSE DANIEL AK… D NA 0.0388
## 4 98 HOUSE DONALD AL… D NA 0.0665
## 5 98 HOUSE WILLIAM A… D NA NA
## 6 98 HOUSE GLENN AND… D NA 0.0775
## # ℹ abbreviated name: ¹attract_health_weighted
## # ℹ 2 more variables: attract_defense_weighted <dbl>,
## # offer_defense_weighted <dbl>
get_member_scores()Look up a single member’s scores by Bioguide ID or name substring.
## # A tibble: 11 × 18
## congress chamber bioguide_id name party attract_aggregate_weighted
## <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 108 SENATE M001153 LISA MURKOWSKI R 0.327
## 2 109 SENATE M001153 LISA MURKOWSKI R 0.412
## 3 110 SENATE M001153 LISA MURKOWSKI R 0.268
## 4 111 SENATE M001153 LISA MURKOWSKI R 0.770
## 5 112 SENATE M001153 LISA MURKOWSKI R 0.747
## 6 113 SENATE M001153 LISA MURKOWSKI R 0.778
## 7 114 SENATE M001153 LISA MURKOWSKI R 0.299
## 8 115 SENATE M001153 LISA MURKOWSKI R 0.279
## 9 116 SENATE M001153 LISA MURKOWSKI R 0.569
## 10 117 SENATE M001153 LISA MURKOWSKI R 0.408
## 11 118 SENATE M001153 LISA MURKOWSKI R 0.442
## # ℹ 12 more variables: offer_aggregate_weighted <dbl>,
## # attract_aggregate_unweighted <dbl>, offer_aggregate_unweighted <dbl>,
## # state <chr>, district <chr>, thomas_id <chr>, icpsr_id <chr>,
## # govtrack_id <dbl>, wikipedia <chr>, wikidata <chr>,
## # total_n_bills_sponsored <int>, prop_bills_with_cosponsor <dbl>
# By name substring — restrict to recent Congresses
get_member_scores("murkowski", congress = 115:118)## # A tibble: 4 × 18
## congress chamber bioguide_id name party attract_aggregate_weighted
## <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 115 SENATE M001153 LISA MURKOWSKI R 0.279
## 2 116 SENATE M001153 LISA MURKOWSKI R 0.569
## 3 117 SENATE M001153 LISA MURKOWSKI R 0.408
## 4 118 SENATE M001153 LISA MURKOWSKI R 0.442
## # ℹ 12 more variables: offer_aggregate_weighted <dbl>,
## # attract_aggregate_unweighted <dbl>, offer_aggregate_unweighted <dbl>,
## # state <chr>, district <chr>, thomas_id <chr>, icpsr_id <chr>,
## # govtrack_id <dbl>, wikipedia <chr>, wikidata <chr>,
## # total_n_bills_sponsored <int>, prop_bills_with_cosponsor <dbl>
# Restrict to Senate, single Congress
get_member_scores("M001153", congress = 117, chamber = "senate")## # A tibble: 1 × 18
## congress chamber bioguide_id name party attract_aggregate_weighted
## <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 117 SENATE M001153 LISA MURKOWSKI R 0.408
## # ℹ 12 more variables: offer_aggregate_weighted <dbl>,
## # attract_aggregate_unweighted <dbl>, offer_aggregate_unweighted <dbl>,
## # state <chr>, district <chr>, thomas_id <chr>, icpsr_id <chr>,
## # govtrack_id <dbl>, wikipedia <chr>, wikidata <chr>,
## # total_n_bills_sponsored <int>, prop_bills_with_cosponsor <dbl>
# Include issue-area scores
murkowski_full <- get_member_scores("M001153", congress = 117,
chamber = "senate",
include_issues = TRUE)
murkowski_full %>%
select(name, congress, chamber,
attract_aggregate_weighted, offer_aggregate_weighted,
attract_health_weighted, offer_health_weighted)## # A tibble: 1 × 7
## name congress chamber attract_aggregate_wei…¹ offer_aggregate_weig…²
## <chr> <dbl> <chr> <dbl> <dbl>
## 1 LISA MURKOWSKI 117 SENATE 0.408 0.689
## # ℹ abbreviated names: ¹attract_aggregate_weighted, ²offer_aggregate_weighted
## # ℹ 2 more variables: attract_health_weighted <dbl>,
## # offer_health_weighted <dbl>
get_member_trend()Return a member’s scores as a tidy time series across all Congresses served.
## # A tibble: 9 × 7
## congress chamber bioguide_id name party attract_aggregate_weighted
## <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 110 SENATE K000367 AMY KLOBUCHAR D 0.496
## 2 111 SENATE K000367 AMY KLOBUCHAR D 0.450
## 3 112 SENATE K000367 AMY KLOBUCHAR D 0.486
## 4 113 SENATE K000367 AMY KLOBUCHAR D 0.487
## 5 114 SENATE K000367 AMY KLOBUCHAR D 0.548
## 6 115 SENATE K000367 AMY KLOBUCHAR D 0.532
## 7 116 SENATE K000367 AMY KLOBUCHAR D 0.500
## 8 117 SENATE K000367 AMY KLOBUCHAR D 0.485
## 9 118 SENATE K000367 AMY KLOBUCHAR D 0.513
## # ℹ 1 more variable: offer_aggregate_weighted <dbl>
## # A tibble: 9 × 6
## congress chamber bioguide_id name party attract_aggregate_weighted
## <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 110 SENATE K000367 AMY KLOBUCHAR D 0.496
## 2 111 SENATE K000367 AMY KLOBUCHAR D 0.450
## 3 112 SENATE K000367 AMY KLOBUCHAR D 0.486
## 4 113 SENATE K000367 AMY KLOBUCHAR D 0.487
## 5 114 SENATE K000367 AMY KLOBUCHAR D 0.548
## 6 115 SENATE K000367 AMY KLOBUCHAR D 0.532
## 7 116 SENATE K000367 AMY KLOBUCHAR D 0.500
## 8 117 SENATE K000367 AMY KLOBUCHAR D 0.485
## 9 118 SENATE K000367 AMY KLOBUCHAR D 0.513
## # A tibble: 9 × 7
## congress chamber bioguide_id name party attract_aggregate_weighted
## <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 110 SENATE K000367 AMY KLOBUCHAR D 0.496
## 2 111 SENATE K000367 AMY KLOBUCHAR D 0.450
## 3 112 SENATE K000367 AMY KLOBUCHAR D 0.486
## 4 113 SENATE K000367 AMY KLOBUCHAR D 0.487
## 5 114 SENATE K000367 AMY KLOBUCHAR D 0.548
## 6 115 SENATE K000367 AMY KLOBUCHAR D 0.532
## 7 116 SENATE K000367 AMY KLOBUCHAR D 0.500
## 8 117 SENATE K000367 AMY KLOBUCHAR D 0.485
## 9 118 SENATE K000367 AMY KLOBUCHAR D 0.513
## # ℹ 1 more variable: offer_aggregate_weighted <dbl>
compare_members()Side-by-side comparison of two or more members.
# Lisa Murkowski (R) and Amy Klobuchar (D) — 115th through 117th Congress
compare_members(c("M001153", "K000367"), congress = 115:117)## # A tibble: 6 × 7
## congress chamber bioguide_id name party attract_aggregate_weighted
## <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 115 SENATE K000367 AMY KLOBUCHAR D 0.532
## 2 115 SENATE M001153 LISA MURKOWSKI R 0.279
## 3 116 SENATE K000367 AMY KLOBUCHAR D 0.500
## 4 116 SENATE M001153 LISA MURKOWSKI R 0.569
## 5 117 SENATE K000367 AMY KLOBUCHAR D 0.485
## 6 117 SENATE M001153 LISA MURKOWSKI R 0.408
## # ℹ 1 more variable: offer_aggregate_weighted <dbl>
# Attract scores only, single Congress
compare_members(c("M001153", "K000367"), congress = 117,
score_type = "attract")## # A tibble: 2 × 6
## congress chamber bioguide_id name party attract_aggregate_weighted
## <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 117 SENATE K000367 AMY KLOBUCHAR D 0.485
## 2 117 SENATE M001153 LISA MURKOWSKI R 0.408
# Offer scores, chamber restricted
compare_members(c("M001153", "K000367"), congress = 117,
chamber = "senate", score_type = "offer")## # A tibble: 2 × 6
## congress chamber bioguide_id name party offer_aggregate_weighted
## <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 117 SENATE K000367 AMY KLOBUCHAR D 0.173
## 2 117 SENATE M001153 LISA MURKOWSKI R 0.689
rank_members()Leaderboard of members sorted by attract or offer score within a given Congress and chamber.
# Top 10 senators by attract score, 117th Congress
rank_members(117, "senate", score_type = "attract", n = 10)## # A tibble: 10 × 5
## rank name party bioguide_id attract_aggregate_weighted
## <int> <chr> <chr> <chr> <dbl>
## 1 1 MAGGIE HASSAN D H001076 0.808
## 2 2 GARY PETERS D P000595 0.806
## 3 3 ROB PORTMAN R P000449 0.779
## 4 4 JACKLYN ROSEN D R000608 0.776
## 5 5 SUSAN COLLINS R C001035 0.758
## 6 6 JOHN CORNYN R C001056 0.726
## 7 7 TODD YOUNG R Y000064 0.683
## 8 8 BILL CASSIDY R C001075 0.675
## 9 9 JON TESTER D T000464 0.648
## 10 10 RICHARD BURR R B001135 0.634
## # A tibble: 10 × 5
## rank name party bioguide_id offer_aggregate_weighted
## <int> <chr> <chr> <chr> <dbl>
## 1 1 BRIAN FITZPATRICK R F000466 0.835
## 2 2 JOHN KATKO R K000386 0.690
## 3 3 FRED UPTON R U000031 0.648
## 4 4 JENNIFFER GONZALEZ-COLON R G000582 0.645
## 5 5 HENRY CUELLAR D C001063 0.610
## 6 6 JAIME HERRERA BEUTLER R H001056 0.600
## 7 7 PETER MEIJER R M001186 0.565
## 8 8 AUMUA AMATA RADEWAGEN R R000600 0.551
## 9 9 DON BACON R B001298 0.537
## 10 10 DON YOUNG R Y000033 0.535
# Top 5 Republican senators by attract score
rank_members(117, "senate", score_type = "attract",
party = "R", n = 5)## # A tibble: 5 × 5
## rank name party bioguide_id attract_aggregate_weighted
## <int> <chr> <chr> <chr> <dbl>
## 1 1 ROB PORTMAN R P000449 0.779
## 2 2 SUSAN COLLINS R C001035 0.758
## 3 3 JOHN CORNYN R C001056 0.726
## 4 4 TODD YOUNG R Y000064 0.683
## 5 5 BILL CASSIDY R C001075 0.675
# Top 10 senators by health attract score
rank_members(117, "senate", score_type = "attract",
issue = "health", n = 10)## # A tibble: 10 × 5
## rank name party bioguide_id attract_health_weighted
## <int> <chr> <chr> <chr> <dbl>
## 1 1 MAGGIE HASSAN D H001076 0.893
## 2 2 BILL CASSIDY R C001075 0.853
## 3 3 JACKLYN ROSEN D R000608 0.840
## 4 4 ANGUS KING D K000383 0.837
## 5 5 RICHARD BURR R B001135 0.836
## 6 6 SUSAN COLLINS R C001035 0.825
## 7 7 JOHN REED D R000122 0.817
## 8 8 THOMAS CARPER D C000174 0.812
## 9 9 LISA MURKOWSKI R M001153 0.804
## 10 10 SHELLEY CAPITO R C001047 0.802
# Full ranking, lowest scores first
rank_members(100, "senate", score_type = "attract",
n = Inf, descending = FALSE) %>%
head(10)## # A tibble: 10 × 5
## rank name party bioguide_id attract_aggregate_weighted
## <int> <chr> <chr> <chr> <dbl>
## 1 1 BARBARA MIKULSKI D M000702 0.189
## 2 2 WILLIAM BRADLEY D B001225 0.194
## 3 3 RICHARD SHELBY D S000320 0.220
## 4 4 PAUL TRIBLE R T000367 0.220
## 5 5 ROBERT DOLE R D000401 0.222
## 6 6 DANIEL INOUYE D I000025 0.235
## 7 7 JAMES SASSER D S000068 0.235
## 8 8 PAUL SARBANES D S000064 0.244
## 9 9 GORDON HUMPHREY R H000951 0.244
## 10 10 ALAN DIXON D D000366 0.245
rank_members_by_issue()Focused variant of rank_members() with issue area as the
primary argument.
# Top 10 senators by taxation attract score, 117th Congress
rank_members_by_issue("tax", 117, "senate",
score_type = "attract")## # A tibble: 10 × 5
## rank name party bioguide_id attract_tax_weighted
## <int> <chr> <chr> <chr> <dbl>
## 1 1 ROB PORTMAN R P000449 0.766
## 2 2 TODD YOUNG R Y000064 0.766
## 3 3 RICHARD BURR R B001135 0.753
## 4 4 JACKLYN ROSEN D R000608 0.727
## 5 5 BILL CASSIDY R C001075 0.715
## 6 6 MAGGIE HASSAN D H001076 0.698
## 7 7 TIM SCOTT R S001184 0.691
## 8 8 MICHAEL BENNET D B001267 0.640
## 9 9 JONI ERNST R E000295 0.621
## 10 10 SUSAN COLLINS R C001035 0.608
# Top 5 House Democrats by immigration offer score
rank_members_by_issue("immig", 117, "house",
score_type = "offer",
party = "D", n = 5)## # A tibble: 5 × 5
## rank name party bioguide_id offer_immig_weighted
## <int> <chr> <chr> <chr> <dbl>
## 1 1 JOSH GOTTHEIMER D G000583 0.830
## 2 2 JOHN LARSON D L000557 0.767
## 3 3 MIKE DOYLE D D000482 0.733
## 4 4 JARED GOLDEN D G000592 0.733
## 5 5 HENRY CUELLAR D C001063 0.616
get_state_delegation()Scores for all members from a given state.
## # A tibble: 40 × 18
## congress chamber bioguide_id name party attract_aggregate_weighted
## <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 117 HOUSE G000553 AL GREEN D 0.193
## 2 117 HOUSE P000048 AUGUST PFLUGER R 0.300
## 3 117 HOUSE V000134 BETH VAN DUYNE R 0.173
## 4 117 HOUSE B001291 BRIAN BABIN R 0.335
## 5 117 HOUSE R000614 CHIP ROY R 0.0976
## 6 117 HOUSE A000376 COLIN ALLRED D 0.335
## 7 117 HOUSE C001120 DAN CRENSHAW R 0.210
## 8 117 HOUSE J000126 EDDIE JOHNSON D 0.540
## 9 117 HOUSE V000132 FILEMON VELA D 0.558
## 10 117 HOUSE C001063 HENRY CUELLAR D 0.541
## # ℹ 30 more rows
## # ℹ 12 more variables: offer_aggregate_weighted <dbl>,
## # attract_aggregate_unweighted <dbl>, offer_aggregate_unweighted <dbl>,
## # state <chr>, district <chr>, thomas_id <chr>, icpsr_id <chr>,
## # govtrack_id <dbl>, wikipedia <chr>, wikidata <chr>,
## # total_n_bills_sponsored <int>, prop_bills_with_cosponsor <dbl>
## # A tibble: 2 × 18
## congress chamber bioguide_id name party attract_aggregate_weighted
## <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 117 SENATE C001056 JOHN CORNYN R 0.726
## 2 117 SENATE C001098 TED CRUZ R 0.115
## # ℹ 12 more variables: offer_aggregate_weighted <dbl>,
## # attract_aggregate_unweighted <dbl>, offer_aggregate_unweighted <dbl>,
## # state <chr>, district <chr>, thomas_id <chr>, icpsr_id <chr>,
## # govtrack_id <dbl>, wikipedia <chr>, wikidata <chr>,
## # total_n_bills_sponsored <int>, prop_bills_with_cosponsor <dbl>
## # A tibble: 13 × 18
## congress chamber bioguide_id name party attract_aggregate_wei…¹
## <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 117 HOUSE G000553 AL GREEN D 0.193
## 2 117 HOUSE A000376 COLIN ALLRED D 0.335
## 3 117 HOUSE J000126 EDDIE JOHNSON D 0.540
## 4 117 HOUSE V000132 FILEMON VELA D 0.558
## 5 117 HOUSE C001063 HENRY CUELLAR D 0.541
## 6 117 HOUSE C001091 JOAQUIN CASTRO D 0.311
## 7 117 HOUSE F000468 LIZZIE FLETCHER D 0.483
## 8 117 HOUSE D000399 LLOYD DOGGETT D 0.221
## 9 117 HOUSE V000131 MARC VEASEY D 0.398
## 10 117 HOUSE J000032 SHEILA JACKSON LEE D 0.163
## 11 117 HOUSE G000587 SYLVIA GARCIA D 0.281
## 12 117 HOUSE E000299 VERONICA ESCOBAR D 0.270
## 13 117 HOUSE G000581 VICENTE GONZALEZ D 0.442
## # ℹ abbreviated name: ¹attract_aggregate_weighted
## # ℹ 12 more variables: offer_aggregate_weighted <dbl>,
## # attract_aggregate_unweighted <dbl>, offer_aggregate_unweighted <dbl>,
## # state <chr>, district <chr>, thomas_id <chr>, icpsr_id <chr>,
## # govtrack_id <dbl>, wikipedia <chr>, wikidata <chr>,
## # total_n_bills_sponsored <int>, prop_bills_with_cosponsor <dbl>
## # A tibble: 1 × 5
## state n_members n_observations mean_attract mean_offer
## <chr> <int> <int> <dbl> <dbl>
## 1 TX 40 40 0.317 0.142
list_issues()Enumerate all available CRS policy area labels.
## # A tibble: 35 × 4
## policy_area_number policy_area topic_short topic_label
## <int> <chr> <chr> <chr>
## 1 1 families fam Families
## 2 2 education edu Education
## 3 3 commerce comm Commerce
## 4 4 labor and employment labor Labor and …
## 5 5 government operations and politics gov Government…
## 6 6 native americans native Native Ame…
## 7 7 animals animals Animals
## 8 8 transportation and public works trans Transporta…
## 9 9 emergency management emerg Emergency …
## 10 10 finance and financial sector finance Finance an…
## # ℹ 25 more rows
get_issue_scores()All members’ scores for a single CRS policy area.
## # A tibble: 6 × 8
## congress chamber bioguide_id name party issue attract offer
## <dbl> <chr> <chr> <chr> <chr> <chr> <dbl> <dbl>
## 1 117 HOUSE A000148 JAKE AUCHINCLOSS D health NA 0.00301
## 2 117 HOUSE A000369 MARK AMODEI R health NA 0.574
## 3 117 HOUSE A000370 ALMA ADAMS D health 0.188 0.00315
## 4 117 HOUSE A000371 PETE AGUILAR D health NA 0.00219
## 5 117 HOUSE A000372 RICK ALLEN R health NA 0.148
## 6 117 HOUSE A000375 JODEY ARRINGTON R health 0.416 0.340
# Senate Democrats only — also accepts full CRS name
get_issue_scores("Taxation", congress = 117,
chamber = "senate", party = "D") %>%
head(10)## # A tibble: 10 × 8
## congress chamber bioguide_id name party issue attract offer
## <dbl> <chr> <chr> <chr> <chr> <chr> <dbl> <dbl>
## 1 117 SENATE B000944 SHERROD BROWN D tax 0.357 0.114
## 2 117 SENATE B001230 TAMMY BALDWIN D tax 0.441 0.123
## 3 117 SENATE B001267 MICHAEL BENNET D tax 0.640 0.409
## 4 117 SENATE B001277 RICHARD BLUMENTHAL D tax 0.127 0.00928
## 5 117 SENATE B001288 CORY BOOKER D tax 0.283 0.0446
## 6 117 SENATE C000127 MARIA CANTWELL D tax 0.526 0.124
## 7 117 SENATE C000141 BEN CARDIN D tax 0.575 0.307
## 8 117 SENATE C000174 THOMAS CARPER D tax 0.274 0.265
## 9 117 SENATE C001070 BOB CASEY D tax 0.230 0.168
## 10 117 SENATE C001088 CHRISTOPHER COONS D tax 0.553 0.147
# Summarize by chamber and party
health %>%
group_by(chamber, party) %>%
summarise(
mean_attract = mean(attract, na.rm = TRUE),
mean_offer = mean(offer, na.rm = TRUE),
n = n(),
.groups = "drop"
)## # A tibble: 4 × 5
## chamber party mean_attract mean_offer n
## <chr> <chr> <dbl> <dbl> <int>
## 1 HOUSE D 0.405 0.0504 227
## 2 HOUSE R 0.406 0.276 216
## 3 SENATE D 0.512 0.150 50
## 4 SENATE R 0.517 0.319 50
get_issue_trend()Mean attract and offer scores for a single policy area across all Congresses.
# Immigration bipartisanship over time, Senate, by party
get_issue_trend("immig", chamber = "senate",
by_party = TRUE)## # A tibble: 42 × 7
## congress chamber party issue mean_attract mean_offer n_members
## <dbl> <chr> <chr> <chr> <dbl> <dbl> <int>
## 1 98 SENATE D immig 0.208 0.199 9
## 2 98 SENATE R immig 0.2 0.203 6
## 3 99 SENATE D immig 0.507 0.422 13
## 4 99 SENATE R immig 0.519 0.426 16
## 5 100 SENATE D immig 0.506 0.341 23
## 6 100 SENATE R immig 0.694 0.694 14
## 7 101 SENATE D immig 0.329 0.330 30
## 8 101 SENATE R immig 0.430 0.357 19
## 9 102 SENATE D immig 0.445 0.442 17
## 10 102 SENATE R immig 0.453 0.336 14
## # ℹ 32 more rows
get_congress_summary()Congress-level mean attract and offer scores.
# Senate means, 115th through 118th Congresses
get_congress_summary(chamber = "senate",
congress = 115:118)## # A tibble: 4 × 5
## congress chamber mean_attract mean_offer n_members
## <dbl> <chr> <dbl> <dbl> <int>
## 1 115 SENATE 0.444 0.270 105
## 2 116 SENATE 0.440 0.256 102
## 3 117 SENATE 0.406 0.233 100
## 4 118 SENATE 0.430 0.240 103
## # A tibble: 8 × 6
## congress chamber party mean_attract mean_offer n_members
## <dbl> <chr> <chr> <dbl> <dbl> <int>
## 1 115 SENATE D 0.390 0.241 50
## 2 115 SENATE R 0.497 0.298 55
## 3 116 SENATE D 0.385 0.200 48
## 4 116 SENATE R 0.488 0.304 54
## 5 117 SENATE D 0.408 0.183 50
## 6 117 SENATE R 0.405 0.284 50
## 7 118 SENATE D 0.440 0.189 54
## 8 118 SENATE R 0.418 0.297 49
# Health scores by party
get_congress_summary(chamber = "senate", congress = 115:118,
by_party = TRUE,
issue = "health")## # A tibble: 8 × 7
## congress chamber party mean_attract mean_offer n_members issue
## <dbl> <chr> <chr> <dbl> <dbl> <int> <chr>
## 1 115 SENATE D 0.487 0.235 50 health
## 2 115 SENATE R 0.592 0.312 55 health
## 3 116 SENATE D 0.460 0.178 48 health
## 4 116 SENATE R 0.566 0.332 54 health
## 5 117 SENATE D 0.512 0.150 50 health
## 6 117 SENATE R 0.517 0.319 50 health
## 7 118 SENATE D 0.510 0.195 54 health
## 8 118 SENATE R 0.557 0.379 49 health
plot_bipartisanship()Violin plot of issue-area score distributions by party and chamber, with optional member highlight.
# Highlight Lisa Murkowski
plot_bipartisanship(117, chambers = "senate",
highlight = "M001153",
title = "Senate Bipartisanship by Issue Area — 117th Congress")plot_trend()Time-series line chart of scores across Congresses.
# Lisa Murkowski and Amy Klobuchar — attract scores
plot_trend(c("M001153", "K000367"), score_type = "attract")# Party-average attract trend, Senate
plot_trend(c("D", "R"), type = "party", chamber = "senate",
score_type = "attract")# Party-average offer trend, House
plot_trend(c("D", "R"), type = "party", chamber = "house",
score_type = "offer")plot_member_profile()Profile card combining a member photo, career summary statistics, and a bar chart of issue-area attract and offer scores by CRS policy area.
# Lisa Murkowski (R-AK) — 117th Congress
plot_member_profile("M001153", congress = 117, chamber = "senate")# Amy Klobuchar (D-MN) — 117th Congress
plot_member_profile("K000367", congress = 117, chamber = "senate")If you use these scores, please cite the paper:
Authors (2026). Congressional bipartisanship scores by member and issue area, 1983–2024. Working paper.
and the R package:
Authors (2026). biparty: Congressional Bipartisanship Scores by Member and Issue Area. R package version 0.1.0. https://github.com/congressional-bipartisanship-scores/biparty
This demonstration was generated using biparty
version 0.1.0.