Christopher Martins
Christopher Martins, 29, from Luxembourg ➤ Spartak Moscow, since 2022 ➤ Defensive Midfield ➤ Market value: €3.50m ➤ * 19/02/1997 in Luxemburg, Luxembourg

Info
Biographical card, current club and contract facts. Empty fields mean the source did not publish that value.
- Club
- Spartak Moscow
- League
- Premier Liga (Russia)
- Position
- Midfield - Defensive Midfield
- Shirt
- #35
- Age
- 29
- Date of birth
- 19/02/1997
- Height
- 1,88m
- Foot
- right
- Citizenship
- Luxembourg, Cape Verde
- Joined
- 01/07/2022
- Contract until
- 30/06/2028
- Market value
- €3.50m
- Career fees
- €9.50m
- Youth clubs
- FC Rodange, Racing FC Union Luxemburg, Olympique Lyon
Statistics
Career totals from Transfermarkt: this season, then by competition and by club. Minutes and cards appear when the source recorded them.
This season
| Season | Competition | Apps | Min | G | A | YC | RC |
|---|---|---|---|---|---|---|---|
| 26/27 | Premier Liga | 3 | 137 | 1 | 0 | 0 | 0 |
| 26/27 | Russian Cup | 1 | 63 | 0 | 0 | 0 | 0 |
| 26/27 | Russian Super Cup | 1 | 74 | 1 | 0 | 0 | 0 |
By competition
| Competition | Apps | G | A |
|---|---|---|---|
| Premier Liga | 107 | 15 | 15 |
| Super League | 48 | 4 | 2 |
| Ligue 2 | 46 | 3 | 7 |
| Russian Cup | 41 | 9 | 2 |
| National 1 - Grp. C | 32 | 2 | 0 |
| National 1 - Grp. B | 12 | 0 | 0 |
| UEFA Youth League | 9 | 3 | 0 |
| Champions League Qu. | 8 | 0 | 0 |
| BGL Ligue | 8 | 0 | 0 |
| UEFA Champions League | 5 | 0 | 0 |
| Swiss Cup | 4 | 1 | 0 |
| Coupe de France | 4 | 1 | 0 |
| Europa League | 3 | 0 | 0 |
| Coupe Gambardella | 2 | 0 | 0 |
| Ligue 1 | 2 | 0 | 0 |
| L2/N1 Playoffs | 2 | 0 | 0 |
| L1/L2 Playoffs | 1 | 0 | 0 |
| National 1 - Grp. A | 1 | 0 | 0 |
| National U19 - Phase finale | 1 | 1 | 0 |
| 1. Liga gr. 1 | 1 | 0 | 0 |
| Russian Super Cup | 1 | 1 | 0 |
| Europa League Qualifying | 0 | 0 | 0 |
| Coupe de la Ligue | 0 | 0 | 0 |
By club
| Club | Apps | G | A |
|---|---|---|---|
| Spartak Moscow | 149 | 25 | 17 |
| Young Boys | 68 | 5 | 2 |
| Olymp. Lyon B | 45 | 2 | 0 |
| Troyes | 31 | 2 | 6 |
| Bourg-en-Bresse | 22 | 2 | 1 |
| Olym. Lyon YL | 9 | 3 | 0 |
| RFCU Luxembourg | 8 | 0 | 0 |
| Olymp. Lyon U19 | 3 | 1 | 0 |
| Lyon | 2 | 0 | 0 |
| BSC YB U21 | 1 | 0 | 0 |
Transfers
Recorded moves between clubs, with fee and market value on the day of the deal when the source has them.
| Date | Season | From | To | Fee | Market value |
|---|---|---|---|---|---|
| 01/07/2022 | 22/23 | Young Boys | Spartak Moscow | €7.00m | €5.00m |
| 30/06/2022 | 21/22 | Spartak Moscow | Young Boys | End of loan | €5.00m |
| 31/01/2022 | 21/22 | Young Boys | Spartak Moscow | Loan fee:<br /><i class="normaler-text">€500k</i> | €3.50m |
| 01/07/2019 | 19/20 | Lyon | Young Boys | €2.00m | €2.00m |
| 30/06/2019 | 18/19 | Troyes | Lyon | End of loan | €2.00m |
| 29/08/2018 | 18/19 | Lyon | Troyes | loan transfer | €400k |
| 30/06/2018 | 17/18 | Bourg-en-Bresse | Lyon | End of loan | €400k |
| 13/10/2017 | 17/18 | Lyon | Bourg-en-Bresse | loan transfer | €400k |
| 01/07/2017 | 17/18 | Olymp. Lyon B | Lyon | - | €100k |
| 01/07/2016 | 16/17 | Olymp. Lyon U19 | Olymp. Lyon B | - | €100k |
| 01/07/2013 | 13/14 | RFCU Luxembourg | Olymp. Lyon U19 | free transfer | - |
| 01/01/2013 | 12/13 | RFCU Luxem. U17 | RFCU Luxembourg | - | - |
National
Senior and youth national-team spells: caps, goals, shirt number and whether the player is still in the current pool.
| Team | Caps | Goals | Shirt | Debut | Status |
|---|---|---|---|---|---|
| Luxembourg | 83 | 1 | 8 | 2014-09-08 | Current international |
| Luxembourg U15 | 2 | 0 | 5 | 2012-04-19 | Former international |
| Luxembourg U17 | 7 | 0 | 4 | 2012-03-24 | Former international |
| Luxembourg U19 | 4 | 1 | 11 | 2012-10-11 | Former international |
| Luxembourg U21 | 2 | 0 | 8 | 2014-03-05 | Former international |
Market value
Current and peak Transfermarkt valuations, plus the history of changes by club and age. Rankings are relative to the current squad, league and position group.
- Current
- €3.50m
- Highest
- €6.00m · 19/03/2025
- Last change
- 26/05/2026
| Date | Age | Club | Value |
|---|---|---|---|
| 14/10/2014 | 17 | Olympique Lyon U19 | €100k |
| 12/10/2017 | 20 | Olympique Lyon | €400k |
| 16/05/2018 | 21 | Football Bourg-en-Bresse Péronnas 01 | €400k |
| 08/01/2019 | 21 | ESTAC Troyes | €800k |
| 03/06/2019 | 22 | ESTAC Troyes | €1.50m |
| 27/06/2019 | 22 | ESTAC Troyes | €2.00m |
| 06/01/2020 | 22 | BSC Young Boys | €2.00m |
| 08/04/2020 | 23 | BSC Young Boys | €1.60m |
| 31/07/2020 | 23 | BSC Young Boys | €1.60m |
| 28/12/2020 | 23 | BSC Young Boys | €2.00m |
| 23/06/2021 | 24 | BSC Young Boys | €2.00m |
| 04/10/2021 | 24 | BSC Young Boys | €3.50m |
| 03/01/2022 | 24 | BSC Young Boys | €3.50m |
| 02/06/2022 | 25 | Spartak Moscow | €5.00m |
| 21/11/2022 | 25 | Spartak Moscow | €4.50m |
| 14/06/2023 | 26 | Spartak Moscow | €4.50m |
| 13/12/2023 | 26 | Spartak Moscow | €4.50m |
| 04/06/2024 | 27 | Spartak Moscow | €4.00m |
| 12/12/2024 | 27 | Spartak Moscow | €5.00m |
| 19/03/2025 | 28 | Spartak Moscow | €6.00m |
| 04/06/2025 | 28 | Spartak Moscow | €6.00m |
| 16/12/2025 | 28 | Spartak Moscow | €5.00m |
| 25/03/2026 | 29 | Spartak Moscow | €4.50m |
| 26/05/2026 | 29 | Spartak Moscow | €3.50m |
xG Statistics
Christopher Martins's xG Statistics block is an Understat shot model for the 2026 season. It does not replace goals and assists — it explains them. xG and xA ask whether the chances were good enough; xGChain and xGBuildup show how often the player was on the ball in moves that became shots. Use minutes as the denominator: a large xG in 80 minutes is a hot streak, the same xG over 1,200 minutes is a role. Figures are rounded to two decimals and stay empty when Understat has no match for this player.
| Season | League | Club | Apps | Min | G | xG | npxG | A | xA | Sh | KP | xGChain |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026 | RFPL | Spartak Moscow | 3 | 138 | 1 | 1.17 | 1.17 | 0 | 0.22 | 6 | 4 | 1.79 |
| 2025 | RFPL | Spartak Moscow | 27 | 1144 | 4 | 3.76 | 3.76 | 1 | 2.12 | 23 | 13 | 6.04 |
What the columns mean
Read this table as chance quality, not as a scoreboard. A player can outscore xG (finishing well) or lag behind it (missed sitters). Compare rows only when minutes are in the same range.
Apps· Appearances- Matches in which the player was used in this league season, including substitute minutes.
Min· Minutes- Total minutes on the pitch. Useful when comparing output: 1 goal in 90 minutes is not the same as 1 goal in 800.
G· Goals- Goals credited to the player in the Understat shot model for that season.
xG· Expected goals- The quality of shots the player took, expressed as the number of goals an average finisher would score from the same chances. A 0.30 xG shot is a chance that goes in about 3 times in 10.
npxG· Non-penalty xG- Expected goals with penalties removed. This is the cleaner read of open-play and set-piece finishing, because a penalty is usually ~0.76 xG by itself.
A· Assists- Goals that followed the player's last pass. Actual assists, not the model.
xA· Expected assists- The xG value of shots that came directly from the player's key passes. High xA with few assists usually means teammates missed good chances.
Sh· Shots- Total shots recorded by Understat, including blocked and off-target attempts.
KP· Key passes- Passes that led to a shot. This is the volume behind xA.
xGChain· xG chain- Team xG from possessions the player touched. It captures involvement in build-up, not only the shot or the last pass. A midfielder who starts attacks can rank high here without scoring.
xGBuildup· xG buildup- The same possession xG, but excluding the shot-taker and the assist. This is the purest 'how much did this player help create the chance before the final ball' number.
NPG· Non-penalty goals- Goals scored from open play or set pieces, excluding penalties.







