# Washington State Route 20

State Route 20 (SR 20), also known as the North Cascades Highway, is a state highway that traverses the U.S. state of Washington. It is the state's longest highway, traveling 436 miles (702 km) across the northern areas of Washington, from U.S. Route 101 (US 101) at Discovery Bay on the Olympic Peninsula to US 2 near the Idaho state border in Newport. The highway travels across Whidbey Island, North Cascades National Park, the Okanagan Highland, the Kettle River Range, and the Selkirk Mountains. SR 20 connects several major north–south state highways, including Interstate 5 (I-5) in Burlington, US 97 through the Okanogan–Omak area, SR 21 in Republic, and US 395 from Kettle Falls to Colville.
SR 20's path across the Cascades follows one of the oldest state roads in Washington, established in 1896 as a wagon route. The wagon road fell into disuse within a decade, and the state government postponed the construction of a new route across the North Cascades for several decades. The development of the Skagit River Hydroelectric Project spurred boosters to lobby the state for a new route across Washington Pass, which was opened in 1972. SR 20 originally ran from the Mount Vernon area to Okanogan. By 1973, SR 20 was extended over existing state highways in northern Washington, replacing SR 113 and portions of SR 525 and SR 536 near Port Townsend; SR 30 and SR 294 from Tonasket to Tiger; and part of SR 31 from Tiger to Newport.
Although US 12 has a larger east–west extent, SR 20 is the longest highway in Washington at 436.13 miles (701.88 km), only 5.3 miles (8.5 km) longer than US 12. The highway has been called "The Most Beautiful Mountain Highway in the State of Washington."

## Route description

SR 20 begins at a wye junction with US 101 at the southwest end of Discovery Bay on the Olympic Peninsula, just north of the terminus of SR 104. The highway travels northerly through the rural Quimper Peninsula and follows the east shore of Discovery Bay before reaching a junction with SR 19 near Jefferson County International Airport. SR 20 turns north onto the highway and passes Fort Townsend State Park on the southern outskirts of Port Townsend near Glen Cove. Within Port Townsend, the highway travels east through suburban areas as Sims Way and towards the historic downtown as Water Street. To the southwest of Port Townsend's historic district, the route turns southeast into the city ferry terminal. SR 20 continues onto the Port Townsend–Coupeville ferry which travels northeast across the Admiralty Inlet to the Keystone terminal on Whidbey Island. The ferry, operated by Washington State Ferries, takes approximately 30 minutes between terminals and runs year-round.
From the Keystone ferry terminal, located adjacent to Fort Casey State Park, the highway travels east between the shore of Admiralty Bay and Crockett Lake, while making a short diversion to the north. SR 20 turns northwest at an intersection with SR 525, which terminates and is supplanted by SR 20. The highway, designated as part of the Cascade Loop and Whidbey Scenic Isle Way state scenic byways, passes the Naval Outlying Landing Field Coupeville and Rhododendron County Park before taking a turn west towards Coupeville and Ebey's Landing National Historical Reserve. SR 20 passes to the south of downtown Coupeville, with eastbound lanes traveling westward and vice versa, and wraps around the western shore of Penn Cove in a long 180-degree turn that passes Fort Ebey State Park. The highway continues northeast into Oak Harbor, where it travels around the downtown area and heads towards Naval Air Station Whidbey Island. SR 20 makes a wide turn around the base's runway and enters Deception Pass State Park. The highway leaves Whidbey Island on the Deception Pass Bridge, crossing over Deception Pass, Pass Island, and Canoe Pass on its way to Fidalgo Island.
SR 20 continues northeast, passing between Lake Campbell and Similk Bay, to Sharpes Corner, where it is joined by a spur route serving Anacortes. SR 20 turns east and supplants the spur route's divided highway, traveling across the Swinomish Reservation and crossing the Swinomish Channel to the Skagit Valley. The highway follows a branch of the BNSF Railway, serving the Shell and Marathon oil refineries on March's Point, along the south side of Padilla Bay. Near Skagit Regional Airport, it intersects SR 536, which connects to Mount Vernon, and veers northeast along a four-lane expressway. SR 20 enters the city of Burlington, where it intersects I-5 and transitions into a city street and turns north onto Burlington Boulevard. The street crosses the BNSF Railway and turns east onto Avon Avenue, crossing the BNSF mainline and joining the North Cascades Highway. SR 20 continues northeast out of Burlington along a branch of the BNSF Railway and the Skagit River into Sedro-Woolley, where it becomes concurrent with SR 9 while bypassing the city's downtown. The highway travels east along the Skagit River, climbing uphill into the Cascade Mountains and passing the towns of Lyman and Concrete, located below Lake Shannon and Baker Lake. At Rockport, SR 20 intersects the eastern terminus of SR 530, which continues towards Darrington and Arlington.
After passing Marblemount, the highway enters North Cascades National Park and Whatcom County. It heads further northeast through Newhalem, a preserved company town for Seattle City Light, and the narrow Diablo Canyon to the Diablo Dam and Diablo Lake, a reservoir that is colored turquoise blue. The roadway makes a long hairpin turn around the southern arm of the lake, crossing it at a narrow point and passing a scenic viewpoint, and continues northeast to Ross Lake. From Ross Lake, SR 20 follows Ruby Creek and Canyon Creek, heading southeast out of the national park and back into Skagit County. The highway crosses Rainy Pass and briefly joins the Pacific Crest Trail as it travels around Whistler Mountain, climbing up into Chelan County. SR 20 turns north and crosses Washington Pass into Okanogan County, making a hairpin turn and beginning its descent into Eastern Washington.
SR 20 travels northeast along Early Winters Creek and the base of Delancy Ridge towards Mazama, where it meets the Methow River. The highway continues southeast along the north side of the river to Winthrop, an old-west-themed town where SR 20 forms the main street between two river crossings. SR 20 heads south through Twisp to a junction with SR 153, where it leaves the Methow River and turns northeast up Frazer Creek towards Loup Loup Pass and the Loup Loup Ski Bowl. The highway descends into the Okanogan Valley near Malott and continues northeast along the Okanogan River to the city of Okanogan. SR 20 takes a turn south over the Okanogan River to join US 97 and bypass the city, while the highway is superseded by SR 215. The concurrent SR 20 and US 97 continue along the east side of the river through the Colville Indian Reservation, intersecting SR 155 in eastern Omak and SR 215 to the north of another river crossing. The highway travels north through the farming community of Riverside to Tonasket, where SR 20 leaves US 97 and takes a turn east towards the Okanogan Highlands.
It climbs Bonaparte Creek and crosses Wauconda Pass, near Mount Bonaparte and the ghost town of Wauconda, before beginning its descent into Republic. SR 20 enters Republic on 6th Street and turns south onto Clark Avenue, the town's main street, before coming to a junction with SR 21. The highway turns northeast onto the Sherman Pass Scenic Byway, carrying the concurrent SR 20 and SR 21, and follows the Sanpoil River. SR 21 leaves the byway at Sanpoil Lake, while SR 20 travels into the Kettle River Range along O'Brien Creek. The highway dips south into the Colville National Forest and climbs the ridge, crossing Sherman Pass in a series of hairpin turns. The pass, located 5,575 feet (1,699 m) above sea level, is the highest in the state. SR 20 descends along Sherman Creek towards Franklin D. Roosevelt Lake on the Columbia River, which it crosses on a highway concurrent with US 395. The two routes travel east through Kettle Falls, intersecting SR 25, and follow the Colville River upstream to the city of Colville.
At Colville, SR 20 turns east away from US 395 and continues into the southern reaches of the Selkirk Mountains. The highway forms the northern boundary of the Little Pend Oreille National Wildlife Refuge and follows the Little Pend Oreille River north through a series of glacial lakes. After entering Pend Oreille County, SR 20 makes a series of hairpin turns to descend into the Pend Oreille Valley. At an intersection with SR 31 in Tiger, the highway turns south to follow the Pend Oreille River, becoming part of the International Selkirk Loop and Pend Oreille Scenic Byway in the process. SR 20 continues south along the river, joined by the Pend Oreille Valley Railroad, and intersects SR 211 at Usk. Approximately 16 miles (26 km) southeast of Usk, the highway terminates at US 2, just west of the Washington–Idaho state line.

### Names and designations

Portions of SR 20 are known as the North Cascades Highway (originally the North Cross State Highway), which is a designated Washington State Scenic Byway and a National Forest Scenic Byway. The Sherman Pass Scenic Byway begins at Republic, and extends 40 miles (64 km) east across the mountainous Kettle River Range, Colville National Forest, and the Columbia River through Kettle Falls to Sherman Pass.
The highway also forms most of the Washington segment of U.S. Bicycle Route 10, which travels between Anacortes and the Montana state border.

### Annual closure

SR 20 is one of only five State Routes in Washington that have portions closed in the winter (the others being SR 410, SR 123, SR 504, and SR 165). Washington Pass (elev. 5,477 feet or 1,669 meters) and nearby Rainy Pass (elev. 4,875 feet or 1,486 meters) annually receive up to 15 feet (4.6 m) of snow throughout the winter, and are prone to avalanches leaving over 20 feet (6.1 m) of snow on the road.
As of November 2021, the median first open date was April 21. The median final closure date was November 24. During the drought of the winter of 1976/77, the highway was not closed.

## History

What is known today as the North Cascades Highway was originally the corridor used by local Native American tribes as a trading route from Washington's Eastern Plateau country to the Pacific Coast for more than 8,000 years. After the California Gold Rush of 1849, white settlers started to arrive in the North Cascades looking for gold as well as fur-bearing animals. This far north, the settlers needed a clear route through some of the most rugged terrain in Washington Territory.
It wasn't until 1895, however, that funding to explore a possible route through the Cascade Range was appropriated.
After one year of surveying possible routes in the Upper Skagit River region, the State Road Commission concluded in 1896 that the Skagit gorge was not a practical route. Instead, the commission settled upon the Cascade Pass route, several miles south of the Skagit gorge. The Cascade Pass route began to be roughed out in 1897 and shortly afterward, state highway maps showed the road as either State Highway 1 or the Cascade Wagon Road. In the following years, floods on the Cascade River took out most of the work completed on the road and led Washington's first State Highway Commissioner to report in 1905 that almost all the money appropriated for the road had been wasted. After these unsuccessful attempts to build a northern cross-mountain highway, the state designated that a highway be built along the Methow River from Pateros to Hart's Pass, high above Eastern Washington's Methow Valley. This road was completed in 1909.
By 1936, both of Seattle City Light projects, Gorge Dam and Diablo Dam, had been completed and were attracting visitors and families to the area. In 1940, the first stage of the completion of Ross Dam was reached. Because this influx of population and interest in the area once again demonstrated the need for a northern route over the high Cascades, highway promoters began to try to persuade other boosters to finally abandon the idea of the ill-fated Cascade Pass route and instead look to agreeing on a route across Rainy and Washington Pass. In 1953, the North Cascades Highway Association was formed with politicians, lobbyists, and business owners from both sides of the North Cascades taking part. As these boosters pushed Olympia harder to move forward on the highway plan, more and more requests for huge sales of old-growth timber from along the highway corridor came in. These increasing timber requests were used to support the need for a highway.
Finally, in 1958, the State of Washington appropriated funds to build a highway from the Seattle City Light company town of Diablo to Thunder Arm, a southern arm of Diablo Lake. Funds were also allotted to improve access roads on both sides of the North Cascades and construction on this section of the highway began in 1959. The corridor was designated as Primary State Highway 16 (PSH 16) in 1962, replacing several earlier designations that were shared with other highways. Over the next nine years, construction of the road continued along with the signing of the North Cascades National Park bill by President Lyndon B. Johnson in 1968. With this bill, the hope of using the highway as access for high-dollar timber sales was quashed. Nonetheless, businessmen and residents on both sides of the North Cascades were hopeful and supportive of the tourist dollars that would be seen with the opening of the "North-Cross Highway".
The North Cascades Highway officially opened on September 2, 1972, with a procession led over Washington Pass by governor Dan Evans and President Richard M. Nixon's brother Edward. The highway's construction came with conservation measures and upgrades to camping facilities in the then-new North Cascades National Park to handle the expected traffic. During the first weekend, an estimated 8,000 people visited the Washington Pass overlook. The Methow Valley town of Winthrop renovated its buildings into an Old West theme with false-front buildings and boardwalk sidewalks in a bid to attract tourists on the new highway.
In 2023, the Okanagan County section of SR 20 was designated as the Vietnam Veterans Memorial Highway. For several weeks in August 2023, the Newhalem–Rainy Pass section of SR 20 was closed due to the Sourdough Fire and Blue Lake Fire.

### Associated routes

From 1964 until 1973, SR 20 was designated as SR 113 from Discovery Bay to Coupeville. The route had historically been the Port Townsend branch of Primary State Highway 9 (PSH 9 PT) and a branch of Secondary State Highway 1D (SSH 1D) in 1937, during the creation of the Primary and secondary highways. In 1964, these two highways became SR 113, as part of a new numbering system created by the Washington State Legislature and the Washington State Department of Transportation. When SR 20 was extended west from Fredonia in 1973, SR 113 was decommissioned. The Port Townsend–Keystone ferry wasn't technically part of SR 20 until 1994 when all of the Washington State Ferries routes were added to the state highway system.
From Coupeville to Sharpes Corner (just outside Anacortes), the modern SR 20 was designated SR 525, and prior to 1964 as SSH 1D. When the North Cascades Highway was completed, and the SR 20 designation extended Westward, the SR 525 designation was supplanted to Coupeville.
From Mt. Vernon to the Anacortes Ferry Terminal, the modern SR 20 (and SR 20 Spur, west of Sharpes Corner) was designated SR 536, and prior to 1964 as the Anacortes Branch of PSH 1. When the North Cascades Highway was completed, and the SR 20 designation extended westward, the SR 536 designation was supplanted, and the SR 20 Spur designation created to keep the route to the ferry terminal within the highway system.
From 1964 to 1973, the route from Colville to Tiger was designated as SR 294, and the route from Tiger to Newport as SR 31.

## Major intersections

| County | Location | mi | km | Destinations | Notes |
| Jefferson | ​ | 0.00 | 0.00 | US 101 – Quilcene, Olympia, Port Angeles | |
| Jefferson | ​ | 7.79 | 12.54 | SR 19 south – Port Ludlow | |
| Admiralty Inlet | Admiralty Inlet | 12.57 | 20.23 | Port Townsend–Keystone Ferry | Port Townsend–Keystone Ferry |
| Island | ​ | 16.00 | 25.75 | SR 525 south – Mukilteo Ferry | |
| Skagit | Anacortes | 47.45 | 76.36 | SR 20 Spur – Anacortes, San Juan Ferry | |
| Skagit | ​ | 54.07 | 87.02 | Farm to Market Road, Best Road | Former SR 237 |
| Skagit | ​ | 54.62 | 87.90 | SR 536 east – Mount Vernon | No access from SR 20 west to SR 536 east |
| Skagit | Burlington | 59.10 | 95.11 | I-5 – Vancouver, BC, Seattle | I-5 exit 230. |
| Skagit | Sedro-Woolley | 64.37 | 103.59 | SR 9 south – Arlington | West end of SR 9 overlap |
| Skagit | Sedro-Woolley | 65.64 | 105.64 | SR 9 north (Township Street) – Sumas | East end of SR 9 overlap |
| Skagit | Rockport | 97.21 | 156.44 | SR 530 west – Darrington, Arlington | |
| Whatcom | No major junctions | No major junctions | No major junctions | No major junctions | No major junctions |
| Skagit | No major junctions | No major junctions | No major junctions | No major junctions | No major junctions |
| Chelan | No major junctions | No major junctions | No major junctions | No major junctions | No major junctions |
| Okanogan | ​ | 203.48 | 327.47 | SR 153 south – Chelan, Wenatchee | |
| Okanogan | ​ | 229.99 | 370.13 | Old 97 (SR 213) – Malott, Brewster | |
| Okanogan | Okanogan | 232.20 | 373.69 | SR 215 north / US 97 Bus. north – Okanogan, Omak | West end of US 97 Bus. overlap |
| Okanogan | ​ | 232.70 | 374.49 | US 97 south – Wenatchee | East end of US 97 Bus. overlap; west end of US 97 overlap |
| Okanogan | Omak | 237.76 | 382.64 | SR 155 south – Omak, Grand Coulee Dam | |
| Okanogan | ​ | 238.84 | 384.38 | SR 215 south / US 97 Bus. – Omak | |
| Okanogan | Tonasket | 261.34 | 420.59 | US 97 north (Whitcomb Avenue) – Oroville | East end of US 97 overlap |
| Ferry | Republic | 302.03 | 486.07 | SR 21 south (Clark Avenue) – Keller, Wilbur | West end of SR 21 overlap |
| Ferry | ​ | 304.59 | 490.19 | SR 21 north – Curlew, Grand Forks, BC | East end of SR 21 overlap |
| Ferry | ​ | 341.43 | 549.48 | US 395 north – Laurier, Grand Forks, BC | West end of US 395 overlap |
| Stevens | Kettle Falls | 344.18 | 553.90 | SR 25 – Northport, Trail, BC, Davenport | |
| Stevens | Colville | 353.68 | 569.19 | US 395 south (Main Street) – Spokane | East end of US 395 overlap |
| Pend Oreille | ​ | 389.66 | 627.10 | SR 31 north – Ione, Border Crossing | |
| Pend Oreille | ​ | 420.70 | 677.05 | SR 211 south – Spokane | |
| Pend Oreille | Newport | 436.13 | 701.88 | US 2 – Sandpoint, Spokane | |
| 1.000 mi = 1.609 km; 1.000 km = 0.621 mi Concurrency terminus Incomplete access ||||||

## Spur and business routes
### SR 20 Spur

State Route 20 Spur (SR 20 Spur, also State Route 20 North and the Paul Luvera Sr. Memorial Highway) is a 7.78-mile (12.52 km) spur route of State Route 20 in the U.S. state of Washington. The highway travels north from SR 20 to the Anacortes Ferry Terminal, entirely within the city of Anacortes in Skagit County, except the ferry portion, which travels within San Juan County. The roadway was established in 1937 as the western segment of the Anacortes branch of Primary State Highway 1, which became SR 536 in 1964 and renumbered to SR 20 Spur and SR 20 in 1973. In 1994, SR 20 was extended along the San Juan Islands ferry, which serves Lopez Island, Shaw Island, Orcas Island and San Juan Island.
State Route 20 Spur (SR 20 Spur) begins at an intersection with State Route 20 southeast of downtown Anacortes at the southern end of Fidalgo Bay at the Sharpes Corner Roundabout. From the terminus, the roadway travels northwest and later west near the bay. The route turns northward at a round about, one block west of R Ave, to become Commercial Avenue heading toward downtown Anacortes. The street travels through downtown Anacortes before turning west to become 12th Street and later goes southwest along the waterfront as Oakes Avenue to an intersection with Sunset Avenue after passing Anacortes Airport. At Sunset Avenue, SR 20 Spur becomes Ferry Terminal Road and curves north to the Anacortes Ferry Terminal in Ship Harbor. The roadway after the intersection with SR 20 had a daily average of 23,000 motorists in 2007.
SR 20 Spur was established in 1937 as the Anacortes branch of Primary State Highway 1 (PSH 1 AN), which ran from the Anacortes ferry terminal to PSH 1 in Mount Vernon, using the current highway along with State Highway 20 and SR 536. The route intersected Secondary State Highway 1D (SSH 1D, now SR 20) in Anacortes, SSH 1C (former SR 237) in Fredonia and a SSH 1C branch (became PSH 16, now SR 20). PSH 1 AN was later renumbered during the 1964 highway renumbering to SR 536, SSH 1D became SR 525 and PSH 16 became SR 20. When SR 20 was extended west to Discovery Bay from Fredonia in 1974, SR 536 was shortened and SR 20 Spur was created. The roadway ended at the Anacortes ferry terminal until 1994, when the route was routed onto the San Juan Islands ferry operated by Washington State Ferries.

### SR 20 Business

SR 20 Business was a bannered route through Okanagan and Omak that followed the former route of SR 20 and US 97, while SR 20 bypasses the cities along with US 97 along the East Bank of the Okanogan River. This route has been replaced with SR 215.