Union Saint-Gilloens turned €185k of Wyscout credits into 38 league points last season. Their method: filter every Belgian second-tier forward older than 26, isolate those who hit >0.45 xG per 90, then cross-check against defensive actions inside the attacking third. The one name left, Ross Sykes, cost €0 and produced 18 open-play goals.
Brentford’s 2021 recruitment folder contained 11 CSV sheets, 4.7 GB of event data, and a single instruction: Find full-backs who under-hit pull-backs. Rico Henry arrived for €2.3 m, delivered 13 pre-assists, and the Bees banked €36 m profit after selling the move to bigger predators.
Action list: scrape free APIs (FBref, StatsBomb 360), build a 5-filter Python script-age, minutes, salary ceiling, xG+xA, defensive duels won-export the 30-row shortlist, then send a 45-second drone clip to the player’s WhatsApp. Deals close at 17 % of traditional broker fees.
Scouting Free-Agents Via xG Under-Performance Metrics

Filter for players aged 23-27, contract expiring within 12 months, non-penalty xG ≥7.5 per season and actual goals ≤5.5; the 2.0 gap flags finishing regression that usually corrects itself, giving you a 15-18 goal striker available on a free while rivals chase €10 m transfers.
Cross-check the shortlist against shot-type logs: exclude anyone whose under-performance stems from headers-those rarely revert-then run a five-season cohort; 68 % of flagged athletes beat their xG the next year, average swing +0.17 per 90, translating to 6-8 extra goals for a 2 700-minute campaign. Negotiate a base-plus-bonuses deal that starts below current wage bill but escalates with every goal past the xG par, protecting cash if the bounce-back stalls.
Last July, one Danish side grabbed a 25-year-old winger sitting on 6.3 xG and 3 goals; they paid €190 k signing-on, structured bonuses so that each additional goal beyond the 6.3 threshold added €35 k, and flipped him to Belgium for €3.4 m after a 12-goal season, banking 1 400 % profit and three months of European qualification prize money.
Compressing Match-Clips Into 90-Second Opposition DNA Dossiers
Export 8-10 micro-clips per opponent: every set-piece that ends inside the six-yard box, each 3-pass sequence that breaks your last line, and the single frame where the full-back leaves >3 m between himself and the centre-back. Tag the timestamp, freeze the frame, burn the clip to 0.75× speed, and overlay a 3-second heat-map; total editing time 11 min, file size 12 MB.
Drop everything else. Keepers’ distribution, midfield triangles, second-phase recoveries-gone. The 90-second cut must answer one question only: Where do they score from? Wyscout’s xG chain filter set to ≥0.25 filters 38 matches down to 42 shots; whittle those to 11 clips by deleting headers outside the rectangle (0.09 xG average). That subset predicts 71 % of their future goals.
Send the reel to players via WhatsApp compressed to 480p; data allowance 7 MB, buffers in 4 s on 3G. Pair each clip with a 5-word caption: Back-post drift, arrive late. University of Loughborough study shows retention jumps 28 % versus full-length video. Quiz the squad next morning; if ≥8/10 identify the runner, they’re ready.
Update weekly. Monday 06:00 run Python script that scrapes InStat’s new index, compares MD5 hash of last cut; if different, auto-triggers FFmpeg to slice fresh footage. Entire pipeline lives on a $45 Raspberry Pi 4, powered through the analyst’s car USB-C jack on the way to training. Power draw 3 W, job done before arrival.
One non-league side used this method versus a promotion rival who scored 19 goals from cut-backs. The 87-second montage revealed the same near-post block on the keeper every time. Keeper coach drilled his No.1 to hold the front post; next match the chance vanished, 0-0 became 1-0, six points swung, survival secured on the final day.
Turning U-23 Tracking Data Into Senior-Ready Sprint Budgets
Export the last 180 U-23 match-GPS files, isolate every >7.5 m/s burst, multiply its distance by metabolic power (using 0.25 kcal·m⁻¹·kg⁻¹), then divide weekly totals into four senior micro-cycles; any squad member whose 95th-percentile value exceeds 118 % of the U-23 top quartile gets a -9 % red-zone cap the following week, forcing coaches to swap him out of Tuesday small-sided games and preserving 1.3 mmol·L⁻¹ freshness for Saturday.
Keep the raw CSVs in a free GitHub repo; a single Python script (pandas, matplotlib) spits out a 30-row Excel sheet that lists each senior player, his rolling 28-day sprint cost, and the exact minute he should be subbed off to stay under the 234 kcal weekly ceiling the reserves proved sustainable.
Negotiating Performance-Only Bonuses Using Ball-Progression Stats
Target 0.35 progressive passes per 90 as the trigger; any midfielder who tops that line in 35 % of league minutes earns a €75 k bonus instead of a guaranteed wage rise. Wyscout labels the metric progressive passes/90; copy the raw CSV, filter for minutes > 700, and you have a bargaining chip that costs zero to track.
Centre-backs rarely reach that threshold, so set the bar at 0.18 and attach the same cheque. The squad will accept split thresholds because the cash only moves if the numbers move. Last year Union Saint-Gilloise paid exactly €0 in centre-back bonuses; the defenders still raised their output from 0.12 to 0.17 once the clause was on paper.
| Position | Threshold (prog passes/90) | Bonus | € Paid 22/23 |
|---|---|---|---|
| CM | 0.35 | 75 k | 150 k |
| CB | 0.18 | 75 k | 0 |
| FB | 0.30 | 50 k | 100 k |
Add a second hinge: if the player also records 0.12 progressive runs/90, the bonus doubles. That combination occurred only 19 times in the whole 22/23 Championship season, so the risk stays microscopic while the dressing-room sells it as stackable upside.
Agents push for appearance fees; counter with a 5 k payout for every match in which the player hits six progressive passes. A single successful game cheque equals 10 % of a week’s salary for a €2.5 k earner, yet six progressives happen in 38 % of fixtures, so the effective raise is 1.9 k per week-cheaper than the 3 k the agent first asked.
Keep the clause running only for league minutes; cup stats inflate against weaker foes and players cherry-pick fixtures. Exclude play-off games outright-those six high-stakes matches can trigger €450 k in surprise payments and wipe out the summer surplus.
Print the metric definition into the appendix: pass that moves the ball 30 % closer to goal and starts outside the defensive third. Without the wording, a creative lawyer will argue that square balls across halfway count and you will spend more on lawyers than midfielders.
Auto-Tagging Set-Piece Clips For 3-Pattern Routines In One Afternoon
Feed 1 847 corner-kick clips into a free Colab YOLOv8 notebook, run the 12-line detection cell, export CSV columns: matchID, half, minute, xStart, yStart, inswinger/Outswinger, near/far zone, 1st-contact header yes/no; the whole cycle finishes in 38 min on a 2018 laptop. Pipe the CSV to a short FFmpeg script that slices the source video into 6-second snippets named corner_pattern_X.mp4. Open the folder in VLC, sort by filename, tag three attacking routines manually: near-post flick (code 301), edge-of-box recycle (302), back-post stack (303); the remaining 92 % inherit the tag if cosine similarity of player coordinates exceeds 0.91, saving two tagging hours.
- Keep only clips where ball speed before delivery < 14 m s⁻¹ and ≥ 3 attackers enter the 18-y box; precision jumps from 0.74 to 0.89.
- Store the labelled clips in a GitHub private repo; next opponent scout clones it, runs
grep 301 *.jsonand gets 42 near-post flicks in 9 s. - Export freeze-frame PNGs at contact point, run ImageMagick
compare -metric RMSE; RMSE < 650 auto-tags duplicates, trimming the playlist to 11 unique threats.
Replacing GPS Vests With $40 Smartbands Without Losing Key Metrics
Swap the $1 200 vest for a Xiaomi Mi Band 7, flash the Zepp firmware to 1.4.38, and you still collect 95 % of the distance, speed and accel events that Catapult promises. Calibrate the band’s 50 Hz IMU against a 10 m flying sprint, store the .fit file offline, then run the open-field parser in Python; the RMSE against the vest drops to 0.07 m·s⁻¹.
Clip the sensor to the player’s non-dominant wrist, not the boot. The wrist gives cleaner yaw signal because arm swing range is tighter than foot impact noise. Tape a second band on the sternum if you need heart-load; both streams sync over BLE 5.0 with <0.5 s drift. One U-19 squad in Cork did this for 28 matches; soft-tissue strains fell 18 % compared with the previous season using only RPE.
- Export the raw 16 g accelerometer burst at 200 Hz before the firmware downsamples.
- Apply a 4th-order Butterworth at 15 Hz to kill hand chatter.
- Feed the magnitude vector into a 0.6 g threshold to flag repeated sprints; the count correlates r = 0.91 with league-level tracking.
Battery lasts 12 days if you disable SpO₂ and lift the screen brightness cap to 5 %. Charge 20 units from a single 65 W USB-C hub overnight; total draw is 7 W·h. A club taking two bands per squad member spends <$800 for the entire year-less than one month’s vest rental.
Cloud storage is optional. Push the .csv to a $5 Raspberry Pi Zero on the bench; the Pi hosts a Node-RED dashboard that plots live metabolic power using di Prampero’s 2015 equation. Staff can tag red-zone entries with one click; exports land straight into any SQL schema. The same Pi doubles as a local replay server, so analysts can clip footages without internet.
One caveat: FIFA-approved games still need the official EPTS device. Keep two league-grade vests for starters, bench the rest. Rotate the cheap bands on non-TV fixtures and training; cumulative load numbers stay within ±3 % of the full system. https://sports24.club/articles/bills-have-several-keon-coleman-questions-to-answer-this-offseason-and-more.html
FAQ:
Which single metric gives the cheapest clubs the quickest hint that a player might become a bargain?
Expected goals assisted per 90 minutes plus progressive passes per 90. A midfielder who ranks in the top 15 % of his league in both numbers is usually creating danger without the final touch that pushes his price tag through the roof. Clubs like Union Saint-Gilloise have bought non-scoring wide players for under €400 k using that filter and sold them for eight-figure fees twelve months later.
Our scouting budget is tiny. How do we collect data ourselves instead of buying expensive feeds?
Start with what you can film. Two 4K phones on tripods behind each goal are enough to track ball and player positions. Free Python libraries such as Kloppy and StatsBomb’s open data let you turn those clips into xG, pass maps and defensive-line height. A university intern group can tag one full match in under four hours; at semi-pro level that still gives you an edge because nobody else is doing it. One Norwegian third-tier side saved 90 % of its former analyst bill this way and gained 13 points in the next season.
How do we know the numbers are reliable when the league quality is so low?
Cross-check everything against opponent-adjusted models. Build a small Bayesian prior that says a shot taken against the top-four sides is worth x % more than one taken against relegation teams. After ten matches the model calms down; your xG error drops from ±0.35 to ±0.12 goals per match. Publish the uncertainty bands inside the dressing room so coaches see a range instead of pretending the decimal is gospel.
We can’t afford a full data team. What is the minimal staff setup that still works?
One analyst who codes, one scout who trusts video, and a coach willing to run live tablets on the bench. Give the analyst 40 % of a full-time wage and the freedom to work remotely; the scout doubles as opposition video editor. On match-day the coach receives only three numbers: pack density (how many opponents are behind the ball), xG chain for the current striker, and rest time since last sprint for each starter. Those three indicators decide substitutions 80 % of the time, so you do not need a bigger bench crew.
Can you give a real example where the data pointed to a tactical tweak that saved a club from relegation?
2019-20 Luton Town. Their xG against from set pieces was the worst in the Championship. Tracking data showed they cleared only 38 % of corners past the near-post zone. Analyst Dan Pelc built a heat map, convinced the coach to leave two men on the edge of the box instead of man-marking at the front post. Clearances rose to 62 %, goals conceded from corners dropped from ten to two in the second half of the season, and the extra seven points kept them up on the last day.
