
John J. Duncan, Jr.
Last held office: U.S. House, TN-2 (1988–2019). Ran in 21 elections between 1976 and 2016, winning 21.
Last office: U.S. House, TN-2Born 1947
- Last margin
- +51.3
- Won 2016
- Elections
- 21
- 1976–2016
Source: Wikidata, congress-legislators and Open States; 99chambers legislative recordsUpdated Nov 7, 2026, 3:00 PM ET
Career
Offices held, and every time Duncan was on a ballot. Filled marks are general elections won; hollow marks are primaries; an orange outline is a loss.
Source: 99chambers results archive (MEDSL, Klarner, state election offices)
Every race Duncan has run
Margin: how far Duncan finished ahead of (+) or behind (−) the runner-up.
Source: 99chambers results archive
Campaign money, 2015–16
- Raised
- $382.5K
- Spent
- $509.9K
- Cash
- $959.1K
Source: FEC filings through Dec 31, 2016Updated Oct 8, 2026, 10:37 AM ET
Seats Duncan has held
- U.S. House, TN-2 · 1988–2019
Source: 99chambers results archive
Who Duncan has run against
- Stuart Starr (D) · 2016 election, won
- Bob Scott (D) · 2014 election, won
- Troy Christopher Goodale (D) · 2012 election, won
- Dave Hancock (D) · 2010 election, won
- John Greene (D) · 2006 election, won
- Kevin J. Rowland (L) · 2000 election, won
- Robert O. Watson (I) · 1998 election, won
- Stephen Smith (D) · 1996 election, won
Source: 99chambers results archive
How we know Duncan
One person, matched across every source we use.
Source: Identity links: Wikidata, congress-legislators, Open States, FECUpdated Nov 7, 2026, 3:00 PM ET