How Do They Lobby?

Tools: Svelte, SvelteKit, Typescript, Tailwind CSS, Supabase (open-source Firebase alternative), PostgreSQL, Pandas (Python)

How Do They Lobby? is a web portal for searching and visualizing an original dataset of lobbying records soon to be published by the Brown Climate and Development Lab.

This project is exciting because it’s the first comprehensive dataset of lobbying activity in state legislatures, providing a way to systematically analyze the behavior of interest groups. We hope the portal will be used by researchers, policymakers, advocacy groups, and journalists to create more transparency in our government.

The Data

The dataset consists of four main tables stored in a PostgreSQL server hosted on Supabase:

  1. Interest groups/clients. The organizations that lobby bills. Often companies, unions, and non-profit organizations.
  2. Bills. The state legislation which interest groups lobby on.
  3. Positions. A stance taken by an interest group on a given bill.
  4. Lobbying Coalitions. Coalitions of interest groups generated using stochastic block modelling. These coalitions will tend to take similar positions on a similar subset of bills.

Exploring Lobbying Coalitions

A prototype of the graph page, showing the state-wide coalition graph for Wisconsin.

The developer before me implemented interactive coalition graphs to show the (dis)agreement between lobbying coalitions in a given state.

I refactored the app to retrieve the graph data from a REST API created using SvelteKit, rather than from the database directly. I also implemented:

Searching Specific Records

The interactions between the search page, interest group page, and bill page on a site prototype.

I ideated and implemented the site’s search functionality. You can search across the clients (interest groups), bills, and positions table, returning results that link to detailed pages on a given bill/interest group. Highlights include: