Expected goals
Rukh Lviv expected goals (xG) 2025/2026
Ukrainian Premier League · after 29 matches · updated 4 Oct
Rukh Lviv's attacking and defensive expected goals in Ukrainian Premier League 2025/2026, compared with the results they produced and with the rest of the competition.
Rukh Lviv xG and xGA per match
Every match ↓| Rank | Club | xG per match |
|---|---|---|
| #1 | Dynamo Kyiv | 2.19 |
| #2 | Shakhtar Donetsk | 2.06 |
| #3 | Polissya Zhytomyr | 1.81 |
| #4 | LNZ Cherkasy | 1.56 |
| #5 | Karpaty Lviv | 1.50 |
| #6 | Zoria Luhansk | 1.40 |
| #7 | FC Kryvbas Kryvyi Rih | 1.40 |
| #8 | Metalist 1925 | 1.33 |
| #9 | Kolos Kovalivka | 1.31 |
| #10 | FC Epicentr Dunaivtsi | 1.20 |
| #11 | Kudrivka | 1.13 |
| #12 | Veres Rivne | 1.07 |
| #13 | Obolon Kyiv | 1.06 |
| #14 | Rukh Lviv | 1.00 |
| #15 | Oleksandria | 0.83 |
| #16 | SC Poltava | 0.82 |
- League avg
- 1.35
- Total
- 29.13 29 matches
| Rank | Club | xGA per match |
|---|---|---|
| #1 | LNZ Cherkasy | 0.65 |
| #2 | Shakhtar Donetsk | 0.70 |
| #3 | Metalist 1925 | 0.79 |
| #4 | Dynamo Kyiv | 0.85 |
| #5 | Polissya Zhytomyr | 1.14 |
| #6 | Kolos Kovalivka | 1.26 |
| #7 | Karpaty Lviv | 1.26 |
| #8 | Obolon Kyiv | 1.32 |
| #9 | Zoria Luhansk | 1.39 |
| #10 | Rukh Lviv | 1.50 |
| #11 | Veres Rivne | 1.51 |
| #12 | Kudrivka | 1.56 |
| #13 | FC Kryvbas Kryvyi Rih | 1.60 |
| #14 | Oleksandria | 1.78 |
| #15 | FC Epicentr Dunaivtsi | 1.96 |
| #16 | SC Poltava | 2.35 |
- League avg
- 1.35
- Total
- 43.44 29 matches
| Rank | Club | xGD per match |
|---|---|---|
| #1 | Shakhtar Donetsk | +1.36 |
| #2 | Dynamo Kyiv | +1.33 |
| #3 | LNZ Cherkasy | +0.91 |
| #4 | Polissya Zhytomyr | +0.67 |
| #5 | Metalist 1925 | +0.54 |
| #6 | Karpaty Lviv | +0.24 |
| #7 | Kolos Kovalivka | +0.05 |
| #8 | Zoria Luhansk | +0.00 |
| #9 | FC Kryvbas Kryvyi Rih | -0.21 |
| #10 | Obolon Kyiv | -0.26 |
| #11 | Kudrivka | -0.43 |
| #12 | Veres Rivne | -0.44 |
| #13 | Rukh Lviv | -0.49 |
| #14 | FC Epicentr Dunaivtsi | -0.76 |
| #15 | Oleksandria | -0.95 |
| #16 | SC Poltava | -1.53 |
- League avg
- 0.00
- Total
- -14.31 29 matches
| Rank | Club | xPts per match |
|---|---|---|
| #1 | Dynamo Kyiv | 2.20 |
| #2 | Shakhtar Donetsk | 2.14 |
| #3 | LNZ Cherkasy | 2.08 |
| #4 | Polissya Zhytomyr | 1.76 |
| #5 | Metalist 1925 | 1.72 |
| #6 | Karpaty Lviv | 1.55 |
| #7 | Kolos Kovalivka | 1.41 |
| #8 | Zoria Luhansk | 1.36 |
| #9 | FC Kryvbas Kryvyi Rih | 1.26 |
| #10 | Rukh Lviv | 1.14 |
| #11 | Obolon Kyiv | 1.14 |
| #12 | Veres Rivne | 1.09 |
| #13 | Kudrivka | 1.08 |
| #14 | FC Epicentr Dunaivtsi | 0.95 |
| #15 | Oleksandria | 0.76 |
| #16 | SC Poltava | 0.53 |
- League avg
- 1.38
- Total
- 32.99 vs 21 actual pts
Expected goals here are summed over 29 of 30 matches — the rest were played with no xG figure published for them, so the margins compare two different lengths of season.
What the xG says
Rukh Lviv's underlying numbers are among the weakest in Ukrainian Premier League. They rank #13 for xG difference at -0.49 per match, from low shot volume at about average chance quality. Their 20 goals are 9.13 below 29.13 xG, while 21 points are 11.99 below 32.99 xPts — both over the 29 matches with xG.
Actual vs expected
Select a row to chart it across the season.
Goals minus xG, match by match
Rukh Lviv are 9.13 goals below their xG after 29 matches.
- Goals
- 20
- xG
- 29.13
- Gap
- -9.13
- This match
- Match gap
- Running gap
| Date | Opponent | Goals | xG | Match gap | Running gap |
|---|---|---|---|---|---|
| Fri 01/08 | SC Poltava | 2 | 0.56 | +1.44 | +1.44 |
| Fri 08/08 | Dynamo Kyiv | 1 | 0.90 | +0.10 | +1.54 |
| Fri 15/08 | Obolon Kyiv | 1 | 0.95 | +0.05 | +1.59 |
| Sat 30/08 | Metalist 1925 | 0 | 0.43 | -0.43 | +1.16 |
| Sat 13/09 | FC Epicentr Dunaivtsi | 0 | 2.10 | -2.10 | -0.94 |
| Sun 21/09 | LNZ Cherkasy | 0 | 0.07 | -0.07 | -1.01 |
| Sun 28/09 | Shakhtar Donetsk | 0 | 0.14 | -0.14 | -1.15 |
| Fri 03/10 | Kolos Kovalivka | 2 | 2.80 | -0.80 | -1.95 |
| Sat 18/10 | FC Kryvbas Kryvyi Rih | 1 | 1.79 | -0.79 | -2.74 |
| Sat 25/10 | Karpaty Lviv | 0 | 0.62 | -0.62 | -3.36 |
| Sun 02/11 | Zoria Luhansk | 0 | 1.56 | -1.56 | -4.92 |
| Sat 08/11 | Veres Rivne | 0 | 0.96 | -0.96 | -5.88 |
| Sun 23/11 | Kudrivka | 4 | 2.72 | +1.28 | -4.60 |
| Sun 30/11 | Oleksandria | 1 | 2.29 | -1.29 | -5.89 |
| Sun 07/12 | Polissya Zhytomyr | 1 | 1.03 | -0.03 | -5.92 |
| Sun 14/12 | SC Poltava | 2 | 1.32 | +0.68 | -5.24 |
| Fri 20/02 | Dynamo Kyiv | 0 | 0.05 | -0.05 | -5.29 |
| Sun 01/03 | Obolon Kyiv | 0 | 0.97 | -0.97 | -6.26 |
| Mon 09/03 | Metalist 1925 | 0 | 0.05 | -0.05 | -6.31 |
| Sun 15/03 | FC Epicentr Dunaivtsi | 0 | 0.61 | -0.61 | -6.92 |
| Sat 21/03 | LNZ Cherkasy | 1 | 0.51 | +0.49 | -6.43 |
| Sun 05/04 | Shakhtar Donetsk | 0 | 0.00 | +0.00 | -6.43 |
| Fri 10/04 | Kolos Kovalivka | 1 | 0.63 | +0.37 | -6.06 |
| Sun 19/04 | FC Kryvbas Kryvyi Rih | 0 | 0.16 | -0.16 | -6.22 |
| Sat 25/04 | Karpaty Lviv | 0 | 0.90 | -0.90 | -7.12 |
| Mon 04/05 | Zoria Luhansk | 1 | 0.75 | +0.25 | -6.87 |
| Sat 09/05 | Veres Rivne | 0 | 0.80 | -0.80 | -7.67 |
| Thu 14/05 | Kudrivka | 1 | 0.50 | +0.50 | -7.17 |
| Sun 17/05 | Oleksandria | 1 | 2.96 | -1.96 | -9.13 |
Rukh Lviv xG trend
Current form -0.95 npxGD per match
The last 6 matches with xG.
Out-created the opponent in 13 of 29 matches. The worst was against Metalist 1925 on Mon 09/03 (-3.42).
- npxG · last 6
- 0.94
- npxGA · last 6
- 1.89
- npxG
- npxGA
- npxGD
- Avg so far
| Date | Opponent | npxG | npxGA | npxGD | Avg so far |
|---|---|---|---|---|---|
| Fri 01/08 | SC Poltava | 0.56 | 0.42 | +0.14 | +0.14 |
| Fri 08/08 | Dynamo Kyiv | 1.01 | 3.29 | -2.28 | -1.07 |
| Fri 15/08 | Obolon Kyiv | 0.96 | 0.58 | +0.38 | -0.59 |
| Sat 30/08 | Metalist 1925 | 0.44 | 1.35 | -0.91 | -0.67 |
| Sat 13/09 | FC Epicentr Dunaivtsi | 2.10 | 1.00 | +1.10 | -0.31 |
| Sun 21/09 | LNZ Cherkasy | 0.07 | 1.97 | -1.90 | -0.58 |
| Sun 28/09 | Shakhtar Donetsk | 0.14 | 1.55 | -1.41 | -0.70 |
| Fri 03/10 | Kolos Kovalivka | 2.04 | 0.54 | +1.50 | -0.42 |
| Sat 18/10 | FC Kryvbas Kryvyi Rih | 1.79 | 1.08 | +0.71 | -0.30 |
| Sat 25/10 | Karpaty Lviv | 0.62 | 0.80 | -0.18 | -0.29 |
| Sun 02/11 | Zoria Luhansk | 0.80 | 0.67 | +0.13 | -0.25 |
| Sat 08/11 | Veres Rivne | 0.96 | 0.76 | +0.20 | -0.21 |
| Sun 23/11 | Kudrivka | 2.72 | 2.17 | +0.55 | -0.15 |
| Sun 30/11 | Oleksandria | 2.29 | 0.80 | +1.49 | -0.03 |
| Sun 07/12 | Polissya Zhytomyr | 1.03 | 0.24 | +0.79 | +0.02 |
| Sun 14/12 | SC Poltava | 1.32 | 0.31 | +1.01 | +0.08 |
| Fri 20/02 | Dynamo Kyiv | 0.05 | 1.92 | -1.87 | -0.03 |
| Sun 01/03 | Obolon Kyiv | 0.67 | 1.17 | -0.50 | -0.06 |
| Mon 09/03 | Metalist 1925 | 0.05 | 3.47 | -3.42 | -0.24 |
| Sun 15/03 | FC Epicentr Dunaivtsi | 0.51 | 0.75 | -0.24 | -0.24 |
| Sat 21/03 | LNZ Cherkasy | 0.51 | 0.97 | -0.46 | -0.25 |
| Sun 05/04 | Shakhtar Donetsk | 0.00 | 3.16 | -3.16 | -0.38 |
| Fri 10/04 | Kolos Kovalivka | 0.63 | 0.92 | -0.29 | -0.37 |
| Sun 19/04 | FC Kryvbas Kryvyi Rih | 0.37 | 1.58 | -1.21 | -0.41 |
| Sat 25/04 | Karpaty Lviv | 0.89 | 3.83 | -2.94 | -0.51 |
| Mon 04/05 | Zoria Luhansk | 0.75 | 1.11 | -0.36 | -0.50 |
| Sat 09/05 | Veres Rivne | 0.80 | 0.55 | +0.25 | -0.48 |
| Thu 14/05 | Kudrivka | 0.50 | 2.65 | -2.15 | -0.54 |
| Sun 17/05 | Oleksandria | 2.32 | 1.61 | +0.71 | -0.49 |
Each bar is one match's non-penalty xG minus the non-penalty xG against; the line is that difference averaged over the season up to each match, and it finishes on the dashed season average — 0.93 npxG and 1.42 npxGA per match. Current form is the same difference over the last 6 matches with xG.
Strength of schedule
- Season so far
- tied number 2 hardest of 16 in Ukrainian Premier League
- +0.07 xG vs league average
- Over 30 league matches
- Last 5
- number 13 hardest of 16 in Ukrainian Premier League
- −0.13 xG vs league average
- Over 5 league matches
Opponents behind the figures
Season so far
+0.07 xG vs league average · over 30 matches · tied number 2 hardest of 16
- Polissya Zhytomyr Away +0.57
- Oleksandria Home −0.57
- Kudrivka Away −0.31
- Veres Rivne Home −0.33
- Zoria Luhansk Home 0.00
- Karpaty Lviv Home +0.14
- FC Kryvbas Kryvyi Rih Away +0.07
- Kolos Kovalivka Home +0.08
- Shakhtar Donetsk Away +0.86
- LNZ Cherkasy Home +0.45
- FC Epicentr Dunaivtsi Away −0.34
- Metalist 1925 Home +0.46
- Obolon Kyiv Away −0.04
- Dynamo Kyiv Away +0.92
- SC Poltava Away −0.95
- Polissya Zhytomyr Home +0.57
- Oleksandria Away −0.57
- Kudrivka Home −0.31
- Veres Rivne Away −0.33
- Zoria Luhansk Away 0.00
- Karpaty Lviv Away +0.14
- FC Kryvbas Kryvyi Rih Home +0.07
- Kolos Kovalivka Away +0.08
- Shakhtar Donetsk Home +0.86
- LNZ Cherkasy Away +0.45
- FC Epicentr Dunaivtsi Home −0.34
- Metalist 1925 Away +0.46
- Obolon Kyiv Home −0.04
- Dynamo Kyiv Home +0.92
- SC Poltava Home −0.95
Last 5
−0.13 xG vs league average · over 5 matches · number 13 hardest of 16
- Polissya Zhytomyr Away +0.57
- Oleksandria Home −0.57
- Kudrivka Away −0.31
- Veres Rivne Home −0.33
- Zoria Luhansk Home 0.00
Rukh Lviv shots and chance quality
Low volume, average quality. Rukh Lviv take 9.2 shots a match (league 12.0) at 0.10 npxG a shot (league 0.10), #14 in Ukrainian Premier League for volume and #9 for quality. 51% of their shots come from inside the box (league 56%).
Attack
| Rank | Club | shots per match |
|---|---|---|
| #1 | Dynamo Kyiv | 16.7 |
| #2 | Shakhtar Donetsk | 16.1 |
| #3 | Metalist 1925 | 14.4 |
| #4 | Polissya Zhytomyr | 14.3 |
| #5 | Karpaty Lviv | 13.9 |
| #6 | LNZ Cherkasy | 13.0 |
| #7 | FC Kryvbas Kryvyi Rih | 12.9 |
| #8 | Kolos Kovalivka | 12.4 |
| #9 | Zoria Luhansk | 12.2 |
| #10 | FC Epicentr Dunaivtsi | 11.4 |
| #11 | Kudrivka | 10.7 |
| #12 | Veres Rivne | 9.7 |
| #13 | Obolon Kyiv | 9.6 |
| #14 | Rukh Lviv | 9.2 |
| #15 | Oleksandria | 8.4 |
| #16 | SC Poltava | 7.8 |
- League avg
- 12.0
- Total
- 266 shots from 29 matches
| Rank | Club | npxG per shot |
|---|---|---|
| #1 | Dynamo Kyiv | 0.12 |
| #2 | Shakhtar Donetsk | 0.12 |
| #3 | Polissya Zhytomyr | 0.11 |
| #4 | LNZ Cherkasy | 0.11 |
| #5 | Zoria Luhansk | 0.11 |
| #6 | Veres Rivne | 0.11 |
| #7 | Obolon Kyiv | 0.10 |
| #8 | Karpaty Lviv | 0.10 |
| #9 | Rukh Lviv | 0.10 |
| #10 | Oleksandria | 0.10 |
| #11 | FC Kryvbas Kryvyi Rih | 0.10 |
| #12 | Kolos Kovalivka | 0.10 |
| #13 | SC Poltava | 0.09 |
| #14 | Kudrivka | 0.09 |
| #15 | FC Epicentr Dunaivtsi | 0.09 |
| #16 | Metalist 1925 | 0.09 |
- League avg
- 0.10
- Total
- 26.90 npxG from 266 shots
Defence
| Rank | Club | shots per match |
|---|---|---|
| #1 | Shakhtar Donetsk | 6.5 |
| #2 | Metalist 1925 | 8.1 |
| #3 | LNZ Cherkasy | 8.5 |
| #4 | Dynamo Kyiv | 8.8 |
| #5 | Polissya Zhytomyr | 10.1 |
| #6 | Kolos Kovalivka | 11.4 |
| #7 | Rukh Lviv | 11.8 |
| #8 | Karpaty Lviv | 11.8 |
| #9 | Zoria Luhansk | 12.2 |
| #10 | Obolon Kyiv | 12.7 |
| #11 | Veres Rivne | 13.0 |
| #12 | FC Kryvbas Kryvyi Rih | 14.0 |
| #13 | Kudrivka | 14.1 |
| #14 | FC Epicentr Dunaivtsi | 14.7 |
| #15 | Oleksandria | 15.9 |
| #16 | SC Poltava | 18.3 |
- League avg
- 12.0
- Total
- 341 shots allowed from 29 matches
| Rank | Club | npxGA per shot |
|---|---|---|
| #1 | LNZ Cherkasy | 0.08 |
| #2 | Metalist 1925 | 0.09 |
| #3 | Obolon Kyiv | 0.09 |
| #4 | Dynamo Kyiv | 0.09 |
| #5 | Karpaty Lviv | 0.10 |
| #6 | Oleksandria | 0.10 |
| #7 | Shakhtar Donetsk | 0.10 |
| #8 | Kolos Kovalivka | 0.10 |
| #9 | Polissya Zhytomyr | 0.10 |
| #10 | Zoria Luhansk | 0.11 |
| #11 | Kudrivka | 0.11 |
| #12 | Veres Rivne | 0.11 |
| #13 | SC Poltava | 0.11 |
| #14 | FC Kryvbas Kryvyi Rih | 0.11 |
| #15 | Rukh Lviv | 0.12 |
| #16 | FC Epicentr Dunaivtsi | 0.12 |
- League avg
- 0.10
- Total
- 41.22 npxGA from 341 shots
Shot profile
51% inside the box
League avg 56%
From 136 of 266 shots over 29 matches
62% allowed inside the box
League avg 56%
From 210 of 341 shots allowed over 29 matches
Rukh Lviv home and away xG
| Measure | Home | Away |
|---|---|---|
| Matches | 15 | 15 14 with xG |
| xG / match | 1.12 | 0.88 |
| xGA / match | 1.57 | 1.43 |
| xGD / match | -0.45 | -0.54 |
| xPts / match Model — Model output — computed from each match's xG, not a result. How xPts works → | 1.19 | 1.08 |
Every figure divides by that half's matches with xG. A half with fewer than 3 matches with xG is muted.
Every Rukh Lviv match by xG
Last 5
- Matches
- 5 4 with xG
- xG / match
- 1.25
- xGA / match
- 1.48
- xGD / match
- -0.23
- Points
- 1 of 15
Newest first. The dot is xG and the ring is xGA, on one scale from 0 to 3.00. Best and weakest underlying mark the highest and lowest xGD once 5 matches have xG. Against the chances marks a win with xGD of −1.00 or lower, or a loss with +1.00 or higher. P marks a side with at least 0.50 xG from penalties.
Rukh Lviv in Ukrainian Premier League
Attack
- xG / match #14 of 16
- Shots / match #14 of 16
- Chance quality #9 of 16
- Home xG #12 of 18
- Away xG #15 of 18
Defence
- xGA / match #10 of 16
- Shots allowed #7 of 16
- Chance quality allowed #15 of 16
About the data
- xG data
- Provided by TheStatsAPI, and stored as published.
- Derived metrics
- xGD, per-match rates, rankings and rolling averages are calculated from the match data.
- Model metrics
- xPts is produced by our probability model.