Search Transit Toronto

GO Transit's Stouffville Line

Text by Daniel Garcia and James Bow

See Also

Service Today

GO Transit operates its Stouffville GO train service between Union Station in downtown Toronto and Old Elm (formerly Lincolnville) near the York-Durham Line near Bethesda Road in the town of Whitchurch Stouffville in northeastern York Region.

Although Stouffville — a historic community dating back to 1832 — is not the terminus of this line, Old Elm station is by comparison a parking lot located in the middle of farmers’ fields. Until the line is extended to the village of Uxbridge, it will likely remain known as the Stouffville GO Train.

Effective October 18, 2021, GO operates eight morning peak trains southbound from Old Elm to Union and five afternoon peak trains northbound from Union back, plus three more in the late evening). Weekend service sees three trains Old Elm in the morning, and three returning in the late evening. Between this, two-way hourly service operates during the daytime and evenings between Union Station and Mount Joy in northeastern Markham, seven days a week. Shuttle buses at the north end of the route link Mount Joy and Old Elm with the Town of Uxbridge. On early mornings or particularly late evenings when the trains do not run, regular “Train-Bus” runs operate express from Union to Unionville, before stopping at all stations north to Old Elm, with some runs continuing to Uxbridge.

Intermediate stations en route include Kennedy (located next to Kennedy subway station at Eglinton Avenue), Agincourt (at Sheppard Avenue), Milliken (at Steeles), Unionville, Centennial, Markham, Mount Joy and Stouffville. Stops are also available at Scarborough and Danforth stations on the GO Lakeshore line, and from February 2, 2015 until the start of the COVID-19 pandemic in March 2020, certain trains have stopped at Danforth station (and one at Scarborough) in order to provide passenger relief to the Bloor-Danforth subway.

As of 2014, Stouffville trains carry an average of 15,000 passengers per day, up from 10,058 riders carried on an average workday in 2008.

Very Early History

Passenger rail service to eastern York County began in 1868, with the chartering of the Toronto & Nipissing Railway . Construction began on a line between southern Scarborough and the village of Coboconk and the line opened to traffic in Uxbridge in July 1871. Service was extended to Cannington in November 1871 and finally to Coboconk in November 1872.

The line was initially narrow gauge (3 feet, six inches). Although traffic in lumber and firewood was strong, (to the point that it challenged the line’s ability to carry all its freight), the line couldn’t survive a general downturn in fortunes for all railroads as the economy soured in the late 1870s. Bondholders claimed that the line’s narrow gauge construction was part of the problem, preventing an exchange of freight with connecting standard gauge railroads.

The railroad was absorbed by the Midland Railway in July 1881, which set about laying down a third rail to convert the line to standard gauge. The influence of the Midland Railway is why the road to the east of the line in Scarborough is referred to as “Midland” Avenue. The Midland Railway was then acquired by the Grand Trunk Railway on January 1884, which was later absorbed by Canadian National. Canadian National reorganized the route into the Uxbridge subdivision.

Passenger service on this line was not commuter based. Initially, two trains per day operated each way between Midland Junction (Lorneville) and Toronto, with one train extended northeast to Coboconk. Ridership from the primarily rural villages northeast of Toronto remained slight, and dropped precipitously as better roads and affordable private automobiles became a reality in the mid twentieth-century.

Passenger trains were pulled back from Coboconk to Uxbridge in the 1950s (the tracks would follow three decades later). By 1963, passenger train service to Uxbridge had stopped, and Canadian National operated a single train departing Toronto Union Station at 5:20 p.m. for the town of Markham. No return service south was offered.

Commuter Traffic Develops

At the southern end of the line, however, a new travel pattern was taking form. Since the Second World War, urban sprawl around Toronto was reaching up into the township of Scarborough. By the early 1960s, this same sprawl was spilling outside the boundaries of the Municipality of Metropolitan Toronto (established in 1954 to manage that sprawl) into the Township of Markham and the villages of Markham and Unionville.

In 1971, the provincial government reorganized York County into York Region in order to manage this additional growth. Most of the Township of Markham (including the police villages of Unionville and Thornhill) as well as the Village of Markham were merged into the new Town of Markham. The Township of Whitchurch north of Markham was merged with the village of Stouffville. This heralded a new wave of growth. Markham’s population in 1961 had been just 4,294. Ten years later, it had ballooned to 36,684. Most of those new residents were commuting to jobs in Toronto.

The demand for commuter service between Markham and Toronto Union station was obvious, but Canadian National was not interested in upgrading its paltry service to match. Instead, Canadian National applied to the Canadian Transport Commission to abandon passenger service outright between Toronto and Markham. The CTC did more than refuse: it ordered CN to extend service to Stouffville, and carry passengers in both directions. The new service began operation in 1971.

Like other railroads at the time, Canadian National was interested in getting out of the passenger rail service altogether. In the late 1970s, the crown corporation VIA Rail combined the passenger services of Canadian National and Canadian Pacific under a single banner, and it took charge of operating the Stouffville commuter service. Unfortunately, its financial situation was just as precarious, and federal funding cuts in 1981 led to VIA Rail looking for ways to back out of operating this commuter run in favour of its long distance operations.

It was at this time that the provincial government intervened. GO Transit had been successfully running trains along the Lakeshore, Georgetown and Richmond Hill corridors for years. Trains to Milton had started running on October 25, 1981. With GO building a network serving specifically the commuters of the Greater Toronto Area, VIA’s Stouffville and Barrie lines seemed more natural as GO services. Negotiations to transfer responsibility were successful and, on September 7, 1982, green and white GO trains began to operate on the new Stouffville and Bradford (a cut-down version of VIA’s Toronto-Barrie train) corridors.

GO Transit Takes Over

Initially, service on the GO Stouffville line mirrored the VIA run: one six-car train left Stouffville for Union in the morning, returning from Union to Stouffville late in the afternoon. On the way, it stopped at Markham, Unionville, Milliken, and Agincourt. Trains followed the line south past Kennedy subway station at the eastern end of the Bloor-Danforth subway (but making no connections there) and meeting the Kingston sub where it turned west and followed the Lakeshore GO line into Union Station. Along the way, it passed the stops of Scarborough and Danforth. Between 1983 and 1988, the Stouffville train stopped at these stops as well. That was it. It would be another seven years before GO established the “train-bus” to provide off-peak bus service to some (but not all) of its peak-only train lines.

While ridership was slow to grow on the Stouffville line, it did grow, and the line got more attention from GO Transit. A second train was added on January 29, 1990. In May 1991, GO moved Unionville station south to a new site south of Unionville’s town centre. This replaced a station located on Main Street that had been built by the Toronto & Nipissing Railway in 1868. Although it was a treasure, the historic nature of the building, and its immediate surroundings meant it was impossible to expand.

On June 29, 1988, express service resumed between Union and Agincourt. While this made things less convenient for a Stouffville passenger bound for Scarborough or Danforth, it was necessary because Lakeshore GO passengers were crowding Stouffville passengers off their own train. At the request of Toronto Mayor John Tory in 2014, service was restored to Danforth station on February 2, 2015 as part of a year-long pilot project to provide passenger relief for the Bloor-Danforth subway. As of January 2017, this service is still in place, although only for a limited number of runs. One train also stops at Scarborough GO station.

Ridership and Trips Increase

By 1991, Markham’s population had risen to 153,811. Whitchurch-Stouffville’s population was now at 19,036. Stouffville train-buses began operation in the early 1990s and, on May 1, 2000, two new round trips between Markham station and Union were added. This was followed, on April 30, 2004, with a reverse-commute train running northbound from Union to Markham in the morning and southbound from Markham to Union in the afternoon. This was accomplished at minimal costs, using a run that had been deadheaded before.

Also in 2004, GO Transit started opening additional stations. The first was Mount Joy, located on the south side of Bur Oak Avenue, halfway between 16th Avenue and Major Mackenzie Drive north of Markham. This was followed by Centennial station, halfway between 16th Avenue and Highway 7. These two stations made the line convenient to more people in the burgeoning City of Markham.

Finally, on June 2 2005, GO opened Kennedy station, beside Kennedy subway station at Eglinton Avenue. The opening had been delayed by conflicts between GO and the TTC about connections between the two stations, but once opened, Stouffville GO Train passengers had access to the subway for destinations that would have required doubling-back from Union in the past.

GO also set about enhancing the other stations on the line. On September 6, 2005, GO relocated Milliken station from the north side of Steeles Avenue to the south side, allowing them to build a 680 vehicle parking lot and a ticket booth as well as making it accessible to wheelchairs. Agincourt was also improved, starting in 2009 when a work began on an underpass on Sheppard Avenue, eliminating the level crossing.

Adding and Protecting Capacity

GO Train service to Stouffville was initially provided by six-car trains. When the second train was added, both were stored overnight at Stouffville GO station. When a third train was added, it was clear that Stouffville wouldn’t have the capacity to handle all the trains the line would soon need.

Work began on a new yard located three kilometres northeast of Stouffville near the village of Lincolnville. Lincolnville Yard opened in 2007, with space for up to six twelve-car long trains. The new yard made it possible to extend service to Lincolnville — which at that point served as a parking lot for commuters driving in from northern York and Durham regions — and to upgrade the trains from six cars to ten cars. Lincolnville station opened to the public on September 2, 2008.

By this time, five round trips were in operation between Union and Stouffville (one of them extending the single Toronto-Markham train and eliminating the “reverse commute” run). All of these were extended to Lincolnville. A sixth round trip was added in 2013, along with one round trip between Toronto and Unionville in 2012, and an additional northbound trip to Unionville in 2013. In addition, GO has responded to passenger crowding by making the last three morning and first four afternoon runs twelve-car trains. This happened in the fall of 2012, and all platforms were extended to accommodate the extra length by December of that year.

GO Transit also took some steps to ensure that they could increase capacity on the line and eliminate bottlenecks. The diamond with the heavily used York Sub was eliminated when the line was routed into an underpass beneath the freight tracks, eliminating potential conflicts with freight trains and speeding up service. Enough space was provided to double track the line, and extra tracks were added.

The New Owners

All of these changes might not have been possible if GO hadn’t made a strong commitment to the line back in 2001. On that year, GO made a deal with Canadian National to purchase the bulk of the Newmarket subdivision north of the York Subdivision, as well as the entire Uxbridge sub from Scarborough Junction all the way to Stouffville. This move gave GO full control over access to the line. Instead of operating GO Trains around the activities of CN freights, CN freights now have to operate at times when GO trains aren’t in motion. GO can also move to double track the line and schedule additional trains whenever it pleases, and whenever funding becomes available.

GO had previously bought a portion of the Uxbridge sub before: in 1993, it moved to purchase the portion of the line from Stouffville to Uxbridge, preventing Canadian National from abandoning the line and ripping out the tracks. Not only did this enable the extension to Lincolnville, but it protected a future extension to Uxbridge.

The purchase of the whole Uxbridge Sub allowed GO to consider the possibility of operating off-peak service on the line, possibly by using used light-rail vehicles purchased from Ottawa’s O-Train, running shuttle service north from Scarborough GO station. Like the Stouffville line, Ottawa’s O-train operates on freight railway tracks, with an agreement with the freight railway to only operate freight trains after passenger service ends. When Ottawa considered upgrading the line to full LRT operation, it looked like the three diesel-powered self-propelled trains might become available for sale at a reasonable price. GO expressed an interest in purchasing the vehicles, but Ottawa’s LRT plans changed, meaning that the O-Trains had to stay in Ottawa. As GO’s interest was piqued primarily because of the opportunity to purchase the equipment inexpensively, GO’s plans to use lighter, smaller trains for off-peak service on the Uxbridge sub were dropped.

A Tour of the Line

From Union Station to Scarborough Station, the Stouffville line follows the Kingston sub, sharing tracks with the Lakeshore East GO trains. At Scarborough, the Stouffville trains transfer onto the Uxbridge sub, which turns north in a wide curve, coming close to the Midland/Danforth Road intersection, until settling on a straight northerly route roughly halfway between Kennedy and Midland Avenues.

The scenery around the Uxbridge sub up to Eglinton Avenue is mainly residential. The GO train passes Corvette Elementary School and Corvette Playfield on its way north. Just south of Eglinton, the line has a junction with the Geco Spur and passes the parking lots and bus terminal of Kennedy station on the Bloor-Danforth subway line. Here, the train makes its first stop, connecting with the subway and the Scarborough RT. There is no dedicated GO parking at this station, although commuters can pay for parking at the TTC’s nearby lots.

North of Kennedy, all the way to Ellesmere Avenue, the Scarborough RT parallels the Uxbridge sub, immediately to the west. As the line crosses Lawrence Avenue, the scenery around the line changes from residential to industrial. Some of these are still served by Canadian National via the Uxbridge sub. The Scarborough RT digs underground north of Ellesmere and vanishes, ducking under the Uxbridge sub to turn east towards the Scarborough Town Centre. The GO Train continues north, passing beneath beneath Highway 401 and Canadian Pacific’s Belleville sub, to reach, the line reaches Sheppard Avenue for its first stop, Agincourt station.

Agincourt station boasts a station house and a parking lot with 308 spaces. Connections exist only with the 85 SHEPPARD EAST bus now, but work currently eliminating the level crossing with Sheppard is leaving room for a future LRT along Sheppard Avenue. GO is also working on doubling the track north of Agincourt to Markham, which would enable more off-peak and even some weekend train service. The possibility exists of a connection with a second Agincourt GO station on Canadian Pacific’s Belleville sub, should GO service ever operate on the line either from North Toronto station, or out to Peterborough.

North of Sheppard the Stouffville train passes through another area of residential housing before entering another area of industry north of Finch. Just before Steeles Avenue, the train stops at Milliken. This newly rebuilt station offers a station house, ticket booths and a 725 space parking lot. The trains cross Steeles Avenue at a level crossing, pass the site of the original Milliken station (all traces of which have gone) and continues north. Past 14th Avenue, two tracks descend into a concrete trench to cross beneath Canadian National’s York Sub. Rising up again, the train passes beneath Highway 407 before making a stop at Unionville.

Unionville is located in the middle of a wide-open industrial area, so the scenery is rather sparse. Passengers can access a station building and 1,506 parking spaces, along with a kiss and ride drop-off. There is also a bus loop providing connections with GO buses to Pickering, Uxbridge and Richmond Hill, along with the final stop of VIVA’s rush hour only Pink line.

North of Unionville station, the line enters historic Unionville and curves east. Residential neighbourhoods creek closer to the line, as the train comes to Centennial. Centennial is a new station opened in a residential neighbourhood in northern Markham, offering 445 parking spaces. Less than ten minutes to the east likes Markham station, one of only eight original Toronto & Nipissing Railway stations to have survived as a passenger station (GO uses the platform, and not the station itself.

Curving north, the line proceeds through newer subdivisions before reaching Mount Joy, near the northern edge of Markham’s urban development. Mount Joy provides the parking that isn’t available at Markham, with 953 spaces compared to Markham’s 266.

Heading north, the train crosses Major Mackenzie and enters the town of Whitchurch-Stouffville. Urban development gives way to farmers’ fields. The line crosses the Ninth Line and enters the newer subdivisions of the old village of Stouffville. Stouffville station is located close to downtown Stouffville, which gives Stouffville residents easy access to their train, but limits parking. This is one reason why, since 2008, trains have continued north and northeast, reentering farmers fields for another three kilometres before terminating in the middle of nowhere, albeit with space for 150 cars now, and many more in the future. Here, passengers can see the large layover yard where Stouffville trains spend the night.

The tracks continue northeast, through wilder scenery, as the line curves through woods and along river valleys. It passes the centre of the village of Goodwood, which last saw passenger train service to Toronto in the 1950s. Uxbridge is even further, along many curves in the track as it follows a river. Although GO passengers can’t see this scenery, it is available to them. The York-Durham Heritage Railway offers tourist train and dinner train service on Sundays between Stouffville and Uxbridge. Special fall foliage service takes place in October.

The Future

Over time, service on the Stouffville line transformed from a sleepy rural passenger train to a burgeoning commuter run. Growth may have started slow, but it is picking up pace. Improvements have been steadily made, from doubling train service and doubling it again, experimenting with reverse-commute trips, and building a connection between the line and the eastern terminus of the Toronto subway.

GO’s commitment to maintaining and expanding service to Stouffville (and perhaps in future, Uxbridge) is clear given the resources GO has poured into improvements. Despite limited funds, it purchased the line outright from Canadian National. It expanded and modernized the original stations. It eliminated level crossings and a problematic diamond with a busy freight railway. On February 12, 2015, Metrolinx announced the awards of a construction tender to build a second track from just north of Agincourt GO station to Kennedy Road north of Milliken station. Metrolinx plans to double-track the remaining 17 kilometres of the Uxbridge sub, with construction to start in 2016. On December 31, 2016, Metrolinx added a seventh train operating inbound from Lincolnville in the morning and outbound from Union in the afternoon and then, on June 26, 2017, expanded that to nine trips, plus hourly two-way service between Union and Unionville during the midday and early evening on weekdays. On April 8, 2019, those midday trips to Unionville were extended north and east to Mount Joy station. Hourly weekend GO Train service was launched between Union and Mount Joy on November 2, 2019, with some morning and late night runs serving Lincolnville. The COVID-19 pandemic forced Metrolinx to cut service, eliminating weekend train service and cutting the number of rush hour trips from Lincolnville, but by 2021, two-way seven-day service had been restored, and eight trips were running again between Union and Lincolnville.

On September 27, 2021, Metrolinx announced that, effective October 16, Lincolnville Station would be renamed to Old Elm. This name change came about because plans for a new station south of the site of the old station threatened to cut down a historic 200-year-old elm tree. Members of the community rallied against this and, after Metrolinx changed its plans, it decided to honour the efforts of the community with the name change. The new station went under construction in 2020 and is slated to open in 2022, offering safer and more convenient facilities for passengers heading to the station, not to mention 672 new parking spaces. Passengers won’t have to board trains at the storage yard anymore. The move will also allow Metrolinx to expand Lincolnville yard to handle more trains.

It is no surprise to see the Stouffville line’s ridership rise in response to this ongoing investment. And as the populations of Markham and Whitchurch-Stouffville grow and the cities become denser and more urban, and you can expect to see further improvements, including off-peak two-way service, in the years to come.

Document Archive


Stouffville GO Train Image Archive


References and Resources

Thanks to Tom Box and Calvin Henry-Cotnam for their corrections to this article

Support us on Patreon Button

Welcome to Transit Toronto! This is an information site dedicated to public transportation in Toronto, maintained by transit enthusiasts for transit enthuasiasts. This is NOT the official website of the Toronto Transit Commission, Metrolinx or any other transit provider or government agency. To access the official websites of these agencies, consult this page here.