< Reveal sidebar

Trip Report – Alaska Airline’s Milk Run Flight 65

A Boeing 737-700 in Wrangell, Alaska (Photo: AirlineGeeks | Joey Gerardi)

Alaska Airlines Milk Run is an AvGeek dream trip, it’s a multi-stop journey along Alaska’s southeast panhandle, flying between mountain passes onboard a Boeing 737-700. Along with United’s Micronesian Island Hopper, this trip is usually at the top of any AvGeek’s bucket list. The airline operates six Milk Run flights a day within the state of Alaska, three southbound and three northbound. The six routes carry the flight numbers AS61, AS62, AS64, AS65, AS66, and AS67.

While each route is unique, they all operate a variety of route variations using the same nine cities; Anchorage, Cordova, Yakutat, Juneau, Sitka, Ketchikan, Wrangell, Petersburg, and Seattle. The start and endpoint of every single Milk Run is either Seattle or Anchorage, Alaska. No matter how many stops the aircraft makes en route, it will carry the same flight number from the start of its trip until it the end. There isn’t any variation in the flight schedules from day to day, so it feels more like a city bus schedule than an airline flight, and the locals certainly treat it as such.

Four of the cities along the Milk Run are part of the Essential Air Service, or EAS, program; Wrangell, Petersburg, Cordova and Yakutat. Due to the timing of all the flight’s on a normal day where all the flights are on time, it is impossible to hit every city along the Milk Run in a single day. I opted to do the northbound sector of Flight 65 from Seattle to Juneau, with stops in Ketchikan, Wrangell and Petersburg along the way. I then stay overnight stay in Alaska’s capital, Juneau, and do the northern sector of Milk Run Flight 61 the next morning.

Even though I stayed overnight to get the most out of my trip, I still didn’t make it to one of the cities along the panhandle. I recommend staying the night in Juneau to try and hit as many stops as you can to make the most out of your trip by doing so, especially if this part of the country is a long way from where you live like it was for me.

Due to the timing of flight 65’s departure from Washington state, I opted to arrive in Seattle the day before so as I didn’t risk missing the flight that was scheduled to leave at 8:30 A.M. As with any flight the route will cost more or less depending on the time of year when you decide to fly on it, I chose to fly on it during the first week of May. The weather could’ve been a lot better, so to anyone that does end up trying the route I recommend doing it in the summer months versus the spring or fall to save a couple of extra bucks. That being said, any day could be cloudy as this part of Alaska has such unpredictable weather, it is just so hard to pick a day where it’s clear at every single stop, but the further into summer you are the more likely it will be clear. Nonetheless, I was still very happy with the way my trip turned out.

Day of the trip

The morning of my flight, I was up nice and early with the excitement of doing a trip I had always wanted to do. I arrived at the airport two hours before the 8:30 A.M. departure time, which ended up helping out as even the TSA PreCheck line was super long at Seattle-Tacoma the morning of my flight.

D5 would be my departure gate out of Seattle for the Milk Run (Photo: AirlineGeeks | Joey Gerardi)

My gate for the first flight would be D5, and while the departure board did primarily show the first stop of Ketchikan, it also showed which cities it continued onto just under it in smaller font. My boarding pass also showed each stop in smaller print as it primarily showed that I was going all the way to Juneau.

My boarding pass for the first day of my Milk Run trip (Photo: AirlineGeeks | Joey Gerardi)

Not knowing how full the flight would be, I selected my seat back when I booked the trip to get a good window seat for the journey, and I opted for 10F, which was printed on my boarding pass. But do beware, due to the ventilation system running up the side of the aircraft on Alaska’s Boeing 737-700’s, some of the ‘window’ seats don’t have windows and instead have just a wall. I contacted Alaska Airlines on Twitter before I booked my trip and they were very informative on which seats were affected by a windowless window seat and even knew the exact seats not to sit in on the different types of aircraft.

40-minutes before departure we boarded the aircraft, just like any Alaska Airlines flight, and I took my seat in 10F. I got lucky as not only did I have a window, but I had two, both of which gave me spectacular views of the wing and engine. Another luck of the draw, I didn’t have any seatmates for any of my four flights up to Juneau, meaning I had two extra seats to stretch out on and put my backpack under.

You know the old saying “everything but the kitchen sink”, well as this flight is the only way into and out of many of the cities, you could see almost anything loaded onto the aircraft, from coolers to a coil of copper wires, and even a full-sized kitchen sink which I did see loaded off at one of our stops.

Items that were loaded onto my aircraft (Photo: AirlineGeeks | Joey Gerardi)

There were only about 51 total passengers on the first leg of this journey up to Ketchikan, although it was impossible to tell which passengers were getting off at each stop. We didn’t push back from the gate until just after 8:40 A.M., and with an 8:30 departure time, it meant that we were leaving a little bit behind schedule. This flight does tend to run behind schedule sometimes according to the Alaska Airlines website, but considering it was the same aircraft taking me all the way to Juneau, I didn’t look at the scheduled arrival and departure times for the rest of this day as there was zero risk of missing a flight.

After push back, we taxied to the runway, just like every other flight at Seattle-Tacoma, and from the outside, we looked just like any other Alaska Airlines flight. But from a passenger standpoint, I knew we were much different than the rest of the planes departing during the rush hour bank.

At 8:47 A.M., 17-minutes past scheduled departure time we blasted off from Seattle-Tacoma’s runway 06L and turned north towards our first stop, Ketchikan, Alaska.

Just after departure from Seattle-Tacoma (Photo: AirlineGeeks | Joey Gerardi)

After departing, it was just like any Alaska Airlines flight, accented up to our cruising altitude of 40,000-Feet and the cabin service began. I would also like to point out that this was the only leg of my Milk Run journey where I received any snack or beverage service, as all of the remaining legs were too short. This was also the only leg where I was able to connect to the inflight Wifi, including the interactive flight map.

The interactive flight map on my phone (Photo: AirlineGeeks | Joey Gerardi)

In the true spirit of an AvGeek, I chatted with the flight attendants about my trip and how I wanted to try to get a picture of me outside at every single stop. Usually, for passengers continuing to the next destination, this is seen as a big no-no as they’d be required to clear security again. While they couldn’t promise anything, they did say they would ask the ground crew at each stop if they could help me out with my endeavor. Ketchikan Airport also has only 2 gates, one with a jetway and one without, so it was a 50% chance I would be able to get my photo in front of the terminal.

The rest of the first leg was uneventful, the cabin service concluded and I settled in to watch some television using the airline’s spotty internet service as we flew over nothing but clouds. This is one of the examples where had the weather been clearer, it would have led to stunning views of the mountains along Canada’s western coastline.

A thick cloud layer at our cruising altitude of 40,000-Feet (Photo: AirlineGeeks | Joey Gerardi)

Roughly 40-minutes before we landed, the crew had the flight attendants take a seat as we were due to have a rather bumpy approach into Ketchikan. Luckily it wasn’t very turbulent at least from my point of view, but we were required to go into a holding pattern while an Alaska Cargo 737-700 was landing at the airport. Due to this hold, our flight time for the first leg ended up being 1-hour and 51-minutes, longer than the average 1-hour 30-minutes that it usually takes for this leg.

The approach into Ketchikan was less than spectacular, rainy, windy, and a thick cloud layer that went down basically to the runway. At this point of the trip, I was afraid that this is all I would see my entire journey, lucky I was proved wrong but that will be shown later.

On final to Ketchikan Airport in Alaska (Photo: AirlineGeeks | Joey Gerardi)

After landing, I held my breath until we parked at the gate waiting to see if I would be able to get my picture with the terminal. Luckily another flight hadn’t left yet the gate with the jetway so we parked at the ground boarding gate. Although since this airport was a bit busier than the rest along the panhandle, they said walking around the ramp wasn’t a good idea, but they did let me stand just outside the main door on the ADA ramp to get some shots of the airport.

Ketchikan Airport (Photo: AirlineGeeks | Joey Gerardi)

Since the stop at each city is roughly an hour and continuing passengers aren’t allowed to get off, I used this time to talk with the flight attendants and pilots about their experiences flying in Alaska and especially along the Milk Run. It turns out this trip isn’t given to new flight attendants or pilots and you will usually find the more experienced ones flying the route, they pick it cause they enjoy it and that usually leads to the same crews working for these flights a lot, and knowing certain passengers by name as well.

In the cockpit of the 737-700 in Ketchikan (Photo: AirlineGeeks | Joey Gerardi)

After a fun 40-minutes of talking with the crew, I was asked to take my seat as the next group of passengers was about to board. Like I said before, this flight is used as a bus service for the locals between the various cities along the panhandle, a local high school baseball team boarded the flight and would ride it for the next two legs up to Petersburg. By now the rain had grown stronger and it was difficult to see out of the windows of the aircraft, but luckily that didn’t stop the crew from performing a smooth takeoff out of Ketchikan, next stop Wrangell with 65 passengers on board.

Departing out of a rainy Ketchikan (Photo: AirlineGeeks | Joey Gerardi)

This flight was uneventful, a quick climb up to 14,000-Feet and no cabin service due to the short duration of the flight. But as the flight progressed there was one thing I began to notice, the clearing of the cloud layer. The closer we came to our next stop during the short 26-minute flight, the more clouds began disappearing.

The clearing cloud layer as we approached Wrangell, Alaska (Photo: AirlineGeeks | Joey Gerardi)

By the time the runway at Wrangell came into view, the clouds had almost completely cleared which was a huge relief to me as up to that point I figured every stop would be rain. The runway in Wrangell is on the shorter side of the spectrum for a jet this sized at 5,999-Feet but the crew had no problem handling it. We began to make a slow turn to the right, and in the distance, I could see the airport as well as the entire community of Wrangell Alaska.

Wrangell Airport and the town of Wrangel in the distance (Photo: AirlineGeeks | Joey Gerardi)

Once the community came into view we began banking to the right for our final approach and descending at the same time, and it began to feel more like the end of a rollercoaster ride than a commercial flight on a jet. It was truly a feeling like none other, landing a jet this sized in a community this small in the middle of nowhere.

Despite having only a 26-minute flight and 82-miles between the two destinations, the difference in weather between Ketchikan and Wrangell was astounding and is just another example of how unique this part of the country really is.

The stunning scenery in Wrangell, Alaska (Photo: AirlineGeeks | Joey Gerardi)

Wrangell is one of the four EAS airports that I would encounter along my trip and they only receive two flights a day, the northbound and the southbound Milk Runs. Another unique fact, unlike at most airports where airlines rent or lease gates from the airport, Alaska Airlines owns the terminal building here in Wrangell which looks more like a shed than an airline terminal. I was also completely off the grid as my cell phone didn’t have any service at Wrangell, there was a local Alaskan cell provider that does have service here, by I wasn’t part of that phone network.

The airport building in Wrangell, Alaska (Photo: AirlineGeeks | Joey Gerardi)

After all the Wrangell bound passengers got off, the flight attendant gestured to me to come up to the front and said they had arranged for one of the ground staff to stay by my side while I got a picture in front of the terminal building here in Wrangell. This was outstanding and I thanked them many times, usually as soon as someone touches the pavement they are required to re-clear security again.

Me, smiling from ear to ear in front of the terminal in Wrangell (Photo: AirlineGeeks | Joey Gerardi)

The weather at this stop was the best out of all my stops on the Milk Run, and the lighting didn’t disappoint either. But all great things must come to an end eventually, and I snapped my last couple shots in Wrangell before heading back onto the aircraft for my shortest leg of the trip.

Getting a few last shots in Wrangell before heading back on the aircraft (Photo: AirlineGeeks | Joey Gerardi)

As the normal boarding announcements were going on I noticed the mail being loaded onto the aircraft. Remember these two daily flights on Alaska Airlines are the only chance to get any items, packages, people, and the U.S. Mail in and out of communities like this. There were 65 passengers on this third leg of the flight to Petersburg.

The U.S. Mail being loaded onto the Milk Run flight (Photo: AirlineGeeks | Joey Gerardi)

This next leg would be the shortest of my multi-flight trip and in fact, the entire leg from Wrangell to Petersburg only lasted 11-Minutes and 19-Seconds from takeoff to touchdown. The flight to Petersburg from Wrangell is the closest you’ll ever get to bush flying in a jet this size, cruising altitude was only 1,500-Feet and we passed through a small mountain pass and got relatively close to nearby terrain as we approached the next airport.

As you’d imagine there isn’t much that could happen on a flight that lasted less than 12-minutes, we took off to the south and turned northbound for the flight as we quickly climbed to 1,500-Feet. It was neat seeing glaciers and the vast wilderness as we flew over. Weird to think that most of the area below the aircraft is uninhabited, and the few people that live in these places are clustered in the small communities we land in. I even made a video for just the Wrangell to Petersburg leg of the trip and will be located at the end of this article. But here is a picture from our close, but not too close encounter with a mountain en-route.

Passing by a mountain en-route from Wrangell to Petersburg (Photo: AirlineGeeks | Joey Gerardi)

I talked to the pilots just before we took off on this leg, and they said that they rarely talk to Air Traffic Control between these two destinations as they are usually low enough where they don’t need to. And unlike most parts of the country, these landings are usually flown entirely by hand versus using autopilot for portions of it.

Just like in Wrangell, Alaska Airlines owns the terminal in Petersburg and it looks nearly identical to the prior as well. These two cities have many similarities as well as the terminal look; Petersburg is also an EAS city, there was no cell service for my cell network here either, and the weather is usually pretty similar being the two communities are only 31-miles apart as the plane flys.

The ‘terminal’ in Petersburg, nearly identical to the building in Wrangell (Photo: AirlineGeeks | Joey Gerardi)

Here in Petersburg, I was again summoned to the forward galley but this time by ground staff. They informed me that someone in Wrangell called ahead and told them I would like to walk around outside for some pictures, again with supervision and an escort. Again I am truly thankful for the warm and welcoming crew on my flights as well as the ground staff in Wrangell and Petersburg. It is truly the luck of the draw with the crews, as not all are accepting and welcoming to pictures or people wanting to walk around between stops.

Our aircraft in Petersburg, Alaska (Photo: AirlineGeeks | Joey Gerardi)

After a fun time exploring the ramp with my ramp guide, it was time to head back inside the aircraft for my final leg of the day. This leg to the Alaskan state capital of Juneau would have 69 passengers on it, and just like the previous two legs, would be too short to have any kind of service.

Entering the runway in Petersburg for my final flight of the day (Photo: AirlineGeeks | Joey Gerardi)

After departure, we quickly climbed to our cruising altitude of 20,000-feet, and a thick cloud layer once again began covering the ground below.

Clouds begin to form as we approach Juneau, Alaska (Photo: AirlineGeeks | Joey Gerardi)

This was another short flight and lasted only 27-minutes from takeoff to touchdown. Another uneventful flight along the Alaska Milk Run, someday I do hope to try it again during the summer months when the cloud cover is hopefully a little less. But nonetheless, the weather was spectacular along the shortest leg between Wrangell and Petersburg which led to some amazing views.

On approach to Juneau International Airport (Photo: AirlineGeeks | Joey Gerardi)

When we landed in Juneau it was again raining, although I did expect it as this part of Alaska is a rainforest climate. Fun fact about landing in Juneau, due to the terrain near the end of the runway, aircraft cannot come straight in and are required to make a slight right turn when they are only 500-feet above the ground when using runway 08.

A map of the path flights must take into Juneau when using Runway 08 (Screenshot: FlightRadar24)

I would like to give a big thanks to the flight attendants for helping me get pictures of myself at each stop of this flight and also giving me the exact passenger load number on each of the flights I was on. Flight number 65 does continue from Juneau nonstop to Anchorage but I didn’t book that flight, I opted for an overnight in Juneau so I could complete the northern sector for the Milk Run the next morning, but flight 61 is for the next article.

The Juneau International Airport (Photo: AirlineGeeks | Joey Gerardi)


Trip Report Video from Alaska Airlines Milk Run Flight 65:

Video of just the Wrangell to Petersburg sector:

Joey Gerardi


  • Joey Gerardi

    Joe has always been interested in planes, for as long as he can remember. He grew up in Central New York during the early 2000s when US Airways Express turboprops ruled the skies. Being from a non-aviation family made it harder for him to be around planes and would only spend about three hours a month at the airport. He was so excited when he could drive by himself and the first thing he did with the license was get ice cream and go plane spotting for the entire day. When he has the time (and money) he likes to take spotting trips to any location worth a visit. He’s currently enrolled at Western Michigan University earning a degree in Aviation Management and Operations.

    View all posts

Subscribe to AirlineGeeks' Daily Check-In

Receive a daily dose of the airline industry's top stories along with market insights right in your inbox.

Related Stories

Trip Report: Crossing the Pacific in ANA’s Boeing 787-9 Business Class

On a recent trip to Asia, I had the opportunity to fly in Business Class on an All Nippon Airways…

Trip Report: The U.S.’s Longest Dornier 328 Flight

Hawthorne, Calif.-based Advanced Air has been slowly but modestly increasing air service in the southwestern part of the country adding…

Trip Report: Icelandair Saga Premium from Copenhagen to Iceland

Icelandair serves many destinations in North America, and even more in Europe. The airline offers an extensive stopover program that…