library(hnlcouncilR) # package for downloading HNL City Council data
library(tidyverse) # ggplot, dplyr, %>%, and friends
library(janitor) # data cleaning tools
library(kableExtra) # for displaying tables
library(DT) # for interactive tables
library(ggokabeito) # for color palettes
# Custom ggplot theme to make pretty plots
# Get the News Cycle font at https://fonts.google.com/specimen/News+Cycle
theme_clean <- function() {
theme_minimal(base_family = "News Cycle") +
theme(panel.grid.minor = element_blank(),
plot.title = element_text(face = "bold"),
axis.title = element_text(face = "bold"),
strip.text = element_text(face = "bold", size = rel(1), hjust = 0),
strip.background = element_rect(fill = "grey80", color = NA),
legend.title = element_text(face = "bold"))
}
Local governments in the U.S. are usually the level of government that people directly interact with most often, since they typically provide essential services that people need to survive and maintain critical infrastructure to ensure functioning cities and counties. Despite that, local government issues often get less attention than federal and state ones. Many people do not know what their local elected officials are doing and what measures (bills and resolutions) they are considering. To help increase transparency, I created a new R package, hnlcouncilR
, to make it easier to see what measures the Honolulu City Council, my local city council, have voted on and are currently considering. The package can be installed from GitHub using pak::pak("rentzb/hnlcouncilR")
.
In this blog post, I demonstrate how to use the hnlcouncilR
package and provide some sample analyses to show what can be done with it.
To get started we will be using these packages.
How hnlcouncilR
works
The hnlcouncilR
package downloads data for selected measures from the Honolulu City Council’s website using the rvest
package and then reformats them into a tibble that can be used for other analysis. The main function of the package is get_council_measures()
. To use it, we pick a measure to start with and a measure to end with. The function will attempt to download all measures in that range. Unfortunately, the measure’s number that we need to use does not correspond to its actual measure name or number, but is rather a sequential number only used on the council’s website. To determine the measure’s number, search for the measure and then look at its url. For example the first measure of 2025 is RES25-001 and it has a url of https://hnldoc.ehawaii.gov/hnldoc/measure/3163. The four digit number in the url, 3163, is the measure number that we need to use.
# download a few sample measures
sample_measures <- get_council_measures(start_measure = 3163,
end_measure = 3165)
sample_measures %>%
head() %>%
kable(booktabs = TRUE)
measure_number | measure_name | measure_type | measure_introducer1 | measure_introducer2 | event_date | event_type | event_description | AYES | NOES | ABSENT | vote_ayes_n | vote_no_n | absent_n | introduced_by_request |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RES25-001 | ADOPTING THE FINAL OʻAHU VISION ZERO ACTION PLAN DATED AUGUST 2024. | resolution | TYLER DOS SANTOS-TAM | NA | 2025-01-02 | INTRO | Introduced. | NA | NA | NA | 0 | 0 | 0 | NO |
RES25-001 | ADOPTING THE FINAL OʻAHU VISION ZERO ACTION PLAN DATED AUGUST 2024. | resolution | TYLER DOS SANTOS-TAM | NA | 2025-01-16 | PI&T | Reported out for adoption.CR-20 | CORDERO, DOS SANTOS-TAM, OKIMOTO, TUPOLA, WEYER | NA | NA | 5 | 0 | 0 | NO |
RES25-001 | ADOPTING THE FINAL OʻAHU VISION ZERO ACTION PLAN DATED AUGUST 2024. | resolution | TYLER DOS SANTOS-TAM | NA | 2025-01-29 | CCL | Committee report and Resolution were adopted. | CORDERO, DOS SANTOS-TAM, KIAʻĀINA, NISHIMOTO, OKIMOTO, TULBA, TUPOLA, WATERS, WEYER | NA | NA | 9 | 0 | 0 | NO |
RES25-002 | URGING THE HAWAIʻI STATE LEGISLATURE TO ADOPT LEGISLATION THAT WOULD CREATE A UNIVERSAL FREE SCHOOL LUNCH PROGRAM FOR PUBLIC SCHOOL STUDENTS. | resolution | TYLER DOS SANTOS-TAM | NA | 2025-01-02 | INTRO | Introduced. | NA | NA | NA | 0 | 0 | 0 | NO |
RES25-002 | URGING THE HAWAIʻI STATE LEGISLATURE TO ADOPT LEGISLATION THAT WOULD CREATE A UNIVERSAL FREE SCHOOL LUNCH PROGRAM FOR PUBLIC SCHOOL STUDENTS. | resolution | TYLER DOS SANTOS-TAM | NA | 2025-01-14 | HSEH | Reported out for adoption.CR-6 | CORDERO, DOS SANTOS-TAM, TULBA, WEYER | NA | TUPOLA | 4 | 0 | 1 | NO |
RES25-002 | URGING THE HAWAIʻI STATE LEGISLATURE TO ADOPT LEGISLATION THAT WOULD CREATE A UNIVERSAL FREE SCHOOL LUNCH PROGRAM FOR PUBLIC SCHOOL STUDENTS. | resolution | TYLER DOS SANTOS-TAM | NA | 2025-01-29 | CCL | Committee report and Resolution were adopted. | CORDERO, KIAʻĀINA, NISHIMOTO, TULBA, TUPOLA, WATERS, WEYER | NA | DOS SANTOS-TAM, OKIMOTO | 7 | 0 | 2 | NO |
The function returns a tibble with one row per “event” for each of the measures within that range. Events include things like being introduced, being voted on in a committee or by the full council, providing public notice of a hearing, and being sent to the mayor for their review. The tibble also contains vote information (if a vote took place), who introduced the measure, and whether it was introduced by request. For more detailed vote information, we can use the get_votes()
function on the data we already downloaded.
# download a few sample measures
sample_votes <- get_votes(sample_measures)
sample_votes %>%
head() %>%
kable(booktabs = TRUE)
measure_number | measure_name | measure_type | measure_introducer1 | measure_introducer2 | event_date | event_type | event_description | vote_ayes_n | vote_no_n | absent_n | introduced_by_request | vote | council_member | AYE_WITH_RESERVATION |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RES25-001 | ADOPTING THE FINAL OʻAHU VISION ZERO ACTION PLAN DATED AUGUST 2024. | resolution | TYLER DOS SANTOS-TAM | NA | 2025-01-16 | PI&T | Reported out for adoption.CR-20 | 5 | 0 | 0 | NO | AYE | CORDERO | NO |
RES25-001 | ADOPTING THE FINAL OʻAHU VISION ZERO ACTION PLAN DATED AUGUST 2024. | resolution | TYLER DOS SANTOS-TAM | NA | 2025-01-16 | PI&T | Reported out for adoption.CR-20 | 5 | 0 | 0 | NO | AYE | DOS SANTOS-TAM | NO |
RES25-001 | ADOPTING THE FINAL OʻAHU VISION ZERO ACTION PLAN DATED AUGUST 2024. | resolution | TYLER DOS SANTOS-TAM | NA | 2025-01-16 | PI&T | Reported out for adoption.CR-20 | 5 | 0 | 0 | NO | AYE | OKIMOTO | NO |
RES25-001 | ADOPTING THE FINAL OʻAHU VISION ZERO ACTION PLAN DATED AUGUST 2024. | resolution | TYLER DOS SANTOS-TAM | NA | 2025-01-16 | PI&T | Reported out for adoption.CR-20 | 5 | 0 | 0 | NO | AYE | TUPOLA | NO |
RES25-001 | ADOPTING THE FINAL OʻAHU VISION ZERO ACTION PLAN DATED AUGUST 2024. | resolution | TYLER DOS SANTOS-TAM | NA | 2025-01-16 | PI&T | Reported out for adoption.CR-20 | 5 | 0 | 0 | NO | AYE | WEYER | NO |
RES25-001 | ADOPTING THE FINAL OʻAHU VISION ZERO ACTION PLAN DATED AUGUST 2024. | resolution | TYLER DOS SANTOS-TAM | NA | 2025-01-29 | CCL | Committee report and Resolution were adopted. | 9 | 0 | 0 | NO | AYE | CORDERO | NO |
The get_votes()
function returns a long version of the data where there is one row for each voting event by measure by council member. The non-voting events were removed from the data. This allows us to see how each member voted as the measures progressed.
Let’s now look at a more real example.
Honolulu City Council in 2024
Let’s see what the Honolulu City Council did in 2024. To do that, we need to download data for all measures between January 1, 2022 through December 31, 2024, since bills are given two years to be passed and resolutions are given 1 year. Our starting measure will be the first bill introduced in 2022, BILL001(22) which has measure number of 2056. The ending measure will be the last measure introduced in 2024, which is RES24-298, which is measure number 3162. We will then limit the data to only measures that had an event during the calendar year of 2024.
# download all data for 2024. This takes a while
measures_2024 <- get_council_measures(start_measure = 2024,
end_measure = 3162) %>%
filter(lubridate::year(event_date) == 2024)
How many measures did each council member introduce?
Council chair Waters introduced the most measures and most of those were resolutions introduced at the request of others. Among the measures not introduced by request, council chair Waters introduced the most resolutions and council member Dos Santos-Tam introduced the most bills. Council member Say introduced the fewest resolutions (and the fewest measures overall) and council members Tubla and Tupola each introduced the least number of bills.
measures_2024 %>%
filter(event_type == "INTRO") %>%
select(measure_number,measure_type,
measure_introducer1,measure_introducer2,
introduced_by_request) %>%
pivot_longer(cols = measure_introducer1:measure_introducer2,
names_to = "delete",
values_to = "measure_introducer",
values_drop_na = TRUE) %>%
select(-delete) %>%
mutate(measure_introducer = case_when(
measure_introducer == "TYLER DOS SANTOS-TAM" ~ "DOS SANTOS-TAM",
.default = stringr::word(measure_introducer,-1))) %>%
group_by(measure_type,
measure_introducer,
introduced_by_request) %>%
count() %>%
mutate(introduced_by_request = case_when(
introduced_by_request == "YES" ~ "By Request",
introduced_by_request == "NO" ~ "Not By Request"
)) %>%
ggplot(aes(y = reorder(measure_introducer,n), x = n, color = measure_type)) +
geom_linerange(aes(y = measure_introducer,xmin=0, xmax = n),
position = position_dodge(width = 0.5)) +
geom_point(position = position_dodge(width = 0.5)) +
facet_wrap(~introduced_by_request,scales = "free") +
theme_clean() +
scale_color_okabe_ito(name = "") +
theme(
panel.grid.major.y = element_blank()) +
ylab("") +
xlab("") +
ggtitle("Number of Measures Introduced (2024)")
Which council members introduced measures together?
Measures in the Honolulu City Council can be introduced by either one or two council members. We can visualize how often each council member introduces measures with other members in 2024 using the cointro_network_graph()
function. Each line (or edge) represents a unique measure that was introduced by those two council members.
Overall, council member Dos Santos-Tam introduced measures with 7 other council members (all except with council member Tupola). On the other hand, council member Say overall only introduced measures with two other members.
The network graphs all us to see patterns about who tended to work more often with whom. First there is the highly collaborative group, especially for bills, that comprises council members Dos Santos-Tam, Weyer, and Cordero. The next group is centered on council chair Waters. Waters cointroduced several bills with member Weyer and several resolutions with member Kiaʻāina, but Kiaʻāina and Weyer did not cointroduce measures together at all. Council members Tupola and Tulba form another group and most frequently introduced measures with each other, but occasionally worked with other highly collaborative members like Weyer. Council members Okimoto and Say introduced few measures overall, and when they did they worked with members of the highly collaborative group or with chair Waters.
# limit data to only measures introduced in 2024
measures_introuced_2024 <- measures_2024 %>%
filter(event_type == "INTRO")
# Plot network graph for all measures
cointro_network_graph(measures_introuced_2024, type = "all")
# Plot network graph for bills
cointro_network_graph(measures_introuced_2024, type = "bill")
# Plot network graph for resolutions
cointro_network_graph(measures_introuced_2024, type = "resolution")
How often did council members miss votes?
Council member Tupola missed the most votes (26.5% missed), while council chair Waters missed the fewest (2.1% missed).
# extract the vote information from the measures
votes_2024 <- get_votes(measures_2024)
votes_2024 %>%
group_by(council_member, vote) %>%
count() %>%
pivot_wider(names_from = vote,
values_from = n,
values_fill = 0) %>%
mutate(total = ABSENT + AYE + NO) %>%
mutate(across(ABSENT:NO, ~ .x / total, .names = "perc_{.col}")) %>%
select(-ABSENT:-NO, -total) %>%
ungroup() %>%
pivot_longer(cols = perc_ABSENT:perc_NO,
names_to = "vote",
values_to = "percent") %>%
# remove temporary voting member
filter(council_member != "DOS SANTOS-TAM (temporary voting member)") %>%
filter(vote == "perc_ABSENT") %>%
ggplot(aes(y = reorder(council_member,percent), x = percent)) +
geom_linerange(aes(y = council_member,xmin=0, xmax = percent),
position = position_dodge(width = 0.5)) +
geom_point(position = position_dodge(width = 0.5)) +
theme_clean() +
theme(
panel.grid.major.y = element_blank()) +
scale_x_continuous(labels = scales::percent, limits = c(0,0.3)) +
ggtitle("Percentage of Votes Absent (2024)") +
xlab("") +
ylab("")
How many times did each committee meet?
Unfortunately, we don’t directly have the number of times a committee met in these data, but we do have data for when the committee had enough members present for a quorum and a vote took place, which should be a close proxy. The Budget and Planning & Economy committees, chaired by council members Cordero and Kiaʻāina respectively met most often with 13 meetings each. The Public Infrastructure and Technology committee, chaired by council member Tupola (who also missed the most number of votes overall), only met twice in 2024.
committes_2024 <- votes_2024 %>%
select(event_date, event_type) %>%
unique() %>%
filter(event_type != "CCL" & event_type != "CCL/PH" & event_type != "") %>%
group_by(event_type) %>%
count() %>%
ungroup()
committes_2024 %>%
ggplot(aes(y = reorder(event_type,n), x = n)) +
geom_linerange(aes(y = event_type,xmin=0, xmax = n),
position = position_dodge(width = 0.5)) +
geom_point(position = position_dodge(width = 0.5)) +
theme_clean() +
theme(panel.grid.major.y = element_blank()) +
ggtitle("Number of Committee Meetings (2024)") +
xlab("") +
ylab("")
committee_info <- tibble(Chair = c("Kiaʻāina","Cordero","Say", "Weyer","Okimoto",
"Dos Santos-Tam","Tubla","Dos Santos-Tam","Waters","Tupola"),
committee = c("P&E","BUD","ZON",
"HSH","PS","EMLA","PESCA","TRANS","EM","PIT"),
name = c("Planning & Economy","Budget","Zoning","Housing, Sustainability & Health",
"Public Safety","Executive Matters and Legal Affairs","Parks, Enterprise Services, and Culture and the Arts","Transportation", "Executive Management","Public Infrastructure and Technology"))
committes_2024 %>%
inner_join(committee_info, by = c("event_type" = "committee")) %>%
select(event_type,name,Chair,n) %>%
rename(`Committee Abbreviation` = event_type,
`Committee Name` = name,
`Number of Meetings` = n) %>%
datatable()
Which measures did each council member vote no on?
Determining what measures each city council member voted no on is not as easy as just displaying all the no votes. For example, a no vote could be against deferring/postponing a measure (which is a vote in favor of the measures) or against specific amendments, which might change the nature of the measure. A member could also vote no on a measure in a committee, but ultimately vote yes on the measure in a full council meeting. Because of this, we will only look at each member’s most recent no vote on each measure and exclude votes for postponing. I also include the description of that no vote and how many total council members voted no for additional context.
Cordero
Member Cordero voted no on 4 measures in 2024. Some notable votes include: voting no on overriding the Mayor’s veto of a bill that would have expanded firework access, no on amendments to a bill about the construction of affordable housing, and no on the first reading of a bill to amend the noise control ordinance.
# create function for table of no votes
get_no_votes <- function(votes,name = "CORDERO"){
votes %>%
group_by(measure_name,measure_number,measure_type,council_member) %>%
filter(str_detect(event_description,"Postpone") == FALSE) %>%
slice_max(event_date,n=1) %>%
filter(vote_no_n > 0) %>%
filter(vote == "NO") %>%
group_by(measure_name,measure_number,measure_type,council_member,event_description) %>%
count() %>%
arrange(measure_number) %>%
ungroup() %>%
group_by(measure_name,measure_number) %>%
mutate(n_members = row_number()) %>%
mutate(number_no_members = max(n_members)) %>%
filter(council_member == name) %>%
select(measure_number, measure_name,number_no_members,event_description) %>%
rename(`Measure Number`= measure_number,
`Measure Name`= measure_name,
`Total Number of Members to Vote No` = number_no_members,
`Vote Description` = event_description) %>%
kable()
}
get_no_votes(votes_2024, name = "CORDERO")
Measure Number | Measure Name | Total Number of Members to Vote No | Vote Description |
---|---|---|---|
BILL003(24) | RELATING TO INCENTIVES FOR THE CONSTRUCTION OF AFFORDABLE RENTAL HOUSING. | 4 | Amended to FD1.OCS2024-0736/7/30/2024 8:51 AM |
BILL005(24) | RELATING TO NOISE CONTROL | 3 | Passed first reading. |
BILL022(24) | RELATING TO THE FIRE CODE. | 4 | Mayor’s Message 194 returning Bill 22 (2024), was entered into the Council Journal.Bill 22 (2024) failed to receive the necessary two-thirds vote of the entire membership of the Council and shall be deemed finally lost pursuant to RCH Section 3-203.1. |
BILL029(24) | RELATING TO HALLOWEEN. | 5 | Failed to receive the majority vote of the entire membership of the Council needed to pass on first reading. |
Dos Santos-Tam
Member Dos Santos-Tam voted no on 2 measures in 2024. Some notable votes include: voting no on overriding the Mayor’s veto of a bill that would have expanded firework access and no on amendments to a bill about the construction of affordable housing.
get_no_votes(votes_2024, name = "DOS SANTOS-TAM")
Measure Number | Measure Name | Total Number of Members to Vote No | Vote Description |
---|---|---|---|
BILL003(24) | RELATING TO INCENTIVES FOR THE CONSTRUCTION OF AFFORDABLE RENTAL HOUSING. | 4 | Amended to FD1.OCS2024-0736/7/30/2024 8:51 AM |
BILL022(24) | RELATING TO THE FIRE CODE. | 4 | Mayor’s Message 194 returning Bill 22 (2024), was entered into the Council Journal.Bill 22 (2024) failed to receive the necessary two-thirds vote of the entire membership of the Council and shall be deemed finally lost pursuant to RCH Section 3-203.1. |
Kiaʻāina
Member Kiaʻāina voted no on 5 measures in 2024. Some notable votes include: voting no on a ban of single use plastics in city and county buildings and voting no on overriding the Mayor’s veto of a bill that would have expanded firework access.
get_no_votes(votes_2024, name = "KIAʻĀINA")
Measure Number | Measure Name | Total Number of Members to Vote No | Vote Description |
---|---|---|---|
BILL022(24) | RELATING TO THE FIRE CODE. | 4 | Mayor’s Message 194 returning Bill 22 (2024), was entered into the Council Journal.Bill 22 (2024) failed to receive the necessary two-thirds vote of the entire membership of the Council and shall be deemed finally lost pursuant to RCH Section 3-203.1. |
BILL029(24) | RELATING TO HALLOWEEN. | 5 | Failed to receive the majority vote of the entire membership of the Council needed to pass on first reading. |
BILL059(24) | RELATING TO PLASTIC. | 5 | Committee report failed to be adopted and Bill failed to receive the majority vote of the entire membership of the Council needed to pass second reading. |
RES24-116 | INITIATING AMENDMENTS TO THE REVISED CHARTER OF THE CITY AND COUNTY OF HONOLULU 1973 (AMENDED 2017 EDITION), AS AMENDED, RELATING TO HOMELESSNESS. | 1 | Reported out for passage on second reading and scheduling of a public hearing as amended in CD1 form.CR-180 |
RES24-197 | URGING THE CITY ADMINISTRATION TO INVESTIGATE THE ESTABLISHMENT OF A COMPENSATION PLUS PROGRAM, OR SIMILAR ACCOUNTABLE REIMBURSEMENT PLAN, FOR OFFICERS AND EMPLOYEES OF THE HONOLULU POLICE DEPARTMENT. | 1 | Committee report and Resolution were adopted. |
Okimoto
Member Okimoto voted no on 9 measures in 2024.
Some notable votes include: Voting no on a ban of single use plastics in city and county buildings, voting no on a resolution to allow the city to initiate legal action against the firearm industry, and voting against several resolutions relating to litigation against the city.
get_no_votes(votes_2024, name = "OKIMOTO")
Measure Number | Measure Name | Total Number of Members to Vote No | Vote Description |
---|---|---|---|
BILL029(24) | RELATING TO HALLOWEEN. | 5 | Failed to receive the majority vote of the entire membership of the Council needed to pass on first reading. |
BILL040(23) | RELATING TO THE TRANSIT CONSTRUCTION MITIGATION FUND. | 3 | Committee report adopted and Bill passed third reading. |
BILL059(24) | RELATING TO PLASTIC. | 5 | Committee report failed to be adopted and Bill failed to receive the majority vote of the entire membership of the Council needed to pass second reading. |
RES24-033 | TO AMEND CONTRACT NO. SC-COR-23-00086 TO REQUEST ADDITIONAL FUNDS TO CONTINUE THE SERVICES OF MCCORRISTON MILLER MUKAI MACKINNON LLP AS SPECIAL COUNSEL TO REPRESENT DEFENDANT JAKE BARTOLOME IN THE RELATED LEGAL ACTIONS ENTITLED UALANI GOUVEIA, ET AL.V. CITY AND COUNTY OF HONOLULU, ET AL., CIVIL NO. 1CCV-21-0001 150, MATTHEW TABAG-KALUA, ET AL. V. CITY AND COUNTY OF HONOLULU, ET AL., CIVIL NO. 1CCV-22-0000415, AND JONAVEN PERKINS-SINAPATI, ET AL.V. CITY AND COUNTY OF HONOLULU, ET AL., CIVIL NO. 1 CCV-22-0000429 (CIR. CT.) AND TO ALLOW THE REPRESENTATION OF DEFENDANT JAKE BARTOLOME IN UALANI GOUVEIA, ET AL. V. RICK BLANGIARDI, ET AL., CASE NO. 1CV-23-00378 JAO WRP (U.S.D.C.) | 1 | Committee report and Resolution were adopted. |
RES24-034 | TO AMEND CONTRACT NO. SC-COR-23-00087 TO REQUEST ADDITIONAL FUNDS TO CONTINUE THE SERVICES OF KOBAYASHI SUGITA & GODA LLP AS SPECIAL COUNSEL TO REPRESENT DEFENDANT ERIK SMITH IN THE RELATED LEGAL ACTIONS ENTITLED UALANI GOUVEIA, ET AL.V. CITY AND COUNTY OF HONOLULU, ET AL., CIVIL NO. 1 CCV-21 -0001150, MATTHEW TABAG-KALUA, ET AL. V. CITY AND COUNTY OF HONOLULU, ET AL., CIVIL NO. 1 CCV-22-000041 5, AND JONAVEN PERKINS-SINAPATI, ET AL.V. CITY AND COUNTY OF HONOLULU, ET AL., CIVIL NO. 1 CCV-22-0000429 (CIR. CT.) AND TO ALLOW THE REPRESENTATION OF DEFENDANT ERIK SMITH IN UALANI GOUVEIA, ET AL. V. RICK BLANGIARDI, ET AL., CASE NO. 1CV-23-00378 JAO-WRP (U.S.D.C.) | 1 | Committee report and Resolution were adopted. |
RES24-098 | TO RETAIN THE LEGAL SERVICES OF FARM BENDICT SUGIHARA A LIMITED LIABILITY LAW PARTNERSHIP LLP AS SPECIAL COUNSEL TO REPRESENT DEFENDANT JOSHUA NAHULU IN THE LEGAL ACTION ENTITLED UALANI GOUVEIA, ET AL. V. RICK BLANGIARDI, ET AL., CASE NO. 1CV-23-00378-JAO-WRP (U.S.D.C.). | 1 | Committee report and Resolution were adopted. |
RES24-099 | TO RETAIN THE LEGAL SERVICES OF THE GIFFORDS LAW CENTER TO PREVENT GUN VIOLENCE AS SPECIAL DEPUTY CORPORATION COUNSEL FOR THE CITY AND COUNTY OF HONOLULU IN A LEGAL ACTION ENTITLED NELSON, ETAL. V. HONOLULU CITY AND COUNTY, 24-CV-00100-MWJS-RT (D. HAW.) | 1 | Committee report and Resolution were adopted. |
RES24-100 | TO AUTHORIZE THE DEPARTMENT OF THE CORPORATION COUNSEL TO INITIATE LEGAL ACTION AGAINST A FIREARM INDUSTRY MEMBER AND TO RETAIN ATTORNEYS AS SPECIAL DEPUTIES CORPORATION COUNSEL. | 2 | Committee report and Resolution were adopted. |
RES24-226 | DENYING A SPECIAL MANAGEMENT AREA MAJOR PERMIT AND SHORELINE SETBACK VARIANCE TO ALLOW THE EXPANSION AND FORTIFICATION OF A NONCONFORMING CONCRETE SEAWALL IN LANIKAI, OʻAHU. | 1 | Committee report adopted. |
Say
Member Say voted no on 3 measures in 2024.
Some notable votes include: Voting no on a ban of single use plastics in city and county buildings.
get_no_votes(votes_2024, name = "SAY")
Measure Number | Measure Name | Total Number of Members to Vote No | Vote Description |
---|---|---|---|
BILL040(23) | RELATING TO THE TRANSIT CONSTRUCTION MITIGATION FUND. | 3 | Amended to handcarried FD1.OCS2024-0056/1/23/2024 2:01 PM |
BILL040(23) | RELATING TO THE TRANSIT CONSTRUCTION MITIGATION FUND. | 3 | Committee report adopted and Bill passed third reading. |
BILL059(24) | RELATING TO PLASTIC. | 5 | Committee report failed to be adopted and Bill failed to receive the majority vote of the entire membership of the Council needed to pass second reading. |
BILL064(23) | RELATING TO USE REGULATIONS. | 2 | Committee report adopted and Bill passed third reading. |
BILL064(23) | RELATING TO USE REGULATIONS. | 2 | NOTE: Posted FD2 OCS2024-1071/12/5/2024 4:16 PM not considered.Amended to handcarried FD2.OCS2024-1073/12/9/2024 2:34 PM |
Tulba
Member Tulba voted no on 6 measures in 2024.
Some notable votes include: Voting no on a ban of single use plastics in city and county buildings and voting no on a resolution to allow the city to initiate legal action against the firearm industry.
get_no_votes(votes_2024, name = "TULBA")
Measure Number | Measure Name | Total Number of Members to Vote No | Vote Description |
---|---|---|---|
BILL003(24) | RELATING TO INCENTIVES FOR THE CONSTRUCTION OF AFFORDABLE RENTAL HOUSING. | 4 | Amended to FD1.OCS2024-0736/7/30/2024 8:51 AM |
BILL029(24) | RELATING TO HALLOWEEN. | 5 | Failed to receive the majority vote of the entire membership of the Council needed to pass on first reading. |
BILL059(24) | RELATING TO PLASTIC. | 5 | Committee report failed to be adopted and Bill failed to receive the majority vote of the entire membership of the Council needed to pass second reading. |
RES23-304 | AUTHORIZING THE EXECUTION OF AN AMENDED FULL FUNDING GRANT AGREEMENT WITH THE FEDERAL TRANSIT ADMINISTRATION FOR FEDERAL TRANSPORTATION ASSISTANCE AUTHORIZED BY UNITED STATES CODE TITLE 49, CHAPTER 53, AND OTHER FEDERAL STATUTES ADMINISTERED BY THE FEDERAL TRANSIT ADMINISTRATION | 1 | Committee report and Resolution as amended were adopted. |
RES24-027 | URGING THE LEGISLATURE TO PASS LEGISLATION CLARIFYING THAT THE COUNTIES HAVE THE POWER TO AMORTIZE OR PHASE OUT NONCONFORMING SHORT-TERM RENTALS. | 2 | Adopted. |
RES24-100 | TO AUTHORIZE THE DEPARTMENT OF THE CORPORATION COUNSEL TO INITIATE LEGAL ACTION AGAINST A FIREARM INDUSTRY MEMBER AND TO RETAIN ATTORNEYS AS SPECIAL DEPUTIES CORPORATION COUNSEL. | 2 | Committee report and Resolution were adopted. |
Tupola
Member Tupola voted no on 7 measures in 2024.
Some notable votes include: Voting no on a ban of single use plastics in city and county buildings, voting against a resolution requesting the state legislature to give the counties the power to phase out nonconfirming short-term rentals, and voting no on the first reading of a bill to amend the noise control ordinance.
get_no_votes(votes_2024, name = "TUPOLA")
Measure Number | Measure Name | Total Number of Members to Vote No | Vote Description |
---|---|---|---|
BILL003(24) | RELATING TO INCENTIVES FOR THE CONSTRUCTION OF AFFORDABLE RENTAL HOUSING. | 4 | Amended to FD1.OCS2024-0736/7/30/2024 8:51 AM |
BILL005(24) | RELATING TO NOISE CONTROL | 3 | Passed first reading. |
BILL029(24) | RELATING TO HALLOWEEN. | 5 | Failed to receive the majority vote of the entire membership of the Council needed to pass on first reading. |
BILL059(24) | RELATING TO PLASTIC. | 5 | Committee report failed to be adopted and Bill failed to receive the majority vote of the entire membership of the Council needed to pass second reading. |
RES24-027 | URGING THE LEGISLATURE TO PASS LEGISLATION CLARIFYING THAT THE COUNTIES HAVE THE POWER TO AMORTIZE OR PHASE OUT NONCONFORMING SHORT-TERM RENTALS. | 2 | Adopted. |
RES24-061 | DETERMINING THE REAL PROPERTY TAX RATES FOR THE CITY AND COUNTY OF HONOLULU FOR THE FISCAL YEAR JULY 1, 2024 TO JUNE 30, 2025. | 1 | Committee report and Resolution were adopted. |
RES24-065 | RESOLUTION EXPRESSING THE HONOLULU CITY COUNCIL’S OPPOSITION TO HOUSE BILL 1630, H.D. 1, AND SENATE BILL 3202, S.D. 2, RELATING TO URBAN DEVELOPMENT. | 1 | Committee report and Resolution as amended were adopted. |
Waters
Chair Waters voted no on 2 measures in 2024.
get_no_votes(votes_2024, name = "WATERS")
Measure Number | Measure Name | Total Number of Members to Vote No | Vote Description |
---|---|---|---|
BILL063(23) | TO AMEND CHAPTER 38, ARTICLES 3 AND 8, REVISED ORDINANCES OF HONOLULU, 2021, AS AMENDED RELATING TO CONCESSIONS. | 1 | Committee report adopted and Bill passed third reading as amended. |
RES24-017 | APPROVING THE SALE OF THE PIʻIKOI MINI PARK, ROAD REMNANT LOT 46, 1409 PIʻIKOI STREET, HONOLULU, HAWAIʻI, TAX MAP KEY: 2-4-020:056. | 1 | Committee report and Resolution were adopted. |
Weyer
Member Weyer voted no on 3 measures in 2024.
Some notable votes include: voting no on overriding the Mayor’s veto of a bill that would have expanded firework access and no on the first reading of a bill to amend the noise control ordinance.
get_no_votes(votes_2024, name = "WEYER")
Measure Number | Measure Name | Total Number of Members to Vote No | Vote Description |
---|---|---|---|
BILL005(24) | RELATING TO NOISE CONTROL | 3 | Passed first reading. |
BILL022(24) | RELATING TO THE FIRE CODE. | 4 | Mayor’s Message 194 returning Bill 22 (2024), was entered into the Council Journal.Bill 22 (2024) failed to receive the necessary two-thirds vote of the entire membership of the Council and shall be deemed finally lost pursuant to RCH Section 3-203.1. |
RES24-071 | GRANTING A SPECIAL MANAGEMENT AREA MAJOR PERMIT TO ALLOW THE CONSTRUCTION OF A NEW SINGLE-FAMILY DWELLING, GARAGE, DRIVEWAY, LANDSCAPING AND SPRINKLER SYSTEM, AND LĀNAI AREA WITH SWIMMING POOL IN KAHALUʻU, OʻAHU. | 1 | Committee report and Resolution as amended were adopted. |
Citation
@online{rentz2025,
author = {Rentz, Bradley},
title = {Introducing the {New} {hnlcouncilR} {R} {Package}},
date = {2025-03-26},
url = {https://bradleyrentz.com/blog/2025/03/26/hnlcouncilR-intro/},
langid = {en}
}