Pennsylvania 7th District

Bob Brooks (challenger) (D) vs Ryan Mackenzie (incumbent) (R) · messaging analysis as of 2026-10-28

Steady ~5-pt lead; Brooks's own ads now drawing fact-check fire

Why this race matters

78.8%Catalyst Dem win chance ANALYST
Lean D
2.6%Tipping-point share ANALYST
decisive seat for control
Lean DRater consensus SOURCED
4 ratings
91.2%Dem House control ANALYST

Catalyst forecast v2.2, as of 2026-10-30. Tipping-point share = share of simulations in which this race supplies the decisive seat. Rater consensus from published ratings. Methodology and sources.

Where it stands

Risks to the lead

  1. Credibility of Brooks's own ads. One is under legal threat, another is flagged by the ad watch.
  2. "Ducked the debate."
  3. The volume of personal attack ads.

What's working

Top 5 recommendations

  1. Pull or recut the mental-health ad. The PA House roll call shows Mackenzie voted YEA on final passage of SB 365 (Oct 23, 2024), so the ad's claim conflicts with the record.

  2. Recut the energy ad to address the ad watch's context concerns.

  3. Stop the debunk-versus-debunk exchange. Close on economic contrasts using verified votes only.

  4. Use his ex-wife's statement only with her consent, quoted exactly.

  5. Turnout in Lehigh and Northampton. This is a judgment call.

Evidence & sources

Claims table (12 claims) — tap to expand
#ClaimSourceDateStatus
1Model 78.9% / Lean D / D+4.3forecast-meta/site/viz_data.json2026-10-29VERIFIED
2RedBox +4.7 (brief)viz_data shows +5.082026-10-23CORRECTED
3Cease-and-desist: "defamatory and provably false"https://www.inquirer.com/politics/pennsylvania/ryan-mackenzie-bob-brooks-cease-and-desist-20261027.html2026-10-28VERIFIED (snippet)
4Campaign: he voted for the bill in 2024; Brooks stands by the adhttps://www.mcall.com/2026/10/27/ryan-mackenzies-campaign-issues-cease-and-desist-over-bob-brooks-mental-health-bill-campaign-ad-brooks-stands-by-ad-claims/2026-10-27VERIFIED (that each side says this)
5Energy ad "could be misleading"https://www.mcall.com/2026/10/28/ad-watch-anti-ryan-mackenzie-ad-that-blames-him-for-rising-energy-costs-needs-additional-context-could-be-misleading/2026-10-28VERIFIED (headline and snippet)
6Mackenzie's actual vote on the billPA House roll call2024UNVERIFIED
7Tips/overtime ad misleadingMorning Call headline2026-10-27UNVERIFIED
8Brooks pulled out of the debateLehighValleyLive headline2026-10-19UNVERIFIED
9Ex-wife disputes the adArmchair LV headline2026-10-26UNVERIFIED
F-H6PA07188Brooks, Bob (H6PA07188): receipts $5.35M, cash on hand $0.74M (through 2026-10-14); outside spending for $2.61M / against $2.63M. 48-hour notices since 10/15: 7 filings, $0.11M itemized.https://www.fec.gov/data/candidate/H6PA07188/ ; IE: https://api.open.fec.gov/v1/schedules/schedule_e/by_candidate/?candidate_id=H6PA07188&cycle=2026 ; 48h: https://www.fec.gov/data/filings/?committee_id=C00917096&form_type=F6pulled 2026-10-28VERIFIED (FEC API)
F-H8PA15195Mackenzie, Ryan Edward (H8PA15195): receipts $5.30M, cash on hand $1.07M (through 2026-10-14); outside spending for $0.00M / against $0.60M. 48-hour notices since 10/15: 5 filings, $0.09M itemized.https://www.fec.gov/data/candidate/H8PA15195/ ; IE: https://api.open.fec.gov/v1/schedules/schedule_e/by_candidate/?candidate_id=H8PA15195&cycle=2026 ; 48h: https://www.fec.gov/data/filings/?committee_id=C00846501&form_type=F6pulled 2026-10-28VERIFIED (FEC API)
Mackenzie's 2024 PA House vote on first-responder mental-health coveragebill number not identified; legis.state.pa.us roll calls not pulled this pass2026-10-28UNVERIFIED: keep the Brooks ad line off air

Tally: 4 VERIFIED, 1 CORRECTED, 4 UNVERIFIED.

What changed since 10-27

Gaps