# 2019 Tour de Pologne

The 2019 Tour de Pologne was the 76th running of the Tour de Pologne road cycling stage race. It started on 3 August in Kraków and ended on 9 August in Bukowina Tatrzańska, after seven stages. It was the twenty-ninth race of the 2019 UCI World Tour season.
The race was won by 22-year old Team Ineos rider Pavel Sivakov of Russia, after a second place on the first mountain stage and a finish among the peloton on the final stage. Sivakov took the leader's jersey after the last stage, after previous leader Jonas Vingegaard suffered larger losses. Sivakov finished ahead of Jai Hindley of Team Sunweb on the sixth stage and overtook the Australian by 2 seconds, thanks to time bonuses. UAE Team Emirates' Diego Ulissi completed the podium, 10 seconds down on Hindley, and 12 in arrears of Sivakov.
Among the race's other jerseys, the points classification went to Groupama-FDJ rider Marc Sarreau, who took three finishes in the top ten and remained in the race until the end whilst the other sprinters withdrew. Simon Geschke of CCC Team won the mountains classification, overtaking Tomasz Marczyński on the final day after an intense fight within the breakaway, whilst Charles Planet of Team Novo Nordisk took the active rider classification, after entering the breakaway on four of six competitively raced stages and leading the classification for all but one day. By finishing ninth in the overall standings, Bora-Hansgrohe's Rafał Majka took the prize for the highest-placed Polish rider, while the teams classification was comfortably won by Team Ineos.
The race was marred by the death of Lotto–Soudal rider Bjorg Lambrecht after he crashed during the third stage, hitting a concrete culvert and dying during surgery in a hospital, where he was transported by ambulance following resuscitation at the crash site. The fourth stage was not competitively raced; instead, it was shortened and run as a cycling procession.

## Schedule

Stage characteristics and winners :
| Stage | Date | Route | Distance | Type | Type | Winner |
| 1 | 3 August | Kraków to Kraków | 132 km (82 mi) | | Flat stage | Pascal Ackermann (GER) |
| 2 | 4 August | Tarnowskie Góry to Katowice | 153 km (95 mi) | | Flat stage | Luka Mezgec (SLO) |
| 3 | 5 August | Silesian Stadium, Chorzów to Zabrze | 150.5 km (94 mi) | | Flat stage | Pascal Ackermann (GER) |
| 4 | 6 August | Jaworzno to Kocierz | 173 km (107 mi) 133.7 km (83 mi) | | Mountain stage | Stage neutralised |
| 5 | 7 August | Wieliczka Salt Mine to Bielsko-Biała | 154 km (96 mi) | | Medium-mountain stage | Luka Mezgec (SLO) |
| 6 | 8 August | Zakopane to Kościelisko | 160 km (99 mi) | | Mountain stage | Jonas Vingegaard (DEN) |
| 7 | 9 August | Terma Bukowina Tatrzańska to Bukowina Tatrzańska | 153 km (95 mi) | | Mountain stage | Matej Mohorič (SLO) |
| Total | Total | 1,075.5 km (668.3 mi) 1,036.2 km (643.9 mi) | 1,075.5 km (668.3 mi) 1,036.2 km (643.9 mi) | 1,075.5 km (668.3 mi) 1,036.2 km (643.9 mi) | 1,075.5 km (668.3 mi) 1,036.2 km (643.9 mi) | 1,075.5 km (668.3 mi) 1,036.2 km (643.9 mi) |

## Teams

As the 2019 Tour de Pologne is a UCI World Tour event, all eighteen UCI WorldTeams were invited automatically and obliged to enter a team into the race. Along with a Polish national team, three UCI Professional Continental teams – Cofidis, Gazprom–RusVelo and Team Novo Nordisk – were given wildcard places into the race, and as such, formed the event's 22-team peloton. With the exception of Trek–Segafredo, who entered six riders, each team started with seven riders, meaning the race began with a peloton of 153 riders. Out of these riders, a total of 110 riders made it to the finish in Bukowina Tatrzańska.
UCI WorldTeams
* AG2R La Mondiale
* Astana
* Bahrain–Merida
* Bora–Hansgrohe
* CCC Team
* Deceuninck–Quick-Step
* EF Education First
* Groupama–FDJ
* Lotto–Soudal
* Mitchelton–Scott
* Movistar Team
* Team Dimension Data
* Team Ineos
* Team Jumbo–Visma
* Team Katusha–Alpecin
* Team Sunweb
* Trek–Segafredo
* UAE Team Emirates
UCI Professional Continental Teams
* Cofidis
* Gazprom–RusVelo
* Team Novo Nordisk
National Teams
* Poland

## Stages
### Stage 1
#### 3 August 2019 – Kraków to Kraków, 132 km (82.0 mi)

For the third consecutive year, the Tour de Pologne began with a road stage starting and finishing in the city of Kraków, mostly designed for the sprinters. The peloton completed a large tour around the city, with the first intermediate sprint coming in the town of Myślenice before two third-category climbs, in Lanckorona and Witanowice. There was also another slight categorised ascent in Kaszów, with further intermediate sprints in Czernichów and on the run-in to Kraków, prior to three 4 km (2.5 mi) circuits around the city centre.
The start of the stage was rather wet, before the roads dried up later on. Three riders formed the day's breakaway, as Jakub Kaczmarek and Adrian Kurek, riding for a select Polish national team, were joined at the front by Team Novo Nordisk's Charles Planet. They gained a maximum lead over the peloton of four minutes. Kurek took maximum points at the first intermediate sprint, however he crashed on a slippery cobbled surface and was later unable to catch up to the leading duo, although he continued riding. Planet obtained maximum points on the three climbs, ensuring he would wear the king of the mountains jersey, whilst Kaczmarek led through the remaining two intermediate sprints to take the active rider jersey. In the peloton, meanwhile, tempo was being set by the Bora–Hansgrohe team, who caught the leaders just before the start of the first circuit, with 14 km (8.7 mi) remaining. Almost simultaneously, Cofidis riders Filippo Fortin and Luis Ángel Maté hit the road after Maté hit a pothole, with neither of them being able to finish.
On the circuit, at the start of the final lap a second crash occurred, taking down Mark Cavendish, who was thus unable to compete in the sprint finish. Deceuninck–Quick-Step's Bob Jungels led the peloton onto the final kilometre, setting tempo for Fabio Jakobsen, before Team Jumbo–Visma came to the front for Danny van Poppel. Team Ineos' Ben Swift was the first to launch his sprint, however he was overtaken by Fernando Gaviria, who in turn was overtaken on the line by Pascal Ackermann, with the German taking his second consecutive stage victory on the Tour de Pologne and his seventh success of the season, as well as the first yellow jersey of the race.
Stage 1 result :
| Rank | Rider | Team | Time |
| 1 | Pascal Ackermann (GER) | Bora–Hansgrohe | 2h 57' 58" |
| 2 | Fernando Gaviria (COL) | UAE Team Emirates | + 0" |
| 3 | Fabio Jakobsen (NED) | Deceuninck–Quick-Step | + 0" |
| 4 | Max Walscheid (GER) | Team Sunweb | + 0" |
| 5 | Danny van Poppel (NED) | Team Jumbo–Visma | + 0" |
| 6 | Jakub Mareczko (ITA) | CCC Team | + 0" |
| 7 | Sacha Modolo (ITA) | EF Education First | + 0" |
| 8 | Paweł Franczak (POL) | Poland | + 0" |
| 9 | John Degenkolb (GER) | Trek–Segafredo | + 0" |
| 10 | Luka Mezgec (SLO) | Mitchelton–Scott | + 0" |
General classification after Stage 1 :
| Rank | Rider | Team | Time |
| 1 | Pascal Ackermann (GER) | Bora–Hansgrohe | 2h 57' 48" |
| 2 | Jakub Kaczmarek (POL) | Poland | + 3" |
| 3 | Fernando Gaviria (COL) | UAE Team Emirates | + 4" |
| 4 | Charles Planet (FRA) | Team Novo Nordisk | + 4" |
| 5 | Fabio Jakobsen (NED) | Deceuninck–Quick-Step | + 6" |
| 6 | Adrian Kurek (POL) | Poland | + 7" |
| 7 | Matej Mohorič (SLO) | Bahrain–Merida | + 9" |
| 8 | Quentin Jaurégui (FRA) | AG2R La Mondiale | + 9" |
| 9 | Max Walscheid (GER) | Team Sunweb | + 10" |
| 10 | Danny van Poppel (NED) | Team Jumbo–Visma | + 10" |

### Stage 2
#### 4 August 2019 – Tarnowskie Góry to Katowice, 153 km (95 mi)

The second stage was again designed with the sprinters in mind, with the peloton taking to the streets of the Metropolis GZM. After the start in Tarnowskie Góry, a 32 km (20 mi) circuit was completed around the town, before the route led through Piekary Śląskie and Siemianowice Śląskie, with intermediate sprints in both town and a third on the run in to Katowice. There, there were three 19.1 km (12 mi) circuits to complete, with two categorised climbs on the first and third lap. The finish was slightly downhill, and was identical to that used frequently in previous editions, with Sacha Modolo taking the honours in 2018.
For the second day in a row, Charles Planet made the day's breakaway, with the Team Novo Nordisk rider being joined at the front by the Polish national team's Paweł Franczak. The duo took a lead of six minutes over the peloton, with Planet taking points at the intermediate sprints to take the lead in the active rider classification from Jakub Kaczmarek, however as they crossed the finish line for the first time the peloton, led by Bora–Hansgrohe, managed to reduce the deficit to only one minute. On the circuit, the tempo slowed, and the leaders managed to remain at the front until the second categorised ascent, 18 km (11 mi) from the end.
Cesare Benedetti led the peloton for most of the final lap, before Deceuninck–Quick-Step moved to the front, only for their sprinter Fabio Jakobsen to be boxed in on the final metres, leaving him frustrated. Trek–Segafredo's work came to nothing too, as John Degenkolb could not find himself space. Fernando Gaviria started his sprint early, and began to take a gap, however he was upset by Luka Mezgec of Mitchelton–Scott, who benefitted from the downhill finish and a gap to accelerate from behind the main contenders to take the honours, his first UCI WorldTour win since the 2014 Tour of Beijing. A speed of 82 km/h (51 mph) was later announced as the Slovenian's highest on the closing metres, setting a new unofficial record for the fastest WorldTour sprint. Gaviria finished second by a bike length, with Pascal Ackermann taking third place to keep the yellow jersey.
Stage 2 result :
| Rank | Rider | Team | Time |
| 1 | Luka Mezgec (SLO) | Mitchelton–Scott | 3h 32' 42" |
| 2 | Fernando Gaviria (COL) | UAE Team Emirates | + 0" |
| 3 | Pascal Ackermann (GER) | Bora–Hansgrohe | + 0" |
| 4 | Danny van Poppel (NED) | Team Jumbo–Visma | + 0" |
| 5 | Marc Sarreau (FRA) | Groupama–FDJ | + 0" |
| 6 | Max Walscheid (GER) | Team Sunweb | + 0" |
| 7 | Sacha Modolo (ITA) | EF Education First | + 0" |
| 8 | Clément Venturini (FRA) | AG2R La Mondiale | + 0" |
| 9 | Matej Mohorič (SLO) | Bahrain–Merida | + 0" |
| 10 | Enzo Wouters (BEL) | Lotto–Soudal | + 0" |
General classification after Stage 2 :
| Rank | Rider | Team | Time |
| 1 | Pascal Ackermann (GER) | Bora–Hansgrohe | 6h 30' 26" |
| 2 | Charles Planet (FRA) | Team Novo Nordisk | + 1" |
| 3 | Fernando Gaviria (COL) | UAE Team Emirates | + 2" |
| 4 | Luka Mezgec (SLO) | Mitchelton–Scott | + 4" |
| 5 | Paweł Franczak (POL) | Poland | + 6" |
| 6 | Jakub Kaczmarek (POL) | Poland | + 7" |
| 7 | Fabio Jakobsen (NED) | Deceuninck–Quick-Step | + 10" |
| 8 | Ben Swift (GBR) | Team Ineos | + 12" |
| 9 | Quentin Jaurégui (FRA) | AG2R La Mondiale | + 12" |
| 10 | Matej Mohorič (SLO) | Bahrain–Merida | + 13" |

### Stage 3
#### 5 August 2019 – Silesian Stadium, Chorzów to Zabrze, 155.5 km (96.6 mi)

The main breakaway of the day consisted of three riders: Adrian Kurek (Poland), Charles Planet (Team Novo Nordisk), and Evgeny Shalunov (Gazprom–RusVelo). Planet, who was second overall coming into the stage, temporarily went into the virtual lead of the general classification after he managed to pick up 3 bonus seconds at the intermediate sprint. However, he slid out in a corner with under 7 km (4 mi) to go, taking down Kurek as well. As a result of the crash, Planet finished several minutes behind the peloton and his hopes of taking the overall lead were dashed.
Shalunov was caught with 3 km (2 mi) to go, setting up a bunch sprint. Pascal Ackermann of Bora–Hansgrohe, wearing the yellow leader's jersey, was the first to launch, however he slowly began to fade and was overtaken by Deceuninck–Quick-Step's Fabio Jakobsen, who obtained a lead and crossed the finish line ahead of the rest of the field with his arms raised. However, a television replay showed him pushing Marc Sarreau sideways during the sprint, and he was soon disqualified by the commissaires, with Ackermann ultimately being raised to the rank of stage winner.
After the stage, it was revealed that 22-year-old Belgian rider Bjorg Lambrecht of Lotto–Soudal died after crashing into a concrete culvert 48 km (30 mi) into the stage. Though he was initially resuscitated and taken to a hospital, he eventually succumbed to the injuries suffered due to the crash during surgery. As a result, the podium ceremonies were significantly muted, and race director Czesław Lang addressed the crowd first, with a minute's silence occurring before the prize-giving.
Stage 3 result :
| Rank | Rider | Team | Time |
| 1 | Pascal Ackermann (GER) | Bora–Hansgrohe | 3h 29' 41" |
| 2 | Danny van Poppel (NED) | Team Jumbo–Visma | + 0" |
| 3 | Mads Pedersen (DEN) | Trek–Segafredo | + 0" |
| 4 | John Degenkolb (GER) | Trek–Segafredo | + 0" |
| 5 | Max Walscheid (GER) | Team Sunweb | + 0" |
| 6 | Mark Cavendish (GBR) | Team Dimension Data | + 0" |
| 7 | Marc Sarreau (FRA) | Groupama–FDJ | + 0" |
| 8 | Andrea Peron (ITA) | Team Novo Nordisk | + 0" |
| 9 | Fernando Gaviria (COL) | UAE Team Emirates | + 0" |
| 10 | Matej Mohorič (SLO) | Bahrain–Merida | + 0" |
General classification after Stage 3 :
| Rank | Rider | Team | Time |
| 1 | Pascal Ackermann (GER) | Bora–Hansgrohe | 9h 59' 57" |
| 2 | Fernando Gaviria (COL) | UAE Team Emirates | + 12" |
| 3 | Luka Mezgec (SLO) | Mitchelton–Scott | + 14" |
| 4 | Paweł Franczak (POL) | Poland | + 16" |
| 5 | Jakub Kaczmarek (POL) | Poland | + 17" |
| 6 | Fabio Jakobsen (NED) | Deceuninck–Quick-Step | + 18" |
| 7 | Danny van Poppel (NED) | Team Jumbo–Visma | + 20" |
| 8 | Ben Swift (GBR) | Team Ineos | + 22" |
| 9 | Quentin Jaurégui (FRA) | AG2R La Mondiale | + 22" |
| 10 | Matej Mohorič (SLO) | Bahrain–Merida | + 23" |

### Stage 4
#### 6 August 2019 – Jaworzno to Kocierz, 173 km (107.5 mi)

Following the death of Bjorg Lambrecht as a result of an accident the previous day, the stage was neutralized and was ridden as a procession in his memory, and in keeping with convention, there was no competitive racing. Prior to the start, a minute of silence was held, and after the start the six remaining Lotto–Soudal riders took to the front of the peloton for 48 km (30 mi), until the kilometre at which Lambrecht crashed the previous day, at which point the peloton stopped and another moment of silence was held. Afterwards, each team took to the front of the peloton for a few minutes, and members of Lambrecht's Lotto–Soudal team were allowed to finish first with their arms around each other, whilst officials from the race and the Lotto–Soudal team stood behind the line, and another moment of silence was held. The riders then proceeded towards their team buses.
The stage was timed (4h 16' 48"); however no results were recorded, and it did not count towards the general classification or any of the additional competitions.
Remained the general classification after Stage 4 :
| Rank | Rider | Team | Time |
| 1 | Pascal Ackermann (GER) | Bora–Hansgrohe | 14h 16' 45" |
| 2 | Fernando Gaviria (COL) | UAE Team Emirates | + 12" |
| 3 | Luka Mezgec (SLO) | Mitchelton–Scott | + 14" |
| 4 | Paweł Franczak (POL) | Poland | + 16" |
| 5 | Jakub Kaczmarek (POL) | Poland | + 17" |
| 6 | Fabio Jakobsen (NED) | Deceuninck–Quick-Step | + 18" |
| 7 | Danny van Poppel (NED) | Team Jumbo–Visma | + 20" |
| 8 | Ben Swift (GBR) | Team Ineos | + 22" |
| 9 | Quentin Jaurégui (FRA) | AG2R La Mondiale | + 22" |
| 10 | Matej Mohorič (SLO) | Bahrain–Merida | + 23" |

### Stage 5
#### 7 August 2019 – Wieliczka Salt Mine to Bielsko-Biała, 154 km (95.7 mi)

Stage 5 result :
| Rank | Rider | Team | Time |
| 1 | Luka Mezgec (SLO) | Mitchelton–Scott | 3h 49' 55" |
| 2 | Eduard Prades (ESP) | Movistar Team | + 0" |
| 3 | Ben Swift (GBR) | Team Ineos | + 0" |
| 4 | Petr Vakoč (CZE) | Deceuninck–Quick-Step | + 0" |
| 5 | Pierre Latour (FRA) | AG2R La Mondiale | + 0" |
| 6 | Rafał Majka (POL) | Bora–Hansgrohe | + 0" |
| 7 | Enrico Battaglin (ITA) | Team Katusha–Alpecin | + 0" |
| 8 | Marc Sarreau (FRA) | Groupama–FDJ | + 0" |
| 9 | Chris Hamilton (AUS) | Team Sunweb | + 0" |
| 10 | Michael Gogl (AUT) | Trek–Segafredo | + 0" |
General classification after Stage 5 :
| Rank | Rider | Team | Time |
| 1 | Pascal Ackermann (GER) | Bora–Hansgrohe | 18h 06' 30" |
| 2 | Luka Mezgec (SLO) | Mitchelton–Scott | + 4" |
| 3 | Ben Swift (GBR) | Team Ineos | + 16" |
| 4 | Eduard Prades (ESP) | Movistar Team | + 18" |
| 5 | Matej Mohorič (SLO) | Bahrain–Merida | + 20" |
| 6 | Quentin Jaurégui (FRA) | AG2R La Mondiale | + 22" |
| 7 | Szymon Rekita (POL) | Poland | + 22" |
| 8 | Pierre Latour (FRA) | AG2R La Mondiale | + 23" |
| 9 | Marc Sarreau (FRA) | Groupama–FDJ | + 24" |
| 10 | Clément Venturini (FRA) | AG2R La Mondiale | + 24" |

### Stage 6
#### 8 August 2019 – Zakopane to Kościelisko, 160 km (99.4 mi)

Stage 6 result :
| Rank | Rider | Team | Time |
| 1 | Jonas Vingegaard (DEN) | Team Jumbo–Visma | 4h 07' 13" |
| 2 | Pavel Sivakov (RUS) | Team Ineos | + 0" |
| 3 | Jai Hindley (AUS) | Team Sunweb | + 0" |
| 4 | Sergio Higuita (COL) | EF Education First | + 8" |
| 5 | Rafał Majka (POL) | Bora–Hansgrohe | + 10" |
| 6 | Pierre Latour (FRA) | AG2R La Mondiale | + 10" |
| 7 | Davide Formolo (ITA) | Bora–Hansgrohe | + 10" |
| 8 | Tao Geoghegan Hart (GBR) | Team Ineos | + 10" |
| 9 | Chris Hamilton (AUS) | Team Sunweb | + 10" |
| 10 | Diego Ulissi (ITA) | UAE Team Emirates | + 10" |
General classification after Stage 6 :
| Rank | Rider | Team | Time |
| 1 | Jonas Vingegaard (DEN) | Team Jumbo–Visma | 22h 13' 57" |
| 2 | Pavel Sivakov (RUS) | Team Ineos | + 4" |
| 3 | Jai Hindley (AUS) | Team Sunweb | + 6" |
| 4 | Diego Ulissi (ITA) | UAE Team Emirates | + 17" |
| 5 | Sergio Higuita (COL) | EF Education First | + 18" |
| 6 | Pierre Latour (FRA) | AG2R La Mondiale | + 19" |
| 7 | Davide Formolo (ITA) | Bora–Hansgrohe | + 20" |
| 8 | Chris Hamilton (AUS) | Team Sunweb | + 20" |
| 9 | Rafał Majka (POL) | Bora–Hansgrohe | + 20" |
| 10 | James Knox (GBR) | Deceuninck–Quick-Step | + 20" |

### Stage 7
#### 9 August 2019 – Terma Bukowina Tatrzańska to Bukowina Tatrzańska, 153 km (95.1 mi)

Stage 7 result :
| Rank | Rider | Team | Time |
| 1 | Matej Mohorič (SLO) | Bahrain–Merida | 4h 04' 42" |
| 2 | Neilson Powless (USA) | Team Jumbo–Visma | + 55" |
| 3 | Gianluca Brambilla (ITA) | Trek–Segafredo | + 1' 07" |
| 4 | Tsgabu Grmay (ETH) | Mitchelton–Scott | + 1' 19" |
| 5 | Paweł Poljański (POL) | Bora–Hansgrohe | + 1' 32" |
| 6 | Daniel Navarro (ESP) | Team Katusha–Alpecin | + 1' 57" |
| 7 | Kilian Frankiny (SUI) | Groupama–FDJ | + 1' 57" |
| 8 | Pierre Latour (FRA) | AG2R La Mondiale | + 2' 15" |
| 9 | Sergio Higuita (COL) | EF Education First | + 2' 15" |
| 10 | Diego Ulissi (ITA) | UAE Team Emirates | + 2' 15" |
General classification after Stage 7 :
| Rank | Rider | Team | Time |
| 1 | Pavel Sivakov (RUS) | Team Ineos | 26h 20' 58" |
| 2 | Jai Hindley (AUS) | Team Sunweb | + 2" |
| 3 | Diego Ulissi (ITA) | UAE Team Emirates | + 12" |
| 4 | Sergio Higuita (COL) | EF Education First | + 14" |
| 5 | Tao Geoghegan Hart (GBR) | Team Ineos | + 14" |
| 6 | Pierre Latour (FRA) | AG2R La Mondiale | + 15" |
| 7 | Davide Formolo (ITA) | Bora–Hansgrohe | + 16" |
| 8 | Chris Hamilton (AUS) | Team Sunweb | + 16" |
| 9 | Rafał Majka (POL) | Bora–Hansgrohe | + 16" |
| 10 | James Knox (GBR) | Deceuninck–Quick-Step | + 16" |

## Classification leadership table

In the 2019 Tour de Pologne, four different jerseys will be awarded. The general classification is calculated by adding each cyclist's finishing times on each stage, and allowing time bonuses for the first three finishers at intermediate sprints (three seconds to first, two seconds to second and one second to third) and at the finish of all stages: the stage winner wins a ten-second bonus, with six and four seconds for the second and third riders respectively. The leader of the classification will receive a yellow jersey; it is considered the most important of the Tour de Pologne, and the winner of the classification is considered the winner of the race.
Points for the mountains classification :
| Position | 1 | 2 | 3 | 4 | 5 |
| Points for Category P1 | 20 | 14 | 10 | 6 | 4 |
| Points for Category 1 | 10 | 7 | 5 | 3 | 2 |
| Points for Category 2 | 5 | 3 | 2 | 1 | 0 |
| Points for Category 3 | 3 | 2 | 1 | 0 | 0 |
| Points for Category 4 | 1 | 0 | 0 | 0 | 0 |
There was also a mountains classification, the leadership of which was marked by a magenta jersey. In the mountains classification, points towards the classification were won by reaching the top of a climb before other cyclists. Each climb was categorised as either first, second, third, or fourth-category, with more points available for the higher-categorised climbs. Double points were also awarded for the premier first-category climb on the final stage.
Additionally, there was a sprints classification, which awarded a white jersey. In the points classification, cyclists received points for finishing in the top 20 in a stage. For winning a stage, a rider earned 20 points, with a point fewer per place down to 1 point for 20th place. The fourth and final jersey represented the active rider classification, marked by a blue jersey. This was decided at the race's intermediate sprints, awarding points on a 3–2–1 scale.
There was also a classification for Polish riders, with the highest-placed rider appearing on the podium each day. As well as this, a teams classification was also calculated, in which the times of the best three cyclists per team on each stage were added together; the leading team at the end of the race was the team with the lowest total time.
| Stage | Winner | General classification (Polish: Żółta koszulka) | Sprints classification (Polish: Klasyfikacja sprinterska) | Mountains classification (Polish: Klasyfikacja górska) | Active rider classification (Polish: Klasyfikacja najaktywniejszych) | Polish rider classification (Polish: Najlepszy Polak) | Teams classification (Polish: Klasyfikacja drużynowa) |
| 1 | Pascal Ackermann | Pascal Ackermann | Pascal Ackermann | Charles Planet | Jakub Kaczmarek | Jakub Kaczmarek | Bora–Hansgrohe |
| 2 | Luka Mezgec | Pascal Ackermann | Pascal Ackermann | Charles Planet | Charles Planet | Paweł Franczak | Bora–Hansgrohe |
| 3 | Pascal Ackermann | Pascal Ackermann | Pascal Ackermann | Charles Planet | Charles Planet | Paweł Franczak | Bora–Hansgrohe |
| 4 | Stage neutralised | Pascal Ackermann | Pascal Ackermann | Charles Planet | Charles Planet | Paweł Franczak | Bora–Hansgrohe |
| 5 | Luka Mezgec | Pascal Ackermann | Pascal Ackermann | Rodrigo Contreras | Charles Planet | Szymon Rekita | Bora–Hansgrohe |
| 6 | Jonas Vingegaard | Jonas Vingegaard | Marc Sarreau | Tomasz Marczyński | Charles Planet | Rafał Majka | Team Ineos |
| 7 | Matej Mohorič | Pavel Sivakov | Marc Sarreau | Simon Geschke | Charles Planet | Rafał Majka | Team Ineos |
| Final | Final | Pavel Sivakov | Marc Sarreau | Simon Geschke | Charles Planet | Rafał Majka | Team Ineos |
* On stages two and three, Fernando Gaviria, who was second in the points classification, wore the white jersey, because first placed Pascal Ackermann wore the yellow jersey as leader of the general classification. For the same reason, Danny van Poppel wore the white jersey on stages four and five, and Luka Mezgec wore the white jersey on stage six.
* On stages three to five, Paweł Franczak, who was second in the active rider classification, wore the blue jersey, because first placed Charles Planet wore the magenta jersey as leader of the mountains classification.

## Final classification standings

Legend :
| Denotes the winner of the general classification | Denotes the winner of the mountains classification |
| Denotes the winner of the points classification | Denotes the winner of the active rider classification |

### General classification

Final general classification (1-10) :
| Rank | Rider | Team | Time |
| 1 | Pavel Sivakov (RUS) | Team Ineos | 26h 20' 58" |
| 2 | Jai Hindley (AUS) | Team Sunweb | + 2" |
| 3 | Diego Ulissi (ITA) | UAE Team Emirates | + 12" |
| 4 | Sergio Higuita (COL) | EF Education First | + 14" |
| 5 | Tao Geoghegan Hart (GBR) | Team Ineos | + 14" |
| 6 | Pierre Latour (FRA) | AG2R La Mondiale | + 15" |
| 7 | Davide Formolo (ITA) | Bora–Hansgrohe | + 16" |
| 8 | Chris Hamilton (AUS) | Team Sunweb | + 16" |
| 9 | Rafał Majka (POL) | Bora–Hansgrohe | + 16" |
| 10 | James Knox (GBR) | Deceuninck–Quick-Step | + 16" |

### Points classification

Final points classification (1-10) :
| Rank | Rider | Team | Points |
| 1 | Marc Sarreau (FRA) | Groupama–FDJ | 53 |
| 2 | Fernando Gaviria (COL) | UAE Team Emirates | 50 |
| 3 | Pierre Latour (FRA) | AG2R La Mondiale | 44 |
| 4 | Matej Mohorič (SLO) | Bahrain–Merida | 43 |
| 5 | John Degenkolb (GER) | Trek–Segafredo | 39 |
| 6 | Rafał Majka (POL) | Bora–Hansgrohe | 38 |
| 7 | Diego Ulissi (ITA) | UAE Team Emirates | 36 |
| 8 | Clément Venturini (FRA) | AG2R La Mondiale | 34 |
| 9 | Davide Formolo (ITA) | Bora–Hansgrohe | 32 |
| 10 | Sergio Higuita (COL) | EF Education First | 29 |

### Mountains classification

Final mountains classification (1-10) :
| Rank | Rider | Team | Points |
| 1 | Simon Geschke (GER) | CCC Team | 60 |
| 2 | Tomasz Marczyński (POL) | Lotto–Soudal | 57 |
| 3 | Matej Mohorič (SLO) | Bahrain–Merida | 35 |
| 4 | Carl Fredrik Hagen (NOR) | Lotto–Soudal | 31 |
| 5 | Geoffrey Bouchard (FRA) | AG2R La Mondiale | 22 |
| 6 | Merhawi Kudus (ERI) | Astana | 14 |
| 7 | Jonas Vingegaard (DEN) | Team Jumbo–Visma | 14 |
| 8 | Davide Formolo (ITA) | Bora–Hansgrohe | 12 |
| 9 | Jai Hindley (AUS) | Team Sunweb | 10 |
| 10 | Matteo Fabbro (ITA) | Team Katusha–Alpecin | 10 |

### Active rider classification

Final active rider classification (1-10) :
| Rank | Rider | Team | Points |
| 1 | Charles Planet (FRA) | Team Novo Nordisk | 19 |
| 2 | Matej Mohorič (SLO) | Bahrain–Merida | 15 |
| 3 | Petr Vakoč (CZE) | Deceuninck–Quick-Step | 7 |
| 4 | Diego Ulissi (ITA) | UAE Team Emirates | 4 |
| 5 | Carl Fredrik Hagen (NOR) | Lotto–Soudal | 4 |
| 6 | Ben Swift (GBR) | Team Ineos | 4 |
| 7 | Geoffrey Bouchard (FRA) | AG2R La Mondiale | 4 |
| 8 | Tao Geoghegan Hart (GBR) | Team Ineos | 2 |
| 9 | Szymon Rekita (POL) | Poland | 2 |
| 10 | Quentin Jaurégui (FRA) | AG2R La Mondiale | 2 |

### Teams classification

Final teams classification (1-10) :
| Rank | Team | Time |
| 1 | Team Ineos | 79h 07' 11" |
| 2 | Team Sunweb | + 11" |
| 3 | Mitchelton–Scott | + 4' 09" |
| 4 | Team Jumbo–Visma | + 10' 59" |
| 5 | Bora–Hansgrohe | + 11' 10" |
| 6 | EF Education First | + 17' 16" |
| 7 | Astana | + 18' 24" |
| 8 | AG2R La Mondiale | + 26' 28" |
| 9 | Bahrain–Merida | + 26' 57" |
| 10 | UAE Team Emirates | + 30' 03" |