Théo Valls
Career snapshot
Position rank · 25/26
Among 376 Midfield - Central Midfields · ≥200 mins
Career highs
Born the same day
Shares 1995-12-18 · 6 players total
| Full name | Théo Valls |
|---|---|
| Date of birth | 1995-12-18 (30 yrs) |
| Place of birth | Nîmes, France |
| Citizenship | France |
| Position | Midfield - Central Midfield (main: Midfield) |
| Foot | left |
| Height | 178.00 m |
| Current club | Grenoble Foot 38 |
| Joined | 2023-10-26 |
| Contract expires | 2026-06-30 |
| Agent | Horizon |
| Outfitter | adidas |
Percentile rank vs 61 other Midfield - Central Midfields with ≥500 minutes in 25/26. Higher = better (except cards, where lower = better — inverted automatically).
| Club | Seasons | First | Last | Matches | Goals | Assists | Minutes |
|---|---|---|---|---|---|---|---|
| Grenoble Foot 38 | 3 | 23/24 | 25/26 | 61 | 9 | 3 | 1,765 |
| Servette FC | 3 | 20/21 | 22/23 | 102 | 9 | 17 | 3,249 |
| Nîmes Olympique | 6 | 14/15 | 19/20 | 160 | 6 | 7 | 4,763 |
Career trajectory — goals, assists & market value
Goals by season
Assists by season
| Season | Competition | Club | Matches | Goals | Assists | YC | RC | Minutes |
|---|---|---|---|---|---|---|---|---|
| 25/26 | Ligue 2 | Grenoble Foot 38 | 4 | 1 | 0 | 0 | 0 | 360 |
| 24/25 | Coupe de France | Grenoble Foot 38 | 2 | 1 | 0 | 0 | 0 | 162 |
| 24/25 | Ligue 2 | Grenoble Foot 38 | 28 | 4 | 3 | 1 | 0 | 580 |
| 23/24 | Coupe de France | Grenoble Foot 38 | 1 | 0 | 0 | 0 | 0 | 0 |
| 23/24 | Ligue 2 | Grenoble Foot 38 | 26 | 3 | 0 | 1 | 0 | 663 |
| 22/23 | Super League | Servette FC | 26 | 3 | 2 | 2 | 0 | 243 |
| 22/23 | Swiss Cup | Servette FC | 4 | 0 | 1 | 0 | 0 | 0 |
| 21/22 | Super League | Servette FC | 32 | 1 | 2 | 2 | 0 | 2,125 |
| 21/22 | Swiss Cup | Servette FC | 3 | 1 | 2 | 1 | 0 | 201 |
| 21/22 | UECL Quali | Servette FC | 2 | 0 | 0 | 1 | 0 | 0 |
| 20/21 | Super League | Servette FC | 33 | 4 | 10 | 3 | 0 | 680 |
| 20/21 | Swiss Cup | Servette FC | 2 | 0 | 0 | 0 | 0 | 0 |
| 19/20 | Coupe de France | Nîmes Olympique | 1 | 0 | 0 | 0 | 0 | 0 |
| 19/20 | Ligue 1 | Nîmes Olympique | 23 | 1 | 1 | 1 | 1 | 1,641 |
| 18/19 | Coupe de France | Nîmes Olympique | 1 | 0 | 0 | 0 | 0 | 0 |
| 18/19 | Coupe de la Ligue | Nîmes Olympique | 2 | 0 | 0 | 0 | 0 | 0 |
| 18/19 | Ligue 1 | Nîmes Olympique | 30 | 0 | 1 | 2 | 0 | 0 |
| 17/18 | Coupe de France | Nîmes Olympique | 3 | 2 | 0 | 0 | 0 | 100 |
| 17/18 | Coupe de la Ligue | Nîmes Olympique | 1 | 0 | 0 | 0 | 0 | 0 |
| 17/18 | Ligue 2 | Nîmes Olympique | 33 | 1 | 2 | 5 | 0 | 2,008 |
| 16/17 | Coupe de France | Nîmes Olympique | 1 | 0 | 0 | 0 | 0 | 0 |
| 16/17 | Coupe de la Ligue | Nîmes Olympique | 1 | 0 | 1 | 0 | 0 | 0 |
| 16/17 | Ligue 2 | Nîmes Olympique | 32 | 2 | 2 | 5 | 0 | 1,014 |
| 15/16 | Coupe de France | Nîmes Olympique | 2 | 0 | 0 | 0 | 0 | 0 |
| 15/16 | Coupe de la Ligue | Nîmes Olympique | 1 | 0 | 0 | 0 | 0 | 0 |
| 15/16 | Ligue 2 | Nîmes Olympique | 22 | 0 | 0 | 3 | 0 | 0 |
| 14/15 | Coupe de France | Nîmes Olympique | 1 | 0 | 0 | 0 | 0 | 0 |
| 14/15 | Coupe de la Ligue | Nîmes Olympique | 1 | 0 | 0 | 0 | 0 | 0 |
| 14/15 | Ligue 2 | Nîmes Olympique | 5 | 0 | 0 | 1 | 0 | 0 |
| Season | Date | From | To | Type | Market value | Fee |
|---|---|---|---|---|---|---|
| 15/16 | 2015-07-01 | Nîmes B | Nîmes Olympique | Transfer | 0 | — |
| 20/21 | 2020-09-22 | Nîmes Olympique | Servette FC | Transfer | 2000000 | — |
| 23/24 | 2023-07-01 | Servette FC | Without Club | Transfer | 1100000 | — |
| 23/24 | 2023-10-26 | Without Club | Grenoble | Transfer | 900000 | — |
| Season | Injury | From | To | Days missed | Games missed |
|---|---|---|---|---|---|
| 20/21 | Quarantine | 2021-01-15 | 2021-01-25 | 11 | 0 |
| 21/22 | unknown injury | 2022-04-06 | 2022-04-28 | 23 | 3 |
| 21/22 | unknown injury | 2022-05-20 | 2022-06-30 | 42 | 1 |
| 22/23 | unknown injury | 2022-11-04 | 2023-01-26 | 84 | 3 |
| 22/23 | unknown injury | 2023-02-23 | 2023-02-27 | 5 | 1 |
| 22/23 | Ill | 2023-05-23 | 2023-05-31 | 9 | 2 |
| 24/25 | Broken toe | 2024-10-05 | 2024-11-21 | 48 | 6 |
| 24/25 | Injury to the ankle | 2025-05-03 | 2025-05-26 | 24 | 1 |
| Date | Value |
|---|---|
| Jan 1, 1970 | €900k |
| Jan 1, 1970 | €800k |
| Jan 1, 1970 | €800k |
| Jan 1, 1970 | €1.10m |
| Jan 1, 1970 | €900k |
| Jan 1, 1970 | €900k |
| Jan 1, 1970 | €2.00m |
| Jan 1, 1970 | €2.00m |
| Jan 1, 1970 | €1.30m |
| Jan 1, 1970 | €3.00m |
| Jan 1, 1970 | €2.00m |
| Jan 1, 1970 | €2.00m |
| Jan 1, 1970 | €2.00m |
| Jan 1, 1970 | €2.50m |
| Jan 1, 1970 | €2.50m |
| Jan 1, 1970 | €2.50m |
| Jan 1, 1970 | €2.50m |
| Jan 1, 1970 | €900k |
| Jan 1, 1970 | €400k |
| Jan 1, 1970 | €300k |
| Jan 1, 1970 | €200k |
| Jan 1, 1970 | €200k |
| Jan 1, 1970 | €150k |
No national team data.
| Teammate | PPG played with | Joint goals | Minutes |
|---|---|---|---|
| Paul Bernardoni | 1 | 0 | 0 |
| Alex Schalk | 1 | 3 | 0 |
| Kastriot Imeri | 1 | 1 | 0 |
| Arial Mendy | 1 | 1 | 0 |
| Vincent Sasso | 1 | 0 | 0 |
| Alexis Antunes | 1 | 1 | 0 |
| Grejohn Kyei | 1 | 1 | 0 |
| Nicolas Vouilloz | 2 | 0 | 0 |
| Moussa Diallo | 1 | 0 | 0 |
| Anthony Briançon | 2 | 0 | 0 |
| Yoan Severin | 2 | 0 | 0 |
| Steve Rouiller | 1 | 1 | 0 |
| Timothé Cognat | 2 | 0 | 0 |
| Rachid Alioui | 2 | 0 | 0 |
| Sofiane Alakouch | 2 | 0 | 0 |
| Miroslav Stevanovic | 1 | 6 | 0 |
| Téji Savanier | 2 | 1 | 0 |
| Jérémy Frick | 1 | 0 | 0 |
Single-season peaks across competitions in this player's career.
Top goalscoring seasons
| Season | Competition | Club | Goals | Matches |
|---|---|---|---|---|
| 24/25 | Ligue 2 | Grenoble Foot 38 | 4 | 28 |
| 20/21 | Super League | Servette FC | 4 | 33 |
| 23/24 | Ligue 2 | Grenoble Foot 38 | 3 | 26 |
Top assist seasons
| Season | Competition | Club | Assists | Matches |
|---|---|---|---|---|
| 20/21 | Super League | Servette FC | 10 | 33 |
| 24/25 | Ligue 2 | Grenoble Foot 38 | 3 | 28 |
| 17/18 | Ligue 2 | Nîmes Olympique | 2 | 33 |
Last 50 matches for Grenoble Foot 38 The Availability column cross-references our injury database — matches inside a known injury window are flagged INJURED. Per-match goal attribution requires a paid feed (FBref/Sofascore) and isn't wired up yet.
| Date | Comp | Home | Score | Away | Availability |
|---|---|---|---|---|---|
| 2025-11-01 | FR2 |
Amiens SC | 2–3 | Grenoble Foot 38 | Available |
| 2025-10-28 | FR2 |
Grenoble Foot 38 | 0–0 | EA Guingamp | Available |
| 2025-10-24 | FR2 |
Red Star FC | 1–0 | Grenoble Foot 38 | Available |
| 2025-10-17 | FR2 |
Grenoble Foot 38 | 1–1 | Pau FC | Available |
| 2025-10-04 | FR2 |
Stade de Reims | 2–4 | Grenoble Foot 38 | Available |
| 2025-09-26 | FR2 |
Grenoble Foot 38 | 0–0 | SC Bastia | Available |
| 2025-09-23 | FR2 |
Le Mans FC | 1–0 | Grenoble Foot 38 | Available |
| 2025-09-19 | FR2 |
Grenoble Foot 38 | 1–3 | FC Annecy | Available |
| 2025-09-13 | FR2 |
Grenoble Foot 38 | 1–0 | USL Dunkerque | Available |
| 2025-08-30 | FR2 |
AS Saint-Étienne | 1–1 | Grenoble Foot 38 | Available |
| 2025-08-22 | FR2 |
Clermont Foot 63 | 2–1 | Grenoble Foot 38 | Available |
| 2025-08-15 | FR2 |
Grenoble Foot 38 | 1–1 | Stade Lavallois | Available |
| 2025-08-09 | FR2 |
ESTAC Troyes | 2–1 | Grenoble Foot 38 | Available |
| 2025-05-10 | FR2 |
FC Annecy | 3–1 | Grenoble Foot 38 | INJURED Injury to the ankle |
| 2025-05-02 | FR2 |
Grenoble Foot 38 | 3–1 | ESTAC Troyes | Available |
| 2025-04-25 | FR2 |
SC Bastia | 2–3 | Grenoble Foot 38 | Available |
| 2025-04-18 | FR2 |
USL Dunkerque | 2–0 | Grenoble Foot 38 | Available |
| 2025-04-12 | FR2 |
Grenoble Foot 38 | 1–2 | Paris FC | Available |
| 2025-04-04 | FR2 |
Stade Lavallois | 1–2 | Grenoble Foot 38 | Available |
| 2025-03-29 | FR2 |
Grenoble Foot 38 | 1–2 | FC Lorient | Available |
| 2025-03-14 | FR2 |
Clermont Foot 63 | 0–0 | Grenoble Foot 38 | Available |
| 2025-03-07 | FR2 |
Grenoble Foot 38 | 2–2 | AC Ajaccio | Available |
| 2025-02-28 | FR2 |
Pau FC | 1–0 | Grenoble Foot 38 | Available |
| 2025-02-21 | FR2 |
Grenoble Foot 38 | 1–1 | EA Guingamp | Available |
| 2025-02-14 | FR2 |
Amiens SC | 1–4 | Grenoble Foot 38 | Available |
| 2025-02-07 | FR2 |
Grenoble Foot 38 | 0–0 | Red Star FC | Available |
| 2025-01-31 | FR2 |
Grenoble Foot 38 | 2–1 | Rodez AF | Available |
| 2025-01-24 | FR2 |
FC Metz | 3–0 | Grenoble Foot 38 | Available |
| 2025-01-17 | FR2 |
Grenoble Foot 38 | 1–0 | FC Martigues | Available |
| 2025-01-11 | FR2 |
SM Caen | 0–1 | Grenoble Foot 38 | Available |
| 2025-01-03 | FR2 |
Grenoble Foot 38 | 3–2 | SC Bastia | Available |
| 2024-12-14 | FR2 |
Red Star FC | 3–1 | Grenoble Foot 38 | Available |
| 2024-12-07 | FR2 |
Grenoble Foot 38 | 0–2 | Amiens SC | Available |
| 2024-11-22 | FR2 |
ESTAC Troyes | 0–0 | Grenoble Foot 38 | Available |
| 2024-11-08 | FR2 |
Grenoble Foot 38 | 0–1 | USL Dunkerque | INJURED Broken toe |
| 2024-11-02 | FR2 |
EA Guingamp | 3–0 | Grenoble Foot 38 | INJURED Broken toe |
| 2024-10-29 | FR2 |
Grenoble Foot 38 | 0–0 | FC Annecy | INJURED Broken toe |
| 2024-10-26 | FR2 |
Paris FC | 2–1 | Grenoble Foot 38 | INJURED Broken toe |
| 2024-10-18 | FR2 |
Grenoble Foot 38 | 2–0 | FC Metz | INJURED Broken toe |
| 2024-10-04 | FR2 |
Rodez AF | 2–1 | Grenoble Foot 38 | Available |
| 2024-09-27 | FR2 |
Grenoble Foot 38 | 3–0 | Clermont Foot 63 | Available |
| 2024-09-24 | FR2 |
AC Ajaccio | 2–0 | Grenoble Foot 38 | Available |
| 2024-09-20 | FR2 |
FC Martigues | 0–4 | Grenoble Foot 38 | Available |
| 2024-09-16 | FR2 |
Grenoble Foot 38 | 3–1 | SM Caen | Available |
| 2024-08-30 | FR2 |
Grenoble Foot 38 | 1–1 | Pau FC | Available |
| 2024-08-24 | FR2 |
FC Lorient | 2–0 | Grenoble Foot 38 | Available |
| 2024-08-16 | FR2 |
Grenoble Foot 38 | 2–1 | Stade Lavallois | Available |
| 2024-05-17 | FR2 |
Grenoble Foot 38 | 1–3 | Amiens SC | Available |
| 2024-05-10 | FR2 |
AC Ajaccio | 1–2 | Grenoble Foot 38 | Available |
| 2024-05-03 | FR2 |
Grenoble Foot 38 | 2–1 | US Concarneau | Available |
Teams faced most often by Théo Valls's clubs during seasons he played in those competitions (team-level results, not personal head-to-head goals — see disclaimer above).
| Opponent | P | W | D | L | GF | GA | GD | Win % |
|---|---|---|---|---|---|---|---|---|
| Amiens SC | 18 | 6 | 4 | 8 | 24 | 29 | -5 | 33% |
| Valenciennes FC | 18 | 11 | 2 | 5 | 30 | 20 | +10 | 61% |
| Paris FC | 17 | 2 | 3 | 12 | 10 | 27 | -17 | 12% |
| Chamois Niortais | 16 | 9 | 4 | 3 | 27 | 15 | +12 | 56% |
| EA Guingamp | 16 | 3 | 7 | 6 | 16 | 23 | -7 | 19% |
| BSC Young Boys | 16 | 5 | 5 | 6 | 17 | 17 | 0 | 31% |
| FC Lugano | 16 | 7 | 6 | 3 | 23 | 15 | +8 | 44% |
| AC Ajaccio | 16 | 5 | 3 | 8 | 19 | 23 | -4 | 31% |
| SM Caen | 16 | 8 | 2 | 6 | 21 | 20 | +1 | 50% |
| Havre AC | 16 | 5 | 4 | 7 | 12 | 15 | -3 | 31% |
| Rodez AF | 15 | 7 | 4 | 4 | 17 | 15 | +2 | 47% |
| FC Zürich | 15 | 9 | 2 | 4 | 29 | 15 | +14 | 60% |
Auto-detected milestones based on cumulative career totals.
| Season / Year | Milestone | Date |
|---|---|---|
| 14/15 | Senior debut season | |
| 16/17 | First senior goal |
Yellow / second-yellow / red cards per season. Only seasons with at least one card are shown.
| Season | Matches | Mins | YC | 2nd YC | RC | Cards / 90′ |
|---|---|---|---|---|---|---|
| 24/25 | 30 | 742 | 1 | 0 | 0 | 0.12 |
| 23/24 | 27 | 663 | 1 | 0 | 0 | 0.14 |
| 22/23 | 30 | 243 | 2 | 0 | 0 | 0.74 |
| 21/22 | 37 | 2,326 | 4 | 0 | 0 | 0.15 |
| 20/21 | 35 | 680 | 3 | 0 | 0 | 0.4 |
| 19/20 | 24 | 1,641 | 1 | 0 | 1 | 0.11 |
| 18/19 | 33 | 0 | 2 | 0 | 0 | 0 |
| 17/18 | 37 | 2,108 | 5 | 0 | 0 | 0.21 |
| 16/17 | 34 | 1,014 | 5 | 0 | 0 | 0.44 |
| 15/16 | 25 | 0 | 3 | 0 | 0 | 0 |
| 14/15 | 7 | 0 | 1 | 0 | 0 | 0 |
Output by competition
Career goals and assists broken down by tournament.
More on Théo Valls
Explore this player's career through different angles.
Similar players
Same position, similar age, sorted by market value.
Frequently asked about Théo Valls
Who is Théo Valls?
Théo Valls is a France professional footballer who plays as a central midfield for Grenoble Foot 38.
How old is Théo Valls?
Théo Valls is 30 years old. He was born on December 18, 1995 in Nîmes.
What position does Théo Valls play?
Théo Valls plays as a central midfield (Midfield - Central Midfield).
What club does Théo Valls play for?
Théo Valls currently plays for Grenoble Foot 38.
How many career goals has Théo Valls scored?
Across all senior club competitions in our dataset, Théo Valls has scored 24 goals in 323 appearances.
What is Théo Valls's market value?
Théo Valls's most recent reported market value is €900k.
France