In 2010, the Supreme Court of the United States’ decision in the Citizens United v. Federal Election Commission case radically reshaped campaign finance and influence, proclaiming that donations to political campaigns are covered by the First Amendment as protected speech and cannot be limited by regulations as a result. This ruling opened the floodgates for unlimited donations on behalf of corporate entities, special interest groups, and the wealthiest individuals in the world, who frequently funnel their financial support through shell companies and Political Action Committees (PACs). In 2024, the New York Times reported that billionaires accounted for 19% of the donations reported to the FEC, and the Brennan Center estimates that a further $1.9 Billion of harder-to-trace, less reported “dark money” made its way into the coffers of candidates that same year. It is unlikely that these donations stem from a feeling of charity, but are a means to exert influence on the electoral outcome, and to ultimately gain returns on their investment. To help trace the interrelationships between donors and recipients, I used the Gephi platform to create a network map to help visualize these connections and provide an additional means of analysis.
The Data
To find the necessary data, I consulted data from the Federal Election Commission (FEC), which provides information regarding the number, quantity, and entities contributing to the campaigns of current candidates. Candidates are required by law to document and submit reports to the FEC regarding donations to their campaign whether from individual donors or Super Political Action Committees (PACs), although the latter is less regulated. Within the “Receipts” portion of the site, researchers can review reports of individual candidates’ campaigns’ financing and download .csvs containing a wide range of information including the category of the donor (“Individual”, “Political Action Committee(PAC)”, “Organization”, etc) as well as the type of election, the locality of the candidate, dates and amounts of the donation, and more.
For my project, I decided to focus upon the United States House of Representatives candidates as those seats are decided every two years, and in 2026, all 435 seats are up for contention. I then elected to narrow my investigation further to provide a more in-depth view of those individuals who receive the most financial support from organizations and PACs. To help identify suitable candidates, I consulted a table created by OpenSecrets, a “research group tracking money in U.S. politics,” which listed the House candidates who received the most money from PACs in pure dollar amount as well as by the percentage of their overall donations. After selecting the top ten recipients of PAC money in quantity and adding a few individuals (Terri Sewell, Brett Guthrie, Sam Graves, and Frank Pallone, Jr.) due to their high percentage of money received from PACs overall, I located the reports from the FEC “Receipts” page regarding the donations they received in 2025-2026 to investigate the money going into their current campaigns.
After reviewing the reports, I ended up with data for eleven House candidates including both Republicans and Democrats. I had to exclude three candidates whose .csv files are so large that I did not have the ability to review and edit them with my existing equipment. Before inputting the data into Gephi for visualization and network mapping, I filtered the reports to only focus upon donations made by PACs or individual organizations, and then cleaned and arranged my data using OpenRefine.
Initial Efforts
For mapping, Gephi requires at least three primary fields/columns to build the network graph. There needs to be a “Source” column, “Target” column, and a column “Type” which specifies whether or not the relationship between the Sources and Targets is directional. I first ingested my data with my Source as the name of organization or PAC, my Target as the name of the House candidate, and then my Type as “Directed” to indicate that there is a directionality to this exchange (campaign contributions going from organizations and PACs to the candidates). After viewing the results and consulting with the professor, I switched the Source and Target values so that the Organizations/PACs are the Sources and the Candidates are the Targets, which grouped the data in a way that better highlighted the connections of the donors to various recipients.

When uploading the data, I ingested the .csv as an Edges file, allowing Gephi to detect and to generate a list of the Nodes as well as to assign them with an identification number. With the Nodes and Edges data created, I was able to view and develop the network graph within the Overview tab. Even though I had elected to only look at eleven candidates, there was a very large number of nodes (2622) and edges (3821), and I decided to go with the “YiFan Hu Proportional” layout which was recommended as being a better option for larger networks.


Once I had established the layout, I ran statistical analyses on the data including a Modularity check as well as Statistical Inference function. These detection tools grouped my data into different classes or clusters which helped to isolate and visualize these different sub-groups among the overall network. Gephi identified ten clusters from the nodes list which conform closely to the number of candidates and their specific donors. I then had Gephi partition my nodes by the modularity class given to them, assigning each of the ten a different color.
As a final refinement for my first version of the graph, I decided to apply labels to the nodes to give viewers an understanding of what is actually being represented. I chose to increase the label-size for the candidates to better identify these individuals. Next, I increased the size of the directional arrows based upon the edge weight to reflect the amount of influence, whether the number of contributions or amount of contributions. To improve the visibility of the more influential donors, I also increased their size according to their edge weight, resulting in larger circular points for the biggest PACs and organizations. The result of all the changes is reproduced below:

Reflection
The resulting graph is successful in a few aspects, including an ability to identify the individual candidates, see the groups in their orbit, and see that there are larger organizations with significant interaction with different candidates. That being said, there is quite a lot of room for improvement. The middle of the network graph is nearly indecipherable apart from the name of House candidate, Mariannette Miller-Meeks. The visual chatter and noise critically undermines the goal of this network graph as there are likely a lot of interesting connections being obscured. When gauging and visualizing influence, it would be very interesting to identify the largest contributors, see the weight of their contributions, and their relationship to multiple candidates from different parties and geographical regions. The unreadability of the directional arrow due to its size (see the incredibly large green arrow pointing to Peter Aguilar as an example) and the inability to read the name of the organization seem like very important failures on the part of this version of the graph.
Future Steps
A critical first step is work to address the legibility issue of the center of the network graph and to figure out how to “break it up.” One suggestion was to change a property of Gephi’s display of the nodes so that they do not overlap. Hopefully this will force the program to restructure the display in such a way that the middle of the graph will be more distinguishable.
Given the large volume of PACs and organizations associated with the candidates in the network map, legibility of their names is difficult which undermines a key goal of the project: identifying the groups providing money and tracing their connection to candidates. Rather than having them all displayed at once, I think that a functionality such as having the ability to hover over or select a node to reveal the label would be a solution to this issue. One recommendation from the professor is that I explore the Sigma plugin which would allow me to export an HTML5 version of my network graph along with added interactivity and display options.
Additional steps that I could take to improve the network graph overall include increasing the modularity within the network to create new associations and larger groups to allow new trends to be revealed. The initial modularity analysis divided the data essentially into the individual candidates with one exception. By changing the clusters so that it groups the candidates who share the most connections, it might further highlight who is influenced by which groups, despite the candidates’ individual differences (party affiliation, geographic location, etc).
In addition to the above changes, I will explore ways to represent the different party affiliations of the candidates within the network graph. This might be achieved by giving the node a uniform color (red for Republicans, blue for Democrats) which is a standard way of representing the parties. As mentioned previously, observing that there are these large corporate entities and special interest groups that are financially supporting these various campaigns says something interesting about the nature of influence and its potential blindness to partisanship.