← All studies · askamerica.ai

Mostly no: the top direct-PAC-giving industries grew about the same as, not clearly better than, industries generally after the 2024 election

Direct PAC (24K) contributions to 2024-cycle winners, mapped to BEA industry value-added growth 2024→2025, vs. the 2023→2024 pre-election year

Did the top-giving industries do better after the 2024 election? Direct PAC (24K) contributions to 2024-cycle winners vs. BEA industry value-added growth, 2024 to 2025 $-weighted growth, top PAC-giving industries (2024->2025) +4.84% -0.15 pts vs. economy-wide Nominal BEA value-added growth, weighted by each industry's direct-PAC dollars to winners Economy-wide value-added growth (2024->2025) +4.99% All 22 BEA industry groups, nominal, national Direct PAC ($) to 2024-cycle winners, by industry 0 5 10 15 20 25 30 Industry $ millions Finance/banking/ins. Healthcare/pharma Manufacturing Tech/telecom/media Real estate Defense/aerospace Agriculture Energy/utilities Transport/logistics Retail/restaurants fec.committee_contributions, transaction_type=24K, cycle 2024, org_type in C/T/L/M/V/W BEA value-added growth by industry, 2024->2025 -2 0 2 4 6 8 10 Industry % growth Finance/banking/ins. Healthcare/pharma Manufacturing Tech/telecom/media Real estate Defense/aerospace* Agriculture Energy/utilities Transport/logistics Retail/restaurants Post-election growth Economy-wide avg econ.industry_gdp (BEA GDP-by-Industry), nominal value added, table_id=1. *Defense/aerospace proxied by aggregate Manufacturing (no… Direct PAC giving is a minority channel of total election money (independent expenditures/Super PACs, which run larger for crypto, oil & gas and others, are excluded). Winners matched via officials.members (119th Congress) + the certified presidential winner, joined to fec.candidates by name/state/district (457 of 535 congressional seats matched, ~85%). AskAmerica · askamerica.ai
SVG

Summary

Using the last completed federal election cycle (2024) and the channel this corpus can actually measure — direct PAC-to-candidate contributions (FEC transaction type 24K) to the candidates who went on to win — the answer is mostly no. Weighting each industry's post-election (2024→2025) BEA value-added growth by how many direct-PAC dollars it gave to winning candidates produces a growth rate of +4.84%, essentially identical to the +4.99% economy-wide average across all 22 BEA industry groups — slightly below it, not above. The three largest corporate/trade givers — finance (+9.54%), healthcare (+7.31%) and tech/telecom/media (+6.42%) — comfortably outgrew the average, but the rest of the top-ten giving industries (manufacturing, real estate, defense/aerospace, agriculture, energy/utilities, transportation, retail) grew at or below the economy-wide rate, several by a wide margin. The single largest giving bloc by dollars, labor unions (18% of traceable industry-PAC money), is not an output sector and has no comparable growth figure at all.

Step 1 — Defining "winning candidates" and "gave the most"

"Last federal election cycle" is taken as the 2024 cycle (2023–2024 fundraising, November 2024 general election). "Winning candidates" was built by joining officials.members (119th Congress, i.e. those seated after the 2024 election) to fec.candidates by state, chamber, district and surname, plus the certified presidential winner (Donald Trump, FEC ID P80001571, from officials.presidential_election_results). This matched 457 of 535 possible House/Senate winners (~85%) plus the president — a real but incomplete population; the corpus carries no direct FEC-to-Congress.gov crosswalk or an explicit "election winner" flag, so this name/geography join is a best-effort proxy and a modest share of true winners (special-election replacements, name-format mismatches) will be missing.

"Gave the most" is scoped to direct PAC contributions (transaction_type=24K in fec.committee_contributions) from committees with a named corporate/trade/labor/membership connected organization (org_type in C/T/L/M/V/W), for the 2024 filing year, to those winners' principal committees. This is a real and defensible measure, but it is a minority channel of total election money: total 24K contributions to these winners came to about $512M, of which only ~$194M could be attributed to a named organization (the rest is leadership-PAC and joint-fundraising-committee transfers between candidates' own committees, which have no industry identity). Independent expenditures and Super PAC money — which is how crypto, oil & gas and several other heavy 2024 spenders moved most of their money — are excluded entirely; a prior run in this harness found that channel dominated by implausible/junk filer rows that would need separate bounding, and time did not allow reconciling both channels for this answer. The industry ranking reported here should be read as 'top direct-PAC givers to 2024 winners,' not 'top total election spenders.'

Step 2 — Which industries gave the most to winners

Labor unions$35.1M18.0%
Finance / banking / insurance$29.2M15.0%
Healthcare / pharma$19.8M10.2%
Manufacturing / industrial$12.9M6.7%
Technology / telecom / media$12.9M6.6%
Real estate / housing$11.5M5.9%
Defense / aerospace$10.7M5.5%
Agriculture$10.3M5.3%
Energy / utilities$8.8M4.5%
Transportation / logistics$7.5M3.8%
Pro-Israel / foreign-policy advocacy (AIPAC, J Street, RJC)$7.1M3.6%
Professional services / legal$5.5M2.8%
Retail / restaurants$5.4M2.8%
Agriculture$10.3M5.3%
Defense / aerospace$10.7M5.5%
Energy / utilities$8.8M4.5%
Finance / banking / insurance$29.2M15.0%
Healthcare / pharma$19.8M10.2%
Labor unions$35.1M18.0%
Manufacturing / industrial$12.9M6.7%
Pro-Israel / foreign-policy advocacy (AIPAC, J Street, RJC)$7.1M3.6%
Professional services / legal$5.5M2.8%
Real estate / housing$11.5M5.9%
Retail / restaurants$5.4M2.8%
Technology / telecom / media$12.9M6.6%
Transportation / logistics$7.5M3.8%
Labor unions$35.1M18.0%
Finance / banking / insurance$29.2M15.0%
Healthcare / pharma$19.8M10.2%
Manufacturing / industrial$12.9M6.7%
Technology / telecom / media$12.9M6.6%
Real estate / housing$11.5M5.9%
Defense / aerospace$10.7M5.5%
Agriculture$10.3M5.3%
Energy / utilities$8.8M4.5%
Transportation / logistics$7.5M3.8%
Pro-Israel / foreign-policy advocacy (AIPAC, J Street, RJC)$7.1M3.6%
Professional services / legal$5.5M2.8%
Retail / restaurants$5.4M2.8%
Labor unions$35.1M18.0%
Finance / banking / insurance$29.2M15.0%
Healthcare / pharma$19.8M10.2%
Manufacturing / industrial$12.9M6.7%
Technology / telecom / media$12.9M6.6%
Real estate / housing$11.5M5.9%
Defense / aerospace$10.7M5.5%
Agriculture$10.3M5.3%
Energy / utilities$8.8M4.5%
Transportation / logistics$7.5M3.8%
Pro-Israel / foreign-policy advocacy (AIPAC, J Street, RJC)$7.1M3.6%
Professional services / legal$5.5M2.8%
Retail / restaurants$5.4M2.8%

Labor unions are the largest single traceable bloc but represent workers, not a production sector with a comparable GDP line, so they are excluded from the growth comparison below. AIPAC/J Street/RJC are excluded as foreign-policy advocacy rather than an economic industry. Among genuine business sectors, finance and healthcare are the clear top two givers.

Step 3 — Did those industries do better afterwards?

"Did better" is operationalized as each sector's nominal BEA value-added growth (econ.industry_gdp, BEA GDP-by-Industry, table_id=1, national annual) from 2024 to 2025 — the full year following the election — compared against the 2023-to-2024 pre-election year and against the 22-industry economy-wide average, a straightforward proxy for sector economic performance. It is a proxy, not a causal test: 2025 growth reflects many forces (the AI investment boom lifting Information/tech, rate cuts lifting Finance, tariff and trade-policy shifts) that have nothing to do with any one company's PAC check, and BEA has no separate line for defense/aerospace (proxied here by aggregate Manufacturing, which likely understates the true defense-contractor picture given post-election defense-budget increases).

Results were mixed rather than uniform. Finance (+9.54%), healthcare (+7.31%) and tech/telecom/media (+6.42%) — which together are about 48% of the traceable industry-PAC dollars to winners — grew faster than the +4.99% economy-wide average. But manufacturing (+0.55%), real estate (+4.59%), the manufacturing-proxied defense/aerospace figure (+0.55%), agriculture (+0.85%), energy/utilities (net −0.61%, dragged down by a −4.92% mining contraction) and transportation (+3.71%) all grew at or below the average. Weighting all ten sectors by their share of PAC dollars gives a blended growth rate of +4.84%, marginally below the +4.99% economy-wide figure — so as a group, the top PAC-giving industries did not outperform industries generally in the year after the election on this measure.

Caveats

Every query behind this report

34 warehouse calls ran in this session, in order. Each is reproducible against the same snapshot.

critique_query — 117 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.party_name, m.district,
         s.state_abbr,
         CASE WHEN m.district IS NULL THEN 'S' ELSE 'H' END AS office
  FROM officials.members m
  JOIN geo.state_ref s ON s.state_name = m.state_name
  WHERE m.congress = 119
)
SELECT * FROM winners LIMIT 5
query — 1 rows — 3853 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.party_name, m.district,
         s.state_abbr,
         CASE WHEN m.district IS NULL THEN 'S' ELSE 'H' END AS office
  FROM officials.members m
  JOIN geo.state_ref s ON s.state_name = m.state_name
  WHERE m.congress = 119
)
SELECT count(*) AS n FROM winners
query — 1 rows — 48 ms
SELECT split_part('SMITH, JOHN', ',', 1) AS x
query — 20 rows — 4059 ms
SELECT DISTINCT district FROM fec.candidates WHERE election_year=2024 AND office='H' LIMIT 20
query — 1 rows — 7112 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.party_name, m.district,
         s.state_abbr,
         (m.district IS NULL) AS is_senate
  FROM officials.members m
  JOIN geo.state_ref s ON s.state_name = m.state_name
  WHERE m.congress = 119
),
cands AS (
  SELECT candidate_id, candidate_name, party, office, state, district, principal_committee_id
  FROM fec.candidates
  WHERE election_year = 2024 AND office IN ('H','S')
)
SELECT count(*) AS n
FROM winners w
JOIN cands c
  ON c.state = w.state_abbr
  AND upper(split_part(c.candidate_name, ',', 1)) = upper(split_part(w.name_last_first, ',', 1))
query — 2 rows — 14992 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.party_name, m.district,
         s.state_abbr,
         (m.district IS NULL) AS is_senate
  FROM officials.members m
  JOIN geo.state_ref s ON s.state_name = m.state_name
  WHERE m.congress = 119
),
cands AS (
  SELECT candidate_id, candidate_name, party, office, state, district, principal_committee_id
  FROM fec.candidates
  WHERE election_year = 2024 AND office IN ('H','S')
),
sen_match AS (
  SELECT w.bioguide_id, w.name_last_first, w.party_name, c.candidate_id, c.candidate_name, c.party, c.principal_committee_id, 'S' AS chamber
  FROM winners w
  JOIN cands c ON w.is_senate AND c.office='S' AND c.state = w.state_abbr
    AND upper(split_part(c.candidate_name, ',', 1)) = upper(split_part(w.name_last_first, ',', 1))
),
house_match AS (
  SELECT w.bioguide_id, w.name_last_first, w.party_name, c.candidate_id, c.candidate_name, c.party, c.principal_committee_id, 'H' AS chamber
  FROM winners w
  JOIN cands c ON NOT w.is_senate AND c.office='H' AND c.state = w.state_abbr
    AND CAST(c.district AS INTEGER) = w.district
    AND upper(split_part(c.candidate_name, ',', 1)) = upper(split_part(w.name_last_first, ',', 1))
)
SELECT chamber, count(*) FROM (SELECT * FROM sen_match UNION ALL SELECT * FROM house_match) t GROUP BY chamber
query — 1 rows — 17147 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.party_name, m.district,
         s.state_abbr,
         (m.district IS NULL) AS is_senate
  FROM officials.members m
  JOIN geo.state_ref s ON s.state_name = m.state_name
  WHERE m.congress = 119
),
cands AS (
  SELECT DISTINCT candidate_id, candidate_name, party, office, state, district, principal_committee_id
  FROM fec.candidates
  WHERE election_year = 2024 AND office IN ('H','S')
),
sen_match AS (
  SELECT DISTINCT c.candidate_id, c.principal_committee_id, c.party
  FROM winners w
  JOIN cands c ON w.is_senate AND c.office='S' AND c.state = w.state_abbr
    AND upper(split_part(c.candidate_name, ',', 1)) = upper(split_part(w.name_last_first, ',', 1))
),
house_match AS (
  SELECT DISTINCT c.candidate_id, c.principal_committee_id, c.party
  FROM winners w
  JOIN cands c ON NOT w.is_senate AND c.office='H' AND c.state = w.state_abbr
    AND CAST(c.district AS INTEGER) = w.district
    AND upper(split_part(c.candidate_name, ',', 1)) = upper(split_part(w.name_last_first, ',', 1))
)
SELECT count(DISTINCT candidate_id) AS n_winner_candidates FROM (SELECT * FROM sen_match UNION ALL SELECT * FROM house_match) t
query — 3 rows — 4141 ms
SELECT candidate_id, candidate_name FROM fec.candidates WHERE election_year=2024 AND office='P' AND candidate_name ILIKE '%TRUMP%'
query — 5 rows — 3092 ms
SELECT other_id, contributor_name, amount, transaction_type, "year" FROM fec.committee_contributions WHERE transaction_type='24K' AND "year"='2024'
query — 1 rows — 15830 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.district, s.state_abbr, (m.district IS NULL) AS is_senate
  FROM officials.members m JOIN geo.state_ref s ON s.state_name = m.state_name WHERE m.congress = 119
),
cands AS (
  SELECT DISTINCT candidate_id, candidate_name, office, state, district FROM fec.candidates
  WHERE election_year = 2024 AND office IN ('H','S')
),
sen_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON w.is_senate AND c.office='S' AND c.state=w.state_abbr
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
house_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON NOT w.is_senate AND c.office='H' AND c.state=w.state_abbr
    AND CAST(c.district AS INTEGER)=w.district
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
winner_ids AS (
  SELECT candidate_id FROM sen_match
  UNION ALL SELECT candidate_id FROM house_match
  UNION ALL SELECT 'P80001571' AS candidate_id
)
SELECT count(DISTINCT candidate_id) AS n FROM winner_ids
query — 40 rows — 29676 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.district, s.state_abbr, (m.district IS NULL) AS is_senate
  FROM officials.members m JOIN geo.state_ref s ON s.state_name = m.state_name WHERE m.congress = 119
),
cands AS (
  SELECT DISTINCT candidate_id, candidate_name, office, state, district FROM fec.candidates
  WHERE election_year = 2024 AND office IN ('H','S')
),
sen_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON w.is_senate AND c.office='S' AND c.state=w.state_abbr
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
house_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON NOT w.is_senate AND c.office='H' AND c.state=w.state_abbr
    AND CAST(c.district AS INTEGER)=w.district
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
winner_ids AS (
  SELECT DISTINCT candidate_id FROM (
    SELECT candidate_id FROM sen_match
    UNION ALL SELECT candidate_id FROM house_match
    UNION ALL SELECT 'P80001571' AS candidate_id
  ) t
),
contribs AS (
  SELECT cc.other_id, cc.amount
  FROM fec.committee_contributions cc
  JOIN winner_ids w ON w.candidate_id = cc.candidate_id
  WHERE cc.transaction_type='24K' AND cc."year"='2024'
)
SELECT COALESCE(cm.connected_org_name,'NONE') AS org, SUM(ct.amount) AS total
FROM contribs ct
LEFT JOIN fec.committees cm ON cm.committee_id = ct.other_id
GROUP BY COALESCE(cm.connected_org_name,'NONE')
ORDER BY total DESC
query — 26142 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.district, s.state_abbr, (m.district IS NULL) AS is_senate
  FROM officials.members m JOIN geo.state_ref s ON s.state_name = m.state_name WHERE m.congress = 119
),
cands AS (
  SELECT DISTINCT candidate_id, candidate_name, office, state, district FROM fec.candidates
  WHERE election_year = 2024 AND office IN ('H','S')
),
sen_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON w.is_senate AND c.office='S' AND c.state=w.state_abbr
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
house_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON NOT w.is_senate AND c.office='H' AND c.state=w.state_abbr
    AND CAST(c.district AS INTEGER)=w.district
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
winner_ids AS (
  SELECT DISTINCT candidate_id FROM (
    SELECT candidate_id FROM sen_match
    UNION ALL SELECT candidate_id FROM house_match
    UNION ALL SELECT 'P80001571' AS candidate_id
  ) t
),
contribs AS (
  SELECT cc.other_id, cc.amount
  FROM fec.committee_contributions cc
  JOIN winner_ids w ON w.candidate_id = cc.candidate_id
  WHERE cc.transaction_type='24K' AND cc."year"='2024'
)
SELECT cm.connected_org_name AS org, cm.org_type, SUM(ct.amount) AS total, COUNT(*) AS n
FROM contribs ct
JOIN fec.committees cm ON cm.committee_id = ct.other_id
WHERE cm.connected_org_name IS NOT NULL AND cm.org_type IN ('C','T','L','M','V','W')
GROUP BY cm.connected_org_name, cm.org_type
ORDER BY total DESC
query — 8 rows — 4238 ms
SELECT DISTINCT org_type FROM fec.committees WHERE connected_org_name IS NOT NULL LIMIT 20
query — 40 rows — 22861 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.district, s.state_abbr, (m.district IS NULL) AS is_senate
  FROM officials.members m JOIN geo.state_ref s ON s.state_name = m.state_name WHERE m.congress = 119
),
cands AS (
  SELECT DISTINCT candidate_id, candidate_name, office, state, district FROM fec.candidates
  WHERE election_year = 2024 AND office IN ('H','S')
),
sen_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON w.is_senate AND c.office='S' AND c.state=w.state_abbr
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
house_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON NOT w.is_senate AND c.office='H' AND c.state=w.state_abbr
    AND CAST(c.district AS INTEGER)=w.district
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
winner_ids AS (
  SELECT DISTINCT candidate_id FROM (
    SELECT candidate_id FROM sen_match
    UNION ALL SELECT candidate_id FROM house_match
    UNION ALL SELECT 'P80001571' AS candidate_id
  ) t
),
contribs AS (
  SELECT cc.other_id, cc.amount
  FROM fec.committee_contributions cc
  JOIN winner_ids w ON w.candidate_id = cc.candidate_id
  WHERE cc.transaction_type='24K' AND cc."year"='2024'
)
SELECT cm.connected_org_name AS org, cm.org_type, SUM(ct.amount) AS total, COUNT(*) AS n
FROM contribs ct
JOIN fec.committees cm ON cm.committee_id = ct.other_id AND cm."year"='2024'
WHERE cm.connected_org_name IS NOT NULL
GROUP BY cm.connected_org_name, cm.org_type
ORDER BY total DESC
query — 23416 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.district, s.state_abbr, (m.district IS NULL) AS is_senate
  FROM officials.members m JOIN geo.state_ref s ON s.state_name = m.state_name WHERE m.congress = 119
),
cands AS (
  SELECT DISTINCT candidate_id, candidate_name, office, state, district FROM fec.candidates
  WHERE election_year = 2024 AND office IN ('H','S')
),
sen_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON w.is_senate AND c.office='S' AND c.state=w.state_abbr
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
house_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON NOT w.is_senate AND c.office='H' AND c.state=w.state_abbr
    AND CAST(c.district AS INTEGER)=w.district
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
winner_ids AS (
  SELECT DISTINCT candidate_id FROM (
    SELECT candidate_id FROM sen_match
    UNION ALL SELECT candidate_id FROM house_match
    UNION ALL SELECT 'P80001571' AS candidate_id
  ) t
),
contribs AS (
  SELECT cc.other_id, cc.amount
  FROM fec.committee_contributions cc
  JOIN winner_ids w ON w.candidate_id = cc.candidate_id
  WHERE cc.transaction_type='24K' AND cc."year"='2024'
)
SELECT cm.connected_org_name AS org, cm.org_type, SUM(ct.amount) AS total, COUNT(*) AS n
FROM contribs ct
JOIN fec.committees cm ON cm.committee_id = ct.other_id AND cm."year"='2024'
WHERE cm.org_type IN ('C','T','L','M','V','W')
GROUP BY cm.connected_org_name, cm.org_type
ORDER BY total DESC
query — 27057 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.district, s.state_abbr, (m.district IS NULL) AS is_senate
  FROM officials.members m JOIN geo.state_ref s ON s.state_name = m.state_name WHERE m.congress = 119
),
cands AS (
  SELECT DISTINCT candidate_id, candidate_name, office, state, district FROM fec.candidates
  WHERE election_year = 2024 AND office IN ('H','S')
),
sen_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON w.is_senate AND c.office='S' AND c.state=w.state_abbr
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
house_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON NOT w.is_senate AND c.office='H' AND c.state=w.state_abbr
    AND CAST(c.district AS INTEGER)=w.district
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
winner_ids AS (
  SELECT DISTINCT candidate_id FROM (
    SELECT candidate_id FROM sen_match
    UNION ALL SELECT candidate_id FROM house_match
    UNION ALL SELECT 'P80001571' AS candidate_id
  ) t
),
contribs AS (
  SELECT cc.other_id, cc.amount
  FROM fec.committee_contributions cc
  JOIN winner_ids w ON w.candidate_id = cc.candidate_id
  WHERE cc.transaction_type='24K' AND cc."year"='2024'
),
org_lookup AS (
  SELECT committee_id, MAX(connected_org_name) AS connected_org_name, MAX(org_type) AS org_type
  FROM fec.committees
  GROUP BY committee_id
)
SELECT ol.connected_org_name AS org, ol.org_type, SUM(ct.amount) AS total, COUNT(*) AS n
FROM contribs ct
JOIN org_lookup ol ON ol.committee_id = ct.other_id
WHERE ol.org_type IN ('C','T','L','M','V','W')
GROUP BY ol.connected_org_name, ol.org_type
ORDER BY total DESC
query — 9 rows — 4522 ms

SELECT connected_org_name, org_type, count(*) FROM fec.committees
WHERE connected_org_name ILIKE '%REALTOR%'
GROUP BY connected_org_name, org_type
query — 12 rows — 7039 ms

SELECT committee_id, connected_org_name, org_type, "year" FROM fec.committees
WHERE connected_org_name = 'NATIONAL ASSOCIATION OF REALTORS POLITICAL ACTION COMMITTEE'
query — 2285 ms

SELECT candidate_id, amount, "year", transaction_type FROM fec.committee_contributions
WHERE other_id='C00363986' AND transaction_type='24K' AND "year"='2024'
query — 9070 ms

SELECT other_id, count(*), sum(amount) FROM fec.committee_contributions
WHERE other_id IN ('C00363986','C00434696') AND transaction_type='24K'
GROUP BY other_id
query — 2354 ms

SELECT contributor_name, other_id, count(*), sum(amount) FROM fec.committee_contributions
WHERE contributor_name ILIKE '%REALTOR%' AND transaction_type='24K' AND "year"='2024'
GROUP BY contributor_name, other_id
query — 6 rows — 9212 ms

SELECT "year", count(*), sum(amount) FROM fec.committee_contributions
WHERE transaction_type='24K'
GROUP BY "year" ORDER BY "year"
query — 20 rows — 2473 ms
SELECT DISTINCT contributor_name FROM fec.committee_contributions WHERE transaction_type='24K' AND "year"='2024' AND contributor_name ILIKE '%PAC%'
query — 11 rows — 9548 ms
SELECT DISTINCT contributor_name, transaction_type, "year" FROM fec.committee_contributions WHERE contributor_name ILIKE '%REALTOR%'
query — 4680 ms

WITH org_lookup AS (
  SELECT committee_id, MAX(connected_org_name) AS connected_org_name, MAX(org_type) AS org_type
  FROM fec.committees WHERE "year"='2024'
  GROUP BY committee_id
)
SELECT ol.connected_org_name AS org, ol.org_type, SUM(cc.amount) AS total, COUNT(*) AS n
FROM fec.committee_contributions cc
JOIN org_lookup ol ON ol.committee_id = cc.other_id
WHERE cc.transaction_type='24K' AND cc."year"='2024' AND ol.org_type IS NOT NULL
GROUP BY ol.connected_org_name, ol.org_type
ORDER BY total DESC
query — 10 rows — 4529 ms

SELECT cc.other_id, cc.contributor_name, cm.committee_id, cm.committee_name
FROM fec.committee_contributions cc
LEFT JOIN fec.committees cm ON cm.committee_id = cc.other_id AND cm."year"='2024'
WHERE cc.transaction_type='24K' AND cc."year"='2024'
query — 6 rows — 4447 ms

WITH org_lookup AS (
  SELECT committee_id, MAX(connected_org_name) AS connected_org_name, MAX(org_type) AS org_type, MAX(committee_type) AS committee_type, MAX(designation) AS designation
  FROM fec.committees WHERE "year"='2024'
  GROUP BY committee_id
)
SELECT ol.committee_type, ol.designation, SUM(cc.amount) AS total, COUNT(*) AS n
FROM fec.committee_contributions cc
JOIN org_lookup ol ON ol.committee_id = cc.other_id
WHERE cc.transaction_type='24K' AND cc."year"='2024'
GROUP BY ol.committee_type, ol.designation
ORDER BY total DESC
query — 10 rows — 3807 ms

SELECT cc.committee_id AS filer_committee_id, cc.other_id, cc.contributor_name, cc.amount, cc.candidate_id
FROM fec.committee_contributions cc
WHERE cc.transaction_type='24K' AND cc."year"='2024'
query — 5 rows — 2301 ms
SELECT DISTINCT committee_id, committee_name, connected_org_name, org_type, committee_type FROM fec.committees WHERE committee_id IN ('C00777706','C00550392','C00333104','C00325324','C00382150') AND "year"='2024'
query — 60 rows — 26210 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.district, s.state_abbr, (m.district IS NULL) AS is_senate
  FROM officials.members m JOIN geo.state_ref s ON s.state_name = m.state_name WHERE m.congress = 119
),
cands AS (
  SELECT DISTINCT candidate_id, candidate_name, office, state, district FROM fec.candidates
  WHERE election_year = 2024 AND office IN ('H','S')
),
sen_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON w.is_senate AND c.office='S' AND c.state=w.state_abbr
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
house_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON NOT w.is_senate AND c.office='H' AND c.state=w.state_abbr
    AND CAST(c.district AS INTEGER)=w.district
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
winner_ids AS (
  SELECT DISTINCT candidate_id FROM (
    SELECT candidate_id FROM sen_match
    UNION ALL SELECT candidate_id FROM house_match
    UNION ALL SELECT 'P80001571' AS candidate_id
  ) t
),
org_lookup AS (
  SELECT committee_id, MAX(connected_org_name) AS connected_org_name, MAX(org_type) AS org_type, MAX(committee_name) AS committee_name
  FROM fec.committees WHERE "year"='2024'
  GROUP BY committee_id
)
SELECT COALESCE(ol.connected_org_name, ol.committee_name) AS org, ol.org_type, SUM(cc.amount) AS total, COUNT(*) AS n
FROM fec.committee_contributions cc
JOIN winner_ids w ON w.candidate_id = cc.candidate_id
JOIN org_lookup ol ON ol.committee_id = cc.committee_id
WHERE cc.transaction_type='24K' AND cc."year"='2024' AND ol.org_type IN ('C','T','L','M','V','W')
GROUP BY COALESCE(ol.connected_org_name, ol.committee_name), ol.org_type
ORDER BY total DESC
query — 250 rows — 27490 ms

WITH winners AS (
  SELECT m.bioguide_id, m.name_last_first, m.district, s.state_abbr, (m.district IS NULL) AS is_senate
  FROM officials.members m JOIN geo.state_ref s ON s.state_name = m.state_name WHERE m.congress = 119
),
cands AS (
  SELECT DISTINCT candidate_id, candidate_name, office, state, district FROM fec.candidates
  WHERE election_year = 2024 AND office IN ('H','S')
),
sen_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON w.is_senate AND c.office='S' AND c.state=w.state_abbr
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
house_match AS (
  SELECT DISTINCT c.candidate_id FROM winners w JOIN cands c
    ON NOT w.is_senate AND c.office='H' AND c.state=w.state_abbr
    AND CAST(c.district AS INTEGER)=w.district
    AND upper(split_part(c.candidate_name,',',1))=upper(split_part(w.name_last_first,',',1))
),
winner_ids AS (
  SELECT DISTINCT candidate_id FROM (
    SELECT candidate_id FROM sen_match
    UNION ALL SELECT candidate_id FROM house_match
    UNION ALL SELECT 'P80001571' AS candidate_id
  ) t
),
org_lookup AS (
  SELECT committee_id, MAX(connected_org_name) AS connected_org_name, MAX(org_type) AS org_type, MAX(committee_name) AS committee_name
  FROM fec.committees WHERE "year"='2024'
  GROUP BY committee_id
)
SELECT COALESCE(ol.connected_org_name, ol.committee_name) AS org, ol.org_type, SUM(cc.amount) AS total
FROM fec.committee_contributions cc
JOIN winner_ids w ON w.candidate_id = cc.candidate_id
JOIN org_lookup ol ON ol.committee_id = cc.committee_id
WHERE cc.transaction_type='24K' AND cc."year"='2024' AND ol.org_type IN ('C','T','L','M','V','W')
GROUP BY COALESCE(ol.connected_org_name, ol.committee_name), ol.org_type
ORDER BY total DESC
query — 196611 ms
SELECT industry_code, industry_description, "year", value FROM econ.industry_gdp WHERE table_id='1' AND "year" IN ('2023','2024','2025') AND (quarter IS NULL OR quarter = '')
query — 5 rows — 72427 ms
SELECT DISTINCT frequency, quarter FROM econ.industry_gdp WHERE table_id='1' AND "year"='2024'
query — 66 rows — 133706 ms
SELECT industry_code, industry_description, "year", "value" FROM econ.industry_gdp WHERE table_id='1' AND frequency='A' AND "year" IN ('2023','2024','2025') ORDER BY "year", industry_code

Sources

  1. FEC direct PAC contributions (24K) to 2024-cycle winners, by connected organization
    Show tool call
    query(sql="WITH winners AS (...) SELECT COALESCE(connected_org_name, committee_name) AS org, org_type, SUM(amount) AS total FROM fec.committee_contributions JOIN winner_ids ... JOIN fec.committees ... WHERE transaction_type='24K' AND year='2024' GROUP BY org, org_type ORDER BY total DESC")
  2. 119th Congress members (2024 election winners)
    Show tool call
    query(sql="SELECT bioguide_id, name_last_first, party_name, district FROM officials.members WHERE congress=119")
  3. 2024 certified presidential winner
    Show tool call
    query(sql="SELECT candidate_name FROM fec.candidates WHERE election_year=2024 AND office='P' AND candidate_name ILIKE '%TRUMP%'")
  4. BEA GDP by Industry, nominal value added, 2023-2025
    Show tool call
    query(sql="SELECT industry_code, industry_description, year, value FROM econ.industry_gdp WHERE table_id='1' AND frequency='A' AND year IN ('2023','2024','2025')")
  5. AskAmerica recipe: campaign-money-name-the-channel-before-ranking-industries — Warned that direct 24K contributions and independent expenditures are separate, non-additive channels; independent_expenditures raw sums are dominated by implausible filer rows and were not usable within this session's time budget.