Legislative Guide

Author

Nick Warino, SEIU 1021 Research Dept, Nicholas.Warino@seiu1021.org

Published

August 2, 2024

Show the code
# Load Google Sheets Legislative Guide https://docs.google.com/spreadsheets/d/1LRICpXcMz4ASyODYK5EfS_8jQwdAyxD08ctQEAyCVOg/edit?gid=492949833#gid=492949833
legislative_tracker_23_24 <- read_sheet("1LRICpXcMz4ASyODYK5EfS_8jQwdAyxD08ctQEAyCVOg", sheet = "2023-24 Legislative Tracker")
balance_of_power <- read_sheet("1LRICpXcMz4ASyODYK5EfS_8jQwdAyxD08ctQEAyCVOg", sheet = "Balance of Power")

1 Introduction

This guide provides an overview of the policy landscape in California and at the federal level. It includes a calendar of legislative deadlines, balance of power analyses,a tracker of bills being monitored in the 2023-24 CA legislative session, and economic trackers for CA and the US–and through the end of the year, election analysis.

2 Updates to Guide

  • 2024-07-30
    • Created Guide

3 California

3.1 CA Legislative Calendar

Below is every legislative deadline within the past 30 days to the end of the year.

Show the code
# Download cal
ics_file <- "https://www.assembly.ca.gov/media/2106"

# Read the ICS file
calendar <- ical_parse(ics_file)

# Convert calendar list to tibble
calendar_tibble <- as_tibble(calendar) %>%
  select(start, end, summary)  %>%
  arrange(start)

calendar_after_today <- calendar_tibble %>%
  filter(start > Sys.Date()) %>%
  arrange(start)

calendar_start_30_days_before_today <- calendar_tibble %>%
  filter(start > Sys.Date() - 30) %>%
  arrange(start) |> # don't show time for start and end columns, just date
  mutate(start = as.Date(start), end = as.Date(end))

calendar_start_30_days_before_today %>%
  kable(format = "html", escape = FALSE) %>%
  kable_styling("striped", full_width = FALSE) %>%
  column_spec(1, width = "120px") %>%  # Adjust width for start date column
  column_spec(2, width = "120px")      # Adjust width for end date column
start end summary
2024-07-04 2024-07-05 Independence Day.
2024-08-05 2024-08-06 Legislature reconvenes from Summer Recess (J.R. 51(b)(2)).
2024-08-16 2024-08-17 Last day for fiscal committees to meet and report bills (J.R. 61(b)(14)).
2024-08-19 2024-09-01 Floor session only. No committee may meet for any purpose except Rules Committee, bills referred pursuant to Assembly Rule 77.2, and Conference Committees (J.R. 61(b)(15)).
2024-08-23 2024-08-24 Last day to amend bills on the Floor (J.R. 61(b)(16)).
2024-08-31 2024-09-01 Last day for each house to pass bills (Art. IV, Sec 10(c), J.R. 61(b)(17)).
2024-08-31 2024-09-01 Final Recess begins upon adjournment (J.R. 51(b)(3)).
2024-09-30 2024-10-01 Last day for Governor to sign or veto bills passed by the Legislature before Sept. 1 and in the Governor's possession on or after Sept. 1 (Art. IV, Sec. 10(b)(2)).
2024-10-02 2024-10-03 Bills enacted on or before this date take effect January 1, 2025. (Art. IV, Sec. 8(c)).
2024-11-05 2024-11-06 General Election.
2024-11-30 2024-12-01 Adjournment sine die at midnight (Art. IV, Sec. 3(a)).
2024-12-02 2024-12-03 2025-26 Regular Session convenes for Organizational Session at 12 noon. (Art. IV, Sec. 3(a)).
2025-01-01 2025-01-02 Statutes take effect (Art. IV, Sec. 8(c)).

3.2 CA Legislative Balance of Power

Show the code
# Filter balance of power spreadsheet for State column = "CA"
balance_of_power_ca <- balance_of_power %>% filter(State == "CA") %>%
  mutate(`Dem %` = `Dem %` * 100) %>%
  mutate(`Dem %` = round(`Dem %`, 0))

balance_of_power_ca %>%
  select(-Notes, -State) %>%
  mutate(`Dem %` = cell_spec(
    `Dem %`, 
    format = "html",
    color = "white",
    bold = TRUE,
    background = scales::col_numeric(
      palette = c("red", "purple", "blue"),
      domain = c(0, 50, 100)
    )(`Dem %`)
  )) %>%
  kable(format = "html", escape = FALSE) %>%
  kable_styling("striped", full_width = TRUE) |> 
  column_spec(1, width = "160px")
Institution Dem Seats GOP Seats Other Seats Vacant Seats Total Seats Dem % Leader
CA Assembly 62 17 0 1 80 78 Speaker Robert Rivas (D)
CA Senate 32 8 0 0 40 80 President pro Tempore Mike McGuire (D)
CA Governor 1 0 0 0 1 100 Governor Gavin Newsom (D)

3.3 CA Bills Being Tracked in 2023-24 Legislative Session

2023 was an historic year for California, with the passage of several landmark bills. Most notable are SB-525, which established an eventual $25 minimum wage for health care workers and AB-1228, which established sector bargaining for fast food workers (a model that should be spread to other industries).

2024 is a different story. The main reason is the budget situation has reversed dramatically. 2013-2023 was a period of mostly robust economic growth in CA, particular in the tech sector. These trends led to rapidly growing revenues, which allowed for significant investments in public services. Plus, there was a delay for the 2023 tax season, which meant state had to guess even more than usual what 2023 and 2024 revenues would look like–they guessed wrong. The state had to pass the 2024-25 budget with much less revenue than originally assumed, which meant that the dominant policy fight of the year was protecting cuts to public services in the budget. SEIU CA was successful in this fight, but it meant that there was little bandwidth for other policy fights.

All that said:

Below are all bills I’m tracking. It’s a collection of SEIU CA Priority Bills (SEIU = 2); bills that are not priorities, but have been sponsored by SEIU CA (SEIU = 1); and bills that are not priorities, but have been sponsored by SEIU 1021 (SEIU = 0.5). I also include any other bills that pique my interest or have been requested by members.

3.3.1 Passed

Show the code
legislative_tracker_23_24_passed <- legislative_tracker_23_24 %>%
  filter(`Chaptered 
(0-1)` == 1) |> 
  select(1,2,3,19)

# Display as kable with col 2 with background scales::col_numeric 0-2, with 0 being white, 2 being purple.
legislative_tracker_23_24_passed %>%
  mutate(across(2, ~ cell_spec(
    .,
    format = "html",
    color = "black",
    bold = TRUE,
    background = col_numeric(
      palette = c("white", "purple"),
      domain = c(0, 2)
    )(.)
  ))) %>%
    mutate(across(4, ~ cell_spec(
    .,
    format = "html",
    color = "black",
    bold = TRUE,
    background = col_numeric(
      palette = c("purple", "white"),
      domain = c(0, 600)
    )(.)
  ))) %>%
  kable(format = "html", escape = FALSE) %>%
  kable_styling("striped", full_width = TRUE) %>% 
  column_spec(2, width = "120px") |> # add scrollbox for height
  scroll_box(height = "800px")
Bill SEIU (0-2) Summary Days Since Last Action
Budget Act of 2023 (several bills) 2 CA 2023-24 FY Budget 402
SB-525 Minimum wage: health care workers 2 at large health facility employers and dialysis clinics to $23/hour in 2024, $24/hour in 2025, and $25 in 2026. at hospitals with a high governmental-payer mix, rural independent hospitals, and small county facilities, to $18/hour in 2024, and goes up at 3.5% until it reaches $25 in 2033. at community clinics to $21/hour in 2024, $22 in 2026 and $25 in 2027 at other covered health facilities to $21/hour in 2024, $23 in 2026 and $25 by 2028 for health care employment to be not less than twenty-one dollars ($21) per hour for all hours worked in health care employment. Requires, on and after June 1, 2025, the minimum wage for health care employment to be not less than twenty-five dollars ($25) per hour for all hours worked in health care employment. 294
AB-1228 Fast food restaurant industry: Fast Food Council: health, safety, employment, and minimum wage 2 Holds franchisors jointly responsible for violations of the law, including wage theft and other labor law violations.PULLED IN DEAL WITH EMPLOYERS IN EXCHANGE FOR THEM PULLING REFERENDUM ON FAST FOOD WORKERS SECTORAL BARGAINING BILL: "Repeals existing provisions of the FAST Recovery Act, Sections 1470, 1471, 1472, and 1473, revises and recasts these provisions to make several changes to the Act but only if Referendum No. 1939 (Attorney General No. 22-0005) has been withdrawn by its proponents by January 1, 2024." 309
AB-1484 Temporary public employees 2 This bill requires local public employers to include temporary employees, as specified, in the same bargaining unit as permanent employees. 297
AB-421 Elections: referendum measures 2 Requires, for a state referendum that voters be asked to choose between the options "Keep the law" or "Overturn the law" rather than being asked to vote "Yes" or "No." Requires the top campaign funders of an effort to qualify a state referendum to be listed in the state voter information guide. 329
ACA-1 Local government financing: affordable housing and public infrastructure: voter approval 1 This measure, subject to voter approval, would allow a city, county, or special district, with 55% voter approval, to incur bonded indebtedness or impose specified special taxes to fund projects for affordable housing, permanent supportive housing, or public infrastructure, as specified. 317
ACA-13 Voting thresholds 1 The measure, subject to voter approval, imposes two main changes: Initiative measures that seek to amend the California Constitution to increase the voter approval threshold for any state or local measure must themselves meet or exceed that threshold for voter approval. Enshrines in the state constitution the ability of local governing bodies to submit advisory questions to voters, although these questions would be non-binding. 274
SB-567 Termination of tenancy: no-fault just causes: gross rental rate increases 1 Makes revisions to the no-fault just cause eviction provisions of the Tenant Protection Act of 2019 (TPA) and provides additional enforcement mechanisms for violations of restrictions on residential rent increases and no-fault just cause evictions. September amendments removed lowering the rent cap 307
SB-616 Sick days: paid sick days accrual and use 1 This bill (1) increases the three days of paid sick leave currently afforded to employees under existing law to five days, as specified; (2) increases the cap that employers can place on paid sick days from six to 10 days and 48 to 80 hours and increases the number of paid sick days an employee can roll over to the next year from three to five days; (3) and extends procedural and anti-retaliation provisions in existing paid sick leave law to employees covered by a valid collective bargaining agreement that is exempt, if they meet specified criteria, from other provisions of the paid sick leave law. 303
AB-1373 Energy 0 "AB 1373 aims to centralize the procurement of diverse clean energy resources in California through the Department of Water Resources (DWR). This approach is designed to improve efficiency in resource acquisition and to help the state meet its long-term renewable and zero-carbon energy goals. The bill also holds Load-Serving Entities (LSEs) accountable for fulfilling their energy procurement commitments, thereby enhancing reliability." 300
SB-423 Land use: streamlined housing approvals: multifamily housing developments 1 This bill eliminated the sunset of SB-35 from 2017 and does the following: allows DGS to act in the place of a locality or local government for multi family housing, modifies the objective planning standards, requires the Labor Commissioner to enforce the obligation to pay prevailing wages, and provide an alternative definition for "affordable housing costs." 296
AB-594 Labor Code: alternative enforcement 0 This bill significantly expands and clarifies the authority of public prosecutors in California to enforce labor laws until January 1, 2029. The key points are: -Allows public prosecutors to enforce labor laws both civilly and criminally without specific authorization from the Division of Labor Standards Enforcement (DLSE). -Limits this authority to the prosecutor's geographic jurisdiction and excludes certain labor-related acts. -Requires penalties recovered to go to the general fund. -Implements a notice period and gives the DLSE the right to intervene. -Strengthens enforcement mechanisms against employee misclassification. 297
AB-520 Employment: public entities 2 Helps discourage public sector entities from contracting with property service companies who violate labor laws by holding both entities liable for violations. 297
AB-12 Tenancy: security deposits. 1 This bill limits the maximum amount a landlord can demand for a security deposit at one month’s rent, except as provided. Senate Floor Amendments of 9/8/23 delay implementation until July 1, 2024 and provide greater flexibility for smaller landlords, as provided. 296
SB-476 Food safety: food handlers 2 would require food facility employers to pay an employee for any cost associated with the employee obtaining a food handler card, including the time it takes for the employee to complete the training and certification program, and the cost of the food handler certification program. 299
SB-779 Primary Care Clinic Data Modernization Act 2 Through the joint 521, 721, 1021, and UHW clinics’ campaign a legislative package will include a public transparency proposal that focuses on modernizing the Annual Utilization Report (AUR) clinic data to better capture site level information on finances, workforce, and quality. 299
SB-4 Planning and zoning: housing development: higher education institutions and religious institutions 1 " provides a streamlined process for religious organizations and nonprofit colleges to develop affordable housing on their property." CAYIMBY summary 296
AB-5 The Safe and Supportive Schools Act 1 Requires the California Department of Education (CDE) to complete the development of an online training curriculum and online delivery platform by July 1, 2025, and requires local educational agencies (LEAs) to provide and require at least one hour of training annually to all certificated staff, beginning with the 2025-26 school year through the 2029-30 school year, on cultural competency in supporting lesbian, gay, bisexual, transgender, queer, and questioning (LGBTQ+) students. Requires the LEA to maintain documentation on the completion of the training by each employee, as specified. 314
AB-1 Collective bargaining: Legislature 0 Collective bargaining rights for legislative staff 300
SB-770 Health care: unified health care financing (waiver) 0.5 Requires the Secretary of the California Health and Human Services Agency (CHHSA) to research, develop and pursue discussions of a waiver framework in consultation with the federal government with the objective of creating a health care system that incorporates specified features and objectives. Requires the CHHSA Secretary, in developing the waiver framework, to engage stakeholders to provide input on topics related to discussions with the federal government and key system design issues identified by the Healthy California for All Commission (HCFA) for further analysis. Requires the stakeholder engagement to include representatives of consumers, patients and community-based health care services providers and other members. Specifies the key design issues or topics that is part of the stakeholder engagement, including heath care delivery, finance, operations, public administration, and the specifics of the transition to a unified health care financing system (UF) from the current system. "Healthy CA Now" bill (CNA no longer in coalition, but SEIU 1021 Medicare 4 All Committee is, along with many others). CNA opposed this bill, states it's redundent with work already done by HCFA. 300
AB-1633 Housing Accountability Act: disapprovals: California Environmental Quality Act 0 AB 1633 expands the conditions under which a local agency's action can be considered a "disapproval" under the Housing Accountability Act (HAA). Specifically, it includes failing to determine if a project is exempt from California Environmental Quality Act (CEQA) requirements, abuse of discretion, and failing to adopt certain environmental documents. The bill sets specific criteria and timelines for these new categories of disapproval. It also limits the court's ability to award attorney's fees in cases if the local agency acted in good faith. The provisions of this bill will expire on January 1, 2031. 296
SB-684 Land use: streamlined approval processes: development projects of 10 or fewer single-family residential units on urban lots under 5 acres 0 Requires that local governments ministerially approve housing development projects that meet specified conditions and that are located on sites zoned for multifamily housing. Allows for developments that meet these specified conditions to exceed local density limits and zoning standards, including allowing up to 10 units. Additionally, allows the concurrent construction of housing and on-site improvements required for a project of 10 units or less that subdivides an existing parcel. 296
AB-976 – Extend Incentives for Accessory Dwelling Units 0 Makes permanent the existing prohibition on local government's ability to require owner- occupancy on a parcel containing an Accessory Dwelling Unit (ADU). 296
AJR-4 Medicare: ACO REACH Model 0 The resolution, AJR 4, calls on President Biden to immediately terminate the Accountable Care Organization (ACO) Realizing Equity, Access, and Community Health (REACH) Model under the federal Medicare Program. The stated goal is to eliminate corporate profiteering and expand consumer-directed access via Traditional Medicare. The ACO REACH Model is a healthcare scheme under the U.S. Medicare system. It involves groups of healthcare providers who receive a fixed monthly payment to cover certain healthcare needs for seniors. These groups can keep any unspent money as profit. 323
SB-555 Stable Affordable Housing Act of 2023 0 Formerly a major social housing bill. Gutted to "study" social housing on 2023-09-11. On 2023-08-14: "This bill establishes the Stable Affordable Housing Act of 2023 and declares a five-year goal of creating 600,000 units of social housing, and a 10-year goal of creating 1.2 million units of social housing, through a mix of acquisition and new production. The bill also requires the Department of Housing and Community Development (HCD), by January 1, 2025, to develop, adopt, and submit to the Legislature a California Social Housing Plan for achieving those goals." 2023-09-11: "Requires the Department of Housing and Community Development (HCD), no later than December 31, 2026, to develop, adopt, and submit to the Legislature a Social Housing Study for achieving the social housing unit goals set forth in the Act, to include all of the following:" 300

3.3.2 Not Yet Passed

Show the code
legislative_tracker_23_24_not_yet_passed <- legislative_tracker_23_24 %>%
  filter(`Chaptered 
(0-1)` == 0) |> 
  select(1,2,3,19)

legislative_tracker_23_24_not_yet_passed %>%
  mutate(across(2, ~ cell_spec(
    .,
    format = "html",
    color = "black",
    bold = TRUE,
    background = col_numeric(
      palette = c("white", "purple"),
      domain = c(0, 2)
    )(.)
  ))) %>%
    mutate(across(4, ~ cell_spec(
    .,
    format = "html",
    color = "black",
    bold = TRUE,
    background = col_numeric(
      palette = c("purple", "white"),
      domain = c(0, 600)
    )(.)
  ))) %>%
  kable(format = "html", escape = FALSE) %>%
  kable_styling("striped", full_width = TRUE) %>% 
  column_spec(2, width = "120px") |> # add scrollbox for height
  scroll_box(height = "800px")
Bill SEIU (0-2) Summary Days Since Last Action
AB-1672 In-Home Supportive Services Employer-Employee Relations Act 2 IHSS Statewide Sectoral Bargaining Regime: Establishes the In-Home Supportive Services Employer-Employee Relations Act (IHSSEERA) as a method for resolving disputes regarding wages, benefits, and other and terms and conditions of employment between the state and recognized employee organizations representing independent In-Home Support Services (IHSS) providers. 408
AB-1690 Universal health care coverage 0.5 CA Single Payer ("CalCare") CNA-backed "full single payer" bill. "This bill would state the intent of the Legislature to guarantee accessible, affordable, equitable, and high-quality health care for all Californians through a comprehensive universal single-payer health care program that benefits every resident of the state." 183
AB-1359 Paid sick days: health care employees 2 Extended sick leave for health care employees. This bill entitles an employee of a covered health care facility, as defined, to health care worker sick leave of four unpaid sick leave days a year in addition to their existing paid sick day’s entitlement. This bill 1) allows for this sick leave to carry over to subsequent years, as specified; 2) prohibits a covered health care facility from limiting an employee’s use of the leave; and 3) authorizes an employee of a covered health care facility to bring a civil action against an employer that violates these provisions and entitles the employee to collect specified legal and equitable relief to remedy the violation. 326
SB-227 Unemployment: Excluded Workers Program. 1 This bill establishes, until January 1, 2027, upon appropriation by the Legislature, the Excluded Workers Program (EWP) administered by the Employment Development Department (EDD) to provide income assistance to workers ineligible for unemployment insurance (UI) benefits. (i.e. for undocumented immigrants) 352
SB-98 Education finance: additional education funding 1 This bill shifts away from attendance to enrollment. California is one of only a handful of states that provide funding based on attendance, this funding methodology has been proven to have a disproportionate impact on disenfranchised students. By providing more money to schools in need they are able to address absenteeism and provide better services to the populations. 389
SB-50 Vehicles: enforcement 1 Prohibits peace officers from initiating a traffic stop for specified low-level infractions unless a separate, independent basis for a stop exists, or unless multiple infractions are seen. Authorizes local authorities to enforce non-moving or equipment violations through the use of non-sworn government employees. 323
AB-1006 Aging and Disability Resource Connection program: No Wrong Door System 2 In-home respite services are provided to those with developmental disabilities through the regional centers. However, there are barriers to consumers accessing these services and one model in particular, the Financial Management Services (FMS) model, is underutilized. The FMS model gives the consumer the greatest flexibility, control and choice. To address these concerns, the proposal is to create a statewide database for workers and agencies, which will help with access to services and assist our RC coordinators to easily offer the service to the consumer. 336
AB-610 Fast food restaurant industry: Fast Food Council: health, safety, employment, and minimum wage. 2 Fast food Council clean up bill. "This bill would exempt additional restaurants from the definition of “fast food restaurant,” including such restaurants in airports, hotels, event centers, theme parks, museums, and certain other locations, as prescribed. This bill would declare that it is to take effect immediately as an urgency statute." 185
AB-1214 Courts: remote technology 2 Preserve the integrity of evidentiary testimony and official court transcripts for criminal proceedings, and allow remote proceedings when evidentiary testimony is not provided. 393
ACA-4 Elections: eligibility to vote 1 This bill would repeal the current statute prohibiting incarcerated felons the ability to vote and reinstate voting rights for state and local elections. 323
SB-532 San Francisco Bay area toll bridges: tolls: transit operating expenses. 1 Requires the Bay Area Toll Authority (BATA) to increase by $1.50 the toll for each of the seven state-owned toll bridges in the San Francisco Bay Area and continuously appropriates toll revenues to the Metropolitan Transportation Commission (MTC), including revenues from the toll increase for allocation to transit operators in the region that are experiencing a financial shortfall. 345
AB-366 County human services agencies: workforce development 2 "This bill allows local agencies with a 20%+ vacancy rate (30+ consecutive days) in state-funded or federal grant-in-aid programs to streamline hiring until the rate drops below 20% for three consecutive months. It also mandates the CDSS establish the Building Diversity in Human Services Workforce Program to provide education and training grants in the sector." 326
AB-892 Kern County Hospital Authority 2 The 2022 Kern Medical contract fight brought to the public’s attention the clear, relentless governance challenges of the Kern County Hospital Authority. This legislation would make the first significant public accountability reforms to KCHA since its inception. 330
SB-466 Costa-Hawkins Rental Housing Act: rental rates 0 This bill gives local jurisdictions the option to limit the amount that residential landlords can raise the rent each year for housing that is more than 28 years old. Senate Floor Amendments of 5/15/23 follow through with the author’s commitment to narrow the bill. 183
AB-672 Teacher credentialing: Teacher Credentialing Task Force 2 Eliminate overly burdensome and costly assessment required for new teachers in California. The assessment is a relatively new requirement to enter into the field, and has shown to be a signifcant barrier especially for lower income candidates. 394
SB-284 Public utilities: contracting: interconnection transparency and efficiency: wholesale distribution service 0 SB 284 aims to regulate electrical and gas corporations in California in areas like bidding, labor conditions, and transparency. While it has provisions aimed at fair competition and worker protections, the bill is divisive among labor unions. Specifically: Supporters (CA Laborers, Carpenters’, and Engineers’ unions): Argue that the bill removes constraints on Investor-Owned Utilities in their bidding processes. They believe it will grow the union workforce by ensuring that workers come from the state’s training programs. Opponents (IBEW, California State Association of Electrical Workers, California Coalition of Utility Employees): Contend that SB 284 undermines existing collective bargaining agreements by invalidating clauses that require "electrical work" to be performed by contractors signatory to the IBEW. 409
ACA-7 (Jackson) Prop 209 1 "ACA 7 proposes to amend the California Constitution to enable the State to fund programs specifically designed to improve life expectancy, educational outcomes, or reduce poverty for particular groups based on characteristics like race, color, ethnicity, national origin, or marginalized genders and sexual orientations. Subject to Governor's approval, these programs must be research-based or research-informed and culturally specific. The bill comes in the context of California's Proposition 209, which restricts the state from discriminating or granting preferential treatment based on race, sex, color, ethnicity, or national origin. ACA 7 aims to provide more tools to address systemic inequalities in California." 325
AB-93 (Bryan) Warrantless Searches 1 This bill would prohibit a peace officer or law enforcement agency from conducting a warrantless search of a vehicle, person, or their effects, based solely on a person’s consent. This bill helps reduce the likelihood of unfair and discriminatory practices. 428
AB-68 Land use: streamlined housing approvals: density, subdivision, and utility approvals. 0 Streamlined housing approval in dense areas 183
SB-450 Housing development: approvals 0 CA YIMBY bills. "SB 9, passed in 2021, ended single-unit-only zoning and legalized duplexes and lot-splits throughout California. But many cities have found creative ways to effectively ban the housing made possible by SB 9 in their jurisdictions. SB 450 would strengthen SB 9 by clarifying the intent and purpose of the law, and by giving state agencies the authority to enforce its provisions in cities that try to block it." 323
AB-238 California Student Teacher Support Grant Program 0 Creates a grant program, for which LEAs can apply to receive funding to pay student teachers during their 600 hours of required clinical practice. Research suggests that because student teaching is currently unpaid, it is a financial burden and therefore a barrier to individuals entering the teaching profession. 330
SB-1047 Safe and Secure Innovation for Frontier Artificial Intelligence Systems Act 0 aims to regulate the development and use of large-scale AI models in California. The bill focuses on safety by requiring developers to assess potential hazards and implement shutdown capabilities before training powerful AI models, while also supporting AI research and equitable innovation through the creation of the CalCompute cloud computing cluster. 176
AB-919 Residential real property: sale of rental properties: right of first offer. 0 AB 919 addresses the sale of residential rental properties in California by introducing a "right of first offer" mechanism. Under this bill, property owners are required to notify existing tenants and qualified entities (like local public organizations or nonprofits) about their intent to sell the property. Qualified entities have 10 days to express interest and between 40 to 60 days to make an offer. If a qualified entity's offer is rejected, they have another 10 days to match any subsequent offer made by another party. Properties sold to a qualified entity must maintain existing tenancies and cap rents at levels affordable for low and moderate-income families. The bill also introduces compliance certification and penalties for non-compliance, along with a private cause of action for enforcement. Furthermore, the bill mandates that mortgagees or authorized agents must notify tenants and provide a list of qualified entities upon filing a notice of default. 183
SB-312 California Environmental Quality Act: university housing development projects: exemption 0 CA YIMBY. "In 2022, the California State Legislature passed SB 886 (Wiener) to help resolve the extreme shortage of housing available on California university campuses and in their surrounding communities. SB 886 allows streamlined approval for student housing that meets the highest standards of sustainable construction techniques, known in the industry as “Leadership in Energy and Environmental Design” (LEED). SB 312 fixes an error in SB 886 to ensure that projects that qualify for LEED certification receive streamlined approvals prior to their final LEED certification – which can not be granted until construction is complete." 190
SB-252 Public retirement systems: fossil fuels: divestment 0 CalPERS and CalSTERS divestment in fossil fuels 421
SB-1049 Department of Industrial Relations: living wage: report and employer certification program 0 From Michael. ask DIR/LWDA to develop living wage measure 176
ACA-10 Fundamental human right to housing 0 Adds a right to housing to the state Constitution. 422
AB 421 Referendum Reform Expansion 2 NA 45506
SB 989 0 From Michael. freelancers 45506

3.4 CA Economic Trackers

If the effects of policy change cannot be seen in a graph, it’s not a big deal. But which graphs to look at? Below (here and in the federal section) are what I believe are the most important economic indicators to track, at least based on data availability constraints (there are a couple more I’m looking to add as well).

First, let’s consider employment. From 1990 to 2020, California saw steady growth in employment–with two notable dips of the Great Recession of 2008-2011 and the 2020 Pandemic and Economic Crisis. These periods are also when the rate of unemployment spiked the highest. Note: unemployment is currently increasing in CA and has been for two years. This period was also associated with a steady increase in resident population, rising personal income per capita (not adjusted for inflation or equality), and rising household median incomes. Recently those trends have slowed or reversed.

These post-pandemic trends led to the historic drop in state tax revenue this budget cycle, effecting not just this year’s budget, but the previous two ones already passed, and future budgets as well. It was a big deal.

This period also saw a huge spike in prices–the biggest in 40 years. Luckily it has since dropped to more reasonable levels of about 2.8%.

Good news is that CA union density and coverage have increased in recent years. The CA labor movement is the leader in the US labor movement, due to our higher union density within the biggest state. We need to continue to build that power to improve these graphs the lives of working people and the public in CA and everywhere.

Show the code
# https://fred.stlouisfed.org/series/CANA All Employees: Total Nonfarm in California (CANA)
# https://fred.stlouisfed.org/series/CAPOP Resident Population in California (CAPOP)
# https://fred.stlouisfed.org/series/CAUR  Unemployment Rate in California (CAUR)   
# https://fred.stlouisfed.org/series/QTAXTOTALQTAXCAT3CANO  State Tax Collections: Total Taxes for California (QTAXTOTALQTAXCAT3CANO)   
# https://fred.stlouisfed.org/series/CAPCPI Per Capita Personal Income in California (CAPCPI)   
# https://fred.stlouisfed.org/series/MEHOINUSCAA672N  Real Median Household Income in California (MEHOINUSCAA672N)  
# https://fred.stlouisfed.org/series/CUUR0400SA0  Consumer Price Index for All Urban Consumers: All Items in West (CUUR0400SA0) 

# Load necessary libraries
library(tidyverse)
library(lubridate)
library(fredr)

# Fetch and process data (replace with your actual data fetching code)
ca_employees <- fredr::fredr(series_id = "CANA") %>%
  mutate(Year = year(date)) %>%
  filter(!is.na(value))

ca_pop <- fredr::fredr(series_id = "CAPOP") %>%
  mutate(Year = year(date)) %>%
  filter(!is.na(value))

ca_unemployment <- fredr::fredr(series_id = "CAUR") %>%
  mutate(Year = year(date)) %>%
  filter(!is.na(value))

ca_taxes <- fredr::fredr(series_id = "QTAXTOTALQTAXCAT3CANO") %>%
  mutate(Year = year(date)) %>%
  filter(!is.na(value)) %>%
  arrange(date) %>%
  mutate(value_1y = (value + lag(value, 1) + lag(value, 2) + lag(value, 3)) / 4)

ca_personal_income_per_capita <- fredr::fredr(series_id = "CAPCPI") %>%
  mutate(Year = year(date)) %>%
  filter(!is.na(value))

ca_median_income <- fredr::fredr(series_id = "MEHOINUSCAA672N") %>%
  mutate(Year = year(date)) %>%
  filter(!is.na(value))

ca_cpi <- fredr::fredr(series_id = "CUUR0400SA0", units = "pc1") %>%
  mutate(Year = year(date)) %>%
  filter(!is.na(value))


# Combine all data into one dataframe
ca_data <- ca_employees %>%
  select(date, value) %>%
  rename(employees = value) %>%
  full_join(ca_pop %>% select(date, value) %>% rename(population = value), by = "date") %>%
  full_join(ca_unemployment %>% select(date, value) %>% rename(unemployment = value), by = "date") %>%
  full_join(ca_taxes %>% select(date, value_1y) %>% rename(taxes_1y = value_1y), by = "date") %>%
  full_join(ca_personal_income_per_capita %>% select(date, value) %>% rename(personal_income_per_capita = value), by = "date") %>%
  full_join(ca_median_income %>% select(date, value) %>% rename(median_income = value), by = "date") |> 
  full_join(ca_cpi %>% select(date, value) %>% rename(cpi = value), by = "date")


# Divide employees value by thousand, population by thousand, taxes, personal income per capita by thousand, and household income by thousand
ca_data$employees <- ca_data$employees / 1000
ca_data$population <- ca_data$population / 1000
ca_data$taxes_1y <- ca_data$taxes_1y / 1000
ca_data$personal_income_per_capita <- ca_data$personal_income_per_capita / 1000
ca_data$median_income <- ca_data$median_income / 1000


# Reshape the data
ca_data_long <- ca_data %>%
  pivot_longer(cols = -date, 
               names_to = "indicator", 
               values_to = "value") %>%
  filter(!is.na(value))  # Remove NA values

# Filter data to only include since 1990
ca_data_long_post1990 <- ca_data_long %>%
  filter(date >= "1990-01-01")

# Rename indicators for better display
ca_data_long_post1990$indicator <- recode(ca_data_long_post1990$indicator,
                                           "employees" = "All Employees: Total Nonfarm\n(millions)",
                                           "population" = "Resident Population\n(millions)",
                                           "unemployment" = "Unemployment Rate",
                                           "taxes_1y" = "State Tax Collections\n(billions, 1-year average)",
                                           "personal_income_per_capita" = "Personal Income Per Capita\n(thousands, not adjusted for inflation)",
                                           "median_income" = "Household Income, Median\n(thousands, adjusted for inflation)",
                                           "cpi" = "Inflation - Annual Price Change\n (CPI, All Items - Western US)")

# Create the ggplot object
p <- ggplot(ca_data_long_post1990, aes(x = date, y = value)) +
  geom_line() +
  facet_wrap(~ indicator, scales = "free_y", ncol = 2) +
  labs(title = "California Economic Indicators",
       x = "Year",
       y = "Value") +
  My_Theme_WithY()

# Convert to plotly
interactive_plot <- ggplotly(p, tooltip = c("x", "y")) %>%
  layout(
    autosize = TRUE,
    hoverlabel = list(bgcolor = "white", font = list(family = "Avenir Next Condensed", size = 14, color = "black")),
    hovermode = "closest",
    margin = list(t = 100, l = 50, r = 50, b = 50)
  ) %>%
  config(displayModeBar = FALSE, scrollZoom = TRUE, responsive = TRUE)

interactive_plot

3.4.1 CA and US Union Density, 1983-2022

Placeholder Graph of Union Density and Coverage, US and CA, 1983-2022

Placeholder Graph of Union Density and Coverage, US and CA, 1983-2022

4 Federal

4.1 US Balance of Power

Show the code
# Filter balance of power spreadsheet for State column = "US"
balance_of_power_us <- balance_of_power %>% filter(State == "US") %>%
  mutate(`Dem %` = `Dem %` * 100) %>%
  mutate(`Dem %` = round(`Dem %`, 0))

balance_of_power_us %>%
  select(-Notes, -State) %>%  # Remove the Notes column
  mutate(
    Institution = if_else(Institution == "US Senate", "US Senate*", Institution),
    `Dem %` = cell_spec(
      `Dem %`, 
      format = "html",
      color = "white",
      bold = TRUE,
      background = scales::col_numeric(
        palette = c("red", "purple", "blue"),
        domain = c(0, 50, 100)
      )(`Dem %`)
    )
  ) %>%
  kable(format = "html", escape = FALSE) %>%
  kable_styling("striped") %>%
  column_spec(1, width = "160px") %>%  # Adjusted column number due to removal of Notes
  add_footnote(
    "* Three independents caucus with the Democratic Party. Another independent, Sen. Kyrsten Sinema, counts toward the Democratic majority for committee purposes.",
    notation = "none"
  )
Institution Dem Seats GOP Seats Other Seats Vacant Seats Total Seats Dem % Leader
US House 212 220 0 3 435 49 Speaker Mike Johnson (R)
US Senate* 51 49 0 0 100 51 Senate Majority Leader Schumer (D)
US President 1 0 0 0 1 100 President Joe Biden (D)
US Supreme Court 2 7 0 0 9 22 Chief Justice John Roberts (R)
* Three independents caucus with the Democratic Party. Another independent, Sen. Kyrsten Sinema, counts toward the Democratic majority for committee purposes.

4.2 US Policy Updates

4.2.1 Legislature: Gridlock

Substantial policy change remains allusive in the US Congress. This dire situation is due to split partisan power between the two chambers layered on top of web of institutional veto points, combined with a dominant, bi-partisan ideological coalition against major reform. The result is minimal policy progress, except in moments of crisis. Even then, progress remains limited.

As a result, there is currently nothing of note in Congress for the purposes of SEIU COPE and its members. Instead, policy change is happening elsewhere–a bad sign for democracy, the working class, and social progress. Legislatures are the heart of social democracy and ours is failing.

4.2.2 Executive Branch: Action at the margins

Within the executive branch, there are several policy levers that can be pulled to improve the lives of working people. These include most notably the Department of Labor (DOL) and the National Labor Relations Board (NLRB).

The NLRB in particular …[Cemex]

The DOL … [overtime]

4.2.3 The Courts: Anti-Democratic Power Grab

SpaceX (et al) suit that would weaken the NLRB. Link the NLRB Edge article.

Janus.

Legislative and Executive moves to restrain the Courts and bring them under democratic control. Cause of the left and left-liberals since the beginning. Lincoln, FDR, Bernie. Rising support among Dem leaders–Bernie in 2020, most recently Biden. Dobbs decision and the Court’s legitimacy crisis.

4.3 National Economic Trackers

To understand the US economy, you cannot just rely on the right indicators. You have to put them in the right context too. What context? Time and peer nations. That’s what you’ll find below:

4.3.1 Institutions

Show the code
library(OECD)

# Get the latest data
# OECD Collective bargaining coverage: Measure: Employees with the right to bargain. Combined unit of measure: Percentage of employees

# dataset <- "OECD.ELS.SAE,DSD_TUD_CBC@DF_CBC,1.0"
# filter <- "all?startPeriod=1960&dimensionAtObservation=AllDimensions"
# oecd_collective_bargaining <- get_dataset(dataset, filter)

# Load csv

oecd_collective_bargaining <- read_csv("raw_data/OECD.ELS.SAE,DSD_TUD_CBC@DF_CBC,1.0+all.csv")
Show the code
# Tidy data

# Select 6,11, 13 columns

oecd_collective_bargaining_tidy <- oecd_collective_bargaining %>%
  select(6, 11, 13)

# Rename col 1 to Country, Col 2 to Year, and Col 3 to Value
oecd_collective_bargaining_tidy <- oecd_collective_bargaining_tidy %>%
  rename(Country = `Reference area`, Year = `TIME_PERIOD`, Value = `OBS_VALUE`)

# Convert Year to numeric if it's not already
oecd_collective_bargaining_tidy$Year <- as.numeric(oecd_collective_bargaining_tidy$Year)

# Filter to just nordics
nordics_filtered_cb <- oecd_collective_bargaining_tidy %>%
  filter(Country %in% c("Iceland", "Norway", "Sweden", "Denmark", "Finland"))

# Function to get the most recent value for each country up to a given year
get_most_recent_value <- function(df, target_year) {
  df %>%
    filter(Year <= target_year) %>%
    group_by(Country) %>%
    slice_max(Year, n = 1) %>%
    ungroup()
}

# Get the range of years in our dataset
min_year <- min(nordics_filtered_cb$Year)
max_year <- max(nordics_filtered_cb$Year)

# Create the Nordics average
nordics_average <- tibble(Year = min_year:max_year) %>%
  rowwise() %>%
  mutate(
    Value = mean(get_most_recent_value(nordics_filtered_cb, Year)$Value, na.rm = TRUE),
    Country = "Nordics"
  ) %>%
  ungroup()

# Combine with original data
nordics_final <- bind_rows(nordics_filtered_cb, nordics_average) %>%
  arrange(Country, Year)

# Combine with OECD data
oecd_collective_bargaining_tidy <- bind_rows(oecd_collective_bargaining_tidy, nordics_final)
Show the code
library(ggplot2)
library(dplyr)

p <- oecd_collective_bargaining_tidy %>%
  ggplot(aes(x = Year, y = Value, group = Country, 
             color = case_when(
               Country == "United States" ~ "USA",
               Country == "OECD" ~ "OECD",
               Country == "Nordics" ~ "Nordics",
               TRUE ~ "Other"
             ), 
             size = case_when(
               Country == "United States" ~ "Main",
               Country == "OECD" ~ "Main",
               Country == "Nordics" ~ "Main",
               TRUE ~ "Other"
             ),
             text = paste(Country, Year, "-", round(Value,digits=0)))) +
  geom_line() +
  scale_color_manual(values = c("Other" = "grey", "USA" = "red", "OECD" = "black", "Nordics" = "blue"),
                     breaks = c("USA", "OECD", "Nordics"),
                     name = "Country") +
  scale_size_manual(values = c("Other" = 0.5, "Main" = 1.5),
                    breaks = c("Main", "Other"),
                    name = "Country") +
  labs(
    title = "Collective Bargaining Coverage, 1960-2021",
    subtitle = "Percentage of Employees with the Right to Bargain",
    x = "Year",
    y = "Percentage of Employees",
    caption = "Source: OECD"
  ) +
  My_Theme_WithY() +
  theme(
    legend.position = "none"  # Remove the legend
  ) +
  scale_x_continuous(breaks = seq(1960, 2020, by = 10)) +
  scale_y_continuous(limits = c(0, 100)) +
  guides(size = "none") +
  # Add text labels at the end of each line with adjusted font sizes
  geom_text(data = . %>% 
              group_by(Country) %>% 
              filter(Year == max(Year)),
            aes(label = Country, x = Year + 1, 
                color = case_when(
                  Country == "United States" ~ "USA",
                  Country == "OECD" ~ "OECD",
                  Country == "Nordics" ~ "Nordics",
                  TRUE ~ "Other"
                )),
            hjust = .5, vjust = -.2, show.legend = FALSE,
            size = 4, family="Avenir Next Condensed", fontface = "bold") 

p

Show the code
# # Convert to plotly
# plotly_graph <- ggplotly(p, tooltip = "text") %>%
#   layout(
#     title = list(
#       text = paste0(
#         "Collective Bargaining Coverage, 1960-2021",
#         "<br>",
#         "<sup>",
#         "Percentage of Employees with the Right to Bargain",
#         "</sup>"
#       )
#     ),
#     hovermode = "closest",
#     hoverlabel = list(bgcolor = "white"),
#     xaxis = list(title = list(text = "Year")),
#     yaxis = list(title = list(text = "Percentage of Employees")),
#     legend = list(orientation = "h", y = -.15, x = 0.5, xanchor = "center"),
#     annotations = list(
#       list(
#         x = 1,
#         y = -.1,
#         text = "Source: OECD. Created by Nick Warino",
#         showarrow = FALSE,
#         xref = 'paper',
#         yref = 'paper',
#         xanchor = 'right',
#         yanchor = 'auto',
#         xshift = 0,
#         yshift = 0,
#         font = list(size = 16)
#       )
#     )
#   )
# 
# plotly_graph
Show the code
oecd_collective_bargaining_rank_latest <- oecd_collective_bargaining_tidy %>%
  group_by(Country) %>%
  filter(Year == max(Year)) %>%
  ungroup() %>%
  arrange(desc(Value)) %>%
  mutate(Rank = row_number(),
         Color = case_when(
               Country == "United States" ~ "USA",
               Country == "OECD" ~ "OECD",
               Country == "Nordics" ~ "Nordics",
           TRUE ~ "black"
         ))

ggplot(oecd_collective_bargaining_rank_latest, aes(x = reorder(Country, -Rank), y = Value)) +
  geom_segment(aes(xend = Country, yend = 0), color = "gray") +
  geom_point(aes(color = Color), size = 8) +
  geom_text(aes(label = round(Value, 0)), color = "white", size = 4, family="Avenir Next Condensed", ) +
  coord_flip() +
  scale_color_manual(values = c("Other" = "grey", "USA" = "red", "OECD" = "black", "Nordics" = "blue"),
                     breaks = c("USA", "OECD", "Nordics"),
                     name = "Country") +
  My_Theme_WithY() +
  labs(title = "OECD Collective Bargaining Coverage (Latest Available Year)",
       x = "Country",
       y = "Coverage (%)") +
  theme(legend.position = "none")

4.3.2 Outcomes: Equality/Equity

Coming soon.

4.3.3 Outcomes: Productivity

Coming soon.

4.3.4 Outcomes: Inflation

Coming soon.

4.3.5 Outcomes: Happiness

Coming soon.

4.4 2024 Presidential Election Trackers

Below you’ll find three separate ways to predict the upcoming election, and an average of all three.

  1. Betting Market Averages – Their are many degenerate gamblers out there, and they have a lot of money to throw around. This sad fact is helpful for us because in the aggregate, their degeneracy is a good predictor of election outcomes. Fortunately/unfortunately, the US government mostly bans US citizens from betting on elections, so we have to rely on foreign betting markets. These betting market averages come from Election Betting Odds, who aggregate betting odds from multiple sources.

  2. Metaculus Prediction Market – Similar but different from betting markets. No money is at stake, but their is still wisdom in the crowd. Here people are betting their clout, not their cash. So even though less is at stake, many more participate, which has its advantages over current betting markets. This prediction comes from Metaculus.

  3. Nate Silver’s model – Nate has bad pundit brain, but remains among the best at predicting elections. His model is based primarily polling data, along with economic data.

By averaging these three sources, we can get a more accurate prediction of the 2024 election. We don’t have to rely on any one approach, but can instead take the information of all three.

All sources for 2024

5 Sign up for COPE

If you want better contracts, better working conditions, and a bigger, more powerful labor movement, you cannot escape politics. If you want policy makers to be afraid of unions instead of the wealthy, politics is a must. As an individual trying to shape the political process, you are powerless. But as a union, we are strong. To realize that strength, sign up for COPE here.

6 Other

6.1 Shawn Fain from UAW Wants Unions to Align Contracts to May Day 2028

Just in case we need to do a General Strike.

6.2 Resources