LATENT
ReportPlayer Report
ReferenceLTN-26-787905
Data through15 Aug 2026
Sample · not a commissioned report

Bartosz Wolski

ClubGKS Katowice
PositionMidfielder
Age29
Height174 cm
NationalityPoland
The verdict

Complete attacking midfielder · ready for a league above the Ekstraklasa · €300k–€400k

Bartosz Wolski is a 29-year-old midfielder at GKS Katowice. His statistical profile reads as a complete attacking midfielder. In 25/26: 34 appearances, regular starter.

His Level of 1289 is well above the average for an Ekstraklasa midfielder. On that gap he is ready for a league above the Ekstraklasa.

He should cost €300k–€400k, a band drawn from 5 comparable transfers, against a recorded market value of €800k.

The strongest thing in the file is key passes: 92nd percentile among 176 midfielders in the Ekstraklasa, 25/26. The weakest is pass accuracy, 40th in the same group.

Career development

Transfermarkt

1 completed outgoing move on record across 2026: 1 permanent, 0 loans, 0 permanent moves abroad.

Completed moves
1
2026
Permanent / loans
1 / 0
none abroad
Value at last move
€800k
Transfermarkt, 2026
SeasonMoveCountryFeeMarket valueAge
2026Motor Lublin → GKS KatowicePoland€100k€800k29

Market value is the Transfermarkt estimate at the time of the move, not a fee. “not recorded” means the source holds no figure - it never means zero.

Season data places him at GKS Katowice in the Ekstraklasa as of 26/27.

Latent Level vs league

SofaScore event data

The Latent Level is one number comparable across our seven leagues: a performance composite, adjusted for opponent strength within the league and for the league's own strength - calibrated on how players from each league actually fared after moving, not on reputation. It is an index, not a percentile or a percentage, and cohort averages differ by competition - so it is only readable next to the positional average printed beside it.

Latent Level
1289
534 above the positional average
Positional average
755
the average EKS midfielder, 25/26
Method
level-v1.1
2 seasons of Level history

His Level of 1289 is well above the average for an Ekstraklasa midfielder. That average is drawn from 176 midfielders who played at least 270 minutes in the Ekstraklasa in the 2025/26 season.

Latent Level by season

EKS 24/251040EKS 25/261289

Validation

Higher-Level players have sold for higher fees: rank correlation +0.28 across 223 sales abroad with a disclosed fee. The Level is a weak guide to playing time after a move: 36% of top-quartile players got at least 15 full matches of league football in a season at their new club, against 29% from the bottom quartile.

The full backtest, with sample sizes, correlations and quartile hit rates, is printed in the Stated limits & methodology section at the end of this report.

Current season: Ekstraklasa 26/27

Raw numbers only: 145 minutes, 2 matches (2 starts), 0 goals, 0 assists.

Sample too small to rank. Percentiles are published only once a player passes 270 minutes in a season; nothing below that gate is ranked anywhere in this report. His full ranked profile, from his last complete season, follows.

Every percentile below ranks Bartosz Wolski within the group of 176 midfielders who played at least 270 minutes in the Ekstraklasa in the 2025/26 season - his last complete season with a sample big enough to rank. He is compared only with players from his own league, season and position, never across leagues or divisions.

Sample
2,868
34 matches, 34 starts
Peer group
176
midfielders with 270+ minutes, EKS 25/26
Goals + assists
6+6
one every 239′

A percentile places him inside the peer group named above: 80 means he ranks above 80 percent of that group on the metric, and 50 is the middle of the pack. Sky bars mark clear strengths (70 or higher), dark bars clear weaknesses (30 or lower); the faded bars sit in between. Grey bars count volume - how much of something he does, not how well - so a longer grey bar is not automatically better. “—” means no rank is published for that metric: the sample behind it is too small, or the metric is covered for only part of the season, so a percentile would mislead. “not recorded” means the competition does not collect that stat.

Goalsclear strength in this group
0.19 /90
79
Assistsclear strength in this group
0.19 /90
83
Shots
1.26 /90
43
Shots on target
0.53 /90
67
Shot conversionclear strength in this group
15.0%
87
Shot accuracyclear strength in this group
42.5%
87
Key passesclear strength in this group
2.13 /90
92
Progressive carries
2.13 /90
Pass accuracy
79.0%
40
Ball recoveries
4.58 /90
64
Touchesvolume: how much, not how well
57.74 /90
71
Duels contestedvolume: how much, not how well
7.28 /90
14
Duel win rateclear strength in this group
56.0%
87
SeasonClubLeagueMinGoals/90Assists/90Shots/90KP/90Pass %Duel win %
24/25Motor LublinEKS (tier 1)2,9660.060.211.002.5280.0%48.7%
25/26Motor LublinEKS (tier 1)2,8680.190.191.262.1379.0%56.0%
26/27GKS KatowiceEKS (tier 1)14584.7%57.1%

“—” = rate not computed: the sample is below the minutes threshold for that season. It is withheld rather than shown as zero.

Transfer analysis

Destination shortlist

His own record holds no permanent move abroad yet. Fees paid for him so far: €100k to GKS Katowice.

Zulte Waregem · BEL · Belgium

The gap. MF group is 5 deep against a league median of 8, 2 contracts up by Jun 2027.

Why it is realistic. A step up in club level (Zulte Waregem squad averages €1.0m a player vs €549k at his current club), and 15 Poland to Belgium moves already on record.

The cost. Comparable moves went for €2.0m–€3.5m (from 3 paid transfers into Belgium).

FC Slovan Liberec · CZE · Czech Republic

The gap. MF group is 9 deep against a league median of 10, 1 contract up by Jun 2027.

Why it is realistic. A step up in club level (FC Slovan Liberec squad averages €892k a player vs €549k at his current club), and 33 Poland to Czech Republic moves already on record.

The cost. Comparable moves went for €100k–€2.5m (from 6 paid transfers into Czech Republic); most corridor moves were free transfers.

SK Beveren · BEL · Belgium

The gap. MF group of 9, 3 contracts up by Jun 2027.

Why it is realistic. A step up in club level (SK Beveren squad averages €906k a player vs €549k at his current club), and 15 Poland to Belgium moves already on record.

The cost. Comparable moves went for €2.0m–€3.5m (from 3 paid transfers into Belgium).

SK Sigma Olomouc · CZE · Czech Republic

The gap. MF group of 12, 2 contracts up by Jun 2027.

Why it is realistic. A step up in club level (SK Sigma Olomouc squad averages €908k a player vs €549k at his current club), and 33 Poland to Czech Republic moves already on record.

The cost. Comparable moves went for €100k–€2.5m (from 6 paid transfers into Czech Republic); most corridor moves were free transfers.

RAAL La Louvière · BEL · Belgium

The gap. MF group of 11, 6 contracts up by Jun 2027.

Why it is realistic. A step up in club level (RAAL La Louvière squad averages €940k a player vs €549k at his current club), and 15 Poland to Belgium moves already on record.

The cost. Comparable moves went for €2.0m–€3.5m (from 3 paid transfers into Belgium).

Ferencvárosi TC · HUN · Hungary

The gap. MF group of 12, 2 contracts up by Jun 2027.

Why it is realistic. A step up in club level (Ferencvárosi TC squad averages €902k a player vs €549k at his current club), and 19 Poland to Hungary moves already on record.

The cost. Comparable moves went for €158k–€375k (from 6 paid transfers into Hungary); most corridor moves were free transfers.

NK Istra 1961 · CRO · Croatia

The gap. MF group is 6 deep against a league median of 9, 3 contracts up by Jun 2027.

Why it is realistic. A lateral in club level (NK Istra 1961 squad averages €522k a player vs €549k at his current club), and 19 Poland to Croatia moves already on record.

The cost. Comparable moves went for €450k–€850k (from 5 paid transfers into Croatia); most corridor moves were free transfers.

Slovan Bratislava · SVK · Slovakia

The gap. MF group is 7 deep against a league median of 8, 3 contracts up by Jun 2027.

Why it is realistic. A step up in club level (Slovan Bratislava squad averages €1.1m a player vs €549k at his current club), and 40 Poland to Slovakia moves already on record.

The cost. No comparable paid transfer on record to price this move; most corridor moves were free transfers.

Each card's cost line is what completed moves on that route have gone for - it prices the route, not the player. The recommended range for Bartosz Wolski himself is €300k–€400k, from his closest comparable transfers (Valuation & comps). Where a route's band sits above it, that is the destination market's price level, not a higher valuation of him.

Style profile & similar players

Style engine

Bartosz Wolski is a Complete attacking midfielder. Below: his nearest statistical neighbours side by side, then the ones who earned a move and what it cost.

Archetype
Complete attacking midfielder
key passes 92nd · duel win rate 87th · conversion 87th
Similar players
10
nearest neighbours, same league + position
With a completed move
10
each move and fee below

Style vector

goalsshot volumeshots on targetconversionshot accuracyassistskey passestoucheslong ballspass accuracyrecoveriesclearancesduel volumeduel win rate
ShootingPassing & creationDefensive work

Axes are percentiles among 176 midfielders in Ekstraklasa 25/26. Related metrics sit on the same arc, so the shape reads as a style: it describes how he plays, not how good he is.

Nearest statistical neighbours

PlayerClubconversionshot accuracykey passesassistsduel win raterecoveriesSimilarity
Bartosz WolskiGKS Katowice878792838764
Jean Carlos SilvaRaków Częstochowa92888380857289
Fran ÁlvarezWidzew Łódź82528860866789
Filip StarzyńskiZagłębie Lubin88859557703886
Ali GholizadehLech Poznań96739093649085
Michał ChrapekPiast Gliwice80589359372784
Karol KnapKS Cracovia87579078434584
Marko BulatRaków Częstochowa70757670764284
Mikkel MaigaardKS Cracovia79569577699284
Roberto AlvesRadomiak Radom96729589424484
Bartosz KapustkaLegia Warszawa75908181364384

Similarity is 0–100, computed from the full percentile vector shown above, within league and position. The stat columns are his most defining axes, two per category, as percentiles on the same scope as the radar. Method: comps v2.0 (2026-08-15).

Similar players who moved

PlayerMoved toSeasonFeeSeason before the moveSimilarityBiggest gap vs Bartosz Wolski
Filip StarzyńskiRuch Chorzow, Poland2023free transfer30 y · 1,860′ · 6 G 2 A86clearances 21 vs 50
Michał ChrapekRuch Chorzow, Poland2026free transfer32 y · 2,610′ · 6 G 3 A84duel win rate 37 vs 87
Karol KnapStal Mielec, Poland2024loan transfer22 y · 1,472′ · 4 G 3 A84duel win rate 43 vs 87
Mikkel MaigaardWieczysta, Poland2025€300k29 y · 2,736′ · 6 G 5 A84pass accuracy 77 vs 40
Jean Carlos SilvaRaków, Poland2022€400k26 y · 1,944′ · 4 G 3 A84duel volume 96 vs 14
Alexander GorgonSCR Altach, Austria2024free transfer35 y · 2,182′ · 8 G 4 A83duel volume 70 vs 14
Dominik KunArka Gdynia, Poland2026free transfer29 y · 2,128′ · 4 G 2 A83key passes 41 vs 92
Damian GąskaGornik Leczna, Poland2021?25 y · 1,752′ · 5 G 4 A83clearances 6 vs 50
Deian SorescuGaziantep FK, Türkiye2024€700k25 y · 703′ · 2 G 0 A83assists 18 vs 83
Jarosław KubickiGórnik Zabrze, Poland2025free transfer28 y · 1,135′ · 1 G 3 A82pass accuracy 97 vs 40

Every player here profiles close to Bartosz Wolski and completed a real move on record: the fee is what that profile fetched, and the season column is what he was producing when it happened. Most of these moves stayed inside Poland: the table prices domestic demand for the profile; the case for a move abroad rests on the corridor evidence in Transfer analysis.

Form & usage

Match-by-match

How Bartosz Wolski is trending match by match in the EKS 25/26 - not the season average, but the direction of travel. Each reading is his trailing 10 appearances, a window wide enough to smooth one-game noise while still moving when his level does, with every match weighed by opposition difficulty.

This log covers his 25/26 season at Motor Lublin - before his move to GKS Katowice, whose fixtures can therefore appear here as opposition.

Appearances
34
34 starts, 0 as sub
Start rate
100%
of his club's finished matches
Full 90s
62%
of his starts completed

Usage pattern: regular starter · 84′ average when starting · 94% of his club's available minutes.

Goals + assists /90

00.360.7310-0511-0812-1402-2003-2004-2605-230.73

Shots /90

0.991.231.4610-0511-0812-1402-2003-2004-2605-231.46

Key passes /90

1.692.12.5210-0511-0812-1402-2003-2004-2605-231.87

Duel win rate

51.4%57.05%62.7%10-0511-0812-1402-2003-2004-2605-2354.9%

Ball recoveries /90

3.834.655.4710-0511-0812-1402-2003-2004-2605-234.27

Pass accuracy

74.9%79.45%84%10-0511-0812-1402-2003-2004-2605-2375.9%

Trailing rate over the last 10 appearances, every match weighed by opposition difficulty. A gap in a line means the window fell below the minutes gate for that stat - withheld rather than invented, never zero.

DateOpponentResultOpp. difficultyMinGARole
2026-02-15KS Lechia Gdańsk (H)L 2-30.9385′10start
2026-02-20Piast Gliwice (A)W 2-10.8953′01start
2026-02-28MKS Korona Kielce (H)W 2-00.9390′00start
2026-03-08Górnik Zabrze (H)D 0-01.2190′00start
2026-03-13Bruk-Bet Termalica Nieciecza (A)W 2-10.7390′10start
2026-03-20Zagłębie Lubin (H)W 1-01.0490′00start
2026-04-06Radomiak Radom (A)D 1-10.9584′00start
2026-04-12Raków Częstochowa (H)D 1-11.1979′00start
2026-04-17GKS Katowice (A)L 2-31.0890′10start
2026-04-26Widzew Łódź (A)L 0-20.9172′00start
2026-05-02Lech Poznań (H)L 0-11.3090′00start
2026-05-10Wisła Płock (A)W 4-00.9990′12start
2026-05-16KS Cracovia (H)D 3-30.9190′11start
2026-05-23Legia Warszawa (A)L 0-41.0690′00start

Opposition difficulty is the opponent's points-per-match from our own finished results, 1.0 = league average - a per-match weight, never a league table; “—” = under 5 matches played. Showing the 14 most recent of 34 appearances.

Availability, not injury data

A gap in the match log means his club played without him - that is all our data records. The reason (selection, fitness, registration) is not recorded, and we do not guess at it.

Continental evidence

UEFA club competitions

Bartosz Wolski has no UEFA club-competition appearance in our continental package (2018–2026 group stages onward and qualifying where covered).

That absence is informative in itself: any projection to export-level opposition rests on league data alone, and the rest of this report treats it that way.

Valuation & comps

Value engine

What Bartosz Wolski should cost, grounded in what comparable players actually cost. His market value is set against a performance model built on his own age and position group (n=1,236); the range below comes from 30 comparable transfers with recorded fees, not from optimism.

Market value
€800k
Transfermarkt estimate
Performance-predicted value
€720k
market value 11% above what his output predicts
Recommended range
€300k–€400k
IQR of the 5 closest of 30 comps · anchor: market value

Fee comps

recommended €300k–€400k€0€1.5m€3m252627282930moved abroadstayed in the marketage at transferfee

Shaded band = the recommended fee range. Filled points moved abroad; hollow points stayed in the same market. Stronger points are closer statistical matches; the closest set the range.

PlayerMoveFeeAgeSeason
Damian RasakGórnik Zabrze → Újpest FC€300k282024
Erik JirkaPiast Gliwice → GKS Katowice€400k282025
Djihad BizimanaKryvbas Kryvyi Rig → Al-Ahli€300k282024
Jin-hyun LeePuszcza Niepolomice → Ulsan HD€250k272024
Dani RamírezLKS Lodz → Lech Poznan€500k272019
Rifet KapicKryvbas Kryvyi Rig → Valmiera€500k282023
Mikkel MaigaardCracovia → Wieczysta€300k302025
Damian DąbrowskiPogon Szczecin → Zaglebie Lubin€250k302023
Oskar RepkaGKS Katowice → Raków€700k262025
Karlo MuharLech Poznan → CFR Cluj€100k262022
Maxime DominguezRaków Częstochowa → Gil Vicente€200k272023
NenéJagiellonia Bialystok → YN Yukun€400k292024
Bartosz NowakGórnik Zabrze → Raków€400k282022
Jesús ImazWisla Kraków → Jagiellonia€100k282018
Daniel LukasikLechia Gdansk → Ankaragücü€250k292020
Jean Carlos SilvaPogon Szczecin → Raków€400k262022
Mateusz WdowiakRaków Częstochowa → Zaglebie Lubin€150k262023
Michal JanotaArka Gdynia → Al-Fateh€400k282019
Pablo ÁlvarezKarpaty Lviv → Aktobe€150k282025
Bartłomiej PawłowskiZaglebie Lubin → Gaziantep FK€650k262019
Aschraf El MahdiouiWisla Kraków → Al-Taawoun€2.4m252021
Andriy TotovytskyiKolos Kovalivka → Shakhtar D.€500k292022
Bruno JordãoRadomiak Radom → CSKA Sofia€500k262025
Jesper KarlströmLech Poznan → Udinese€2m292024
Sergiy BuletsaDynamo Kyiv → FC Oleksandriya€500k262024
Hrvoje BabecRiga FC → NK Osijek€300k252025
Ryoya MorishitaLegia Warszawa → Blackburn€2.1m282025
Afonso SousaLech Poznan → Samsunspor€3m252025
Damian KądziorGórnik Zabrze → Dinamo Zagreb€400k262018
BruninhoKarpaty Lviv → Maccabi Haifa€1.7m262026

Comps are completed transfers scored for closeness on age at the move, position, minutes load, output, the level of both leagues and recency; fees are as recorded, never asking prices. The recommended range is set by the closest matches, not the full spread plotted above: read it as what the market has recently paid for this profile. Method: comps v2.0 (2026-08-15).

Stated limits & methodology

How to read this report

Every number in this report is computed from sources we name, under rules we publish, with its gaps stated. What follows is the full list of methods and limits - including the things this report deliberately does not claim.

  • Percentiles. Computed within one league, one season, one position group, mid-rank with ties split. Published only when at least 10 players clear the minutes gate in that peer group (270′ in our top-flight coverage, 450′ in second-tier feeder coverage) - below that the percentile is withheld, never guessed. The peer-group n is printed beside every percentile in this report.
  • Missing is never zero. A metric a competition does not collect renders as “not recorded”; a rate whose sample is below the minutes gate renders as “—”. Neither is ever shown as zero, and no number in this report is imputed.
  • Cross-league comparisons. Raw percentiles are never compared across leagues or tiers. The only cross-league number we publish is the Latent Level, which is corridor-calibrated and backtested against post-move outcomes before it appears in any report.
  • Export Index. A composite score, not a percentile: an average of five outfield percentile components with a U-21 multiplier, so it can exceed 100. Goalkeepers carry no Export Index - it contains no goalkeeping.
  • Transfer history. From our own Transfermarkt-sourced transfer record. Where identity is matched by name rather than a verified ID, the report says so and does not present the history as fact.

The Latent Level backtest, in full

Section 2 states this as one claim; these are the complete figures behind it.

Backtested level-v1.1 on 522 abroad moves out of the seven covered leagues with a pre-move Level and Transfermarkt post-move league minutes (best of first two destination seasons, nominal 2700 min). Spearman(Level, minutes retention) = +0.069 raw; -0.013 against the retention residual once destination difficulty, loan status and age are accounted for (within-league composite alone: -0.024). 'Stuck' = >=1350 league minutes: top Level quartile 36% vs bottom quartile 29%. On step-up moves only (destination fitted stronger than origin): top-quartile 25% (n=83) vs bottom-quartile 25% (n=110). Identity join is by normalized name + birth-year (6 ambiguous names dropped); minutes retention is an availability-inclusive outcome - injuries count as failures. Secondary receipt: on 223 permanent exports with a disclosed fee, Spearman(pre-move Level, fee paid) = +0.278.

Level quartileLevel rangeMovesHitsHit rate
Q1 (lowest Level)101–4401323828.8%
Q2440–5871294232.6%
Q3587–7631304030.8%
Q4 (highest Level)763–13591314735.9%

A hit is at least 1,350 league minutes - fifteen full matches - in the player's best of his first two seasons at the destination club.

Not collected for these leagues

No provider records these for our coverage. This report will never claim them.

Event-location data. No xG, no heatmaps, no pass maps. Our sources do not carry ball coordinates for these leagues, and we do not model or fake them.

Physical data. No sprints, distances or top speeds. No source collects them for these leagues; any physical claim would be invented.

Not yet in our data

These exist at sources we already draw from but are not yet ingested. They are coverage gaps we intend to close; until then the report treats them as absent rather than guessing.

Contract terms. Contract-expiry dates exist at source but are not yet in our databases, so no figure in this report leans on contract length.

Injury and absence reasons. A gap in the match log means he was not on the pitch, and that is all it means - our data does not yet separate injury from non-selection.

Ball-carry coverage. The provider collects carry metrics for a minority of our competitions today. They appear only where a season's coverage is complete.

His coverage in our data

CompetitionTierSeasonSource
Ekstraklasa124/25per-match event data
Ekstraklasa125/26per-match event data
Ekstraklasa126/27per-match event data

Sources: SofaScore (per-match), Transfermarkt (market & transfers). Generated 2026-08-15. Questions about any figure in this report are welcome - every one is reproducible from the stated method.