FC SEOUL 2026 · ROUNDS 1–25 · ATTACKING PHASE

Everyone gets the ball
to the same place

FC Seoul are a team of five-goal days and no-goal days. But getting the ball into the central area in front of goal looked the same on both. The difference came after that, and the public data could not explain it. This is a record of how far the numbers go, where they stop, and what should be measured at the point where they stop.

Hyukjin HanAugust 202634,518 events across 25 matchesSource: K League Data Portal

THE SHORT VERSION

  1. Of the 43 goals scored by Seoul players themselves, 40 came from one cell — the centre of the box (zone 17). But the share of box entries reaching that cell is 72% for Seoul and 69% for the eleven opponents. Nothing distinguishes Seoul up to that point.
  2. The difference is what happens after arrival. Ranking all 25 matches by the xG each delivery produced, the top ten went 10W 0D 0L and the bottom ten 3W 5D 2L.
  3. And the side that delivered more scored one fifth as many goals — 20.7 deliveries and 33 goals against 30.0 deliveries and 6 goals.
  4. I tested every attribute the event data holds: where the cross came from, where it landed, its type, the structure preceding it. Top and bottom matches look nearly identical. Only the outcome differs, fourfold.
  5. The remaining variable exists only on video — whether the player was free at the moment of delivery. The piece closes with a way to measure it.

01The question

Why does the same team score five one week and none the next?

FC Seoul scored 47 goals through round 25: 43 from open play, 2 from free-kicks, 1 penalty and 1 opposition own goal. The spread between matches is wide. A side that won 7-0 at Anyang (R24) and 5-0 at home to Gwangju (R05) also failed to score in four matches against Jeonbuk, Gangwon, Gimcheon and Anyang.

In the 16 matches where they scored first, Seoul went 15W 1D 0L. In the five where they conceded first, 1W 4L. All four goalless matches were draws. This team wins whenever it scores. So the question narrows to one thing: what is different about the days they score?

This piece covers the attacking phase only. I also tested the defensive transition, but once match status is controlled for, matches with more crosses actually conceded fewer goals (r = −0.298). The problem was not conceding; it was scoring. That is why the scope was narrowed. The verification is documented separately.

02A first hypothesis, and its rejection

"Seoul use the middle of the box well" — the data said no

Watching the matches, my first read was this: Seoul get bodies into the middle of the box well. R09, the 3-0 win over Bucheon, was the clearest case — four players arriving in front of goal at once in the 84th minute.

To test that, "the middle of the box" has to become a coordinate. On the standard 18-zone grid — six columns by three rows — the central cell in front of goal is called zone 17: X ≥ 83.3, Y between 33.3 and 66.7.

zone 17Own half ← attacking direction → opposition goal40 goals inside zone 173 outside
Fig 1 · The standard 18-zone grid — six columns by three rows. The central cell in front of goal is zone 17. Of the 43 goals scored by Seoul players themselves, 40 (93%) came from this one cell. Hover a dot for match details.

Seoul's goals do cluster in that one cell: 40 of 43 (93%). So do Seoul use it better than others?

Balls played into the boxFC Seoul83411 opponents636Of those, landing in zone 17FC Seoul60211 opponents438Share landing in zone 17FC Seoul72%11 opponents69%xG per deliveryFC Seoul0.05011 opponents0.050
Fig 2 · Seoul against the 11 opponents faced, 25 matches pooled. The share of box entries reaching the central cell, and the xG each delivery generates, are effectively identical. Up to this point nothing distinguishes Seoul.

No. Of 834 balls Seoul played into the box, 602 (72%) landed in zone 17. The eleven opponents managed 438 of 636 (69%). Computed team by team rather than pooled, the opposition average is 68.6% — the same. The xG generated per delivery matches to three decimal places: 0.050 against 0.050.

Getting the ball into the centre of the box is not a distinguishing act in this league. The first hypothesis fails here. And yet the outcomes are not the same — from that cell Seoul took 163 shots for 40 goals, their opponents 122 shots for 16.

If everyone gets the ball there, the difference is in what happens next.

03Ranking the 25 matches

xG per delivery — the top ten won every match, the bottom ten scored six goals in ten

One metric. xG per delivery = the xG created from zone 17 in that match, divided by the number of balls delivered into it. It asks how dangerous each individual delivery into the centre of the box was, rather than how many there were.

10203040500.000.050.100.15Deliveries into zone 17 (per match)xG per delivery↖ fewer deliveries, more threatmore deliveries, less threat ↘R02 Ulsan (A)R05 Gwangju (H)R09 Bucheon (H)R13 Jeju (A)R20 Ulsan (H)R24 Anyang (A)WinDrawLoss
Fig 3 · All 25 matches. Horizontal: how often the ball was delivered into zone 17. Vertical: the xG each of those deliveries produced. The top-left is entirely wins; draws and losses cluster bottom-right. Hover a point for match details.

The plot separates top-left from bottom-right, and it separates in the direction opposite to intuition.

RankRdMatchScoreDeliveriesShotsxG per delivery
1R09Bucheon (H)3-01690.156
2R02Ulsan (A)4-118110.145
3R05Gwangju (H)5-01760.107
…
17R14Gwangju (A)1-03990.029
18R13Jeju (A)1-251100.027
19R20Ulsan (H)1-350110.025
25R21Jeonbuk (A)0-01300.000

R05, the 5-0 against Gwangju, put the ball into the centre of the box 17 times. R20, the 1-3 against Ulsan, did it 50 times — nearly three times as often, for one fifth of the goals.

Top 10 matches10W 0D 0LBottom 10 matches3W 5D 2LGoals per match3.300.60Deliveries into zone 17 per match20.730.2Deliveries within one attack1.251.49High-quality shots (xG 0.20+)47%12%
Fig 4 · The top ten matches by xG per delivery against the bottom ten. The side that delivered more scored one fifth as many goals. Repeating the delivery 1.49 times within a single attack means the ball goes in, gets cleared, is won back, and goes in again.

The third row is the reason. How many times the ball is delivered within a single attack is what differs.

On the good days one delivery ends the attack — a shot, or a turnover. On the bad days it goes in, gets cleared, is picked up and goes in again, and is cleared again. The cycle repeats inside the same possession. The delivery count accumulates while shots do not, and the shots that do come are taken from poor angles. The share of shots with at least a 20% chance of going in is 47% against 12% — four times apart.

①Jung Seung-won②Jung Seung-wonJung Seung-wonLee Seung-mo③Lee Seung-moGoal · Jung Seung-wonLee carries 20mPark Chan-yong clearsLee Ho-jae clearsAround the 87th minute — 64 seconds①②won③goal86:1287:1615 seconds kept in the highlight (from 87:01)49 seconds cut — two crosses, two clearances
Fig 5 · R19 Pohang at home, 3-1 — just over a minute around the 87th. The ball went into the same place three times — two corners and one open-play cross. The first two were cleared. Green is what survives in the official highlight (from 87:01); the grey dotted section was cut. Watching only the highlight, this reads as "defend, then cross, then score". Knowing the preceding 49 seconds makes it "scored at the third attempt". Hover a point for that moment.

Just over a minute around the 87th in the Pohang match shows the shape of it. The ball went into the same place three times — a corner from the left, a corner from the right, and an open-play cross. The first two were cleared; Kim Jin-su won the second ball from the second corner, four players moved it round, and Lee Seung-mo delivered a third time for the goal.

But the official highlight keeps only the last fifteen seconds. The two corners and the two clearances are gone, so on video the sequence reads as "defend, break out, cross, score". Knowing the preceding 49 seconds makes it "scored at the third attempt".

VIDEO 1

The same footage, meaning something else once you know what came before

This one is built by laying the match footage over the data. A highlight clip on its own cannot carry it.

R19 Pohang (H) 3-1 · 87'The official highlight, starting at 87:01 with Kim Jin-su winning the second ball. The 49 seconds before it — two corners and two clearances — are cut.
  1. Left pane — the highlight above, as broadcast.
  2. Right pane — the pitch diagram on the same clock, starting 49 seconds earlier, so corners ① and ② and both clearances pass first.
  3. Where they meet — at 87:01 the footage begins, and the delivery counter already reads 2.

Repetition does not always fail: this sequence went in at the third attempt. But across 25 matches the days with more repetition were the days with fewer goals (Fig 4). And a repetition that ends in failure survives in no highlight at all — I went looking for the repeated sequences from R13 Jeju away and R20 Ulsan at home, and in all three matches that passage had been cut. Highlights keep the last action and discard what came before. From public video alone there is no way to show a failed repetition.

04The best of them — R05, Gwangju at home, 5-0

17 deliveries, 6 shots, 5 goals. And all five arrived by a different route

R05, the Gwangju match on 22 March, ranks third by xG per delivery and second in the season for xG per shot, at 0.304. Yet its 17 deliveries put it level with the lower-ranked matches. This was not a win built on volume.

1238' · Son Jung-beomxG 0.23A low free-kick rolled short on the left,crossed by Jung Seung-won. Babec nodded itback into the centre for Son to finish.1 Kim Jin-su rolls the free-kick2 Jung Seung-won crosses from the left3 Babec heads it down to the centre12346' · KlimalaxG 0.65A left-sided cross was cleared, then wonback on the right. The inswinger deflectedoff a defender and ran loose.1 Kim Jin-su crosses, cleared2 Jung Seung-won recovers on the far side3 Jung Seung-won inswinging cross12359' · RossxG 0.24A free-kick won in the right wide area.Kim Jin-su’s inswinger was met by Ross,who beat Moon Min-seo in the air.1 Klimala works it wide right2 Jung Seung-won wins the foul3 Kim Jin-su inswinging set piece12372' · KlimalaxG 0.19A long throw on the left. With three playersdrawn to Moon Seon-min, Klimala ran into thehalf-space and went one-on-one with the keeper.1 Kim Jin-su builds from the back2 Kim Jin-su long throw-in3 Moon Seon-min holds off three123481' · Lee Seung-moxG 0.33Moon Seon-min ran to the right by-line andpulled it back first time for Lee Seung-mo,who finished without a touch to control.1 Kim Jin-su builds from the back2 Choi Jun switches to the far side3 Jung Seung-won advances on the right4 Moon Seon-min running cross
Fig 6 · R05, the 5-0 win over Gwangju at home — all five goals. Each row traces the route to that goal. Green arrows are actual deliveries; dotted lines mark build-up that has been compressed. Numbers give the order, the solid dot is the shot. The destination was zone 17 all five times; the way there was different every time. Hover a number for that moment.

All five goals finished in the same cell. The way there was different each time. Classifying the final delivery gives four types — short pass, open cross, set-piece cross, long throw-in. This is the only match in the 25 to use all four. R24, the 7-0 at Anyang, used three, and five of its six goals came from open crosses.

Not a match won by delivering into the centre often, but one that arrived there five different ways.
VIDEO 2

R05 Gwangju (H) 5-0 — five ways to reach the same place

Held constant — the destination is fixed to zone 17 and only the route varies. All five goals are in the official highlights.

  1. 8' Son Jung-beom — left wide, restart cross, headed down
  2. 46' Klimala — right wide inswinger (deflected)
  3. 59' Ross — right wide set piece
  4. 72' Klimala — left half-space run
  5. 81' Lee Seung-mo — right by-line running cross, first time
All five goals8' Son Jung-beom · 46' Klimala · 59' Ross · 72' Klimala · 81' Lee Seung-mo. The arrival point is the same cell every time.
xG 0.3381' · Lee Seung-moMoon Seon-min carries to the right by-line and pulls it back; finished first time.
Two things only the video showed.
① The 46th-minute goal came off Jung Seung-won's cross deflecting from Moon Min-seo's head. The data records only "block", which does not separate a deflection from a clearance. It was not a designed pattern, so it is not cited as one.
② There was a disallowed goal in the 15th minute, ruled out for a foul by Song Min-kyu. The event data holds only a failed cross and a foul committed — the goal event does not exist at all. Without the video I would not have known the moment happened.

05But why it happened is not explained

I put in every attribute the data holds, and they all came back the same

So far, what differed. The next question is why. I tested each attribute the event data carries for anything separating the good crosses from the rest.

First, the three structures that are supposed to create freedom, each tagged individually: a switch (a cross played straight after a large change of side), a three-player combination (the previous three passes involving three different players), and an individual beat (a cross straight after the crosser's own successful dribble). All 436 open-play crosses were classified.

How set pieces were removed from the sample. From round 19 the portal records set-piece crosses under the open-play code (through round 18 they carried their own). I confirmed it by checking the coordinates of corner-position deliveries, and since coordinates alone cannot isolate free-kicks, any cross more than 15 seconds after the previous event was treated as a dead ball and excluded. On rounds 1–18, where the set-piece code still exists, that rule produces zero false positives. That removes 47 of 483, leaving the 436 used in this section.
StructureCountxG per cross
After a switch920.0307no effect
No switch3440.0345
Three-player combination900.0412+29%
No combination3460.0319
After a dribble10—too few

Only the three-player combination points weakly in the expected direction. The real problem came next.

Top 10 matchesBottom 10 matchesPreceded by a structure (switch / 3-player combination)41%39%about the sameCut-backs from near the by-line17%16%about the sameLanding accurately in zone 1781%77%about the sameAverage position the cross came from (by-line = 100)87.686.5about the samexG per cross0.07000.01674× apart
Fig 7 · All 436 open-play crosses, classified on every attribute the event data holds. The crosses from the top matches and the bottom matches cannot be told apart by coordinates. Yet the outcome differs fourfold.

The crosses from the top and bottom matches cannot be told apart. The share preceded by structure, the share of cut-backs, the accuracy of arrival, the position they were played from — all effectively equal. And yet the xG each cross generates is 0.0700 against 0.0167, a factor of four.

There is one case that makes this unmistakable.

R03 Jeju · xG 0.27R09 Bucheon · xG 0.16R17 Gangwon · xG 0.18R12 Anyang · xG 0.11Won · R03 Jeju (A) · R09 Bucheon (H)Not won · R17 Gangwon (H) · R12 Anyang (H)
Fig 8 · Four crosses Choi Jun played to Klimala from the same spot on the right. Same deliverer, same receiver, same origin, same space. Two of those matches were won and two were not. Coordinates cannot separate these four.

Four crosses Choi Jun played to Klimala from the same place on the right. Same deliverer, same receiver, same origin coordinate, same side, same space. Two came in matches Seoul won (R03 Jeju away 2-1, R09 Bucheon home 3-0) and two in matches they did not (R17 Gangwon home 0-0, R12 Anyang home 0-0). The event data offers no way to separate them.

VIDEO 3 — SUPPLEMENT

Fixing the deliverer and the receiver as well

Two of the four above (Gangwon, Anyang) were Choi Jun to Klimala. Adding the other two of that same pairing gives four crosses with all six attributes fixed — and the results still do not separate.

xG 0.27R03 Jeju (A) 2-1 · 31'Choi Jun → Klimala · on target
xG 0.16R09 Bucheon (H) 3-0 · 6'Choi Jun → Klimala · on target

0.27 and 0.16 from the matches Seoul won; 0.18 and 0.11 from the ones they did not. The four values overlap. Same player, same spot, same target — and the cross alone cannot tell you whether the team won that day.

How many crosses a player put in is already recorded.
Whether he was free when he put them in is recorded by nobody.
VIDEO 3

Four crosses played from the same place, in the same shape

Held constant — open-play crosses from the deep right wide area, curling toward the by-line and landing in zone 17. Side, space, depth, cross shape, phase and destination are all fixed. Two are goals and two are shots on target, so all four appear in the highlights.

  1. R02 Ulsan (A) 4-1 · 2' — Son Jung-beom → Ruiz · goal · xG 0.87
  2. R03 Jeju (A) 2-1 · 92' — Choi Jun → Lee Seung-mo · goal · xG 0.33
  3. R17 Gangwon (H) 0-0 · 40' — Choi Jun → Klimala · on target · xG 0.18
  4. R12 Anyang (H) 0-0 · 7' — Choi Jun → Klimala · on target · xG 0.11

Three of the four are Choi Jun crossing from the same spot, so the gap is not down to a different deliverer. As Fig 8 shows, isolating the four he played to Klimala leaves them equally indistinguishable by coordinates. What to watch is not the cross but the second before it — how many opponents were around the crosser, and which shoulder the runner in the box was going off.

xG 0.87R02 Ulsan (A) 4-1 · 2'Son Jung-beom → Ruiz · goal
xG 0.33R03 Jeju (A) 2-1 · 92'Choi Jun → Lee Seung-mo · goal
xG 0.18R17 Gangwon (H) 0-0 · 40'Choi Jun → Klimala · on target
xG 0.11R12 Anyang (H) 0-0 · 7'Choi Jun → Klimala · on target

06So what should be measured

Recording the quality of a cross as the freedom the player had when he played it

There are three metrics for crossing: attempted, completed, completion rate. But completion rate asks only "did it reach a teammate", never "did reaching him create danger". Adding coordinates changed nothing. A fourth axis is needed.

The proposal is to tag the room the player had at the moment of delivery on three axes.

Axis2 points1 point0 points
F1 PressureNo opponent within 3mOpponent 3–7m and closingOpponent within 3m, or contact
F2 TimeTwo touches or from a standstillOne touch firstFirst time / off a loose ball
F3 Range of optionsCut-back, cut inside and recycle all availableOne alternativeNo option other than the cross
A note on F3. This axis measures the range of options, not the quality of the choice. A zero does not mean the cross was a bad decision. It means there was no alternative, and a cross may well be the best thing to do in that situation. The score therefore describes the situation rather than judging the player. A well-struck forced cross stays on record as F3 zero with a good outcome, and that is itself information.

Five or six points is a free cross, zero to two a pressured cross. Corners and free-kicks are structurally unpressured and must be counted separately. The 3m and 7m thresholds on F1 fill a box that FIFA's Football Language leaves at "appropriate distance" without a number; the analyst sets it, and it is labelled as such.

And the tagging leads to a prescription

Freedom wastedStructure works, the choice does not→ Crossing technique & decision workTarget stateStructure and execution both workingBoth failingNeither structure nor execution→ Redesign the build-upIndividual-dependentSolved by the player under pressure→ Not sustainable; support structurallyLow xG per crossHigh xG per crossFree-cross sharehighFree-cross sharelowThe vertical axis is computed: 0.0162 xG per cross in the bottom ten.The horizontal axis cannot be obtained without video tagging.
Fig 9 · A diagnostic matrix. Which cell a team sits in reverses the prescription — drill crossing technique, or rebuild the build-up. The axis needed to decide that is the one currently missing.

For Seoul's bottom ten matches the vertical axis already exists — 0.0162 xG per cross. The horizontal axis is empty, so the cell cannot be identified. Top-left (freedom wasted) prescribes crossing technique and decision work; bottom-left (both failing) prescribes rebuilding the build-up. They are opposites.

The framework also defines the condition that would kill it. If the shot-conversion rate of free crosses and pressured crosses turns out to be the same, the concept is wrong and another axis has to be found.

Cost. A match averages 19.3 open-play crosses. At roughly 40 seconds per cross across three axes, that is about 15 minutes per match — a single day to re-tag all 25. It needs video and a recording sheet, nothing else.

Every number here comes from public data, and I watched and recorded the matches myself. The one constraint was that the video work could only be done from YouTube highlights, since full-match footage was not available to me. That limited the moments I can cite to goals and shots on target, and the clip selection reflects that limit.

How many crosses a player put in is already recorded. Whether he was free when he put them in is recorded by nobody. I believe that record could become data that helps a team play better.


Appendix · Sources and verification

Every number is collected directly from the official records of the K League Data Portal. SHA-256 hashes of the eight source files (21MB) are recorded, and every table and figure is rendered by script from the original CSVs — no figure was transcribed by hand.

ItemValue
Raw events34,518 rows × 33 columns (both teams, 25 matches, 100% coordinate coverage)
Primary source05_events_chalkboard.json · 14,310,821 B · 88da5555a40fa9c8…
Coordinate normalisationAttacking direction determined per round, team and half from shot coordinates, then unified. Validated by opponent-duel X sums averaging 99.9
GradingA verbatim from the portal · B derived from it · C the analyst's operational definition

Grade C — defined by the analyst: the coordinate boundaries of zone 17; "box entry" (including passes not tagged as crosses that travel 8m or more from outside the box to inside); the boundary of a single attack; the 8-second window from cross to shot; and the 3m / 7m thresholds on the free-cross axes. All are stated in the text.

Corrections

I got seven things wrong and fixed seven.

#What was wrongHow it was fixed
1Aerial duels pooled across the whole pitch, reported as "Seoul on top"Split by zone, situation and period — inside the box in crossing situations Seoul were 1–10
2First-contact rate in the box under-counted at 9%Headers that become shots are never tagged as duels — corrected to 15%
3The goal-conceded code (GC) misread as a goal kick, breaking attacks apartAll 9 instances checked and recomputed; a dropped goal restored
4Reported shot totals as "an exact match with the portal"Actual figures 295 against 293 — the verification row was withdrawn
5A penalty included in the per-attack xG for the Bucheon matchExcluded: 0.089 → 0.052
6"PK point" in the goal text read as a penalty kickIt is a shot-zone label (the penalty spot). Seoul took one penalty all season; the 47-goal breakdown was recomputed
7Kim Jin-su's own goal against Daejeon counted as a Seoul goalThe event feed records own goals under the scorer's own team. Removed: 44 → 43 open-play goals

Open discrepancies and limits

Observation log

Four matches — R05 Gwangju home, R02 Ulsan away, R20 Ulsan home and R09 Bucheon home — were watched in full or over specified passages, and each observation was checked one-to-one against the event data. For R05: 11 confirmed · 5 revised · 0 rejected · 7 unverifiable. All seven unverifiable items concern the position of players not touching the ball.