Boundary Atlas

Virginia's 4th congressional district (VA-04)

Virginia's 4th congressional district (VA-04) covers parts or all of 15 counties, including Brunswick County, Charles City County, Colonial Heights city, Dinwiddie County, Emporia city and Greensville County, and 89 ZIP codes (59 wholly inside it). Its 2020 population was 787,373. This is the map in force for the November 3, 2026 election.

787,373residents (2020 Census)
15counties
89ZIP codes
271voting precincts

Who represents VA-04

OfficeMemberContact
U.S. Representative (VA-04)Jennifer L. McClellan (D)202-225-6365
U.S. SenatorMark R. Warner (D)202-224-2023 · contact form
U.S. SenatorTim Kaine (D)202-224-4024 · contact form

Officials serving now (members of Congress until January 3, 2027). Sources: Members of Congress: the @unitedstates project, congress-legislators (CC0).

Counties

CountyShare of the county's residents in VA-04
Brunswick County100%
Charles City County100%
Colonial Heights city100%
Dinwiddie County100%
Emporia city100%
Greensville County100%
Hopewell city100%
Petersburg city100%
Prince George County100%
Richmond city100%
Surry County100%
Sussex County100%
Chesterfield County55%
Henrico County45%
Southampton County44%

ZIP codes

Percentages mark ZIPs only partly in VA-04: the share of that ZIP's residents inside it.

Towns

Bacons Castle district, Bermuda district, Blackwater district, Bland district, Boykins and Branchville district, Brandon district, Carsley district, Claremont district, Colonial Heights city, Courthouse district, Dale district, Dendron district, District 1, District 1, District 1, District 2, District 2, District 2, District 3, District 3, District 3, District 4, District 4, District 5, Drewryville district, Emporia city, Henry district, Hopewell city, Meherrin district, Newville district, Petersburg city, Powellton district, Red Oak district, Richmond city, Rives district, Stony Creek district, Sturgeon district, Surry district, Templeton district and Totaro district and others.

Get this in your AI agent

Your agent can draw every precinct in VA-04, or list them with population shares (related_geographies). Add https://boundarymcp.com/mcp to Claude, ChatGPT, Cursor or Codex (free, no key; how), then:

get_boundaries(id="us:congressional_district:5104", children_level="precinct", include_districts=True)