General Building Contractors AssociationGovernment Relations & Advocacy Data Engine
Last updated 2026-09-30

Pennsylvania political intelligence

Four sheets built from public filings: who holds office, who funds them, whose money it actually is once you trace it through the PACs, and what they are all voting on. Every figure is derived from primary sources with its method and confidence recorded — open any sheet's Method & limits tab before citing a number externally.

Sheet LT-01

Delegation Map

Every PA House, Senate and executive branch official, mapped by county. Filter by body, party, municipality, 2026 ballot status, leadership post or agency tier.

203
House
50
Senate
30
Executive
67
Counties
Open sheet →
Sheet LT-02

Contributions Index

The summary view. Corporate versus individual split by politician, money by industry, the PAC funding chains, and the full method and limitations record.

$1.093B
Tracked
3.27M
Contributions
2024–26
Filing years
Open sheet →
Sheet LT-03

Contributions Explorer

The complete record. Search any politician or any donor, then walk the network in either direction — who funded them, and who else that donor funds.

1,353
Politicians
356,382
Donors
189,216
Links
Open sheet →
Sheet LT-04

Legislation Index

Every bill and resolution of four Pennsylvania legislative sessions, 2019-2020 through 2025-2026, each clickable through to its record — and linked in both directions to the members who sponsored it. Switch sessions from the header.

20,101
Measures
954
Enacted as Acts
85,449
Sponsor links
2019–26
4 sessions
Open sheet →

Three findings that shape everything else

$37.8M

given by a single individual — Jeffrey Yass — all of it to PACs, routed through a layered network (Students First PAC to Commonwealth Children's Choice Fund to Commonwealth Leaders Fund). Traced pro-rata, $3.87M of it reached candidate committees. Restated 2026-09-29: the earlier $71.25M counted the same dollars at each layer.

25 to 1

the ratio by which building trades union PACs ($23.5M) out-give contractor PACs ($0.93M) in direct contributions to Pennsylvania candidates. Excludes contractor owners giving as individuals. Restated 2026-09-29 from a withdrawn 10 to 1.

85,449

sponsor signatures now resolve to a named member and district across 4,598 measures in four sessions, covering everything that passed a chamber, was vetoed, or was enacted. 1,748 measures touch construction, labor or procurement directly — an eight-year record of who signed what.

Sources

JurisdictionSourceRefresh
PennsylvaniaDept. of State full campaign finance exportPeriodic restatement
PhiladelphiaCity campfin_contributions APINear real time
FederalFEC bulk files, filtered to PAWeekly (Sunday)
OfficeholdersPA General Assembly and pa.gov, cross-verifiedWeekly
LegislationPA General Assembly record, harvested via LegiScanPer session sitting
Prior sessionsSame pipeline, seats corrected to the session being describedOnce, on load

Before citing any figure

Donor classification is derived. No jurisdiction publishes a reliable corporate-versus-individual flag — Pennsylvania has no such field, Philadelphia's is 92% unspecified, and only the FEC's entity code is dependable. Every row carries its method and a confidence score.

Totals use primary rows only. 46% of Philadelphia dollars duplicate a Pennsylvania state row for committees that file in both places. Duplicates are flagged, never deleted.

Donor entities are resolved conservatively. A wrong merge invents an influence claim, so borderline matches go to a review queue. Each name variant is keyed by name plus ZIP or state and employer, so same-named people in different places are kept apart; the 2026-08-04 build collapsed them, the current build does not.

Sponsor coverage on LT-04 is partial by design. Every measure of all four sessions is listed, but full cosponsor rosters are loaded for the measures that passed a chamber, were vetoed, or were enacted. The sheet marks which is which; it does not present partial coverage as complete.

A district does not name the same person in every session. LT-04's historical sessions identify members from the bill records of that session, not from today's roster. The source stamps each sponsor with the seat they hold now, so 20 members who have since changed chamber or been renumbered by the 2022 redistricting are refiled under the seat they actually held - for 2021-2022 and 2019-2020 by matching every sponsor against a per-session roster of who held each seat, cross-checked against election and special-election results. A seat that changed hands mid-session names everyone who sponsored from it. Do not read a historical district as the member who holds it now.

LT-04's two oldest sessions predate the current district map. 2021-2022 and 2019-2020 ran under the pre-2022 legislative map. Those district numbers do not describe the same ground as today's — HD-189 then is not HD-189 now. The sheet therefore withholds county geography and current-occupant labels for those two sessions rather than joining data across incompatible maps. Treat a district number there as a label for a person, not a place.