Fifty-five towns sit on or near the three Metra lines that run north from the city: the Union Pacific North, the Milwaukee District North and the North Central Service. In the 30 with a station, median home values run from $159,600 in North Chicago to $1,560,300 in Kenilworth, and the busiest stations on the three lines have 35, 27 and 7 weekday trains toward downtown.
Metra’s weekday timetable and the Census Bureau’s 2020–2024 American Community Survey · read October 19, 2026Together the 55 towns hold about a million people. Thirty have a Metra station of their own; the other 25 are towns whose closest Metra station is on one of the three lines. This page lists all of them by line, with the Census figures that start most comparisons, the weekday train service at each station town and a map. It is the fifth of our suburb lists, after the west, northwest, south and southwest suburbs, and it follows the same rule: start from the railroad.
Map of the north suburbs of Chicago
What are the north suburbs of Chicago?
No official map draws the line, so this list uses the railroad: the three Metra lines that run north. The Union Pacific North leaves Ogilvie Transportation Center and follows the lakeshore through Evanston and Waukegan to Kenosha, Wisconsin. The Milwaukee District North leaves Union Station for Glenview, Deerfield, Libertyville and Fox Lake. The North Central Service, also from Union Station, runs through Wheeling, Buffalo Grove and Mundelein to Antioch. A town is on this list if it has a station on one of the three lines north of the city’s northern edge, or if it is an incorporated town in Cook, Lake or McHenry County whose closest Metra station, in a straight line, is one of those stations and no more than 8 miles away.
That rule settles the edges. Park Ridge, Des Plaines, Mount Prospect, Arlington Heights, Lake Zurich and Deer Park are closest to stations on the Union Pacific Northwest, the line our northwest list follows. The North Central Service’s inner stops, River Grove to Rosemont, are west of the city near O’Hare and are not counted here. Lincolnwood is left out because its closest station, Edgebrook, is inside the city, and Kenosha because it is in Wisconsin. Unincorporated places, such as Gages Lake, are left out.
Which towns are on Chicago’s North Shore?
No law draws the North Shore either. In common usage the name means the nine towns along the Union Pacific North from Evanston to Lake Bluff: Evanston, Wilmette, Kenilworth, Winnetka, Glencoe, Highland Park, Highwood, Lake Forest and Lake Bluff. Some uses add inland neighbors such as Glenview, Northbrook and Deerfield. The nine hold 188,687 people. Their median home values run from $481,200 in Evanston to $1,560,300 in Kenilworth, and the middle of the nine is $810,600. Three of the four towns on this list with a median above $1 million are among them: Kenilworth, Glencoe and Winnetka; the fourth is Bannockburn, inland.
List of north suburbs by Metra line
Union Pacific North (UP-N) stations
The UP North runs from Ogilvie Transportation Center along the lake to Kenosha. This section lists twelve towns, nearest downtown first; Lake Forest, which also has a UP North station, is listed with the MD-N.
| Town | Population | Median home value | Median household income | Median rent |
|---|---|---|---|---|
| Evanston | 76,340 | $481,200 | $96,434 | $1,762 |
| Wilmette | 27,503 | $810,600 | $190,662 | $1,978 |
| Kenilworth | 2,503 | $1,560,300 | $250,000+ | — |
| Winnetka | 12,484 | $1,337,800 | $250,000+ | $1,842 |
| Glencoe | 8,701 | $1,432,500 | $248,933 | $2,211* |
| Highland Park | 30,398 | $607,300 | $168,094 | $1,925 |
| Highwood | 5,301 | $405,400* | $107,875 | $1,900 |
| Lake Bluff | 6,041 | $776,700 | $204,000 | $2,063* |
| North Chicago | 30,643 | $159,600 | $60,172 | $1,426 |
| Waukegan | 89,076 | $190,900 | $71,919 | $1,205 |
| Zion | 24,600 | $183,800 | $63,104 | $1,186 |
| Winthrop Harbor | 6,559 | $250,800 | $95,690 | $1,313 |
Milwaukee District North (MD-N) stations
The MD-N runs from Union Station to Fox Lake. This section lists ten towns, nearest downtown first. Lake Forest has a station on both the MD-N and the UP North and is listed here, where its station’s scheduled ride is shorter.
| Town | Population | Median home value | Median household income | Median rent |
|---|---|---|---|---|
| Morton Grove | 24,619 | $389,100 | $111,116 | $2,164 |
| Golf | 518 | $954,700 | $242,772 | — |
| Glenview | 47,752 | $609,600 | $143,056 | $2,148 |
| Northbrook | 34,585 | $652,300 | $157,782 | $2,463 |
| Deerfield | 19,518 | $623,400 | $181,660 | $2,482 |
| Lake Forest | 19,416 | $938,300 | $235,081 | $1,815 |
| Libertyville | 20,525 | $512,000 | $165,667 | $1,637 |
| Grayslake | 20,929 | $309,500 | $113,972 | $1,485 |
| Round Lake | 18,628 | $278,600 | $111,977 | $1,710 |
| Fox Lake | 11,131 | $228,100 | $70,819 | $1,047 |
North Central Service (NCS) stations
The NCS runs from Union Station to Antioch. This section lists eight towns north of the city line, nearest downtown first; Grayslake, which also has an NCS station, is listed with the MD-N, which runs more trains.
| Town | Population | Median home value | Median household income | Median rent |
|---|---|---|---|---|
| Prospect Heights | 15,618 | $346,500 | $85,008 | $1,475 |
| Wheeling | 38,433 | $266,200 | $85,205 | $1,663 |
| Buffalo Grove | 42,891 | $412,300 | $129,395 | $2,037 |
| Vernon Hills | 26,876 | $412,300 | $121,943 | $1,903 |
| Mundelein | 31,915 | $309,700 | $108,340 | $1,566 |
| Round Lake Beach | 27,079 | $199,200 | $86,059 | $1,543 |
| Lake Villa | 8,683 | $351,700 | $118,750 | $1,533 |
| Antioch | 14,859 | $306,700 | $108,899 | $1,129 |
How often do UP North, MD-N and NCS trains run?
Very differently. The UP North has 35 weekday trains toward downtown at Evanston’s Davis Street, Wilmette and Winnetka, 33 at Glencoe and Highland Park, 26 to 30 at its other stations through Waukegan, and 10 at Zion and Winthrop Harbor. The MD-N has 27 at Morton Grove, Glenview, Northbrook and Deerfield, 26 at Lake Forest, 20 at Golf, 19 at Libertyville and 13 to 16 at the far end. The North Central Service has six or seven at every station from Prospect Heights to Antioch.
The table gives Metra’s schedule for one station in each station town, the one with the most weekday trains toward downtown, and the scheduled ride on trains reaching downtown between 6 and 9:30 a.m. The typical ride is the median of those trains; the fastest is the quickest. The shortest typical rides are 30 minutes, from Evanston and Morton Grove; the longest 98, from Antioch. Metra’s full timetables are on its pages for the UP North, MD-N and NCS.
| Town | Station | Weekday trains toward downtown | Typical morning ride | Fastest morning ride |
|---|---|---|---|---|
| Evanston | Evanston (Davis St.) (other stations in town: Central St., Main St.) | 35 | 30 min | 29 min |
| Wilmette | Wilmette | 35 | 36 min | 33 min |
| Kenilworth | Kenilworth | 28 | 38 min | 38 min |
| Winnetka | Winnetka (other stations in town: Hubbard Woods, Indian Hill) | 35 | 42 min | 37 min |
| Glencoe | Glencoe | 33 | 48 min | 41 min |
| Highland Park | Highland Park (other stations in town: Braeside, Ravinia) | 33 | 56 min | 46 min |
| Highwood | Highwood (other stations in town: Fort Sheridan) | 26 | 49 min | 49 min |
| Lake Bluff | Lake Bluff | 26 | 59 min | 59 min |
| North Chicago | Great Lakes (other stations in town: North Chicago) | 26 | 63 min | 63 min |
| Waukegan | Waukegan | 26 | 70 min | 70 min |
| Zion | Zion | 10 | 80 min | 80 min |
| Winthrop Harbor | Winthrop Harbor | 10 | 84 min | 84 min |
| Morton Grove | Morton Grove | 27 | 30 min | 29 min |
| Golf | Golf | 20 | 41 min | 41 min |
| Glenview | Glenview (other stations in town: Glen/N. Glenview) | 27 | 35 min | 34 min |
| Northbrook | Northbrook | 27 | 42 min | 40 min |
| Deerfield | Deerfield (other stations in town: Lake-Cook) | 27 | 48 min | 45 min |
| Lake Forest | Lake Forest (MD-N) (other stations in town: Lake Forest (UP-N)) | 26 | 54 min | 51 min |
| Libertyville | Libertyville | 19 | 63 min | 62 min |
| Grayslake | Grayslake (other stations in town: Washington St (Grayslake)) | 18 | 73 min | 72 min |
| Round Lake | Round Lake | 13 | 78 min | 77 min |
| Fox Lake | Fox Lake (other stations in town: Ingleside) | 16 | 93 min | 88 min |
| Prospect Heights | Prospect Hts | 6 | 52 min | 51 min |
| Wheeling | Wheeling | 7 | 56 min | 49 min |
| Buffalo Grove | Buffalo Grove (other stations in town: Prairie View) | 7 | 61 min | 53 min |
| Vernon Hills | Vernon Hills | 7 | 69 min | 60 min |
| Mundelein | Mundelein | 7 | 75 min | 66 min |
| Round Lake Beach | Round Lake Beach | 7 | 89 min | 81 min |
| Lake Villa | Lake Villa | 7 | 93 min | 85 min |
| Antioch | Antioch | 7 | 98 min | 92 min |
Which towns have no station of their own?
These 25 towns qualify by their closest station. The largest is Skokie (66,219 people), closest to the Morton Grove station, 2.3 miles away; Gurnee (30,510) and Niles (30,064) come next. Distances are straight lines from the Census Bureau’s internal point for each town to the station; a drive is longer.
| Town | Population | Median home value | Median household income | Median rent | Closest Metra station |
|---|---|---|---|---|---|
| Bannockburn | 1,148 | $1,037,200 | $214,000* | — | Deerfield (MD-N), 2.0 mi |
| Beach Park | 14,115 | $245,800 | $85,664 | $1,254 | Zion (UP-N), 3.0 mi |
| Green Oaks | 4,096 | $673,100 | $147,614* | $1,356* | Libertyville (MD-N), 2.4 mi |
| Gurnee | 30,510 | $344,300 | $119,628 | $1,655 | Prairie Crossing (MD-N), 5.3 mi |
| Hainesville | 3,524 | $210,500 | $129,911 | $1,225 | Grayslake (MD-N), 1.5 mi |
| Hawthorn Woods | 9,143 | $619,100 | $219,631 | — | Mundelein (NCS), 4.2 mi |
| Indian Creek | 874 | $450,800 | $164,250 | $3,500+ | Vernon Hills (NCS), 1.1 mi |
| Lincolnshire | 7,980 | $677,700 | $185,580 | $2,858 | Prairie View (NCS), 2.0 mi |
| Lindenhurst | 14,417 | $294,100 | $131,474 | $1,768 | Lake Villa (NCS), 2.7 mi |
| Long Grove | 8,305 | $804,600 | $250,000+ | $3,500+ | Vernon Hills (NCS), 2.8 mi |
| Mettawa | 663 | $871,500 | $181,333 | — | Lake Forest (MD-N), 2.8 mi |
| Niles | 30,064 | $358,700 | $75,274 | $1,336 | Morton Grove (MD-N), 1.4 mi |
| Northfield | 5,487 | $878,300 | $161,500* | $2,083* | Glen/N. Glenview (MD-N), 2.0 mi |
| Old Mill Creek | 143 | $450,000* | $108,333* | $1,688 | Lake Villa (NCS), 5.1 mi |
| Park City | 7,827 | $57,400* | $60,171 | $1,110 | Waukegan (UP-N), 3.3 mi |
| Richmond | 2,622 | $238,600 | $73,029 | $1,220 | Fox Lake (MD-N), 7.9 mi |
| Riverwoods | 4,013 | $800,700 | $249,205 | $1,842 | Deerfield (MD-N), 2.3 mi |
| Round Lake Heights | 2,592 | $216,800 | $78,986 | $1,453 | Long Lake (MD-N), 1.6 mi |
| Round Lake Park | 7,919 | $164,900 | $55,813 | $1,402 | Round Lake (MD-N), 1.2 mi |
| Skokie | 66,219 | $387,200 | $95,337 | $1,552 | Morton Grove (MD-N), 2.3 mi |
| Spring Grove | 5,917 | $398,400 | $134,210 | — | Fox Lake (MD-N), 4.7 mi |
| Third Lake | 1,137 | $361,500 | $150,139 | — | Washington St (Grayslake), 2.2 mi |
| Volo | 6,706 | $319,700 | $160,792 | $2,169 | Long Lake (MD-N), 3.0 mi |
| Wadsworth | 3,686 | $378,900 | $142,738* | $994* | Zion (UP-N), 5.5 mi |
| Wauconda | 14,027 | $278,600 | $111,239 | $1,371 | Round Lake (MD-N), 5.7 mi |
Where are home values lowest and highest?
Among the 30 station towns, the median home value is lowest in North Chicago ($159,600) and highest in Kenilworth ($1,560,300). Counting the towns without a station, the range runs from Park City, where the estimate of $57,400 carries a wide margin, to Kenilworth. The middle value across all 55 towns is $389,100, about twice the $185,000 of the south list.
Does a shorter ride to downtown come with a higher price here? On these lines the two go together. The 11 station towns with a typical morning ride under 50 minutes have a median home value of $652,300; the 19 at 50 minutes or more, $309,500. On the UP North the change is sharp: every station town from Evanston to Lake Bluff has a median above $400,000, and the four past it, North Chicago, Waukegan, Zion and Winthrop Harbor, are between $159,600 and $250,800.
Our reading: the north lines look like the northwest list, where home values fall as the line runs out, and the reverse of the south lines, where the inner towns are the least expensive. On the UP North and the MD-N the inner towns also have the most trains, so a buyer farther out gives up both minutes and service; the NCS runs the same six or seven trains end to end. The tables describe whole towns, though, and a single town can hold very different blocks.
What do renters pay?
Median gross rent, rent plus the utilities a tenant pays, is lowest among the firm estimates in Fox Lake ($1,047). Indian Creek and Long Grove reach the survey’s ceiling, which it reports only as $3,500 or more, and seven towns, Kenilworth among them, have no rent estimate in the Census file. Across the towns with an estimate the middle value is $1,659 a month.
What this list can’t tell you
- On the recordWhich towns have a station on the UP North, MD-N or NCS and, at the station in each town with the most trains, how many weekday trains run toward downtown and the scheduled morning ride. From Metra’s timetable feed.
- On the recordEach town’s population, median home value, household income and rent, as Census five-year estimates.
- Not establishedWhat any one home costs now. The home value is what owners told the survey their homes were worth, pooled over 2020 to 2024, and it trails the market.
- Not establishedWhether trains run on time, or how full they are. The ride times are the timetable’s.
- Not establishedSchools, property taxes or what a particular street is like. None of the sources here measure them.
How we counted
- Stations and lines. Metra’s GTFS schedule feed (schedules.metrarail.com/gtfs), read October 19, 2026: every stop the UP North, MD-N and NCS serve north of the city’s northern edge, placed in its town by the Census Bureau’s geocoder. Stops inside Chicago, the downtown terminals and Kenosha are not counted; a stop on unincorporated land, such as Prairie Crossing, counts as a station but makes no town a station town.
- Train service. Weekday trains whose last stop is Ogilvie Transportation Center (UP North) or Union Station (MD-N and NCS), counted at each station they serve. Morning rides use those arriving downtown from 6:00 to 9:30 a.m. A town with several stations is shown at the one with the most trains, then the shorter ride.
- Which towns. Incorporated cities, towns and villages in Illinois in the Census Bureau’s 2024 gazetteer. A town without a station is included if it lies in Cook, Lake or McHenry County and its closest Metra station on any line, measured from the Census internal point, is one of those suburban stations within 8 miles.
- Census figures. American Community Survey 2020–2024 five-year estimates, tables B01003, B25077, B19013 and B25064, from the Census Bureau’s table-based summary files. An asterisk marks a figure whose margin of error is more than a quarter of the estimate; read those as rough. A dash means the survey published no estimate.
- What we did not do. We did not rank the towns or score them, and nothing here weighs schools, taxes or safety.
Compiled by KCM Desk from Metra’s schedule feed and Census Bureau files read October 19, 2026. Human-guided and edited — about this desk. If you spot an error, corrections come first.
Related Keep Chicagoland Moving coverage
- The Northwest Suburbs of Chicago: 23 Towns Along the UP-NW Corridor, With the Numbers
- The West Suburbs of Chicago: 50 Towns by Train Line, With the Numbers
- The South Suburbs of Chicago: A Map and List of 46 Towns On and Near the Metra Electric and Rock Island Lines, With Train Times, Home Values and Rents
- The Southwest Suburbs of Chicago: A Map and List of 31 Towns On and Near the SouthWest Service and Heritage Corridor, With Train Times, Home Values and Rents
- Chicago Transit, by the Numbers

