Robert Lewandowski claimed his third top scorer's prize with 29 goals last season - but who heads the 2018/19 Bundesliga scoring charts after Matchday 30? bundesliga.com has the lowdown on the runners and riders...
Watch: The Bundesliga top scorers since 2000!
Robert Lewandowski (Bayern Munich)
Appearances: 29 (29 starts)
Goals per game: 0.72
Such are the stratospheric standards set by Bayern's sharpshooter that what is an exceptional strike rate for us mere mortals is merely mortal for this god of goalscoring. Lewandowski went three games without finding the net before picking up a more familiar pace, netting two against Wolfsburg, scoring twice in the Matchday 11 defeat to former club Dortmund, and to prove the adage of all good things coming in threes, netting another brace in the Bavarian derby. Hanover, Hoffenheim and VfB Stuttgart fell victim to the Pole's predatory finishing, before he became the first player to score 100 Allianz Arena goals with his 13th of the season in the Matchday 21 win over Schalke. He grabbed two more on both Matchdays 24 and 25 to usurp Claudio Pizarro as the Bundesliga's record foreign-born goalscorer. He added another goal in a convincing win over Mainz, served up his 199th in the Bundesliga in the Matchday 27 draw at Freiburg and broke the 200-mark with a brace in Der Klassiker against Dortmund.
Paco Alcacer (Borussia Dortmund)
Appearances: 21 (9 starts)
Goals per game: 0.81
The summer arrival from Barcelona has breezed into the Bundesliga and hit opponents like a hurricane. Just ask Matchday 7 opponents Augsburg: they were leading 1-0 until Alcacer came off the bench, completing a second-half hat-trick with a 96th-minute matchwinner in a 4-3 Dortmund win for the ages. He continued his epic run with a goal against VfB Stuttgart - his first Bundesliga start - and scored the winner, again as a substitute in Der Klassiker against Bayern Munich. Dortmund rewarded him by transforming his loan into a permanent move, and he paid them back with goal-scoring cameos against Mainz, Freiburg and Düsseldorf to set a new single-season Bundesliga record for substitute strikes (10). He scored from the bench once again on Matchday 24 and from the start a week later, but netted possibly his most important goals yet against Wolfsburg on Matchday 27, striking twice in injury time to send BVB back to the top of the standings. The former Barca striker added a first Bundesliga penalty to the collection against Freiburg on Matchday 30 - again from the bench.
Luka Jovic (Eintracht Frankfurt)
Appearances: 27 (21 starts)
Goals per game: 0.63
After a slow start to the season, Jovic has been in excellent form of late, scoring in three consecutive games for the first time in his career after finding the net against Hannover and Hoffenheim in the Bundesliga and Lazio in the UEFA Europa League. His display against Fortuna Düsseldorf on Matchday 8 had something of a coming-of-age feel about it though, with the Serbia international unstoppable in a 7-1 win on home turf, scoring five before being substituted off to a standing ovation. He netted seven goals between Matchdays 11-20, before adding a 15th of the campaign against Hannover on Matchday 23 and moving on to 16 to help Frankfurt into the top four with a 3-0 win against Stuttgart on Matchday 27. A week later, he then converted a penalty in the ninth minute of second-half injury time to seal a 2-1 win at Schalke.
Marco Reus (Borussia Dortmund)
Appearances: 25 (25 starts)
Goals per game: 0.64
If you don't love the sight of Reus in full flight, you can only be a Schalke fan. Fit again and bang in form, the Dortmund captain has been the fulcrum of Lucien Favre's attack, prompting teammates and punishing opponents in equally effective measure with his Matchday 5 display in the 7-0 dismissal of Nuremberg one of his all-time best. He added to his tally in a narrow win at Wolfsburg, grabbed a brace in the comeback victory over Bayern Munich on Matchday 11 and struck again in wins against Freiburg, Bremen, Gladbach and Hannover, and the Matchday 20 draw with Frankfurt. He was back among the goals in the crucial Matchday 25 triumph over VfB Stuttgart, hit a last-gasp winner in the 3-2 win over Hertha Berlin on Matchday 26 and took his season tally to 16 - a career best in a Dortmund shirt - in the Matchday 30 drubbing of Freiburg.
Andrej Kramaric (Hoffenheim)
Appearances: 26 (24 starts)
Goals per game: 0.62
Kramaric took a while to get going this season, scoring just twice in his first seven Bundesliga outings. He began a hot streak on Matchday 11 though, netting in four consecutive games against Augsburg, Hertha Berlin, Schalke and Wolfsburg. He ended a three-game drought with a brace in Hoffenheim's 4-2 victory over Freiburg on Matchday 19, before opening the scoring the following week in the 1-1 draw with Fortuna Düsseldorf. The 27-year-old Croatia international was on target again on Matchday 23 in Hoffenheim's 1-1 draw at RB Leipzig, and hit a brace as Julian Nagelsmann's side beat Nuremberg 2-1 on Matchday 24. Further efforts against Stuttgart, Bayer Leverkusen, Augsburg and Schalke put him on 10 in 2019 and a career-best 16 for the current campaign.
Ishak Belfodil (Hoffenheim)
Appearances: 24 (16 starts)
Goals per game: 0.57
A summer signing from Standard Liege, via a loan spell with Werder Bremen, Belfodil scored four goals in 14 appearances during the first half of the season, including a brace against VfB Stuttgart on Matchday 9. The Algeria striker grabbed another double in the 3-3 draw with Borussia Dortmund, before adding to his haul with efforts against Hannover, Eintracht Frankfurt and braces in the 4-1 and 5-2 wins over Bayer Leverkusen and Schalke respectively. He has scored 11 of his 15 Bundesliga goals this season in 2019.
Yussuf Poulsen (RB Leipzig)
Appearances: 27 (24 starts)
Goals per game: 0.55
The Denmark international is lauded for his work ethic as he tirelessly harries opposing defenders, creating time and space for his teammates to score goals. This season, he has managed to ally both. He got the Leipzig party started in the 3-2 win over Hannover on Matchday 3; for the impressive 2-1 defeat of Hoffenheim, Poulsen did not even need any help in earning his team all three points; and hit braces against Bayer Leverkusen on Matchday 11, Mainz on Matchday 15, Düsseldorf on Matchday 19 and Stuttgart on Matchday 22. He became the first Leipzig player to score a Bundesliga hat-trick in the 5-0 rout of Hertha on Matchday 27.
Timo Werner (RB Leipzig)
Appearances: 27 (26 starts)
Goals per game: 0.52
Werner scored braces against Nuremberg, Hannover, Hertha Berlin, Borussia Mönchengladbach and Mainz, before ruining the fun for statisticians everywhere by scoring just the once in the 3-2 victory over Werder Bremen on Matchday 17, He belatedly opened his account for 2019 in the 1-0 win at Schalke on Matchday 26, but netted in back-to-back wins over Bayer Leverkusen and Wolfsburg on Matchdays 28 and 29.
Sebastien Haller (Eintracht Frankfurt)
Appearances: 26 (22 starts)
Goals per game: 0.54
The powerful French striker was on target in Frankfurt's first three Bundesliga outings this season against Freiburg, Werder Bremen and Borussia Dortmund. A four-game goal drought came to an end on Matchday 8 when he struck a brace in a relentless 7-1 triumph at home to Fortuna Düsseldorf. He came to the Eagles' rescue in a 1-1 draw in Nuremberg, and then opened the scoring for his side at VfB Stuttgart before rounding things out against Schalke in consecutive 3-0 wins and scoring for a seventh straight game in the 3-1 triumph over Augsburg. After going five games without a goal, he moved onto double figures with the opening goal against Freiburg on Matchday 18, and struck again against Bremen and Hoffenheim. He came of the bench to net a quickfire stoppage-time brace in a 3-0 triumph over Düsseldorf on Matchday 25.
Kai Havertz (Bayer Leverkusen)
Appearances: 30 (29 starts)
Goals per game: 0.43
Havertz is enjoying the best season of his fledgling career - a fact underlined by him becoming a full Germany international towards the end of last year. The 19-year-old grabbed his first goal of the season against Mainz on Matchday 4, hit a brace against Werder Bremen on Matchday 9 and went into the winter break with five after adding to his tally against Nuremberg and Hertha Berlin (two). He has been on fire in early 2019, netting against Wolfsburg, Mainz and Düsseldorf to help steer his side up the table, while also hitting the winner away to Hannover on Matchday 25. He scored his third double of the campaign in the Matchday 28 defeat to Leipzig, and stuck away a match-winning penalty in Stuttgart a week later.
Kevin Volland (Bayer Leverkusen)
Appearances: 30 (28 starts)
Goals per game: 0.43
Volland failed to find the net in Leverkusen's first four matches this season, but is now the club's top scorer. The versatile forward grabbed both goals in a 2-1 victory of Fortuna Düsseldorf on Matchday 5 and added another four prior to the winter break. Since the turn of the year, the 26-year-old has found the target against Wolfsburg, Bayern Munich and Borussia Dortmund, helping the club climb back up the table. He struck another brace on Matchday 25 in Leverkusen's 3-2 win away at Hannover, and was on target immediately after the March international break in the 4-1 defeat to Hoffenheim. Volland was also on target against Nuremberg on Matchday 30, meaning he has now scored against every team currently in the top flight.
Wout Weghorst (Wolfsburg)
Appearances: 29 (28 starts)
Goals per game: 0.41
Such is the impact Weghorst has made at Wolfsburg, he has already surpassed club legend Edin Dzeko's debut Bundesliga season haul of eight goals. The Dutchman, a summer 2018 arrival from Alkmaar, opened his account on Matchday 2, and is currently averaging a goal every fifth shot on target. He netted his ninth of the campaign and third in as many games in 2019 as the Wolves dispatched Mainz on Matchday 22. Weghorst scored his first Bundesliga hat-trick in the Matchday 26 rout of Düsseldorf.
Jean-Philippe Mateta (Mainz)
Appearances: 30 (26 starts)
Goals per game: 0.40
Enjoying a stunning debut Bundesliga season, Mateta found the net on Matchday 2 but then endured seven-game barren spell before scoring again in a 2-1 win against Werder Bremen on Matchday 10. He has been on target regularly ever since, ending the first half of the season with five goals. Since the turn of the year he has scored against Stuttgart and Schalke, and hit a hat-trick in Mainz's 5-0 demolition of Freiburg on Matchday 28. The French forward also notched a brace against Stuttgart on Matchday 30.
Alassane Plea (Borussia Mönchengladbach)
Appearances: 30 (26 starts)
Goals per game: 0.40
A useful goalscorer in his native France, Plea has looked every inch a thoroughbred goalgetter since joining the Foals' stable from Nice in the summer. Like Duda, the former Lyon striker has shown a happy knack of tailoring his finishes to suit the opportunity with his aesthetically pleasing carbon-copy curlers cutting down Wolfsburg and Bayern the standout strikes. He grabbed his first Bundesliga hat-trick against Werder Bremen on Matchday 11, and found the net on Matchdays 16 and 18 in wins over Nuremberg and Bayer Leverkusen respectively. After a seven-game drought, he found the net again in Gladbach's 1-1 draw at home to Freiburg on Matchday 26, and was on target against Leipzig on Matchday 30.
Jadon Sancho (Borussia Dortmund)
Appearances: 30 (23 starts)
Goals per game: 0.34
Sancho leads the Bundesliga assists chart, but he's also scoring plenty of goals, too. Having already found the net against Nuremberg and Stuttgart, the former Manchester City academy talent became the first player born in the new millennium to score a Bundesliga brace in the Matchday 9 draw with Hertha Berlin. He helped himself to the winning goal in the Revierderby with Schalke, and added further efforts to his tally against Gladbach, Hoffenheim and Bayer Leverkusen, before usurping Lukas Podolski as the youngest Bundesliga player to score nine goals - eight this season - with his strike against Bayer Leverkusen on Matchday 23. The 19-year-old England international ended a five-game lean patch by sticking away his second career brace in the Matchday 29 triumph against Mainz, in the process becoming the youngest ever BVB player to post double digits in a single Bundesliga campaign. He did the business again in Freiburg a week later, paving the way for a 4-0 win.
Alfred Finnbogason (Augsburg)
Appearances: 16 (16 starts)
Goals per game: 0.63
Finnbogason missed the first five games of the season through injury, but made up for lost time with a Matchday 6 hat-trick against Freiburg. He scored four goals in his next five outings, before a two-match absence took him out of his stride. The Iceland international went six matches without scoring, only for the dam to well and truly break against Mainz on Matchday 20 with the Augsburg front man bagging his fourth career Bundesliga hat-trick. A calf surgery has brought a premature end to his season, however.
Ondrej Duda (Hertha Berlin)
Appearances: 28 (26 starts)
Goals per game: 0.36
Duda is making up for lost time after an injury-ravaged first two years in Germany. The 24-year-old had never scored a brace in his professional career before this season, but his double in Hertha's 2-0 win at Schalke at the start of September was a sign of things to come, with goals following in wins over Wolfsburg, Borussia Mönchengladbach and Bayern Munich before the month was out. Duda then went six games without a goal, but scored four in his next seven to move onto double figures for the first time as a pro.
Dodi Lukabakio (Fortuna Düsseldorf)
Appearances: 27 (19 starts)
Goals per game: 0.37
The Belgian forward has been a revelation this season since joining on loan from Watford in summer 2018. He opened his account on Matchday 3 against Hoffenheim, but made global headlines on Matchday 12 when his hat-trick at the Allianz Arena earned Düsseldorf a point in a 3-3 draw away to Bayern Munich. The 21-year-old has found the net regularly ever since - including further strikes against Borussia Dortmund, Schalke and another against Bayern, and has been a key figure in helping Friedhelm Funkel's promoted side in the top flight next season.
Max Kruse (Werder Bremen)
Appearances: 30 (30 starts)
Goals per game: 0.33
Bremen captain Kruse scored in back-to-back games on Matchdays 4 and 5, but had to wait until Matchday 15 to add to his tally - a 2-1 defeat to Dortmund. He scored in another losing effort against RB Leipzig towards the end of the year, before going six matches without a goal. His Matchday 24 equaliser against Wolfsburg was the release he needed, though: Kruse netted five goals in his next three games, including braces against Bayer Leverkusen and Mainz, to move onto double figures.
On nine goals
Serge Gnabry (Bayern Munich)
Thorgan Hazard (Borussia Mönchengladbach)
Vedad Ibisevic (Hertha Berlin)
Benito Raman (Fortuna Düsseldorf)
Ante Rebic (Eintracht Frankfurt)
On eight goals
Nils Petersen (Freiburg)
Milot Rashica (Werder Bremen)
Gian-Luca Waldschmidt (Freiburg)
On seven goals
James Rodriguez (Bayern Munich)
Robin Quaison (Mainz)
Leon Goretzka (Bayern Munich)
Reiss Nelson (Hoffenheim)
On six goals
Mario Gomez (VfB Stuttgart)
Admir Mehmedi (Wolfsburg)
Thomas Müller (Bayern Munich)
Karim Onisiwo (Mainz)