Arsenal crest
The Bean Counter
Arsenal · Financial Compliance · 2026/27

If you want to win championships then you would never get involved. I think the best owners in sports are the guys that sort of watch both sides a bit. If you don't have a good business then you can't really afford to go out and get the best players.

— Stan Kroenke · March 2016 · the quote the fans never forgot
Arsenal official crest

The Bean Counter · Arsenal

2026/27 PRE-SEASON · CHAMPIONS
Victoria Concordia Crescit
Football has become a game of bean counting — so here's the abacus. PSR · UEFA Squad Cost Ratio · Football Earnings Rule · window balance · book values · title-defence economics

State of Play

Arsenal's estimated squad cost ratio is 61.6% against the 70% limit that applies to clubs in UEFA competition, leaving roughly £67.5m/yr of cost headroom. The summer 2026 window stands at £58.3m banked from sales against £205.0m committed on signings. Every figure here is this tracker's own estimate, built from published accounts and media reporting, as reported 3 Sept 2026.

Squad Cost Ratio · Estimated
/ 70%
70% wall · 100% red line
One 70% wall, enforced twice — UEFA on calendar 2026, the Premier League on season 2026/27 (champions get the 70% tier, not the 85%).
Window Balance
fees out minus fees committed, incl. the £75m Guimarães signing announced 8 Aug · net buyers, with the selling still to come
List A Churn
·
CL runners-up list → projected 26/27 CL list: 4 arrivals signed (Hincapié, Tzolis, Meslier and Guimarães, announced 8 Aug) + B→A grads returning from loans
UEFA / PL Fines
£0 EVER
never charged under PSR, FER or SCR — sat out the 30 June 2026 CFCB fining round

The Clock — What's Counting Down

DAYS TO SAUDI WINDOW CLOSE
6 SEP
DAYS TO LIST A DEADLINE
~2 SEP · UEFA
DAYS TO PL SCR CHECKPOINT
OCT 2026
DAYS TO UEFA RATIO FREEZE
31 DEC · CALENDAR 2026

The Six Regulations — Pass / Fail / Room Left

PL PSR
Passed — Never Close
EST USAGE: ~£0 of the £105m 3-yr loss allowance — FY24's −£17.7m is swallowed by FY25's +£25.2m and a profitable title year, before deductions (academy, infra, women's, depreciation) are even applied.
ROOM: est £150m+ unused · one final test Jan 2027, then the rule retires.
UEFA SCR
Compliant · BUT WATCHED
NOW: vs the 70% limit — never breached, never fined, and this figure now includes the Guimarães deal announced 8 Aug (~£19m/yr of amortisation on the contract to 2030 plus estimated wages). A ~£308m SCR wage bill + ~£192m of amortisation is the biggest squad-cost base in England after City.
THE CATCH: analysts have Arsenal "sailing close to the wind" — the margin only exists because the denominator (record ~£770m revenue) keeps growing. Flat revenue + Álvarez-scale spending would close it fast.
ROOM: of cost/yr before the line, on this tracker's estimates · calendar 2026 freezes 31 Dec.
FER
Compliant
LIMIT: ~£52m (€60m) max loss over 3 UEFA-basis years. Arsenal's aggregate is positive — no intra-group asset sales needed, no settlement, no monitoring.
ROOM: FY25's +£25.2m and the FY26 title year carry the cycle · assessed annually by the CFCB.
PL SCR
Not Yet Tested
PROJECTED: vs the 70% green line (red at 100%) · season basis · as a Champions League club Arsenal get the European tier, not the 85% domestic one.
ROOM: of cost/yr · first checkpoint Oct 2026, assessment 1 Mar 2027 · 2026/27 is a transition year (levies bite from 2027/28).
List A Homegrown Quota
3 of 4 Club-Trained
UEFA List A: max 25, min 8 homegrown — of which a maximum of 4 may be association-trained and a minimum of 4 must be club-trained. Each unfilled slot cuts the list size. Arsenal's UEFA count: Saka, Martinelli, Saliba (club-trained) + Rice, White, Eze, Raya (association-trained, already at the cap of 4) = 7 of the 8, one short.
THE WRINKLE: Karl Hein's exit removes the 4th club-trained name — so the list is effectively capped at 24 unless a Hale End graduate (Nwaneri and Lewis-Skelly are still List B-eligible) is registered on A. Note Noni Madueke does NOT help: the Premier League reclassified him as homegrown in 2025, but UEFA requires three seasons at an English club between 15 and 21, which his move to PSV at 16 prevents. Selling Martinelli would cut both counts again.
Loan Quotas (In · Senior)
2 + 6 Left
DOMESTIC (English clubs): 2 of 2 concurrent remaining — no loans in · season cap of 4 · never more than 1 from the same club at a time · max 1 GK between PL clubs.
INTERNATIONAL (FIFA): 6 of 6 SENIOR remaining — counts only over-21, non-club-trained players; U21 & club-trained loans are exempt entirely · max 3 from any single club.
ROOM: all slots open — Arsenal's window has been permanent-deal-only so far. A late loan for cover (the Saliba injury makes one plausible) costs nothing here.

Quick Answers — Arsenal's Finances in Plain English

Are Arsenal in trouble with FFP in 2026?

No. Arsenal have never been charged under the Premier League's PSR or UEFA's financial rules, and sat out the CFCB fining round of 30 June 2026 that hit Villa, Chelsea, Newcastle and Forest. The one number worth watching is UEFA's 70% squad cost ratio: a ~£308m SCR wage bill plus ~£192m of amortisation (both now including the Guimarães deal announced 8 August) means Arsenal's compliance depends on the record revenue continuing — analysts have long described them as "sailing close to the wind" there.

What is Arsenal's squad cost ratio right now?

Roughly 64% of football revenue on this tracker's estimates — that is the live figure in the hero, and it now includes the £75m Guimarães signing announced on 8 August (the pre-Guimarães figure was ~62%). It sits under the 70% limit; the title and Champions League final run pushed calendar-2026 revenue toward a record ~£770m. (The amortisation input is derived bottom-up from squad contracts — ~£192m including Guimarães — rather than a hand estimate, a method switch made on 4 August.) UEFA tests calendar year 2026 (freezing 31 December); the Premier League tests the 2026/27 season with an October checkpoint. Third-party models differ: treat all of it as estimates.

How much can Arsenal spend this summer?

On this model, ~£47m/yr of squad-cost headroom remains now the £75m Guimarães signing is on the books — his four-year contract to 2030 adds ~£19m/yr of amortisation plus an estimated ~£8m/yr of wages, and the pre-deal headroom was ~£65m/yr. What is left is roughly £150–190m of fees on five-year deals IF wages are offset. Either of the attacking packages still in play — Álvarez at a reported ~£120m, or Nico Williams' ~£77m release clause (Vinícius re-signed in Madrid on 6 August, and Barcola has agreed personal terms with Liverpool) — would consume the rest and then some. That is why the Jesus and Martinelli exit talk is the other half of the same story. Arteta said on 2 August that Gyökeres is staying, so that lever is off the table for now.

Why would selling Gyökeres book a LOSS?

Book value. His £63.5m fee is only one year into a five-year amortisation, so ~£51m sits on the books. The fees mooted in the Atlético part-exchange chatter (~€50m / ~£43m) sat BELOW that — a sale there would book a ~£8m accounting loss (though it would still free ~£22m/yr of wages and amortisation). Arteta closed the door on 2 August ("he's going to stay"), so this is now a thought experiment rather than a live deal. Compare Martinelli: £6m in 2019, nearly fully amortised, so ~£45m would be ~95% pure profit. Same headline fee, opposite bean-count.

Why does the 45-day swap rule matter to the Álvarez deal?

Because one reported construction of the deal sent Gyökeres to Atlético as part-payment — a construction Arteta has since killed off, so as of 5 August the flag sits on the shelf rather than on the deal. UEFA treats opposite-direction transfers between the same clubs within 45 days on similar terms as a player EXCHANGE, valued at the lower of fee and book value. Villa and Chelsea just spent a month engineering the Rogers/Garnacho deals around exactly this rule — any Álvarez-plus-Gyökeres package would need the same care.

Did Arsenal pass the Premier League's PSR?

Comfortably — the 2023/24–2025/26 cycle that closed on 30 June 2026 aggregates to an estimated profit before the allowable deductions are even applied. No asset-sale engineering was needed. The final-ever PSR assessment is January 2027, after which it's replaced by the squad cost and sustainability rules.

The whole thing in two sentences: Arsenal's compliance problem isn't the rulebook — they've never been fined by anyone — it's arithmetic: the league's second-biggest squad-cost base is only legal because the revenue underneath it is now the league's second-biggest too. This window's £28m of sale profits doesn't come close to funding the ~£75m now paid for Guimarães (announced 8 August), let alone the £120m Álvarez or ~£77m Nico Williams numbers still being mooted on top; the net annual cost swing so far is , and the detail lives in the other tabs.

Incomings & Outgoings

Summer 2026 window (opened 15 June, closes 1 September — delayed by the World Cup). Fees per media reports. A deal enters this table at a medical and not before: ADVANCED means terms agreed and the medical taken or booked, DONE means a club has announced it. Anything short of that is interest, however well sourced, and interest lives on the Rumours tab.

Summer 2026 — Out

PlayerToFee £mWage £k/wkCost freed £m/yrProfit £mStatus

Summer 2026 — In

PlayerFromFee £mWage £k/wkSCR cost £m/yrStatus
Fees Out (sales)
Confirmed + advanced permanent deals
Fees Committed (buys)
Confirmed + advanced permanent deals
Net Window Balance
No registration gate applies — this is a budget number, not a compliance one
Annual Cost Freed (outs)
Wages + stopped amortisation leaving both SCR numerators
Annual Cost Added (ins)
Fee÷5 amortisation + wages + ~10% agent fee
Net SCR Swing
Change to the annual squad-cost numerator from this window
How the columns map to the rules: SCR cost / Cost freed hits the numerator of BOTH the UEFA 70% and PL 70% ratios (identical cost base, different clocks) · Profit feeds the FER earnings calculation AND both SCR denominators · Fee moves the window's cash balance. Wages are estimates.
The pattern has changed: the powder is being spent. Trossard, Kiwior and Hein free ~£18m/yr of squad cost and book ~£22m of profit — small change against the ~£75m paid to Newcastle for Bruno Guimarães, officially announced on Saturday 8 August: a four-year contract to 2030 with a one-year option, the No.39 shirt, and a pre-match presentation to the crowd before the Emirates Cup game against Dortmund (which Arsenal lost 3-2, Guimarães not in the squad — Tzolis shone, winning the penalty Gyökeres converted, and Nwaneri scored). He is now in the squad table and the amortisation runway, and every hero figure counts him. William Saliba's World Cup back injury (Arsenal say an "extended period"; no surgery required) has separately forced a centre-back search nobody had budgeted for: the £64.1m (€75m) bid for Ezri Konsa has not been accepted, and Villa — where Emery wants to keep him — are braced for the improved offer Arsenal are preparing. The attacking end keeps narrowing: Vinícius Júnior signed a new Real Madrid contract on 6 August, killing that pursuit; Barcola has faded — he is reported to have agreed personal terms with Liverpool, whose ~€115m bid is in, and would choose Anfield over Arsenal; Álvarez (a transfer request reportedly coming on 10 August, with Barcelona still the player's preference and Simeone insisting he is not for sale) and Nico Williams' ~£77m clause stay live, with Juventus' Kenan Yildiz a new name in the Sunday papers. The earlier ~£86m approach for Chelsea's João Pedro remains dead. Zinchenko's February exit to Ajax and the summer frees of 2025 already did the wage-trimming; the selling side of this window has still barely started — though Galatasaray have now lodged an official bid reported at €40m for Martinelli. Also agreed but immaterial to these numbers: 16-year-old Crystal Palace forward Mylo Bernard, an out-of-contract academy signing.

2025/26 Season — In (Summer 25 + Jan 26)

PlayerFromFee £mWindow

2025/26 Season — Out

PlayerToFee £mWindow
Last summer's ~£250m gross spend (Gyökeres, Eze, Zubimendi, Madueke and more) was among the league's biggest — and it bought the title and a Champions League final. The bean-counting consequence arrives now: that window alone adds ~£50m/yr of amortisation to every squad-cost test through 2030, which is precisely why this summer is quieter. The outgoings were almost all frees — Partey, Jorginho, Tierney walked, and only Nuno Tavares and Marquinhos brought fees in.

Spending Headroom

"Room" means two different things for Arsenal — there is no UEFA settlement gate here, unlike some rivals. What binds is the UEFA 70% squad cost ratio (calendar year) and the PL SCR, which for clubs in Europe is ALSO capped at 70% (season basis, red threshold 100%). The model below is adjustable — the defaults are my estimates, so put your own numbers in.

The window ledger — cash view, not a compliance gate

Sales banked
Trossard, Kiwior, Hein — fringe-trimming, not fire-selling
Committed on signings
Hincapié £45m, Tzolis £34m, Guimarães ~£75m announced 8 Aug (Meslier free)
Net window balance
Fees out minus fees committed. Unlike settlement clubs, nothing stops Arsenal registering signings — the constraint is the ratio, not a gate
Committed but deferred: the quiet liabilities of this window are wage-shaped, not fee-shaped. Saka's renewal is already signed and already counting — five years to 2031 at a reported ~£300k/wk, up from ~£200k, making him the club's highest earner and adding roughly £5m/yr to every squad-cost test from February 2026 onward; add-on clauses on the 2025 class (Gyökeres, Eze, Madueke — £15m+ contingent) capitalise into book values as they trigger. Bean counters call this "keep now, count later."

The Fined Four — the 30 June 2026 CFCB Round Arsenal Sat Out

Four English clubs were fined in UEFA's decisions published on 30 June 2026. Arsenal were not among them — a useful yardstick for what "in trouble" actually looks like, and for how every exit route runs through selling players.

Club2026 FineSuspendedBreachSettlementExit Route
Aston Villa~£19mpart cond.SCR 2025 ("significant") · 2nd straight€22.5m total, part conditional on cutting the ratio again in 2026 · trend formally ENDORSED£144m of player-sale profits + the £117m Rogers sale — selling the squad's appreciation
Chelsea~£2.6mSCR · repeat€3m · settlement continues, trend endorsed like Villa'sAcademy sales (pure profit) + intra-group hotel sales the PL accepted — and now the Rogers/Garnacho tightrope
Newcastle~£9m~£6m cond.BOTH SCR and FER — the double, the heaviest of the four on some readings€10m total, €7m of it conditional · obligations continue despite missing EuropeIsak to Liverpool for £125m — one sale to rule the FY25 accounts
Nottingham Forest~£2.2mSCRAnderson to City for £116m weeks later — fine dwarfed 53:1 by one transfer
Why Arsenal aren't in the table: the squad cost base is enormous (~£308m of SCR-relevant wages, ~£192m of amortisation derived from squad contracts, both including the new Guimarães deal) but the denominator is bigger still — record revenue plus a decade of never spending materially ahead of income. The pattern across the four who WERE fined: every exit route runs through selling players. The rulebook fines you in millions and lets you settle in transfers.
Why there's no "gate" on this page: settlement clubs (Villa, Chelsea, Newcastle) must pass a List A transfer-balance test before registering signings — sales first, buys second. Arsenal carry no such condition: the club can register anyone it can afford. The discipline is arithmetical instead — every £5m of fee is ~£1m/yr of amortisation and every £100k/wk is ~£5.2m/yr of wages inside a numerator that must stay under 70% of revenue on two different clocks. Freedom, but freedom with a meter running.

Annual constraint — squad cost ratio model

Squad cost = player & coach wages + transfer amortisation + agent fees. Denominator = football revenue + player-trading profit (3-yr average, per UEFA's smoothing). Edit any figure:

UEFA SCR · limit 70%
limit 70%
PL SCR (in Europe) · green 70% · red 100%
green 70%

What-if: add a signing

Added annual squad cost
amortisation (incl. 4% PL levy) + wages + est. agent fee
UEFA ratio after signing
vs 70% limit
Window balance after fee
Cash view only — no registration gate applies to Arsenal
Rule of thumb: every £1m/yr of ratio headroom buys either ~£5m of transfer fee (5-yr amortisation) or ~£19k/week of wages. On the default assumptions, the practical shape of the remaining window is roughly — which is why, with Guimarães now announced and counting (~£19m/yr of derived amortisation on the contract to 2030, plus ~£8m/yr of estimated wages), the attacking shortlist only works arithmetically if Jesus- and Martinelli-scale wages leave in the same calendar year. Price them per year and the point makes itself: Álvarez at a reported ~£120m + ~£300k/wk is ~£47m/yr of cost; Nico Williams' ~£77m release clause with a placeholder ~£200k/wk is ~£30m/yr (Vinícius left the list on 6 August by re-signing in Madrid; Barcola has faded with Liverpool terms agreed). Arteta has ruled Gyökeres out of the equation, so the funding has to come from elsewhere. The champions' constraint isn't a fine or a settlement: it's that the numerator is already the second-biggest in the league.
Caveats: the amortisation figure is derived from the squad contracts at page load — and since 8 August that includes Guimarães, whose ~£75m spread over the four-year contract to 2030 adds ~£19m/yr. The wage default (~£308m) is this tracker's estimate, raised ~£8m/yr for his reported wages. Revenue projection assumes the title season's record income (FY25: £691m actual) carrying into calendar 2026 with CL league-phase money and the champions' commercial uplift — ~£770m is this tracker's estimate, not a published figure. The wages figure is the SCR-relevant slice (players + head coach), not the £347m FY25 total staff bill. On agent fees: UEFA counts them as their own SCR category; our amortisation estimate is accounts-based and already contains the amortised slice of past capitalised agent fees, so pairing it with the separate £25m agents line double-counts a few £m — deliberately, as a conservative margin. Third-party models genuinely diverge here (one respected UEFA-basis estimate is nearer 60%; one PL-basis forecast is nearer 79% on a broader cost base) — treat this as a planning tool, not a compliance calculation.

Rumour Mill

The window shut at 11pm on 1 September 2026, and this tab is now mostly history. Nothing below can become an incoming transfer until January: a registration cannot be lodged outside the window, so every inbound link here is closed rather than pending, however well sourced it was. Three things the deadline does not close, which is why the cards are kept live rather than swept away. Free agents — a player already out of contract can be signed and registered outside the window. Outgoing moves abroad — several leagues closed later than England, so a player could still leave after English clubs had stopped buying: the Saudi Pro League runs to 6 September, the Süper Lig closed on 4 September and MLS on 2 September. Seven cards on this site point at one of those and are still live; every other card is now marked JANUARY and priced as a January deal rather than one that can happen today. Academy moves — an under-18 joining on training compensation is not moving a professional registration and is not bound by this deadline. Cards are left in place because a rumour that died at the deadline is a record of what was reported and what it was worth, and deleting them would quietly improve this site’s hit rate. The tick-box model still works: a JANUARY card prices what the deal would cost when the window reopens, which is the question actually worth asking about a link that survived the summer.

Everything on this tab is short of a medical. That is the line: a deal that has reached one sits in the Ins & Outs table, and everything below it — an offer, an agreement in principle, personal terms with no fee agreed, a bid lodged — is here, counting towards nothing until it moves. Tick any combination of live rumours (fees and wages are my estimates of reported figures) and the panel at the bottom recalculates the effect on every rule: window balance, UEFA 70%, PL SCR (also 70% for clubs in Europe) and FER earnings. Uses the same base assumptions as the Headroom tab, so tweaks there flow through here. Guimarães is done — officially announced on 8 August, so the base numbers now carry him at Done in the squad table itself. As of Sunday 9 August the shortlist keeps mutating: Vinícius is gone (new Madrid deal signed on 6 August), Barcola is fading — personal terms agreed with Liverpool, whose ~€115m bid is in — Álvarez is a waiting game with a transfer request reportedly coming on 10 August and Simeone publicly insisting he is not for sale, Nico Williams' ~£77m release clause stays live, and the Sunday papers add Juventus' Kenan Yildiz and Tottenham's Cristian Romero as new names. They are alternatives, not a sequence — tick more than one and the panel will show you why. The window's real question is still sequencing: nothing on the incoming side adds up unless the outgoing column fires first.

Incoming rumours

Outgoing rumours

Window balance
Δ annual squad cost
UEFA SCR
PL SCR
Profit booked (FER)
Tick the rumours above to model a scenario — and change any fee or wage to model your own number instead of this tracker’s.
How each lever maps to the rules: an incoming deal adds (fee + the PL’s 4% levy)÷5 + wages + ~10% agent fee to both SCR numerators, with zero benefit anywhere. An outgoing deal does the opposite three times over — cash into the window balance, wages + remaining amortisation out of the numerator, and the profit (fee − book value) into FER earnings and the SCR denominator. That's why a Martinelli sale (~95% pure profit on a 2019 fee) is worth more in compliance terms than a Gyökeres sale at a bigger headline number — Gyökeres' barely-amortised book value means his exit frees cost but books a LOSS. Watch the two-way traffic too: if Konsa arrives from Villa, any Arsenal player heading to Villa inside 45 days would walk both clubs into UEFA's exchange-rule minefield.

Squad · Book Value & Amortisation

Senior squad after this summer's confirmed/advanced exits. Book value is computed live: straight-line amortisation of the reported fee from signing date to current contract end (extensions re-spread the remaining value — this is the standard treatment). Wages are Capology-reported figures (cross-checked Jul 2026 vs bet365/GiveMeSport/SalaryLeaks) — still estimates, not official. Tap a column to sort.

Player Pos Fee £m Signed Contract End Yrs Left Amort £m/yr Book Value £m Mkt Val £m Profit If Sold £m Est Wage £k/wk
💰 highlighted rows = est. profit if sold ≥£20m — where market value towers over book value. Saka and Nwaneri (academy, £0 book) and Martinelli (£6m in 2019, nearly amortised) are the bean counter's favourite players and the football department's untouchables; the whole compliance value of Hale End is visible in this column. The reverse case matters too: Gyökeres carries ~£51m of book value one year into a five-year deal — selling at the reported €50m (~£43m) Atlético fee books a loss, and even his full ~£60m market value yields under £10m of profit. Martinelli's market value holds at ~£50m against an ask reported anywhere from ~£40m to ~£60m — Galatasaray's official bid of ~€40m (~£35m) sits below all of it; see the Rumour Mill. Not listed individually (academy/low book value, several out on loan last season): Sagoe Jr (Kalmar loan), Copley (Crawley loan), Mooney (signed from St Mirren in January), keeper Setford and midfielder Dowman — collectively immaterial to the amortisation picture but pure profit if ever sold. Free transfers & academy players carry £0 book value (that's why selling them is pure PSR/FER profit). Undisclosed fees estimated where flagged ~. Add-ons are treated differently on the two sides of the ledger, and this page says so rather than quietly netting it out: both an incoming and an outgoing fee are modelled at the guaranteed amount, with add-ons counted only when they trigger. This caption used to claim the opposite for incoming deals — that they were modelled all-in — and that was a description of a rule this site does not follow: every incoming row bar two was already on the guaranteed basis, and the two exceptions, Suzuki and Ruggeri, were brought into line on 2 September. Contingent money is not capitalised until it is owed, which is the conservative reading and the one the corrections here have consistently enforced. Wages are Capology-style third-party estimates cross-checked against contract reporting — treated as estimates throughout; Saka's row now reflects the five-year deal he signed in February 2026 (to 2031, reported ~£300k/wk). Amortisation shown on remaining contract; UEFA and the PL both cap the amortisation schedule for new deals at 5 years even on longer contracts. FIFA’s 5% solidarity contribution is deducted from an international fee, not added to it: a buying club pays the headline number and distributes the 5% out of it, so a purchase costs the full fee; a club selling abroad banks 95% and books its profit on that. Domestic sales are untouched. Both sides are modelled here.
Squad Book Value
Sum of estimated carrying values
Annual Amortisation
Current squad only, and the figure the headroom model now uses. Club-wide FY25 charge was ~£164m; Guimarães (announced 8 Aug) is now included
Est. Squad Wages
Estimated senior squad only. Total club FY25 wage bill: £346.8m (incl. staff, bonuses)
Saliba's back and the SCR — three hits, one offset: an injury gives no relief under the Squad Cost Ratio. (1) His wages (~£10m/yr est.) stay in the numerator in full for however long he is out — Arsenal have said only "an extended period" of rehabilitation, with no surgery required and no month count published, so treat any specific timeline you read as speculation. (2) His amortisation keeps charging regardless — though at ~£2m/yr on a 2019 fee re-spread to 2030, Saliba is cheap on the books even while being priceless on the pitch. (3) The real cost is the forced response: a centre-back search that produced a bid reported at £64.1m (€75m) for Ezri Konsa on 2 August — not accepted, with an improved offer now being prepared and Villa reportedly resigned to the exit — adding squad cost nobody had planned in the same window as the Guimarães business and a still-unresolved attacking shortlist. The one offset: because the injury happened on France duty at the World Cup, FIFA's Club Protection Programme reimburses a capped share of his fixed salary (up to ~£6.5m/€7.5m per year, max 365 days) — that softens the cash and earnings hit, though it doesn't remove his wages from the SCR numerator itself.

Amortisation Runway — What's Already Committed

Transfer-fee amortisation locked into future seasons from today's contracts (straight-line on remaining book value). This is spending that's already eaten before Arsenal buy anyone else — the long tail of the 2023–25 windows.

Assumes current contracts run to term (sales remove their bars; extensions re-spread them). No off-book purchase obligations are currently reported — unlike some rivals, Arsenal's future amortisation is all visible on today's contracts. Guimarães joined these bars on 8 August: his ~£75m over the four-year contract to 2030 adds ~£19m/yr through FY2030; an Álvarez on top would stack another ~£21m/yr.

Premier League homegrown quota — 2026/27

Two ceilings, not one. A club may register 25 senior players, and no more than 17 of them may be non-homegrown. The familiar “eight homegrown” line is what falls out of those two numbers — but only if you fill all 25. A club with six qualifiers is not breaking any rule; it simply cannot name a squad bigger than 23. Under-21s sit outside the list altogether and play regardless: for 2026/27, born on or after 1 January 2005. Players out on loan are not registered.

Homegrown is a registration test, not a passport test. Three entire seasons, or 36 months, at any club affiliated to the FA or the FAW before the end of the season in which the player turns 21. That is why Gabriel Martinelli qualifies — three seasons at Arsenal from 18 — while William Saliba, signed at 18, does not: he was loaned straight back to France and never spent a qualifying season in England.

Where Arsenal actually stand. This is the tightest homegrown position in the league among the clubs this tracker follows: 23 of the 25 places are used, with one place unused, and the eight qualifiers are exactly the eight a full 25 requires. 8 homegrown and 15 non-homegrown — one under the seventeen ceiling — so the last place can be filled by anyone, and the squad is compliant either way. Ezri Konsa is why. Signing a homegrown centre-back from Villa on 19 August is what holds the count at eight; without him Arsenal would sit on seven and could name a squad of only 24 however many players they bought. Two more players are under 21 — Myles Lewis-Skelly and Ethan Nwaneri, both club-trained — and play outside the list entirely, which is the quiet reason a squad this expensive still fits. The two names worth knowing on the other side: William Saliba, signed at 18 and loaned straight back to France, never spent a qualifying season here; Gabriel Martinelli, Brazilian, did, and counts.

UEFA List A — 2026/27 Champions League

Arsenal enter the Champions League as Premier League champions (85 points, 7 clear of City) after reaching the 2025/26 final, beaten by PSG. Last season's List A named 23 of a possible 25, with the Hale End crop on the unlimited List B. The 26/27 league-phase list is due ~2 September — the day after the window shuts.

List A Transition · 2025/26 CL Finalists → 2026/27 Champions

Each position: who's gone off last season's list, who stays, and who fills the hole — with deal status. Only advanced deals are classed in/out — loose links stay dimmed or in the Rumour Mill.

Goalkeepers

Out · 0 (+1 off the books)
Karl HeinWERDER BREMEN · WAS ON LOAN, NOW PERMANENT
Retained · 2
David RayaSTAYS · No.1
Kepa ArrizabalagaWANTS OUT · £5m RELEASE CLAUSE EXPIRED MID-JUL · STILL HERE
In · 1
Illan MeslierFREE FROM LEEDS · 2-YR DEAL + OPTION · NOT HOMEGROWN
NET: three senior keepers again — but Hein was the club-trained GK, and Meslier (fewer than 3 English seasons before 21) doesn't inherit the quota value. A quota-relevant swap disguised as a like-for-like.

Defenders

Out · 1
Oleksandr ZinchenkoAJAX · FEB 26 · £1.3m
Retained · 7
William SalibaBACK INJURY — "EXTENDED PERIOD", NO SURGERY · STAYS
Gabriel MagalhãesSTAYS
Ben WhiteSTAYS
Jurrien TimberSTAYS
Riccardo CalafioriSTAYS
Cristhian MosqueraSTAYS
Piero HincapiéLOAN → PERMANENT · £45m (€52m)
In · 1 target
Ezri Konsa2ND, IMPROVED BID IN (12 AUG) · £64.1m FIRST REJECTED · VILLA BRACED FOR A FRESH BID · EMERY WANTS HIM KEPT
Myles Lewis-SkellySTAYS ON LIST B · U-22 EXEMPT
NET: seven senior defenders is plenty on paper — but Saliba is out for an unspecified extended period, which is why a Konsa-shaped signing jumped the queue. The £64.1m bid has not been accepted; with the Guimarães paperwork now done, Villa are braced for the improved offer — though Emery wants Konsa kept and the club, still dangling a new contract, are under no pressure to sell. Sunday paper talk floats Spurs' Romero as an alternative; Tottenham are adamant he will not cross the divide (see Rumour Mill).

Midfielders

Out · 1
Christian NørgaardEVERTON · OFFICIAL 5 AUG · ~£7m
Retained · 4
Declan RiceSTAYS
Martin ØdegaardSTAYS · CAPTAIN
Martín ZubimendiSTAYS
Mikel MerinoSTAYS
In · 1 signed + 1 returner
Bruno GuimarãesOFFICIAL 8 AUG · ~£75m · 4-YR TO 2030 (+1 OPTION) · No.39
Ethan NwaneriBACK FROM MARSEILLE LOAN · STILL LIST B
NET: the engine room that won the title is intact and now reinforced — Guimarães was announced on 8 August and presented before the Emirates Cup match, making the Rice–Zubimendi–Bruno midfield the sporting case and ~£27m/yr of new squad cost (derived ~£19m/yr amortisation + estimated wages) the bean-counting one. Nwaneri returns with limited Ligue 1 minutes banked (412 of a possible 1,710) and costs no A slot — and scored against Dortmund.

Forwards

Out · 2
Gabriel JesusGONE · BARCELONA · £8.6m
Leandro TrossardBEŞİKTAŞ · £17.1m
Retained · 6
Bukayo SakaSTAYS · SIGNED TO 2031 (FEB 26)
Gabriel MartinelliASK QUOTED AT ~£40m · ROMA & JUVENTUS ENQUIRING
Viktor GyökeresSTAYS — ARTETA, 2 AUG: "HE'S GOING TO STAY"
Kai HavertzSTAYS
Eberechi EzeSTAYS
Noni MaduekeSTAYS
In · 4 (+ 3 targets)
Christos TzolisSIGNED 23 JUL · £34m · THE TROSSARD REPLACEMENT
Julián ÁlvarezTARGET — TRANSFER REQUEST REPORTEDLY DUE 10 AUG · PLAYER WANTS BARÇA
Nico WilliamsTARGET — ~£77m RELEASE CLAUSE · REPORTEDLY READY TO TRIGGER
Bradley BarcolaFADING — PERSONAL TERMS AGREED WITH LIVERPOOL, WHOSE ~€115m BID IS IN
NET: 1 out → 1 in so far, and the endgame keeps narrowing — Vinícius signed a new Madrid deal on 6 August and left the list, and Barcola has all but followed him off it by agreeing personal terms with Liverpool. Gyökeres is staying per Arteta; Álvarez and Nico Williams are the two live routes to the same one slot, with Juventus' Yildiz a new Sunday-paper name in the Rumour Mill; João Pedro was refused by Chelsea. Whichever route wins, the block's two amber tags — Jesus and Martinelli (now carrying an official €40m Galatasaray bid) — are the exits that have to fund it.
List B is unlimited: players under 21-ish (born on/after the cutoff, with two uninterrupted years at the club since their 15th birthday) — Nwaneri, Lewis-Skelly, Dowman, Setford and the Hale End crop all qualify, costing no A slots. That academy pipeline is a quota subsidy most rivals don't have.
The quota that shapes the list: max 25, minimum 8 homegrown, of which at most 4 may be association-trained and at least 4 must be club-trained — and every unfilled homegrown slot shrinks the list. Arsenal's UEFA seven: Saka, Martinelli, Saliba (club-trained) + Rice, White, Eze, Raya (association-trained — already at the maximum of four). Noni Madueke does not add an eighth: the Premier League reclassified him as homegrown in 2025, but UEFA needs three seasons at an English club between 15 and 21, and he left for PSV at 16. With only THREE club-trained names now Hein has gone, the list is effectively capped at 24 unless a Hale End graduate is registered on A. And the rumour with the biggest quota price isn't a signing: selling Martinelli would cut both counts at once, leaving zero slack. The bean counter's rule: quotas are a balance sheet too.

Sanction Tracker — The (Almost) Clean Sheet

The SCR Glidepath

100% 90% 80% 70% 60% UEFA LIMIT 90% 80% 70% FY2023FY2024FY2025FY2026 ~71% · within 90% ~69% · within 80% ~64% · comfortable est ~64% · watched
Arsenal line is directional (UEFA does not publish exact club ratios; third-party estimates diverge) · the point is the shape: always under the stepping limit, but never by a country mile — the 2025 spend spree narrowed the gap even in a record-revenue year.
2006 → 2013

The stadium decade — austerity by choice

The Emirates was financed on the club's own balance sheet, and the debt was serviced by selling the best player most summers — Henry, Fabregas, Van Persie. Painful football economics, but it built the exact profile (revenue-led, never spending ahead of income) that FFP would later reward. Arsenal have never needed the lawyers.

2013 → 2024 · FFP / PSR era

Never charged, never close

Through every version of UEFA's rules and the Premier League's PSR, Arsenal's worst recent year (FY24, −£17.7m pre-tax) sat comfortably inside the £105m three-year allowance before deductions were even counted. The only financial-rules footnote is a handful of late-paperwork trivia — no charges, no settlements, no embargoes, ever.

Nov 2023 & Feb 2025

The fines Arsenal DO pay — conduct, not accounts

£40,000 (failing to control players vs Newcastle) and £65,000 (nine players surrounding the referee vs Wolves — tripled as a third offence in twelve months). Every pound of Arsenal's sanction history is player-behaviour money from the FA; none of it is finance money. For scale: £105k total, against rivals' eight-figure CFCB bills.

30 June 2026

The CFCB round Arsenal watched from the sofa

UEFA fined four English clubs — Aston Villa (~£19m/€22.5m, "significant breach"), Chelsea (€3m), Newcastle (€10m, both SCR and FER) and Forest (€2.2m) — while Arsenal, with the second-biggest squad-cost base in the league, weren't so much as name-checked. The difference isn't restraint in spending; it's that a decade of revenue growth means 70% of Arsenal's denominator still covers the numerator.

Now → FY2026 assessment

The watch list, honestly stated

Three items. (1) The UEFA ratio: analysts have put Arsenal's effective squad-cost ceiling around the £520m mark and described the club as "sailing close to the wind" — an Álvarez-scale addition without matching exits would test that. (2) Wages: Saka's signed renewal (~£300k/wk from February 2026) is already in the numerator, Guimarães' arrival (announced 8 August) lifts this tracker's SCR wage estimate to ~£308m/yr, and any Álvarez package would push it past £320m/yr. (3) The PL's new SCR (70% tier for European clubs) starts scoring this season — October checkpoint, March 2027 assessment — though 2026/27 is a transition year with levies only from 2027/28. The final-ever PSR test in January 2027 is a formality.

Last Accounts — FY2024/25 (y/e 31 May 2025)

The season before the title: Premier League runners-up and a Champions League semi-final. Headline: record £691m revenue and a £25.2m pre-tax profit. Reality: the wage bill crossed £340m and the amortisation from three big windows is now a permanent ~£165m/yr fixture — the cost base that makes the squad-cost ratio the number to watch.

Revenue (club record)
£691m
+£76.7m (12.5%) on FY24's £614m
Pre-tax result
+£25.2m
vs −£17.7m in FY24
After-tax result
≈£0m
Reported as a small (~£1.4m) loss after tax in one summary — summaries differ, flagged
Operating profit
+£38.5m
Before net finance costs of −£17.4m
Wage bill
£346.8m
~50% of revenue — up from £234.8m just two years earlier
Player amortisation
~£164m
Nearly flat yoy (+£0.4m) — the 2025 spend annualises in FY26

Revenue mix

Broadcasting
£273m
Commercial
£263m
Matchday
~£150m
Other / loans
~£5m
What's baking into the next accounts (FY26, y/e 31 May 2026): the title, the run to the Champions League final (UEFA distributions were already ~£100m in the SEMI-final year — the final run plus champions' market-pool money points well north of that), champions' bonus clauses across the adidas and Emirates partnerships, and matchday at capacity with premium pricing. Two commercial items land in the year after that: Deel replaces Visit Rwanda as sleeve partner from 2026/27 at a reported ~£18m/yr (rising to ~£25m on performance) against Visit Rwanda's ~£10m, and Arsenal are reported to have agreed an increased Emirates package worth around £70m a year plus up to £15m of bonuses, up from a deal reported at £45–50m. Neither is in the FY25 numbers below; both widen the denominator this page keeps insisting on. This tracker's working estimate is ~£770m revenue — a number that would fund a £539m squad-cost ceiling at 70%. Set against that: full-year wages for the 2025 signings, title bonuses, and ~£50m/yr of new amortisation. Revenue is the moat, and the moat has to keep widening.

How £38.5m operating became roughly zero

Operating profit (incl. player-sale profit)+£38.5m
Net finance costs → mostly interest to parent KSE−£17.4m
Other income & joint ventures → balancing item implied by the published summaries+£4.1m
Pre-tax profit+£25.2m
Tax & other → per one published summary−£26.6m
Reported after-tax result≈ −£1.4m
Debt & the owner: borrowings of ~£358m sit against ~£56m of cash — but ~£340m of it is owed to the parent, KSE UK Inc., after the Kroenkes refinanced the old stadium bonds in-house. That makes the "net debt" headline gentler than it looks (the lender sits in the boardroom), though the interest line is real and PSR/FER count it. No intra-group asset sales, no equity-for-losses injections — the Arsenal model is revenue first, and the accounts show both its power (record everything) and its price (a cost base only a record club can carry).

Rules & Compliance Status

Every regime that applies to Arsenal, the limit in pounds, and where the club stands. "FFP" itself no longer exists as a single rule — it's the old umbrella name, now split into UEFA's FER + SCR and the Premier League's PSR (becoming SCR + SSR).

COMPLIANT CLOSE / NOT YET TESTED NOT COMPLIANT

Compliance calendar

~2 Sep 2026CL LIST A DEADLINE
31 Dec 2026UEFA SCR YEAR ENDS
31 Dec 2026PSR ACCOUNTS SUBMISSION
Jan 2027FINAL PL PSR ASSESSMENT
Oct 2026PL SCR MONITORING
~Early Feb 2027CL KNOCKOUT LIST WINDOW
1 Mar 2027PL SCR ASSESSMENT
Summer 2027CFCB VERDICT ON 2026
7 Jul 2027SSR TESTS
Premier League · to end of 2025/26
Compliant

PSR — Profitability & Sustainability

LIMIT: £105m max pre-tax loss over rolling 3 years (£15m if not equity-funded)
BasisClub financial years (Arsenal's y/e 31 May) — aggregate of FY24 + FY25 + FY26.
What countsAggregate 3-yr pre-tax result, with deductions for infrastructure, academy, community & women's football costs.
ArsenalFY24 −£17.7m, FY25 +£25.2m, FY26 (title season) estimated positive — the raw aggregate is already in profit BEFORE the deductions, which for Arsenal (women's team, Hale End, Sobha Realty-era infrastructure) run to tens of millions a year. Est. headroom: £150m+. Never charged in the rule's history.
DeadlineAccounts submitted by 31 Dec 2026 → final-ever PSR assessment January 2027. After that the rule is retired.
UEFA · the one to watch
Compliant — tight-ish

SCR — Squad Cost Ratio (UEFA)

LIMIT: squad cost ≤ 70% of adjusted revenue + net player-sale profit (phased 90% → 80% → 70%)
BasisCalendar year — the current test period is 1 Jan – 31 Dec 2026. Summer sales help twice: they cut H2 wages AND book profit inside the same measurement year.
What countsPlayer + head-coach wages — including wages of any loaned-in players — plus loan fees, transfer amortisation/impairment and agent fees. The PL's 4% transfer levy and FIFA's 5% solidarity contribution capitalise into registration cost and ride along inside the amortisation. Amortisation capped at 5 years for new deals.
ArsenalNever breached — but the numerator (~£304m SCR wages + ~£187m of amortisation derived from squad contracts, both now including the Guimarães deal announced 8 August, + agents) is the second-biggest in England. Analysts framed 2023/24's effective cap at ~£449m and have Arsenal "sailing close to the wind"; this tracker's 2026 estimate is ~65%, against a ~£770m-plus-profits denominator (~£520–540m ceiling). Compliance is real, but it is rented from revenue growth — a trophyless, flat-revenue year with this cost base would change the colour of this card.
DeadlineCalendar 2026 freezes 31 December; clubs report in spring and the CFCB verdict lands summer 2027.
UEFA · "FER" — yes, that's the one
Compliant

FER — Football Earnings Rule

LIMIT: ~£52m (€60m) max loss over 3 years · +~£8.6m/yr more if in "good financial health"
BasisFinancial years — the 3-year aggregate of the club's own accounting periods (Arsenal's y/e 31 May), assessed annually by the CFCB.
What countsUEFA's PSR equivalent — but it EXCLUDES profits on asset sales to related parties, player swaps (see the Swap-Deal rule card) and related-party transfers, and applies fair-value tests to sponsorships.
ArsenalThe FY24 loss is bracketed by profitable years either side; the 3-year UEFA-basis aggregate is estimated positive with no intra-group engineering to strip out — the exact opposite of the Villa/Chelsea situation, where PL and UEFA reached different verdicts on the same accounts. Nothing to see here, which is the point.
DeadlineAssessed annually alongside the SCR; verdicts each summer.
Premier League · live from 2026/27
Not yet tested

SCR — Squad Cost Ratio (PL)

CLUBS IN EUROPE (incl. Arsenal): green 70% · red 100% — CLUBS NOT IN EUROPE: green 85% · red 115% · +£33m/3yr equity top-up (max £15m/season)
BasisSeason / financial year (2026/27) — unlike UEFA's calendar-year clock. A January signing therefore hits the PL calculation for this season but splits across two UEFA years.
What countsSame cost base as UEFA's version, and the denominator explicitly includes net profit/loss on player sales. Two-tier enforcement: over green but under red = levy (payable for breaches from 2027/28); over red = risk of sporting sanctions. The intra-group asset-sale loophole that lived under PSR is explicitly closed.
ArsenalAs champions in the Champions League, Arsenal take the 70% green line at home too — no soft 85% option. The season projection on this model (~64% with Guimarães registered and the Nørgaard exit banked) fits, but the same caveat as UEFA's card applies twice over: the number relies on champions-level revenue recurring. One respected PL-basis forecast using a broader cost base puts Arsenal at 79% of allowance — models diverge; the direction of every model is "fine, if the revenue holds".
DeadlineMonitoring checkpoint October 2026; formal assessment 1 March 2027, after the January window. 2026/27 is a transition year.
Premier League · live from 2026/27
Expected pass

SSR — Sustainability & Systemic Resilience

TESTS: liquidity headroom ≥ £0 after an £85m stress test · positive equity ratio ≤90% (26/27) → 85% (27/28) → 80% (28/29+)
BasisTested 7 July each year (newly promoted clubs: 31 October), covering the current and following season.
What countsNot a spending cap — solvency tests. The liquidity calculation counts 40% of squad market value as a liquid asset; the £85m stress test models relegation or missing Europe. Owner equity injections count in a club's favour.
Arsenal~£56m cash, a squad whose market value dwarfs its book value, positive operating cashflow and a parent-company lender. The stress-test scenario (missing Europe) would hurt the P&L long before it hurt solvency. No indication of an issue.
DeadlineFirst full tests 7 July 2027 for 2026/27, with in-season submissions from the start of the season.
UEFA + Premier League squad registration
On the bar — exactly

List A & the 25-man homegrown quotas

UEFA: max 25, min 8 homegrown (max 4 of the 8 association-trained, min 4 club-trained places) · PL: max 17 non-homegrown in the 25
BasisUEFA List A due at the league-phase deadline (~2 Sep); PL squad list after the window. List B / PL U21 players are exempt and unlimited.
What countsClub-trained = 3 seasons at the club between 15 and 21; association-trained = 3 seasons with any English/Welsh club. Every unfilled homegrown slot shrinks the list.
ArsenalUEFA HG seven: Saka, Martinelli, Saliba (club-trained) + Rice, White, Eze, Raya (association-trained, at the four-place cap). Madueke is homegrown for the Premier League's 25 only — reclassified in 2025 — and does not count for UEFA. With Hein sold, club-trained names number THREE, capping List A at 24 unless a Hale End graduate registers on A. The PL list is comfortable (well under 17 non-HG). The exposure is transactional: selling Martinelli cuts both quota counts at a stroke, and Meslier brings no quota value.
DeadlineCL league-phase List A due ~2 September 2026; up to three additions in the knockout window closing early February 2027.
UEFA Annex G.3.5 + PL FMV protocols
Live risk in one deal

Swap-Deal / Player-Exchange Rule

TEST: opposite-direction transfers between the same two clubs = an EXCHANGE if (a) concluded within 45 DAYS of each other AND (b) with the same/similar payment obligations, deadlines or dates · recognised value = the LOWER of fee and residual book value
What countsSubstance over form, not a fixed day-count — deals weeks apart can be linked. The live 2026 test case is Villa/Chelsea: Rogers to Chelsea for a British-record £117m, Garnacho to Villa days later on a loan with a conditional obligation deliberately uncertain enough for UEFA to treat it, for now, as a genuine loan rather than an exchange. The precedent everyone cites is older — Newcastle's 2024 sale of Elliot Anderson to Forest alongside the Vlachodimos purchase, which UEFA later treated as an exchange and which stripped £30m+ from Newcastle's reported player-trading profit. The PL runs its own fair-market-value protocols for registrations (Handbook, App 19).
ArsenalThe amber here has faded rather than cleared. The reported Álvarez constructions included Gyökeres travelling to Atlético as part-payment — same two clubs, opposite directions, same negotiation, the textbook exchange pattern — but Arteta said on 2 August that Gyökeres is staying and Atlético's chief executive says Álvarez is not for sale at all. If it revives: Gyökeres' mooted fee (~£43m) is already BELOW his ~£51m book value, so there is no inflated-profit angle, but an exchange treatment would still tangle the accounting and invite CFCB scrutiny Arsenal have never had. Watch also any two-way traffic with Villa if the Konsa bid succeeds.
ConsequenceIf linked deals are treated as one exchange, profit is recognised at the LOWER of fee and book value — for academy players (book £0) the profit vanishes entirely. The era of the casual academy swap is over, league-wide.
Terminology · where "FFP" went

FFP → what it means now

"Financial Fair Play" (2010) was rebranded by UEFA in 2022 as Financial Sustainability Regulations: solvency (no overdue payables) + stability (FER) + cost control (SCR). Domestically, the PL's version was PSR (2013), now being replaced by SCR + SSR from 2026/27. So when pundits ask whether Arsenal have an "FFP problem", the precise answer is: no charges under any regime, ever — just a squad-cost ratio that must keep being outrun by revenue.
Accounting mechanics

Amortisation & "pure profit"

Fees spread over the contract (max 5 years); sale profit = fee received − remaining book value − any sell-on shares owed, booked instantly. Academy products (Saka, Nwaneri: £0 book) and near-amortised veterans (Martinelli: £6m in 2019) are ~100% profit. Buying works the other way: Rice at £105m costs ~£21m/yr of amortisation. And the trap runs in reverse too — Gyökeres one year into a five-year £63.5m deal carries ~£51m of book value, so the ~€50m fee mooted in the Atlético chatter would have booked a LOSS. That asymmetry is the entire logic of who Arsenal will and won't sell this summer.

The Whole League — Bean Counted

All 20 clubs for 2026/27: which SCR tier they're in, their latest published accounts (FY2024/25, y/e mid-2025), and their compliance baggage. Nine clubs in Europe carry the 70% green / 100% red caps; the other eleven get 85% / 115%. Notes updated 9 Aug — officially announced deals and appointments only; pursuits and links stay in the Rumour Mill. Figures marked ~ are estimates from league-wide analyses rather than confirmed line items — FY25 league totals: £6.8bn revenue, £4.4bn wages, £2.0bn amortisation, £948m aggregate pre-tax losses.

ClubEurope 26/27Green capRev £mWages £mW/RCompliance notes
ARSENALCL · CHAMPIONS70%69134750%The subject of this tracker: champions (85 pts, 7 clear of City), CL runners-up, never fined by anyone — and the league’s second-biggest squad-cost base, funded entirely by its second-biggest revenue. Now spending: ~£75m for Guimarães, announced 8 Aug; a £64.1m Konsa bid not accepted with Villa braced for an improved one; and Álvarez and Nico Williams live now Vinícius has re-signed in Madrid and Barcola has agreed terms with Liverpool. See every other tab.
Manchester CityCL70%~715408~57%New era: Maresca replaces Guardiola. Broke the British record for Forest’s Anderson (£116m, fixed fee) — absorbed inside 70% by a £715m revenue base.
Manchester UnitedCL70%~666~313~47%Carrick made permanent manager; ~£85m midfield rebuild (Santos £50m, Tielemans £35m from Villa). £196m amortisation, but a £666m denominator makes 70% easy.
Aston VillaCL · EL HOLDERS70%37827372%Mid-settlement, fined twice by UEFA (~£19m/€22.5m on 30 June, part conditional, trend endorsed); the £117m British-record Rogers sale to Chelsea is the exit route — and Villa are the reluctant seller in Arsenal’s Konsa pursuit, with a bid reported around £65m on the table.
LiverpoolCL70%~614~386~63%Iraola officially appointed (4 Jun, 2-yr deal) after Slot was sacked a year on from the title. FY25 wages inflated by title bonuses after £241m on Isak (£125m) & Wirtz. Squad cost £545m, big denominator.
AFC BournemouthEUROPA70%~175~140~80%Flagged spending near capacity in FY25 — and first-ever Europe now drags them from 85% to the 70% cap just as Iraola officially left for Liverpool. The squeeze case, squeezed further.
SunderlandEUROPA70%~180*~95*~53%*FY25 = first PL season back. Europe two seasons after League One — the 70% cap lands on a still-growing revenue base.
Crystal PalaceEUROPA · CONF WINNERS70%~190~135~71%Conference League winners — then Glasner officially departed for Forest. Second straight European season keeps them on the 70% cap, right on the line like Villa.
Brighton & Hove AlbionCONFERENCE70%~222~165~74%FY25 costs rose sharply on amortisation; historically balanced by elite player trading profits.
Chelsea85%~541~360~67%Xabi Alonso era. UEFA settlement (£26.7m paid, up to £51m conditional), fined again 30 Jun 2026 — then broke their record for Rogers (£117m) days after loaning Garnacho to Villa, walking the swap-rule tightrope. League-high £212m amortisation; missing Europe eases the cap to 85%.
Newcastle United85%~350~220~63%Fined 30 Jun 2026 for BOTH SCR and FER breaches (€10m, €7m of it conditional); FY25 leaned on selling Isak to Liverpool for £125m. Settlement obligations continue despite missing Europe — and Arsenal's ~£75m for Bruno Guimarães, officially announced 8 Aug, is the next instalment of the same strategy.
Tottenham Hotspur85%~526~222~42%Lowest wage ratio among the big-revenue clubs — the league's most comfortable bean-counting position.
Nottingham Forest85%~190~155~82%Fined ~£2.2m (€2.2m) on 30 Jun 2026 — then banked £116m selling Anderson to City, transforming the FER/PSR picture overnight. Glasner confirmed as head coach 6 Jul (reported club-record ~£13m/yr salary) — their FIFTH boss in 12 months.
Everton85%~187~160~86%Two PSR deductions in 23/24; new stadium revenue is the plan for growing under the 85% cap.
Fulham85%~180~145~81%Small-revenue cohort where 85% barely funds a competitive XI — the other side of the SCR squeeze.
Brentford85%~195~125~64%The sustainability model club — comfortable margin on every metric.
Leeds United85%~150*~110*~73%*FY25 = promotion season. Second PL season consolidating.
Coventry CityPROMOTED · CHAMPIONS85%~45*~35*~78%*Championship-era accounts. PL broadcast money transforms the denominator overnight — big headroom if they spend sensibly.
Ipswich TownPROMOTED85%~145*~115*~79%*FY25 reflects their last PL season. Straight back up at the first attempt.
Hull CityPROMOTED · PLAY-OFFS85%~30*~28*~93%*Championship accounts. The biggest financial step-up in the division — SSR liquidity tests bite hardest here. In: Butland, ex-Villa Targett, Zambrano & Morita.
The tier divide is the story of 2026/27: nine clubs in Europe live at 70/100 while eleven live at 85/115 — meaning Chelsea, Newcastle, Spurs and Forest all get 15 points MORE domestic spending headroom than champions Arsenal precisely because they failed to qualify. UEFA settlement obligations (Chelsea, Newcastle, Villa) travel with the club regardless. And note the squeeze cases at both ends: Bournemouth and Palace dragged down to 70% by success, Fulham and the promoted clubs for whom even 85% of a small revenue is a hard ceiling.
Sources: Deloitte Annual Review (league totals), club accounts via Swiss Ramble/Maguire/BlueCityBrain analyses, UEFA CFCB statements. ~ figures are estimates; * marks accounts from a different division. Want this full treatment (transfers, book values, A-list, headroom) for any specific club?

Who's Selling to Survive — Net Transfer Balance

Sorted by net balance — the top of this table is where the selling pressure lives, the bottom is where the money goes.

THIS WINDOW: disclosed fees on officially completed 2026 deals only; undisclosed counted £0, loans & frees excluded; the Garnacho £42.5m is next season’s Chelsea spend. LAST 5 YEARS: net spend 2021/22–2025/26, Transfermarkt basis (€ converted), ~ = estimated. The two views tell one Arsenal story from opposite ends: over five years only Manchester United ran a bigger net spend — but Arsenal’s bought a title, a CL final and the revenue base that makes the spending legal. This window the Guimarães cheque is now written (announced 8 Aug — the shared table above updates when the central data does) and the attacking one (Álvarez? Nico Williams?) still isn't — the sales column (Jesus? Martinelli?) decides whether it can ever be.

Can Anyone Still Catch the Big Six?

The question underneath every number in this tracker — asked, for once, from inside the castle. Arsenal are the incumbent now: champions, second-biggest revenue, second-biggest five-year net spend. The honest answer is that the rules that once punished Arsenal's stadium austerity now protect Arsenal's summit.

Why the door is mostly closed — in Arsenal's favour

The 70% rule is a percentage of revenue — it doesn't cap spending, it caps spending relative to income. Arsenal's 70% of ~£770m buys a ~£540m squad; Villa's 70% of ~£510m buys ~£357m. That gap is locked in by design, and every trophy widens it: prize money and champions' sponsor bonuses land in the denominator and become next year's legal spending. The FER kills the only ladder anyone ever actually climbed — Abramovich's Chelsea, early City, Newcastle's takeover surge all spent ahead of revenue, which is now illegal. And the compliance machinery transfers talent upward: Villa's exit route was selling Rogers to Chelsea; Forest's was selling Anderson to City; Arsenal's Konsa bid exists because Villa must sell to someone. The fined feed the rich, and Arsenal now dine at that table.

The uncomfortable memory — and the live risk

1 · Arsenal climbed the hard way once. The Emirates was self-financed, serviced by selling the best player every summer — the club spent a decade as the cautionary tale of doing it "properly" while rivals bought titles. The current rulebook is, in effect, the world rewritten to Arsenal's old disadvantage-turned-blueprint: revenue first, squad second. 2 · The moat needs maintenance. A percentage cap protects you only while the denominator grows. Miss the Champions League with a £520m+ cost base and the same arithmetic that convicts others starts circling — the accounts tab shows how much of the margin is title-shaped. 3 · Mistakes are now fatal at every altitude. Under squad-cost rules, a £100m misjudgement consumes finite headroom even for giants — United's five-year table entry is the proof. Bad buying is no longer survivable by simply spending again, which is why the Álvarez decision is the most consequential bean-count of Arsenal's summer.

The bean counter's verdict: catching the Big Six in one leap is dead — the rules exist to prevent precisely that, and Arsenal are now among their chief beneficiaries. What remains for the chasers is the turnstile Villa are halfway through: gatecrash Europe on efficiency, monetise it, sell your stars for compliance fuel, and let revenue compound. For Arsenal the task is different: keep the flywheel spinning — win, monetise, reinvest inside 70% — without ever needing the fire sale. The door isn't closed. It's been redesigned so that only the well-run fit through — and, for the first time in twenty years, Arsenal are standing on the inside of it.

Changelog

Every update to the Bean Counter's data, newest first. Maintained manually with each rebuild.

3 Sept 2026

Twenty-six sold players were sitting in “Retained” columns across fifteen clubs SITE-WIDE CORRECTION

Villa’s board was not the exception. It was the one somebody happened to be looking at. After Emiliano Martínez was found under “Retained” four days after his sale to Chelsea, the same pattern was checked across the other nineteen pages. Every club page carries these position boards — three columns each, who left, who stayed, who arrived — and at roughly forty-five chips a page that is about nine hundred hand-written claims, none of which any gate on this site could read, because they name players in free HTML rather than through a data array.

Twenty-six of them said a player had stayed when the club’s own deal table said he had been sold. The list is not marginal. Rodri sat under Manchester City’s “Retained · 6” tagged “REAL MADRID TALKS”; he had gone to Barcelona for £51m. Tijjani Reijnders (£52m, Al Qadsiah) and Nico González (£50m, Newcastle) were beside him. Carlos Baleba was retained at Brighton after a £65m move to Manchester United. Liam Delap was retained at Chelsea after £45m to Forest. Everton had five in one page — Ndiaye, McNeil, Beto, Iroegbunam and Patterson. Arsenal had Gabriel Jesus, Ipswich three, Hull two, Palace two, and so on across fifteen clubs.

Each one is now in the column it belongs in, with the destination and fee taken from the deal table rather than retyped. Column counts were recomputed from the chips actually present, so the headings match their own contents for the first time in a while. “Out · 0 — Nobody” placeholders were removed where a real departure now fills the column.

Worth recording how nearly this went wrong, because it is the second time today. The first script moved the chips and reported twenty-two successes. It had in fact deleted all twenty-two players: the insertion point never matched, the removal did, and the counts were recomputed afterwards so every column looked internally consistent. Nothing in the output said anything was missing. It was caught by reading one board back rather than by trusting the tally, and reverted. The rewrite asserts the set of names in a board before and after the edit and refuses to write when they differ — which then immediately caught a second, smaller error, and later a third: the pattern used to find a column was swallowing the last chip’s closing tag, so the final name in every column was invisible, which is why four clubs looked clean on the first pass and were not.

And a gate, the twenty-fifth. tools/check-flowboards.js asserts two things about every chip on every board: a name in a retained column must not be a completed permanent sale in that page’s OUT26, and a name in a retained column must exist in that page’s data at all. It says nothing about incoming or outgoing columns, where naming a target from another club is correct, and it exempts chips whose own tag places them outside the squad table — a third-choice keeper in contract talks, a U21 needing no registration. Its first run reported seventy-one problems, of which twenty-four were its own fault: typographic apostrophes it could not match to straight ones, and editorial labels like “Third keeper slot” that are not players. Tested against the pre-fix pages, where it finds exactly twenty-six.

The reason this sat unseen is worth stating plainly. The deal arrays are gated. The ratio inputs are gated. The squad table is gated. The answer block, the league tables and the share cards are all derived. These boards were the one substantial thing on every club page that was neither derived nor checked — prose in the shape of a table, in a heavily-read tab — and they had been drifting for as long as they have existed. It took a reader with the live page open to find the first one.

3 Sept 2026

Fabio Vieira’s amortisation comes off — the inference was already being applied to another club CORRECTION

The amortisation input goes £202m → £195m and the ratio 62.5% → 61.6%, headroom £60.5m to £67.5m. Nothing new was reported; what changed is that this page stopped treating a question it had already answered elsewhere as still open.

The reasoning. Vieira spent last season on loan at Hamburg, and a loan never moves the amortisation — only a sale does. So his ~£6.8m/yr charge (£34m from Porto in 2022, over five years) was still Arsenal’s all season, sitting inside the club-wide input rather than the squad table, which is precisely where a loaned-out player hides. Selling him stops the charge. The premium over the squad table narrows from £10.9m to £3.9m, which is what should happen when the player it was covering leaves.

Why it took a day, and why that was wrong. Yesterday’s note said the input “has not been moved on an inference” and flagged it for someone else to settle against the accounts. That reads like caution and was actually an inconsistency: the identical inference had already been acted on for Leon Bailey on Villa’s page that same morning — a sold player with no squad row, his charge taken out of the club-wide figure without hesitation. Same shape, same reasoning, opposite treatment, a few hours apart.

Two clubs cannot be measured by two different rules here. The rule is the one that follows the accounting: a player’s amortisation leaves the club-wide figure when he is sold, whether or not he carried a squad row. Being cautious on one page and decisive on another is not caution — it is an inconsistency wearing caution’s clothes, and it makes the league table on this site incomparable in exactly the way the whole site exists to avoid.

Found by re-checking Villa, not Arsenal. The question was whether Villa’s post-Bailey ratio was right. It is — 63.7%, with all three inputs agreeing with their own bridges. What the check surfaced was that the same treatment had not been applied here.

3 Sept 2026

Fabio Vieira’s sale to Hamburg was dismissed as a search error yesterday. It was real CORRECTION

He joined Hamburger SV permanently on deadline day for about £8.5m, and this site recorded it as contamination instead. The reasoning was that £8.5m looked like a garbled restatement of Gabriel Jesus’s £8.6m move to Barcelona, reported the same day, on the same page, in the same search results. Two separate deals, two separate clubs, fees a hundred thousand pounds apart.

The failure mode is worth naming precisely, because it is the opposite of the usual one. This site spends most of its time catching numbers that were typed and never checked. Here the number was checked, found to resemble another number, and thrown away for it. Scepticism about a coincidence is right; a conclusion drawn from the coincidence alone is not. One extra search would have settled it, and the rule going forward is that a suspected duplicate gets confirmed as one before it is discarded.

What the row books. Hamburg had an option at £17m after his loan season there — seven goals and five assists in 31 games — declined it, and negotiated down to roughly half. He is not in the squad table here, having been away all last season, so the figures come from published history rather than a page derivation and say so: ~£34m from Porto in July 2022 on a deal to 2027 leaves about £5.6m of book value, so £8.5m books ~£2.9m of profit. Sales go to £58.3m and player-trading to £35m; the ratio is 62.5%.

And one thing is flagged rather than fixed. No wage relief is claimed, because his salary was never in this page’s numerator. But if his ~£6.8m/yr amortisation charge was inside the club-wide input all along — and that input sits about £11m above the squad table, which is exactly where a loaned-out player hides — then the input is now overstated by roughly that much. It has not been moved on an inference.

3 Sept 2026

Gabriel Jesus sold to Barcelona — and it is the biggest cost relief of Arsenal’s window OFFICIAL

£8.6m out, ~£22.8m a year off the numerator. Barcelona completed it on deadline day and this page had him as a January target for AC Milan at £20m. Wrong club, wrong price — and the fee was never the point. £265k/wk grossed at 1.55x is ~£13.8m/yr, and the £45m paid to Manchester City in 2022 was still charging ~£9.0m a year. The ratio moves 66.3% → 62.6% on one small fee.

The fee is contested and the lower figure is carried. Sky reported £8.6m (€10m); ESPN put it at €15m with a sell-on. On a sale the conservative reading is the smaller one, because it books less profit and flatters the seller less — so £8.6m stands and the £1.2m of profit is stated as the floor rather than the estimate.

Two things are true at once and this page reports both: recovering £8.6m of a £45m signing is a poor trade in cash, and an excellent one in compliance. Those are different questions and the row answers both rather than picking the flattering one.

Martinelli’s card was pointing at the wrong country. It read “Galatasaray only, Süper Lig shuts 4 Sep”. Al Hilal have an agreement with Arsenal and Martinelli turned Galatasaray down — so it now reads Saudi Arabia, whose window runs to 6 September. The reported fee is “70 million” with no currency stated, so the card carries £60m (€70m at this site’s rate) and says plainly that it is £10m light if the figure was always sterling.

Inputs: wages £297m → £276m on the bridge, amortisation £211m → £202m with Jesus out of the squad table, player-trading £34m unchanged.

2 Sept 2026

The Saudi deadline was five weeks out, and it is four days CORRECTION

This morning’s work put the Saudi Pro League window at 12 October and built a countdown, a gate and seven card tags on it. A reader said that sounded wrong — they had read it was days away. They were right.

The sources disagree. Wikipedia and Goal put the registration period at 22 July to 6 September; one tracker says 11 September; Sports Mole and AgentFlow say 12 October. The tell is arithmetic: 22 July to 12 October is 11.7 weeks, essentially FIFA’s twelve-week maximum for a registration period. That reads like somebody published the longest period permissible rather than the date actually announced. 6 September is 6.6 weeks, an ordinary window.

It is now carried at 6 September — the earliest credible date, chosen deliberately. The conservative error here is the early one: saying a shut window is open invents deals, which is the exact failure the window gate was written this morning to prevent. The countdown now reads four days rather than forty.

What is still unresolved: no source reachable from here separates Saudi domestic registration from international, so no such split is modelled. If one exists it is the international deadline that governs a sale out of England, and 12 October may well be a domestic-only extension rather than simply wrong. The date is flagged as contested on the deadline page rather than asserted.

Worth naming the pattern: the 12 October figure came from a single search result, and the source family it came from has now been wrong four times in this project — Hincapié’s fee, Trafford’s club, Fofana’s club, and this. A date that anchors a gate deserved a second source before it was written into twenty-one pages.

2 Sept 2026

The window is shut, and the site now says so — except where it isn’t CORRECTION

The Premier League window closed at 11pm on 1 September, so from the 2nd no rumour card here can describe a signing as something still pending: a registration cannot be lodged outside the window, however well sourced the link was. 139 cards are now marked JANUARY and priced as January deals rather than deals that can be done today.

But “the window” is not one thing, and flattening it would be the opposite error. A club that cannot buy can still sell: the Saudi Pro League runs to 6 September and the Süper Lig to the 4th; MLS closed on the 2nd. Bundesliga clubs finished earliest, on 31 August; Serie A, LaLiga and the Premier League all shut on the 1st. Six cards survive because they point at a league that outlasted England’s, and each has had its destination narrowed to the club that can actually still act. The seventh has already gone. Leon Bailey, whose card read “Al Diriyah” after Sevilla and Hull ran out of time, signed for Olympiacos on 2 September for £3.4m — which is the point of this section in one transfer. The English window shutting does not stop an English club selling, and it did not stop this one. It also proves a window this table does not list: Greece was still open on 2 September, and no closing date for it could be sourced, so none is stored rather than guessed.

The first countdown clock had been reading DONE against a label saying “days to window close”. It now counts to the Saudi deadline on 6 September — the one transfer deadline that still constrains these clubs, because they can still sell into it.

tools/check-window-state.js holds it: a card with no jan flag is asserting the deal can happen now, so its destination must sit in a window open today. It is date-driven rather than a one-off sweep — on 5 September the Türkiye cards stop being live and the gate says so without anyone remembering. It found six on Fulham that the first pass missed, because those rows are written with double quotes where the rest of the site uses single.

The countdown gate had a matching blind spot: it skipped any page without a club nav and only knew one label shape, so deadline/ was invisible to it — and was still counting to 1am on 1 October, the exact GMT-versus-BST bug that gate was written for, fixed on twenty pages and left on the twenty-first. It now reads both shapes, both const and var, and every page that carries a clock.

2 Sept 2026

Ismeal Kabia gets a squad row, and a check on where he actually is DATA

Kabia is at St Mirren on a season-long loan and had no squad row here. He now has one, at £0 — he came through the Arsenal academy from Kentish non-league youth football, so the zero is real rather than a placeholder.

Worth recording: the reference sources disagreed with this page and this page was right. Wikipedia had him at Shrewsbury Town, which is where he spent 2025/26 — 43 appearances and a goal in the final home game. Arsenal announced the St Mirren loan on 15 August. A stale destination is the more dangerous error of the two, because it looks like data rather than like an absence, so it was checked against the club’s own announcement rather than taken from the database.

Born 10 December 2005, so U21 for 2026/27 and outside the 25 either way, and homegrown. Nothing moves: the ratio holds at 66.3%.

31 Aug 2026

Three pages had the window shutting four hours early CORRECTION

Hull, Coventry and Newcastle counted down to 7pm on 1 September. The window shuts at 11pm, which is what the other seventeen pages said and what their clocks ran to. On the eve of deadline day, three club pages were telling readers they had four hours less than they did.

Both halves were wrong together, which is why nothing looked odd on those pages: the label said 7PM and the clock counted to 19:00, so they agreed with each other and disagreed with the rest of the site. The first fix here only corrected the labels, and the new gate immediately failed for the right reason, catching a symptom fixed without its cause.

Also tidied: a squad-list deadline written as “after the window closes (~2 September)”, where the date belongs to the list and the parenthetical made it read as hedging on the window itself. And the Premier League checkpoint countdown was set to midnight UTC on 1 October, which is one o’clock in the morning here, because it was stored as though Britain were on GMT in October rather than BST.

tools/check-countdowns.js now renders each stored target through Europe/London and compares it to the label written beside it. Timezone is the whole difficulty: 22:00 UTC is 11pm in September and would not be in December, so the two can only be compared after conversion. Broken on purpose in both directions before being trusted, once with a wrong label against a right clock and once the other way about.

This was found because a reader corrected something said in conversation, not by anything that runs. Sixteen gates check this site and none of them read a clock.

31 Aug 2026

The bolding was doing too much work — 2,316 signposts dropped EDITORIAL

A reader said the site reads as though a machine wrote it. That is worth measuring rather than arguing with, so it was measured.

The design came out fine. Claret and blue are the club’s own rather than the cream-and-terracotta that generated pages default to, the display face is Barlow Condensed rather than Inter, corners are three or four pixels rather than fully rounded, and there are five emoji on a 530KB page. Nothing there needed changing.

The prose was the problem, and one habit dominated: a bolded editorial sentence opening almost every paragraph. There were 2,612 of them, roughly one bold span every 62 words across half a million words of text. Bold is for things a reader scans for — a fee, a name, a date, a verdict. Used on the thesis of every paragraph it stops marking anything at all, and it is one of the most recognisable tells there is.

2,316 of those have gone. Figures, names, labels and short verdicts keep theirs. No wording changed anywhere, only tags, so nothing about the analysis moved and the whole pass reverts with one command. Density goes from one bold every 62 words to one every 85.

Two things this does not fix, stated plainly because the difference matters. The em-dash rate is 17.3 per thousand words against one to three in edited prose, and that needs a slower pass: a blanket substitution produces comma splices. And underneath both is a rhetorical habit no script reaches — signpost, then aphorism, then antithesis, three times a paragraph. That is the thing the reader actually noticed, and it has to be rewritten by hand.

One note on method: the first attempt stripped the bold from the two sentences that state the medical rule, which tools/check-deal-stage.js holds byte-identical across all twenty pages. The gate failed and the sentences are excluded now. It was written to guard a transfer convention and it caught a typography change, which is the argument for gating wording as well as arithmetic.

31 Aug 2026

Agent fees to 10%, the wage gross-up to 1.55x — both were too low, and the FA publishes the proof MODEL CHANGE

Two constants underneath every figure on this site have moved, at a reader’s prompting. The agent fee charged on a signing goes from 5% of the transfer fee to 10%, and the wage gross-up from 1.45x to 1.55x. Both were estimates that had never been checked against a published source. Both now have one.

The agent rate was checkable all along. The FA publishes what every club pays intermediaries. Between 4 February 2025 and 2 February 2026, Premier League clubs paid £460.3m — against the £3,137m of incoming fees this site records for that window, an implied rate of 14.7%, nearly three times the 5% being charged. Chelsea alone paid £65.1m, Aston Villa £38.4m. 10% is the figure taken, deliberately below the implied ceiling: the FA total also covers sales, loans and contract renewals, and only the buy-side portion is capitalised into a transfer’s cost. It is a floor with evidence under it rather than a rule of thumb.

The gross-up was missing a whole category of pay. It covered employer NI, bonuses and image rights — but not signing-on fees, and UEFA is explicit that they count. Annex G.3 of the Club Licensing and Financial Sustainability Regulations: all forms of consideration to and/or benefit of players, such as sign-on fees, must be treated as employee benefit expenses and not costs of a player’s registration. So they belong in the numerator, they sit with the wage rather than the amortisation, and they spread across the contract as a prepayment for services. Employer NI alone is 15%, so of the old 45% only about 30 points were doing the work of bonuses, image rights and signing-on fees together. 55% gives that last item somewhere to live.

What actually moved. League-wide, the annual cost this window adds rises from £1,257m to £1,330m. Twelve clubs’ wage inputs were re-derived by the bridge and reset to it; no club crossed a limit, and headline ratios moved by at most 0.9 of a point — mostly downwards, which is worth understanding rather than glossing: the gross-up applies to the net wage movement, and most clubs sold more wage than they bought, so a bigger multiplier makes a negative movement more negative. Every projection built on an old baseline was recomputed too, not just the baselines.

One piece of tidying that mattered more than it looks. The gross-up existed as a named constant and then as five hard-coded copies of 1.45 in the same file, on all twenty pages. They all now read the constant. A number duplicated a hundred times across a site is not a convention, it is a hundred chances to change ninety-nine of them.

30 Aug 2026

Nothing below a medical belongs in the Ins & Outs tables RULE CHANGE

Julián Álvarez leaves the Ins table. A transfer request that was reportedly coming on 10 August, a player Atlético say is not for sale, and a fee no one has agreed: the card in the Rumour Mill was always the fuller and more current account of it — £130m and contingent on selling Martinelli — while the deal row was three weeks stale and looked authoritative. No total moves, because a talks row was in none of them.

The status ladder ran done → advanced → in talks → offer, and all four rungs were rendered as rows in the deal tables. The bottom two contributed nothing to any figure — every total on this site filters to done and advanced — which made them arithmetically harmless and editorially loud. A reader scanning the Ins table saw rows the club had never agreed to, in the same table, in the same shape, as business that is done. Being excluded from the totals is not visible; being in the table is.

The threshold is now a medical. A deal enters at advanced — terms agreed and the medical taken or booked, awaiting only an announcement — and moves to done when a club announces it. A loan row is an agreed loan. Everything short of that is interest, however well sourced, and interest lives in the Rumour Mill, where it can still be ticked and modelled against the ratio. Nothing has been deleted. A row that counted towards nothing still counts towards nothing; it is just no longer sitting where settled business sits.

Four figures did move, and they moved because they had been wrong. The headline ratios, the swing and the window balance all filter to done and advanced and were untouched. But the amortisation column added to the deal tables sums every row in the table with no filter at all, and writes its total into a footer labelled “TOTALS IN (confirmed/advanced)” — a total that named a filter it did not apply. The same total feeds the “Added by this window’s deals” and “Net change” lines under the run-off chart. So unagreed deals were being amortised into figures that said they excluded them:

  • Crystal Palace — added by this window’s deals +£12.4m/yr → +£6.6m/yr, nearly halved, because Le Guen (£12m) and Njie (£16m) were being amortised though neither fee exists; freed −£18.3m/yr → −£12.3m/yr; net −£5.9m → −£5.7m/yr.
  • Sunderland — added +£11.2m/yr → +£6.7m/yr and net change +£9.2m → +£4.8m/yr, on an asking price for Poku that no one had agreed to pay.
  • Brentford — added +£16.9m/yr → +£16.1m/yr, net +£16.5m → +£15.6m/yr.
  • Liverpool — totals out, wage ~£735k/wk → ~£725k/wk and cost freed £61m → £60.2m/yr, for a loan with no agreed destination.

The amortisation code has deliberately not been changed. Its filter is now the whole table, because the whole table is now business at a medical or beyond — and the fix belongs at the input, in one gate, rather than as a twenty-first copy of the same rule pasted into twenty pages of inline script. That is also the answer to why this survived: nothing compared a table’s footer against the label printed on it, and the rows doing the damage were invisible in every figure a reader would have checked.

Twelve rows moved across eight clubs, and the wording moved on all twenty. The ledes described the threshold nine different ways — “medical/verbal”, “option/verbal”, “talks/verbal”, “medical or negotiating” — and three of those promised a table that now excludes what they promised. One sentence states the rule on the Ins & Outs tab and its counterpart on the Rumours tab, identical on every page, and tools/check-deal-stage.js holds both to the letter as well as failing any deal row below the threshold. The gate was broken on purpose twice before being trusted: once by dropping a row’s stage entirely, which is the obvious way round a stage check, and once by adding a season array no hard-coded list would have known about.

30 Aug 2026

The Ins & Outs tab scrolled sideways on a phone, and so did every other tab CORRECTION

One table on this site sat outside a scroll container. The amortisation runoff — Season, Already here, This window, Combined — is 560px wide and had nothing but a margin on its wrapper, while every other table on the page sits inside .twrap with overflow-x:auto. At phone width it stretched the whole document about 200px past the viewport, and because it was the document scrolling rather than a box inside it, every tab slid sideways, not just the one containing the table. All twenty club pages, identically.

It is not new and it was not the Read more button. The version of this page from before that change overflows by exactly the same 597 pixels against a 390-pixel viewport, which is worth stating plainly rather than letting the newest change take the blame for the oldest bug.

Why it went unseen is the more useful part. The browser check that runs against every page loaded it at desktop width and never clicked a tab, so it could not have seen either half of this: not the narrow viewport, and not the tab the table lives on. It now runs at 390px and walks all twelve tabs on all twenty pages, failing on any page whose document scrolls horizontally. That costs real time on each run, which is the honest price of catching a class of fault that only exists on the device most readers use.

30 Aug 2026

The deal notes now fold away behind a button LAYOUT

The note under a player’s name is where the reasoning for a deal lives, and on the busiest rows it runs to several hundred words. Read end to end that is the point of the table; scrolled past on a phone it buries the row underneath and everything after it. Long notes now clamp to two lines with a Read more button, and short ones are left exactly as they were — a note that fits gets no furniture around it. The full text stays in the page whether or not it is open, so it is still searchable, copyable and printable.

It did not work the first time, and the reason is worth writing down. The clamp was styled on a single class, and the table already carried a td .glide-cap rule setting the notes to display as blocks — a more specific selector, so it won. The result was a button that toggled its own label and changed nothing else: the line-clamp property applied, the display property it depends on did not, and the note stayed full height. Checked in a browser at phone width rather than by reading the stylesheet, which is the only way that particular failure shows up.

30 Aug 2026

A sell-on reduces the profit, not just the cash — and the gate that should have said so was reading a different page CORRECTION

Asked whether everything a transfer actually contains was applied to the deals on this site, and one thing was not. A sell-on owed to a former club is a cost of the disposal: it comes off the profit booked, not only off the cash banked. This site deducted it from the window balance and the List A test and then left it out of profit entirely — and profit is what feeds the squad-cost denominator through the three-year average. It now comes off booked profit, so the only quantified clause on the site, Villa’s £15m to Middlesbrough on the £117m Rogers fee, is handled by the model rather than by hand.

The gate was passing green on a £15m disagreement, and the reason is worth recording. The trading bridge’s check pulls the profit function out of the page and runs it — but that function reaches outside its own block for the sell-on data, which the extract did not include. Undefined dependency, guard returns zero, and the checker quietly computed a different profit from the one the page computes. A checker that does not mirror the page is not checking the page. It now pulls its dependencies across too, and it failed immediately when it did.

No figure moves today. The £15m had already been taken off this club’s denominator by hand when the sell-on was first noticed; the anchor gives that third back so the arithmetic lands in the same place, and from here it flows automatically. The three other clauses on the site — Baleba, Reijnders and Chérif — are recorded as unquantified and still contribute nothing, which is honest rather than convenient: the exposure is real and the percentage has never been reported.

30 Aug 2026

The Premier League homegrown quota arrives here, eleven months after it was built for one club NEW

This page has always tracked UEFA’s List A and never the domestic quota — a different rule with different arithmetic: 25 places, at most 17 non-homegrown, under-21s outside the list entirely. It was built for Aston Villa and the commit that shipped it said “the other nineteen follow”. They did not, for eleven months, because a missing feature breaks no gate and nothing was watching for absence.

Arsenal turn out to be the tightest case in the league. 24 of the 25 places are used and the eight qualifiers are exactly the eight a full 25 requires. Ezri Konsa is the reason: signing a homegrown centre-back from Villa on 19 August holds the count at eight, and without him Arsenal sit on seven and can name a squad of only 24 however much they spend. One place and one non-homegrown slot remain, so the last spot can go to anyone.

Homegrown is a registration test, not a passport test, and this squad shows both directions. Gabriel Martinelli is Brazilian and qualifies — three entire seasons at Arsenal from 18. William Saliba was signed at 18 and does not: he was loaned straight back to Saint-Étienne, Nice and Marseille, so no qualifying season was ever served here. David Raya qualifies through four years at Blackburn from 16. Twenty-six players now carry a date of birth and a stated qualifying basis, so the counts derive from the squad table rather than being typed, and the same headcount gate that holds Villa’s prose holds this page’s.

Verified rather than recalled. The borderline calls were checked against sources before being written down — Martinelli’s status, Raya’s arrival age, and the two dates of birth near the under-21 line, Cristhian Mosquera (27 June 2004, so not exempt) and Illan Meslier. The rule as stated here also carries a nuance the first version simplified: the qualifying window runs to the end of the season in which a player turns 21, not to the birthday itself.

30 Aug 2026

The sale-profit input now derives itself, like the wage input above it METHOD

in-psp is the three-year average player-trading profit in the squad-cost denominator, and it was hand-set on all twenty pages. The failure mode is the one the wage bridge was built to stop, one input along: a sale completes, its profit is booked in the table, and the figure meant to carry a third of it stays where somebody last typed it. It only ever moved when whoever booked the deal remembered — which is the definition of a number that will eventually be wrong.

The page now shows its working beside the input: the earlier years’ contribution, plus this window’s booked profit divided by three, because UEFA smooths player-trading profit over three years so one window enters at roughly a third. Booked means done and not a loan — an advanced deal has not completed and its profit is not in the accounts, which is also the convention this page was already kept on. The profit is net of the FIFA solidarity taken out of a foreign sale.

One thing about the anchor is worth stating rather than glossing. The earlier years’ figure is carried forward from the number this page already used, not sourced from published accounts, so the bridge agrees with today’s input by construction. It earns its keep from here on, by moving when a deal lands. Tested by planting a completed sale into the tables and leaving the input alone: the gate said the denominator was £20m short, which is exactly the silence it exists to break.

30 Aug 2026

A sale can lose money once FIFA has taken its 5%, and the formatter could not write it down CORRECTION

Modelling solidarity produced the site’s first negative profit on a completed sale. Villa banked ~£8.08m of Lucas Digne’s £8.5m fee against a book value of £8.5m, so that deal is a small loss rather than a break-even — which is the correct answer, and one the gross-fee basis could never produce.

The money formatter could not render it. It put the pound sign first and the minus wherever the number happened to start, so the cell read “£-0.4m” against a site that writes −£0.4m everywhere else. Nineteen pages had that version. Bournemouth had the correct one, negative-aware, written when its own trading profit went below zero — so the fix was to adopt the version already in the codebase rather than invent a twentieth. All twenty now share one formatter.

Checked in a browser rather than by inspection, because the failure this could introduce is a doubled sign where a caller already prepends its own minus: no malformed negative on any of the twenty, and no JavaScript error.

30 Aug 2026

FIFA takes 5% of every fee sold abroad, and this site had been booking 100% of it CORRECTION

Asked what else is inside a completed deal that these numbers miss, and the answer was the solidarity contribution. 5% of any international transfer fee is deducted from the fee and shared among the clubs that trained the player between 12 and 23. The mechanics decide who pays: the buying club hands over the headline number and distributes the 5% out of it, so a purchase costs exactly the fee already capitalised here — nothing was wrong on that side. The selling club banks 95%. Every profit booked on a sale abroad was therefore 5% too high, across all twenty pages, from launch. Around £28m league-wide.

On this page it is £1.71m, from the foreign sales of Leandro Trossard, Jakub Kiwior, Karl Hein. That comes off booked profit, and a third of it off the denominator, because sale profit feeds the squad-cost ratio through a three-year average.

The glossary had been claiming this was modelled the whole time. It said the 4% Premier League levy and FIFA’s 5% solidarity contribution both capitalise into registration cost — true of the levy, true of solidarity for a buyer, and quietly untrue of the thing that actually matters, which is what a seller keeps. Documentation that describes a calculation the code does not perform is worse than no documentation, because it stops anyone looking.

It is derived, not typed. The deduction comes from where the player went, which puts all the weight on classifying a destination — and getting that wrong is silent: an English club missing from the list costs its seller 5% of a fee it actually keeps, and no total looks odd. So tools/check-solidarity.js refuses to classify by default. Every fee-carrying destination must be a club one of the two lists already knows; a name in neither fails until a human decides which it is. The gate also holds the twenty inline copies of the classifier to being identical, for the same reason the wage gross-up is a single constant.

One assumption is recorded rather than hidden: Cardiff, Newport, Swansea and Wrexham are Welsh clubs inside the English pyramid, and are treated here as domestic because their registrations run through the English system.

Also documented, deliberately not changed: add-ons are modelled all-in on a purchase and guaranteed-only on a sale. That asymmetry makes the buy column a best case and the sell column a conservative one, and it now says so on the page instead of being visible only to whoever recomputes the fees.

30 Aug 2026

Wages in the deal tables were understated by 45%, and the sentence describing the fix was wrong on nine other pages CORRECTION

The site grosses wages by 1.45 to cover employer NI, bonuses and image rights — everywhere except the two columns readers actually look at. The cost of an arrival and the relief from a departure in the Incomings and Outgoings tables were built from raw weekly wages, so every one of them understated the real charge. Both columns are now grossed through a single GROSS constant, so they cannot come apart again. The headline ratio does not move: it is computed from the wage, amortisation and agent inputs, which were already on the grossed basis. What moves is the Net SCR Swing card and the two columns feeding it.

Which is where the second problem was. The swing is derived from the deal arrays and was therefore right the moment the gross-up landed — but the same figure is also typed into the overview callout, and typed figures do not move. The sale-profit figure beside it said £22m where the page computes £24m. Palace’s was the clearest case: it read “still negative” where the page computed a positive swing, so the sentence was not stale but inverted.

Nothing showed this in a browser. A small script copies the derived card into the overview span at load, so the screen self-healed while the file stayed wrong — the same failure as the share card that displayed correctly and shipped a stale number to anyone who read the source. tools/check-overview-figures.js now runs the page’s own formulas against the page’s own arrays and fails on any stated swing or profit that disagrees, in the callout or in prose. The changelog is excluded, because a dated entry is a record.

Two more holes closed while the gate was being written. The baseline gate knew five ways of phrasing a ratio and not the one in the most-read sentence on every page, which is how City carried “~65% ratio vs the 70% wall” against a computed 57.1%; it now reads that shape too. And tools/check-parity.js checks that CI runs every gate the local suite runs — twice a gate had been wired into one and not the other, and both times it was caught by eye rather than by anything.

30 Aug 2026

Ten answer blocks disagreed with their own pages — and the rule that lets that happen is now written down CORRECTION

The answer block is the first paragraph on every club page and the one a search engine quotes. It states four things that are all derivable — the ratio, the headroom or overshoot, what the club has banked from sales, what it has committed on signings — and only the ratio had a gate. Ten of the twenty disagreed with their own data. Brighton said £91.9m banked against £156.9m of completed sales; Manchester United £89m committed against £154m; Sunderland £0m against £32.6m; Forest was wrong on all three. Every answer block is now written from the deal tables and the ratio inputs rather than typed, and a gate holds them there.

One of the ten was two days old and mine. Manchester City’s said “£338m banked from sales”, which came from reading a total that includes advanced deals into a sentence that says banked. It is £288m. Advanced business is committed, not banked, and the gate now applies that distinction rather than trusting whoever writes the sentence to remember it.

Chelsea, Fulham and Ipswich stated no headroom at all, because they are over their line and the sentence had been written for clubs that are under it. They now say by how much: −£23.3m, −£19.2m and −£17.7m per year.

And the underlying rule is now recorded in the repo rather than relied on. A club page is twelve sections plus the head, the same quantity is stated in several of them, and every significant error here has had one shape: a figure corrected where somebody noticed it and left standing everywhere else. tools/echoes.js reports which sections state a given figure before it is edited, and the gates that exist because of this rule are listed alongside it. Anything derivable gets derived; anything typed gets a gate.

30 Aug 2026

No gate had ever read a headcount CORRECTION

Ten gates run on every build and not one of them counted players. They read percentages, deal statuses, transfer rows, bar widths and card images — so a sentence saying “nineteen senior players, six places unused” could sit beside a card correctly showing 22 and 3, indefinitely, with everything green.

There is now a gate that recounts from the squad table, using the page’s own registration rule rather than a second copy of it: a player is on the list unless he is loaned out or under 21 on the season’s cut-off, and the cut-off is read from the page rather than assumed. It checks the registered total, the homegrown and non-homegrown split, the free places and the under-21 count, in both digits and words.

It missed one of its own test cases on the first run. “Six more players are under 21” begins a sentence, so the word is capitalised, and a lowercase-only pattern walked straight past it — found only by planting each stale figure back and checking the build failed. Four claim types, four confirmed failures, then green. A check you have not watched fail is a guess about what it catches.

30 Aug 2026

The hero stat cards were three-across on a phone, and four of them left an orphan LAYOUT

Reported on Villa: three columns on a 430px screen squeezed the longest card into a ribbon, and because that page carries four cards rather than three, the fourth dropped alone onto a second row beside two empty cells. Below 760px the grid is now two columns, which gives Villa a clean 2×2.

The other nineteen pages carry three cards, so two columns would have left an orphan there instead. A lone last card now spans the full row rather than sitting beside a hole — so three reads as two-then-one and four reads as two-and-two, without a special case for either.

Desktop had the same orphan and nobody had mentioned it. Four cards in a fixed three-column grid is unbalanced at every width, not just on a phone. The grid fits its own content now, so Villa gets four across on a wide screen and the three-card pages are unchanged. Measured at 390, 430 and 1400px rather than eyeballed.

And the card that caused it got shorter. Villa’s List A churn description had just been lengthened to fix an arrival count, which is what made it tower over its neighbour. The names moved out — they are on the Ins & Outs tab — and every figure in it stayed.

30 Aug 2026

A stale ratio phrased one way slipped a gate built for another CORRECTION

The prose-baseline gate catches “roughly N% of football revenue”. It did not catch “sit at roughly N%”, which is how the glossary phrases the same claim — so a stale ratio could sit in a definition indefinitely while the identical statement in the FAQ was checked on every build. Found on Villa, where the glossary was two revisions behind the page.

Extending the rule found the same fault on three more pages nobody had asked about. Arsenal’s glossary said 64% against 66.1% computed; Fulham’s said 90% against 94.0%; Ipswich’s said the ratio “sits at roughly 85% — on the line” when it is 94.6%, about ten points over. Ipswich’s sentence also quoted a “~£106m gross window” that the deal table puts at ~£147m. That one was wrong twice and read as reassurance both times.

A gate that matches one phrasing of a claim is a gate against that phrasing, not against the claim. Both forms are checked now, and the extension was tested by planting the old figure back and confirming the build fails.

30 Aug 2026

Both loan bars read as full when only one quota was used CORRECTION

Reported by a reader looking at Villa on a phone, and right. The card showed two full amber bars, so both ceilings looked hit — when the line under the second one said 6 of 6 international slots still free. Only the domestic quota was used. The bar was hard-coded to 100% and had nothing to do with the sentence beneath it.

Every one of these bars was a literal width typed in beside the text it was meant to summarise. That is the same fault as the headline reading “1 + 6 Left” above a body saying none left, which already had a gate; the bar had simply never been looked at. They are derived now — “N of M remaining” means M−N used, and the width and the colour come from that, so the picture and the sentence cannot disagree. Amber only when nothing is left, which is the point at which a quota starts deciding what a club can do.

Writing the check found four more pages the report had not mentioned. Fulham, Ipswich, Tottenham and Coventry each had a quota line with no bar above it at all, so the international ceiling was invisible on those cards. And Chelsea’s international bar sat at 33% beside a sentence that stated no count whatsoever — nothing could have derived it and nobody could have checked it. That line now says 5 of 6 senior slots remaining and shows its working: Badiashile at Napoli is the one senior non-club-trained loan abroad, with Antwi and Murray-Campbell treated as academy and therefore exempt. Disagree with that classification if you like — the point is that it is now possible to.

The gate checks the source, not just the screen. Villa’s rendered card was fixed by the derivation the moment it was added, while the hard-coded 100% was still sitting in the file — correct in the browser, wrong in the thing a checker reads and the thing that renders before any script runs. Both are right now, and the gate compares the typed width against the stated numbers so a hand edit cannot quietly reintroduce it.

30 Aug 2026

Deep audit of the rules and the inputs: the wage figure had drifted from its own derivation on five clubs CORRECTION

The rule constants are unanimous across all twenty pages and all correct — the £105m PSR cap, the €60m earnings limit, the five-year amortisation cap and its 1 July 2023 start, the 4% Premier League levy, the 1 January 2005 under-21 cut-off, 17 non-homegrown of 25, two concurrent domestic loans and six international. Thirty-nine separate statements of the five-year cap; not one disagreed with another. That is the half of this audit with nothing to report, and it is worth reporting that it has nothing to report.

Every club’s cap now agrees with its European status. In Europe the UEFA line is 70%, outside it the Premier League’s is 85% — fifteen points of headroom turning on a single yes/no, asserted in three places at once and checked in none. All twenty agree: nine in Europe at 70%, eleven outside at 85%. A gate now enforces it, because a club’s European status is exactly what changes between seasons.

The real finding is the wage input. This site’s stated convention is that the wage figure IS the wage bridge’s own derivation on every accounts-basis club — that is what makes the league table comparable, and what makes the input track the window instead of sitting at a pre-window figure nobody updates. It had decayed on five clubs, because deals get booked by hand and the input gets nudged by hand with them, and a nudge drifts from the derivation the moment the arithmetic differs by a rounding. Tottenham were £22m adrift. All five are now set to the derivation and a gate holds them there. Promoted clubs are correctly exempt and the bridge explains why in its own text: a wage bill roughly doubles on going up, so last season’s accounts are the wrong anchor in both directions at once.

One club changes compliance status as a result. Bournemouth go from 69.8% to 71.2% — from just inside the 70% cap to about £3.4m/yr over it, in their first European season, on the tighter cap that European qualification brings. Tottenham move 64.6% to 68.3%, Forest 81.9% to 82.7%, Manchester City 57.7% to 57.1%, Villa 64.0% to 63.8%.

And two more pages were flooring their headroom at zero. Ipswich read “£0m of room” while sitting £17.8m/yr over the 85% line; Bournemouth would have done the same on crossing it. The same defect was fixed on Palace four days ago and not looked for elsewhere — which is the lesson, not the bug. Both now state the overshoot.

What the audit could not do. Every football site and reference database is blocked from this environment, so the transfer tables were reconciled internally — squad rows against deal rows, amortisation floors against inputs, both sides of every intra-league move — and checked externally only as far as search summaries allow. Internally they reconcile on all twenty clubs. That is a real guarantee about consistency and not a guarantee about completeness, and the £50m signing found missing yesterday is what the difference looks like.

30 Aug 2026

The share card is now checked like everything else — and two gates had never run in CI at all CORRECTION

Rebuilding the cards fixed today’s figures and fixed nothing about tomorrow’s. A generator someone has to remember to run is exactly what produced a card reading 60.2% four days out of date, so the question is not whether the cards are right now but whether they can go wrong again quietly. A gate now recomputes the card’s figures from the page and compares them against the token the builder stamped into the meta tag. Move any input — a wage, a fee, a sale — and the build fails until the card is rebuilt. It was tested by nudging Villa’s wage input and confirming the failure, and by stripping the token to confirm that fails too.

The builder and the gate read the figures through one shared module. Two copies of the same calculation drifting apart is the failure this site has hit more than any other, and it would be absurd to reintroduce it in the check designed to prevent it.

And checking the CI list against the local one turned up a real gap. Two gates — the one that catches stale ratio figures in prose, and the loan-quota headline check — existed, worked, and had never run in CI. They only ran when someone ran the full suite by hand, which means a direct push could have deployed stale numbers with a green tick. Both now run on every push, and the two lists are asserted to match. The prose-baseline gate is the one that has caught the most this week, and it was the one running least often.

30 Aug 2026

The share cards were showing a ratio four days and six deals out of date CORRECTION

The squad cost ratio is printed into the card image itself, which is fine until the ratio moves. Villa’s card said 60.2% against a page saying 64.0% — the figure from before the Goretzka wage correction, and before Jackson, Martínez, Suzuki, Ruggeri and the rest. Anyone sharing the link was posting a number this site had stopped believing on 27 August. Chelsea’s said 83% against 88.7%; Manchester City’s said ~65% against 57.7%.

There was no generator. The cards were made once, by hand, on 26 August and left, so nothing could have kept them current. There is one now: tools/build-og-cards.js reads every figure from the page it belongs to and rebuilds all twenty, and it runs like any other build step.

Cache-busting is the part that actually matters for sharing. X and Facebook cache a card image against its URL for days, so replacing the file in place does nothing for a link anyone has already posted. Each card’s meta tag now carries a version token derived from the figures on it, so the URL changes exactly when the picture changes and not otherwise.

The number is now coloured the way the page colours it — green three points clear of the limit, amber up to it, red past it. A card showing Ipswich at 94.6% against an 85% line in the same neutral cream as one showing Manchester United at 56.9% throws away the only thing a reader takes from a shared image.

And a gate now checks the alt text against the computed ratio, because that was stale too and in a way nobody would ever notice: six pages carried figures in the card’s alt attribute that no longer matched, including one that had never matched any published base. It was tested by planting the old 60.2% and confirming the build fails.

30 Aug 2026

Full pre-deadline audit of all 20 clubs — one £50m transfer was missing entirely SWEEP

Nico González, Manchester City to Newcastle, ~£50m, completed and announced. Medical taken, presented to supporters before the West Brom cup tie, No.6 shirt issued — and absent from both pages. It is the largest single omission this site has had to correct, and it moved two ratios materially: City 60.4% → 57.7% with headroom out to £100.2m, Newcastle 70.8% → 74.7% with headroom down to £46.8m against their 85% line. The fee is reported as reaching £50m after add-ons, so the guaranteed portion is lower and unpublished; £50m is carried on both sides because a counterpart has to agree, and it is flagged. The same number cannot be conservative for both clubs at once — it flatters City’s profit while overstating Newcastle’s charge — and that is stated rather than smoothed over.

Everything else checked out, which is the more useful result. Forty-odd names drawn from external reporting were tested against the pages one by one and every single one was already there. Where the reporting and this site disagreed, this site was right: one summary placed Detourbet, Monga and Rulli at Nottingham Forest when all three are Manchester City signings, and another had Bouaddi at Forest when City announced him.

Two numeric errors found by audit rather than by reading. Manchester City’s Kalvin Phillips loan credited £11.3m of relief when a loan frees the wage and none of the amortisation — the registration stays, and so does the charge. Corrected to £7.8m. Nottingham Forest’s Gustavo Sá loan freed nothing at all when Olympiacos pay his wages; corrected to £1.8m. Two more outgoing loans, at Leeds and Liverpool, carried no loan flag, so the amortisation book and the List A gate were treating them as permanent sales.

Eight new checks, and they were run against real data before being trusted. A completed permanent signing must have a squad row; a sold player must not still be in one; a destination reading “loan” must carry a loan flag; no duplicate squad rows; no fee without contract dates; no end date before the signing date; no signing dated in the future; no expired contract still in the squad. All eight are clean across all twenty clubs, and two were deliberately broken to confirm they fail. Three earlier checks this week passed on their first run because they were wrong, not because the data was right, so nothing goes in now without being made to fail first.

What this sweep cannot claim. Every football site, news aggregator and reference database is blocked from this environment, so external checking is search summaries only — and those summaries mixed up clubs twice in this pass alone. The internal consistency of these pages is now verified exhaustively and mechanically. Their completeness against the real world is verified as far as search allows, which is not the same thing, and the González miss is what that gap looks like.

30 Aug 2026

The stale-rumour gate could only see half the market — two more boards were selling players who had left CORRECTION

Yesterday’s gate checked live rumours against completed incomings at other clubs. That catches a player who moved between Premier League clubs and nothing else. Two whole classes of exit were invisible to it, and both had live cards sitting on boards.

A player sold abroad appears in no incoming table anywhere. Spurs sold Cristian Romero to Atlético Madrid and announced it on 15 August; Arsenal’s board went on offering him to the scenario modeller for a fortnight. The gate now reads completed outgoing rows as well, taking the destination from the row itself — which is derivable, and should have been there first time.

And a move between two non-Premier-League clubs is recorded on no page at all. Bayern sold João Palhinha to Benfica on 26 August — €14m plus up to €5m, contract to 2030 — and Newcastle’s card still read “door ajar again”. Nothing structural could ever have caught that, so there is now a small list at tools/gone.json for exactly this case, and the gate fails against it. Two names so far: Palhinha, and Leão to Galatasaray.

One false positive, worth recording because it nearly shipped. The first version read Jadon Sancho’s outgoing row — destination “Free agent” — as him having joined a club called Free agent, and would have killed two perfectly live cards. A released player has left a club and joined nobody: he is more signable, not less. Release destinations are now excluded, while a row naming an onward club after an arrow still counts. All three arms were then tested by un-flagging a closed card and checking the gate fired, because a check nobody has seen fail is not yet a check.

Cards closed: Romero (Arsenal), Palhinha (Newcastle), Cho (Hull, where Hull themselves ended the talks on 10 August). Each keeps its note as the record and leaves the modeller.

30 Aug 2026

Dead rumours were still tickable — three players could be “signed” on boards they had already left CORRECTION

The scenario modeller priced any card you ticked, including cards whose own tag said the player was gone. Newcastle’s board offered Nicolas Jackson after he had joined Villa; the tag read “DEAD — JOINED ASTON VILLA” and ticking it still moved the ratio. Liverpool’s offered Ezri Konsa, an Arsenal player since 20 August. Chelsea’s offered Ousmane Diomande, who is at Forest. This site has named that exact contradiction in its own changelog — “a completed deal and a live rumour for the same player” — and then kept shipping it, because nothing was looking for it.

Now something looks. A gate fails any live incoming rumour naming a player who has completed a move to another club, which is derivable from the transfer tables rather than from a tag somebody remembered to type. Only incoming cards are checked: an outgoing rumour naming a player another club has signed is the same move seen from the selling side, and that is correct. It found all three on its first run.

Dead cards now stay on the board and leave the model. They keep their note as the record of what a club looked at, greyed, with the tick removed and the impact line replaced by “no longer available”. Deleting them would lose the history; leaving them live was worse.

30 Aug 2026

Deadline-week sweep: four announced deals the tables had missed, and a gate that was crying wolf SWEEP

Four deals were sitting at “advanced” after their clubs had announced them. Bouaddi to Manchester City — announced on the club’s own site on 26 August, and carried here as unannounced for four days, with the prose quoting “~£95m/€110m… agreed in principle” when the real deal is £81.3m fixed plus £4.3m of add-ons on a contract to 2031. Badiashile to Napoli, announced 22 August. Disasi to Crystal Palace, announced 26 August by both clubs. And Emi Martínez to Chelsea, announced by Villa on 30 August. All four are now booked, with the ratios on five pages moving as a result.

The Disasi loan is the one with a consequence nobody was watching. Palace were sitting a whisker inside the 70% cap that their European qualification imposes. Taking a £120k/wk centre-back on loan added ~£9.0m/yr of grossed wages and put them over it — a loan, with no fee, no amortisation and no transfer to report, moving a compliance position that a £30m signing would have been scrutinised for. This page has argued all summer that loans are treated as free when they are not; this is the arithmetic saying it.

And the prose-baseline gate was flagging a correct sentence. It reads any “roughly N% of football revenue” as a claim about the club’s own ratio — but “capped at roughly 70% of football revenue” describes the LIMIT, and Palace’s page says exactly that, twice. A gate that fails on correct text is worse than one that stays quiet, because the next person learns to skim past it. It now ignores the phrase when cap or limit wording precedes it, and it still fails on a genuinely stale figure — checked by planting one before shipping.

28 Aug 2026

The league window table was wrong on 19 of its 20 rows — and an edit ate two deal rows without a single gate noticing CORRECTION

The “Who’s Selling to Survive” table is a derivation and had stopped being one. Its own caption defines it exactly — disclosed fees on officially completed 2026 deals, loans and frees excluded — so every figure in it can be recomputed from the transfer tables it summarises. Nineteen of the twenty rows disagreed with those tables. Six clubs were shown as having spent nothing at all, including Newcastle at £0 against £174.9m of completed incomings and Manchester City at £0 of sales against £238m. The rows were hand-maintained, the pages moved on, and nothing compared the two. All twenty are now derived from the pages, with the hand-written notes kept, and a gate recomputes them so the table cannot drift from the deals again.

The second fault is worse, because it was self-inflicted and invisible. Promoting Jackson spliced his row out of one array and into another by matching the next }, — and deal rows share source lines, so the edit swallowed whatever followed on the same line. Goretzka’s incoming row vanished from Villa and Kellyman’s outgoing row from Chelsea. All eight gates passed. A missing row breaks no parse, satisfies every invariant, and simply makes the totals smaller — and nothing on the page knew what they should have been.

Two things now catch it. A squad player signed inside the window must also appear in the incoming table, which is a real structural invariant: the squad row survives when the deal row dies, so it is the witness. That check found a third case immediately, one nobody had touched today — Forest’s Gustavo Sá has had a squad row since July, with a book value and an amortisation charge, and his incoming row was never written. A changelog entry from that sweep claims he was added “both halves of him”. One half was missing. And for outgoing rows, which leave no trace on the page once the player has gone, there is now tools/diff-rows.js: it reports every deal row added or removed against a git ref, to be read before committing rather than after.

27 Aug 2026

A free transfer was costing the window totals nothing at all — £35.7m/yr across six pages CORRECTION

The cost-per-arrival calculation returned zero for any signing without a fee unless the row also carried a loan flag. So a free signing’s wages vanished from “cost added by this window” entirely. Goretzka was showing as costing Villa £0.0m. On the very page whose card argues that “the free one is the expensive one — a fee buys an asset that amortises and can be sold, a wage buys nothing and recurs”. The card was right and the arithmetic underneath it dropped the wage.

£35.7m/yr was missing across six pages: Villa £13.6m (Goretzka, Özcan, Guessand), Palace £8.1m (McNeil, Guessand), Liverpool £7.8m (Araújo), Everton £4.9m (Johnson), Coventry £1.1m, Fulham £0.2m. Villa’s window swing moves from +£12.4m/yr to +£26.0m/yr.

There were seven different versions of that one line across twenty pages, each special-casing frees and loans slightly differently, and the differences were exactly what caused this. They are now one formula — the one Hull already used: amortisation and the agent fee when there is a fee, and the wage on every arrival, fee or not.

And it exposes something this card cannot fix by itself. The List A gate carried a hand-typed margin of “Villa pass by ~£3.5m/yr” on the cost-based test. The page’s own sums now put the window at adding ~£26m/yr. That figure predates Jackson and Watkins, and the window totals count wages ungrossed while the ratio grosses them, so the two were never on one basis. The cost-based margin is now marked UNVERIFIED rather than passing — the fee-based balance above it is sound, that one is not, and saying so beats printing a number that cannot be reproduced.

27 Aug 2026

A headline that contradicted its own paragraph — and nine more stale ratios behind it CORRECTION

Villa’s loan-quota card said “1 + 6 Left” in green, directly above a paragraph reading “0 of 2 concurrent remaining” and “ROOM: none left domestically”. Wan-Bissaka’s loan on 18 August took the second slot. The body was updated; the big number at the top was not. So the figure a reader sees first said a slot was free while the text underneath called the same thing a binding constraint. The bar sat at 50% with nothing left, and the card was still green. Crystal Palace had the same shape — “2 + 6” above “1 of 2”, left over from before the Guessand loan.

The failure runs one way every time: the prose gets edited and the summary above it does not. tools/check-quotas.js now fails when a loan-quota headline disagrees with its own body, including when the room note says “none left” and the headline disagrees. Verified by sabotage — put the wrong number back and it fails on exactly that.

Then the baseline gate was widened and found nine more. It was matching “ratio is X%” and “X% → Y%” but not the Quick Answers phrasing, “roughly 63% of football revenue” — which is the plain-English answer a reader or a search engine is most likely to lift. Brentford were claiming 75% while computing 84.9%. Manchester City 65% against 57.3%. Newcastle 74% against 70.8%. Ten pages rebased from their own inputs.

Two gates, two days, and both found more than the bug that prompted them. That is the argument for writing the check rather than the fix: the fix closes one hole, the check tells you how many others there were.

27 Aug 2026

The baseline gate had a hole in it and was passing on what it could not see CORRECTION

The gate shipped this morning excluded the changelog by truncating each page at <section id="log">. The data arrays holding every rumour card sit in a script block after that point. So it was scanning 167KB of a 422KB page, never saw a single card’s projection, and reported green.

It now removes only that section and keeps the rest. On the first honest run it immediately found eleven stale figures across three pages — every Villa projection still quoting a baseline two changes old, and two on Chelsea. All recomputed.

A gate with a hole in it is worse than no gate, because no gate makes you check and a green one stops you looking. This one was written, tested against the case that prompted it, and shipped — and the case that prompted it happened to sit in the part of the file it could still see.

One rule came out of it. A live rumour card may state a projection, because the gate now keeps it honest against the current base. A completed deal may not: “60.2% → 63.4%” was true the day it was written and decays the moment anything else moves, and the effect is already in the headline. Those now state what the deal costs instead.

27 Aug 2026

A new gate: does the prose still quote the ratio the page computes? CORRECTION

Twelve of the twenty pages were asserting a squad cost ratio their own inputs no longer produced. Manchester City claimed 63.0% while computing 57.3%. Manchester United said 53.9% against 56.9%, Sunderland 60.9% against 63.2%, Coventry 69.7% against 71.0%. Every one has been rebased from the page’s own figures.

Most of it sat in the answer paragraph and its structured-data twin — the text search engines and AI crawlers read before anything else, which makes it the worst place on the page to be stale. The headroom figures beside them were rebased too.

Nothing was catching this. The status gate reads deal status; the invariants gate reads the arrays; neither reads a percentage in a sentence. It surfaced only because a single free transfer moved one club’s baseline and the knock-on was visible. tools/check-baselines.js now recomputes every page’s ratio from its inputs and fails on prose asserting a different one, and it runs with the rest on every change.

Two things it deliberately does not flag. A sentence reading “68.6% → 62.0%” where 62.0% is the current ratio is a completed move being described, not a stale claim, so a done deal can still say what it did. And the changelog is excluded entirely: a dated entry recording August’s number is the record, and rewriting it to match today would be the opposite of what this tab is for.

26 Aug 2026

The amortisation graph now splits the squad you had from the squad you bought FEATURE

One bar was hiding the more interesting number. The run-off now stacks two series — the squad that was already here in blue, and everyone signed this window in amber — with both totals and a combined figure above it, and a per-season split beside each bar.

It changes what the chart says about a club. A settled squad shows a thin amber band on a thick blue one; a rebuild inverts it. Coventry carry £14.0m already here against £28.9m signed this window, so two-thirds of their amortisation arrived in ten weeks, and their inherited book runs out entirely by 2028/29 while the new one still has three years to run. Liverpool are the other extreme at £143.6m against £18.4m. Same chart, opposite stories, and neither was visible when it was one bar.

Who counts as “this window” is taken from the signing date, not from the flag the squad rows carry. The two disagree: the date catches six players the flag had missed — Garnacho and Cissé here at Villa, Bentley at Coventry, Charles at Fulham, Sá and Diomande at Forest — and never disagrees the other way. A derived test cannot be forgotten the way a hand-set one can, which is the same reasoning that put the sell-ons and the outgoing amortisation on derivations.

Two rows of figures now sit above the chart and they will not always agree, so the panel says which is which rather than leaving a reader to spot it. The first row and the graph are the SQUAD, split by arrival date. The second row is the DEALS, including advanced ones whose players are not in the squad table yet. Where they differ the panel names the gap and what it is — agreed business that has not completed.

26 Aug 2026

Every deal now shows what it costs per year — and the agent fee was being charged five times over FEATURE + FIX

A fee only means something against the charge it creates. £47.5m is a headline; £9.9m a year for five years is the thing that reaches the squad cost ratio. Until now this page printed the fee on every row and the amortisation on none of them. Both tables now carry an AMORT £m/yr column, and a panel underneath gives the number those rows add up into: the squad’s total annual amortisation, what this window has added and freed, and how the charge runs off over the next five seasons as existing deals finish.

None of it is newly typed data, which is the point. Incoming charges come from the player’s own squad row where one exists — real contract dates, five-year cap applied where it bites — and from fee over five years where a deal is advanced and the player is not in the squad yet, flagged est when that happens. Outgoing charges are derived rather than stored: a row’s cost-freed figure is the ungrossed wage plus the amortisation, so subtracting the wage leaves the charge that stops. They cannot drift from the totals above them because they are computed from them.

Loans show a zero, and that is the correct answer rather than a missing one. A loan moves the wage and leaves the registration here, so the amortisation stays too — the point this site has made about loans since the wage bridge, now visible as a column entry instead of a paragraph.

And a bug the new column sat straight on top of. The cost-per-year calculation behind these tables charged the agent fee in full every single year instead of capitalising it and spreading it over five — the same error corrected in the scenario modeller last week and missed here. On a £47.5m signing it overstated the annual cost by £1.9m. Every SCR-cost figure in the Ins and Outs tables, and the window’s cost-added total, move down accordingly.

One thing the new column makes visible and this page is not hiding: the SCR cost figures in these tables count wages at face value, while the rumour cards, the scenario panel and the wage bridge gross them up 1.45x for employer NI, bonuses and image rights. The same signing can therefore read £17.1m in the table and £20.2m on its card. The grossed figure is this site’s convention and the table is the odd one out. It is stated in the panel rather than quietly reconciled, because restating it moves every published window total on all twenty pages and deserves its own pass.

25 Aug 2026

Álvarez at £130m, funded by a Martinelli sale that cannot fund it UPDATE

Update 25 August, six days left. Arteta is reported ready to make a £130m push for Julián Álvarez, but only on assurances the player wants the move — and the pursuit is reported as contingent on selling a forward first, with Martinelli the name. The modelled fee moves £120m → £130m.

The sequencing is now stated openly by the reporting, and the arithmetic does not work. At £130m and ~£300k/wk, Álvarez is a ~£50m/yr squad-cost item on this page’s model. A Martinelli sale at £55–60m relieves nothing close to that: his 2019 £6m fee is all but fully amortised, so the sale is almost pure profit but almost no cost relief. Selling him funds the fee and barely touches the ratio. The two should not be read as a swap.

Martinelli’s destination has changed too. Al-Hilal, having shunned Galatasaray over the Turkish league. The fee is unsettled and this page will not pretend otherwise: one report has £55m, another has Arsenal wanting £60m, a third has €55–70m under discussion — which converts to roughly £47–60m and so straddles both sterling figures rather than confirming either. £55m modelled, £60m noted as the ask.

25 Aug 2026

The “last updated” notice is gone — it had stopped telling the truth REMOVED

There were two of them. A line under the header reading “DEALS & FEES AS REPORTED [date] · BOOK VALUES & CALCS RECOMPUTE DAILY”, and a script that read that date and, once it was four days old, pushed an amber banner above the header warning that the page had last been checked N days ago.

The second one was firing on all twenty pages. The date it keyed off was hand-typed and ranged from 9 to 19 August across the site — while the deals underneath had in fact been swept on the 24th and 25th. So the site was leading with a warning about itself, generated from the one number on the page that nobody was maintaining. A staleness notice that is itself stale is worse than none: it tells readers to distrust figures that are current.

Both are removed, with their CSS. Nothing else changes — every ratio, book value and window total is unaffected, and the dated entries in this changelog remain the honest record of when each page was actually worked on.

23 Aug 2026

You can now change the numbers — and the card line beside them was still wrong FEATURE + FIX

Every fee on the rumour board is somebody’s estimate. Brugge “value him around €45m”. Al-Hilal’s bid reached this site in the wrong currency and had to be chased down. Marmoush’s fee is arithmetic off a reported two-player budget rather than a figure anyone published. Readers were being asked to take those guesses as given.

So the amounts are editable now. Every card carries a fee box, and incoming cards a wage box too. Type your own number and the card’s cost line and the scenario panel both follow it immediately. Reset puts the reported figure back — overrides are held separately and the underlying data is never overwritten, so there is always something true to return to. Outgoing cards expose the fee but not the wage, because an outgoing player’s relief is derived from his squad row rather than typed, and the fee is the part that actually moves the profit on the sale.

And a fix that should have landed with the modeller rebuild. The card’s own “ADDS £Xm/yr” line was still running the OLD formula — ungrossed wages, and the agent fee charged in full every year. The calculation underneath was corrected; the display beside it was not, so every card showed one number while the panel below computed another. On this site’s own worked example the card said £10.1m and the panel used £10.7m — the exact discrepancy that rebuild was written to explain, sitting in the markup the whole time. Both now call the same helper, and that is checked on all twenty pages: tick a card, and its figure and the panel’s agree.

22 Aug 2026

The 22 August sweep, and a modeller that was wrong three ways DATA + METHOD

Konsa is a FOUR-year deal, and the announcement has landed. Arsenal confirmed him on 21 August, to 2030 with an option — not the five years this page assumed. That is roughly £2.4m/yr more amortisation than modelled. The 20 August entry defending his inclusion on Ornstein alone can stand down: he now qualifies on the ordinary standard. And this page said Arsenal's window had been permanent-deal-only, in three separate places. Ismeal Kabia joined St Mirren on a season loan on 15 August, announced by both clubs; Charles Sagoe Jr is also out at Kalmar. The loan line was wrong, and it was wrong because nobody had looked.

The scenario modeller was wrong in three ways at once, on every page on this site. An incoming signing's wage was charged with no gross-up, while the wage bridge, the ratio inputs and every note here gross wages by 1.45x for employer NI and image rights — so every modelled signing was 45% cheaper on the wage line than the same player would be in the ratio directly above it. The agent fee was charged in full every year instead of being capitalised with the fee and amortised, so a £60m signing carried £3m/yr of agent cost rather than £0.6m. And sale profit never reached the denominator: nineteen pages let a sale relieve the numerator and stop, when the profit also lands in the denominator through the three-year average, and the twentieth added the whole window's profit when one window belongs at roughly a third.

Why none of it showed up. The first two faults pull in opposite directions and roughly cancel at a typical fee-to-wage ratio — for a £25m signing on £70k/wk the old code gave £10.09m/yr against a true £10.73m, close enough to look right. They do not cancel at the edges: a free transfer on big wages was understated by 45%, a big fee on modest wages overstated by about 9%. Two errors that hide each other are worse than one that does not.

Outgoing relief is now derived, not typed. The hand-set relief on all eighty outgoing rumour cards carried the same ungrossed wage — checked against the squad, the stated figures reproduced the ungrossed derivation almost exactly. Relief and profit now come from the squad row, on the same gross-up and the same five-year cap as everything else, with the typed figure kept as a fallback for the handful of names with no squad row. Profit is allowed to be negative, because some of these sales are losses and the page should say so.

20 Aug 2026

Two method changes: the five-year cap, and the wage input becomes the derivation METHOD

The ratio moves from 65.7% to 66.2% (wages 314→297).

The five-year cap, finally applied. This site's glossary has always described the rule that fees must be amortised over a maximum of five years however long the contract — and the code did not do it, spreading every fee across the whole contract instead. An eight-year deal was therefore charged at five-eighths of its true annual cost. The cap now applies to contracts signed from 1 July 2023, when it took effect; earlier deals are left alone, which correctly grandfathers the January 2023 contracts that prompted the rule and avoids capping long spans that are really a record of extensions rather than of one contract.

And the wage input is now the derivation. The wage bridge has been showing a derived figure beside a hand-set input since it was built, and on most pages the two disagreed. The hand-set number was anchored to a pre-window figure and never tracked the window, which is why the inputs sat high at clubs that sold heavily and low at clubs that bought. The input is now the derivation on all fourteen accounts-basis clubs, so it updates itself as deals land and the same method produces every club's number. That is what makes the league table comparable, which was the point of building the bridge.

What has not changed is how good the number is. It still rests on two assumptions — 80% of staff cost being players and coaches, and a 1.45x gross-up — and the bridge still shows both. Agreement between input and derivation means they are consistent, not that they are right.

20 Aug 2026

Konsa signed — £51m plus £4m, and the headroom gets tight DEAL COMPLETE

The deal. Complete per Ornstein at £51m guaranteed plus £4m in add-ons, after ownership-level dialogue closed a gap that had sat at £60m for a fortnight. The fee came in below what this page had been modelling, which is the unusual direction for a deadline-adjacent deal.

What it costs per year. On the five-year term modelled here, ~£10.9m of amortisation with the 4% levy, plus ~£9.8m of grossed-up wages. Amortisation rises to £211m and wages to £314m, taking the ratio from 65.7% to ~68.3% — against a 70% limit, because Arsenal are in Europe. That is under two points of room left, and the window has not closed.

The soft number. No source has published the contract length. Five years is this page's assumption, and on £51m the difference between four years and five is about £2.7m/yr of squad cost — roughly a third of a point. It is flagged on the row rather than buried.

A note on the standard. This site's rule is that a club announcement moves a row into the transfer table and nothing else does — it is why Bahoya sits in Everton's Rumour Mill and why this deal sat at ADVANCED through the medical. Ornstein reporting a move complete is a different claim from reporting one agreed, and it is taken here on the strength of the source. Recorded as an exception, deliberately, rather than by quietly widening the rule.

19 Aug 2026

Two lines about another club’s transfer, corrected CORRECTION

What was wrong. The net-spend caption on this page read “net of the ~£20.3m Middlesbrough sell-on share on Rogers”. Morgan Rogers went from Aston Villa to Chelsea and has nothing to do with Arsenal — the sentence was copied from the Villa page when these pages were built from a common template, and had been sitting under Arsenal’s transfer balance ever since.

What it did and did not affect. Text only: this page’s sell-on constant is zero and its net spend is a plain sales-minus-buys, so no figure was ever wrong. The caption now says what is actually true, which is that Arsenal owe no sell-on shares on this window’s sales. The glossary reference to the Rogers clause is also corrected — it is 20% but capped at £15m, so £15m went to Middlesbrough, not the ~£20m stated.

19 Aug 2026

Ratio counts announced deals only — Konsa excluded until confirmed BASIS CHANGE

Konsa’s estimated £130k/wk comes back out of the squad cost ratio, which now counts only deals a club has confirmed. The squad row stays so the arrival is visible, flagged as unannounced. Ratio back to 65.7%; when Arsenal announce him, the wages and five years of amortisation on £51m land together. Mirrored on the Villa page, where Konsa correspondingly stays on the bill until the same moment.

19 Aug 2026

Ezri Konsa agreed at £51m plus add-ons — fifth signing of the window ADVANCED SIGNING

Agreed 19 August (Ornstein), with the medical on the 20th, after dialogue at ownership level closed the valuation gap. The notable part is the direction: this page had been modelling ~£60m, and the deal landed at £51m — a rare late-window move in the buyer’s favour, and the result of Villa needing the profit as much as Arsenal needed the defender.

What it costs. The squad row is carried so the arrival is visible, but it is flagged as unannounced and excluded from the squad cost ratio, which counts only deals a club has confirmed — so the ratio stays at 65.7% until Arsenal announce him, at which point an estimated £130k/wk and five years of amortisation land together. Saliba’s injury started this search and Timber’s made it urgent, so the football case needs no explaining; the ledger case is that £51m for a 28-year-old England centre-back is the cheapest of the summer’s big defensive moves.

Mirrored on the Villa page, and the cross-page checker was used to confirm it: the first run flagged Konsa as being claimed by two clubs at once, which is exactly the failure this tracker exists to avoid. Resolved by marking the forward-modelled squad row as advanced, so residency is not asserted before the announcement.

15 Aug 2026

Konsa talks reopen with the fee converging on £60m · Hinshelwood link added RUMOUR MOVES ONLY

Ezri Konsa. Timber’s injury on top of Saliba’s has forced Arsenal back to the table, and the reporting now splits: the louder end calls an agreement ‘99% done’ at ~£60m, the soberer end has Villa still demanding £60m+ with the improved proposal not yet lodged. Nothing announced, no medical — the card stays a rumour with the modelled fee trimmed £65m → £60m.

Jack Hinshelwood. New card: Arsenal are reported to lead the race for the Brighton midfielder, with £43–51m believed enough. Modelled mid-range at £47m.

12 Aug 2026

Konsa: the improved second bid goes in

Arsenal have lodged their improved second offer for Ezri Konsa — the follow-up to the £64.1m (€75m) bid rejected on 2 August. No reliable figure has been reported yet; Villa's stance (Emery wants him kept, replacement first) is unchanged and no agreement is close. Modelling on the rumour card is unchanged until a real number lands. Context that helps Arsenal: Villa's Guessand loan to Palace was announced today and their Bailey sale collapsed — neither eases Villa's need to hold their best defender.

10 Aug 2026

Correction: Nørgaard’s £7m Everton move (announced 5 Aug) was missing from this page FIXED

Christian Nørgaard joined Everton on 5 August — €8.2m (~£7m) on a two-year deal, officially announced by both clubs — but this page still carried him in the squad table. Cross-checking against Everton’s page caught it. He now sits in Out 2026 (~£2m book profit on the £10m Brentford fee from summer 25), the squad table drops his ~£5m/yr amortisation, and SCR wages ease 308 → 304. Net effect: the ratio estimate moves ~65% → ~64%, headroom ~£38m/yr → ~£47m/yr, and the window balance improves from −£119.8m to −£112.8m. The 3-yr smoothed sale-profit input stays £35m — a £2m profit spread over three years rounds away.

09 Aug 2026

Guimarães is DONE — announced 8 Aug, presented before the Emirates Cup · Barcola fades to Liverpool · Yildiz and Romero enter the papers OFFICIAL

Bruno Guimarães graduates from Advanced to Done. Arsenal formally announced the signing on Saturday morning, 8 August: a reported ~£75m fee, a four-year contract to 2030 with a further one-year option, the No.39 shirt, and Berta calling him a strengthening of "the heart of our team". He was presented to the crowd before the Emirates Cup match against Dortmund — which Arsenal then lost 2-3, Guimarães not in the squad, Nwaneri scoring and Tzolis winning the penalty Gyökeres converted. Consequences on this page: he joins the SQUAD table (fee £75m, signed 08 Aug 2026, contract to 30 Jun 2030), so the derived amortisation moves itself from ~£173m to ~£192m (~£19m/yr for his contract), the SCR wage input rises ~£8m to ~£308m for his estimated ~£160k/wk, and the headline ratio moves from ~62% to ~65.2% with headroom falling from ~£65m/yr to ~£38m/yr — exactly the post-registration numbers this page has been trailing all week. The window balance is unchanged at −£119.8m, because the fee was already counted at Advanced. The 3-yr smoothed sale-profit input (£35m) is untouched — no sale completed. Involves Newcastle, whose page carries the selling side of the same deal.

Status moves. Barcola fades: he is reported to have agreed personal terms with Liverpool and to prefer Anfield if a club deal is done — Liverpool's ~€115m bid is in (expected to be rejected, an improved one readied) against a PSG ask now nearer £128m — so his row is re-tagged Fading rather than removed; no Arsenal bid was ever reported. Álvarez holds at In talks: the reported transfer request is still due Monday 10 August (also Barcelona's self-imposed deadline), he has returned to train under Atlético supervision, and Simeone said publicly he is not for sale; most reporting keeps Arsenal as the leading alternative at ~£120m, though one Barcelona-facing outlet claims Arsenal have dropped out — flagged, not adopted. Konsa unchanged at In talks: no agreement, no new bid lodged, Villa braced for the improved offer and Emery wanting him kept. Martinelli: Galatasaray have submitted an official bid reported at ~€40m (~£35m), below an ask reported anywhere from ~£40m to ~£60m; Arsenal are reported unwilling to sell before signing a left-sided attacker. Kepa is staying barring a sizeable bid — Juventus have no interest (they prioritise Emi Martínez) and no club has approached Arsenal. Nico Williams firms up: weekend reporting has Arsenal ready to trigger the ~£77m clause, with Berta talking to his representatives; no official bid.

Added. Kenan Yildiz (Juventus) enters the Rumour Mill — contact and scouting reported after the Vinícius collapse, Juventus wanting well over £85.7m; modelled at the reported ~€100m ask with a tracker-estimate wage. Cristian Romero (Tottenham) enters as pure Sunday paper talk, clearly labelled: reported open to Arsenal, but Spurs adamant he will not cross the divide while Atlético push at a mooted ~€40m. Checked and deliberately not changed: Jesus (Milan's ~£13m verbal vs the ~£20m ask — still a gap, not a deal), Gyökeres (staying), and no Arsenal sanction or compliance news appeared this weekend. All prose, hero figures and JSON-LD quoting the pre-Guimarães ~62%/~£65m numbers now carry the post-announcement ~65%/~£38m ones.

08 Aug 2026

Guimarães signed & sealed but still unannounced · Vinícius signs for Madrid and dies as a pursuit · Barcola enters the frame WINDOW

Still no official announcement, so still nothing promoted to Done. Confirmed 2026 business remains three in (Hincapié, Meslier, Tzolis) and three out (Trossard, Kiwior, Hein), and every hero figure that follows from completed deals — window balance (−£119.8m), squad table, derived amortisation (~£173m), the 3-yr smoothed sale-profit input and the wage input — is deliberately unchanged, because no deal completed. Bruno Guimarães is now as close to Done as Advanced gets: the medical is completed, a four-year contract to 2030 is signed, kit photos are taken, and Newcastle's chief executive David Hopkinson ("a very special player and person") and sporting director Ross Wilson have publicly confirmed the departure — but as of Saturday morning neither club has published a formal announcement, with reporting suggesting he may be presented before the Emirates Cup match against Dortmund. One accuracy note from the contract detail: earlier reports said five years; a four-year term amortises the ~£75m over four, so the true annual cost is nearer £31m/yr than the ~£28m/yr this page's five-year modelling convention shows — both figures are now stated where the deal is priced. Involves Newcastle, whose page carries the selling side.

Status moves. Vinícius Júnior is dead as a target — he signed a new Real Madrid contract on 6 August, reported at six years to 2032, ending the pursuit outright; his row leaves the Ins table and the Rumour Mill entirely. Julián Álvarez now has a date: he is reported to be preparing a formal transfer request on 10 August, the same day as Barcelona president Laporta's self-imposed deadline, with Barcelona sending Deco and their senior transfer team to Madrid for a final push. Atlético still refuse to sell to Barcelona while keeping Arsenal (at a reported ~£120m) and PSG in dialogue; the player still prefers Barcelona. Holds at In talks. Ezri Konsa: the £64.1m bid remains unaccepted, but Arsenal are reported to be preparing an improved offer once the Guimarães paperwork clears and Villa are now described as increasingly resigned to his exit — momentum restored, still In talks. Involves Aston Villa. Gabriel Jesus: Milan's verbal offer is now reported at ~£13m against the ~£20m ask — a real number at last, but a gap, not a deal. Kepa: the exit has faded — a mooted Di Gregorio swap with Juventus went nowhere and recent reporting has Arsenal minded to keep him; his rumour line is re-tagged accordingly. Martinelli: ~£40m ask unchanged, Roma described as likeliest, and Fenerbahçe now credited with a first move.

Added. Bradley Barcola (PSG) enters the Rumour Mill as the post-Vinícius pivot: Arsenal are reported to have switched attention to him (with 18-year-old Ibrahim Mbaye also scouted), but Liverpool's ~£100m bid is already in formal talks and Arsenal sit third in the queue against a PSG ask of £130–145m — modelled at £130m with a tracker-estimate wage, no Arsenal bid reported. Checked and deliberately not added: Reiss Nelson exit chatter resurfaces in searches but the concrete "advanced talks" stories date from August 2024 (the Ipswich/Fulham loan saga), so nothing current is verifiable and he stays off the tables; João Pedro remains a dead, rejected approach; and no sanction or compliance news involving Arsenal appeared this week. Hero figures, prose and JSON-LD that quoted the three-way attacking shortlist now reflect the new shape: Álvarez, Nico Williams, Barcola.

05 Aug 2026

Guimarães through the medical but still unannounced · the attacking shortlist becomes a shortlist of four WINDOW

Nothing was officially announced today, so nothing was promoted to Done. Confirmed 2026 business remains three in (Hincapié, Meslier, Tzolis) and three out (Trossard, Kiwior, Hein). Bruno Guimarães has been given permission to travel and is being put through his Arsenal medical this week, with a five-year contract reported — but there is still no club statement from either side, so he holds at Advanced, stays out of the squad table and stays out of the amortisation runway. His fee moves from ~£77m to ~£75m: Sky Sports report £75m agreed and Transfermarkt has €87.5m, against other constructions of €82m fixed / €93.5m all-in and £70m + £10m in add-ons. That trims the window balance by £2m and lifts his modelled annual squad cost to ~£28m/yr. Involves Newcastle, so their page carries the same deal from the selling side.

Status moves. Ezri Konsa — the bid has been rejected in effect: the £64.1m (€75m) offer lodged on 2 August has not been accepted, Villa are braced for an improved one and are simultaneously offering Konsa a new contract on a deal that already runs to 2028. Still In talks, but the page no longer implies momentum. Involves Aston Villa. Julián Álvarez is back on after yesterday's "cooled" framing: Atlético are now reported willing to weigh around £120m and to keep talking to Arsenal and PSG, while refusing outright to sell to Barcelona — whose president has set himself a 10 August deadline. The player still prefers Barcelona. Modelled fee raised £100m → £120m. Vinícius Júnior is no longer a long shot — reported personal terms broadly agreed, a fee near €150m (~£128m) mooted in his contract's final year, and a Madrid renewal meeting scheduled for today with the club firm at ~€22m/yr against his ~€30m ask. He joins the Ins table at In talks and his rumour line is re-priced to £128m and ~£495k/wk, the reported demand rather than agreed terms. Gabriel Martinelli's asking price firms up and comes down: £39–43m told to intermediaries, ~£40m quoted to Roma and Juventus, who are now the two clubs actually driving it. Modelled at £40m (profit ~£39m — the fee is all but fully amortised). Gabriel Jesus: Milan are clear frontrunners and negotiating below the ~£20m/€23m ask; no agreement. Kepa: Juventus and Napoli named, Arsenal expecting more than the £5m they paid Chelsea.

Added. Nico Williams (Athletic Club) enters the Rumour Mill — Arsenal reported to have discussed activating the ~£77m (€90m) release clause, with Arteta and Berta pushing and Manchester United and Liverpool also linked. His wage in the model is flagged as this tracker's estimate because no figure has been reported. Checked and deliberately not added: an Arsenal approach reported at ~£86m for João Pedro was rejected by Chelsea, who declared him untouchable and are handing him a new long-term contract — a dead pursuit, recorded here and in the Ins & Outs note rather than modelled as live. Reiss Nelson is widely reported to be leaving (Benfica, Valencia and Fulham credited with interest) but no fee, stage or agreement is reported, so he stays off the fee-based tables. Morgan Rogers is not Arsenal business — Arsenal walked away and Chelsea signed him for £117m in July. Hincapié's row gains a fee note: the €52m headline is the whole registration cost, while the slice falling due this summer is reported at €40m (~£34.5m), which is why some trackers show the smaller number.

Consequences, and one tidy-up. The window balance moves from −£121.8m to −£119.8m on the Guimarães fee change; the squad table and amortisation runway are unchanged because nobody signed. Separately, the prose was still quoting ~66% and ~£35m/yr of headroom from before yesterday's methodology change, while the model itself now reads ~62% with ~£65m/yr of room — the gap was simply that the derived amortisation (~£173m from squad contracts, against the old ~£200m hand estimate) is lower, and that the model's base excludes Guimarães because he has not signed. Both numbers are now stated everywhere with which one they are: ~62% and ~£65m/yr on signed contracts, ~65% and ~£38m/yr the day Guimarães is registered. Arsenal's position has not changed; the labelling has.

04 Aug 2026

Methodology: squad-cost amortisation now derives from the squad contracts

The headroom model's amortisation input used to be a hand-maintained estimate, while the Squad tab computed the same thing bottom-up from every player's fee and contract dates. The two had drifted apart — by up to £29m across the league, which is several points of squad cost ratio on pages whose whole purpose is showing how close a club sits to a compliance line. The hero model now takes its amortisation straight from the squad contracts, so the headline ratio and the squad table can no longer disagree, and the figure updates itself whenever the squad data changes. The field is still editable: type over it and the what-if model responds as before. Wages remain a stated estimate — clubs publish total staff costs, not the players-plus-head-coach slice the rule needs, so that split is still this tracker's assumption and is labelled as one.

04 Aug 2026

Window rebuilt from source — no missing deals found RECONCILED

Method changed. Rather than looking for news since the last update, the summer-2026 ins and outs were rebuilt from scratch off a full source list — every permanent signing, sale, loan in, loan out, loan return, free, release and academy exit reported for Arsenal this window — and only then compared against the page. Result: the window tables were already complete. Confirmed business remains three in (Hincapié £45m/€52m permanent, effective 1 July; Meslier free; Tzolis £34m, 23 July) and three out (Kiwior £14.5m to Porto in May; Hein €3m to Werder Bremen; Trossard £15.3m + £1.7m to Beşiktaş). Guimarães stays flagged Advanced — the medical was booked for 3 August and there is still no official announcement — and Konsa and Álvarez stay in talks. Nothing was added to the 2026 window and no financial figure moved, because no confirmed deal moved.

Corrections. Zinchenko's 2025/26 Nottingham Forest loan is now logged in the Outs table — it was only ever referenced in passing in the Ajax note, so the page recorded the destination of his sale but not the loan itself. It was a deadline-day season loan (1 Sep 2025, no fee, Forest paying the wages) that was cut short and terminated by mutual consent in January, with the €1.5m Ajax sale following in February. It is last window's business and does not touch the 2026 numbers. Kepa's release clause is stale and has been marked so — the reported ~£5m clause lapsed in mid-July, so he is no longer available at a fixed price; he still wants regular football and Arsenal would consider an offer, but the £5m in the Rumour Mill model is now a lapsed clause, not a quote. Dates and fees tightened: Trossard £15.4m → £15.3m up front (€18m + €2m, announced 14 July); Hein's exit was announced 23 May and takes effect in July, not agreed in July.

Checked and deliberately not added. Illan Meslier's arrival is a free transfer of a released player, so Leeds's page correctly shows a release rather than a sale — the two pages agree and there is no missing counterpart. Trae Coyle's move to FC Lausanne-Sport surfaces in current search results but dates from June 2021, not this window. Arsenal's 15 confirmed contract expiries on 30 June are academy, U21 and Arsenal Women players with no fee and no first-team squad place, so they stay out of the fee-based Outs table. No outgoing loan has been confirmed: Setford's move is linked to Forest and QPR but unagreed.

04 Aug 2026

Accuracy audit — 20 corrections — plus the Guimarães deal AUDIT

Audit. Every named player, manager, fee and date on the page was re-checked against reporting. Twenty corrections were made, the worst of them stale facts presented as live. The big ones: Bukayo Saka's new contract was described as an unsigned "framework" — he actually signed a five-year deal to 2031 in February 2026 at a reported ~£300k/wk, so his squad row (contract end and wage) was wrong and every "when it's signed" sentence has gone. Noni Madueke was counted in Arsenal's UEFA homegrown eight — he is homegrown for the Premier League only (reclassified 2025) and not for UEFA, which needs three English seasons between 15 and 21; Arsenal's UEFA count is seven, not eight, and the association-trained places were already full at four. Anass Salah-Eddine and Maldini Kacurri were listed as Arsenal players — Salah-Eddine was released in June 2025 and is at Riga FC, Kacurri's Grimsby move was permanent, not a loan. Fees corrected: Hincapié £34.5m → £45m (€52m), Kiwior £19m → £14.5m up front (€17m), up to ~£18.8m, Hein → £2.6m (€3m). Dates corrected: Tzolis announced 23 July (not 16th); Zinchenko's Ajax move completed in February for £1.3m after his Forest loan was cut short (not an undisclosed January exit); the CFCB fining round was published 30 June, not "early July", and Newcastle's fine is €10m with €7m conditional, not £11.2m. Saliba's "4–5 months" was never a club figure — Arsenal said an "extended period" with no surgery, and the squad table was flagging his back injury as an ACL. Gyökeres' "€50m agreed with Atlético" is gone: Arteta said on 2 August he is staying. Konsa's "clubs £25m apart" and Kroupi's "£40m" were both badly out of date. Vinícius softened to what is actually reported.

New since 27 July. Bruno Guimarães moves from rumour to the Ins table: ~£77m agreed with Newcastle (reported €90m plus bonuses) after €70m and €80m bids were rejected, long-term terms agreed and a medical booked for 3 August — it is not yet officially announced, and is flagged Advanced rather than Done. That alone swings the window balance to roughly −£122m and adds ~£25m/yr to both squad-cost numerators. Arsenal have also lodged a bid reported at ~£65m for Ezri Konsa, with Villa reluctant and Liverpool competing. Arteta (3 Aug) says the club "won't sit still" before deadline day. Kepa has asked to leave with a reported ~£5m release clause and joins the outgoing rumours. On the revenue side: the Deel sleeve deal (~£18m/yr, replacing Visit Rwanda's ~£10m) starts this season, and Arsenal are reported to have agreed a new Emirates package worth ~£70m/yr plus bonuses. Álvarez has cooled — Atlético's chief executive says he is not for sale at €100m, €150m or €200m.

27 Jul 2026

Page launched

The Bean Counter's Arsenal tracker goes live at bean-counter.co.uk/arsenal. Baseline data: FY24/25 accounts (record £691m revenue, £346.8m wages, +£25.2m pre-tax); the 2023/24–2025/26 PSR cycle closed 30 June with an estimated £150m+ of unused allowance; UEFA/PL squad cost ratio modelled at ~66% vs the 70% wall. Window state at launch — in: Hincapié, Tzolis (£34m), Meslier (free); out: Trossard (£17.1m), Kiwior, Hein (the Hincapié, Kiwior and Hein fees published in this build were wrong and were corrected in the 4 Aug audit); live: the Álvarez pursuit (direct talks, Gyökeres part-exchange mooted — 45-day swap-rule flag raised), Guimarães (personal terms agreed), and the Konsa chase triggered by Saliba's World Cup back injury. Squad book values, amortisation runway, List A quota math (3 of 4 club-trained after Hein) and the all-club league tables ship in this build.

Glossary

Every rule in this tracker, in plain English — each with a real Arsenal example where one exists. For the group chat member who just asked "what's SCR?"

PSR (Profit & Sustainability Rules)
The Premier League's rule capping losses at £105m over a rolling three-year period (£35m/yr), after 'good' spending on academy, infrastructure, community and women's football is deducted. Arsenal's 2023/24–2025/26 cycle aggregates to an estimated profit — the club has never been near the limit — with one final test in January 2027 before PSR is replaced by squad-cost rules.
Squad Cost Ratio (UEFA SCR)
UEFA's rule limiting spending on the squad — player and head-coach wages, transfer amortisation and agent fees — to 70% of football revenue plus net transfer profit, tested on a calendar-year basis. Arsenal sit around 65% on this tracker's estimates now the Guimarães signing is registered: compliant, but carrying the second-biggest cost base in England.
PL Squad Cost Ratio (PL SCR)
The Premier League's version of the squad cost rule, live from 2026/27 as PSR retires. Clubs in Europe — including Arsenal — get a 70% green threshold (red at 100%); the rest get 85%/115%. Season basis rather than calendar year: October checkpoint, assessment 1 March 2027.
Football Earnings Rule (FER)
UEFA's successor to break-even: clubs may lose no more than €60m over three years (with add-ons), counting only football earnings — profits from selling players count, but intra-group asset sales do not. Arsenal comply without engineering; it's the rule behind Villa's and Chelsea's settlements.
CFCB
UEFA's Club Financial Control Body — the panel that judges compliance, imposes fines and agrees settlements. Its round published on 30 June 2026 fined Villa, Chelsea, Newcastle and Forest; Arsenal have never appeared on its charge sheet.
Settlement Agreement
A negotiated compliance plan with UEFA in place of escalating punishment: annual targets, monitoring, suspended penalties. Arsenal have never needed one — relevant here mainly because settlement clubs (Villa) are the counterparties in deals like the Konsa pursuit, and settlements make them motivated sellers.
List A
A club's registered senior squad for UEFA competition, capped at 25 with homegrown quotas: minimum 8 homegrown, of which 4 club-trained — every unfilled slot shrinks the list. Arsenal's 26/27 league-phase list is due ~2 September; with Hein sold, only three club-trained names remain (and Madueke's PL homegrown status doesn't travel to UEFA), capping the list at 24.
List B
The unlimited under-age list (young players with two uninterrupted years at the club since turning 15). Nwaneri, Lewis-Skelly, Dowman and the Hale End crop qualify — Champions League depth that costs zero A slots. A quota subsidy most rivals don't have.
Homegrown / Club-Trained
Club-trained = three seasons at the club between 15 and 21 (Saka, Martinelli, Saliba); association-trained = three seasons with any English/Welsh club between 15 and 21 (Rice, White, Eze, Raya — four is the maximum UEFA allows inside the eight). Noni Madueke is the trap: the Premier League reclassified him as homegrown in 2025, but he left for PSV at 16, so he is NOT homegrown for UEFA. The PL's own 25-man list allows a maximum of 17 non-homegrown players. Meslier, despite seven years at Leeds, arrived in England at 19 — not homegrown either.
Amortisation
Spreading a transfer fee as a cost over the contract length. Rice's £105m on a five-year deal costs ~£21m/yr in the books — which is why fees are judged per-year while sales count at once. Arsenal's club-wide charge was ~£164m in FY25; this page's bottom-up figure for the current squad is ~£192m including the new Guimarães deal, and it feeds the headroom model directly.
Five-Year Amortisation Cap
UEFA and PL rule that fees must be amortised over a maximum of five years even on longer contracts — closing the eight-year-contract loophole Chelsea made famous.
Book Value
What's left of a player's fee still to be amortised. Sale profit = fee minus book value. Saka (academy) carries £0; Gyökeres, one year into five, carries ~£51m — which is why the ~€50m fee mooted with Atlético would have booked a loss, and part of why he is staying.
Pure Profit
Shorthand for selling a £0-book-value player (academy graduate or free transfer): the entire fee lands as profit for PSR/FER purposes. Martinelli at ~€50m would be ~95% pure; a Saka sale (never) would be 100%. The engine of modern compliance — and the reason academies are balance sheets now.
45-Day Exchange Rule
UEFA Annex G.3.5: opposite-direction transfers between the same clubs within 45 days on similar payment terms are treated as a player exchange, valued at the LOWER of fee and book value. The reason Villa/Chelsea structured Rogers/Garnacho as sale-plus-loan — and the flag on any Álvarez deal that routes Gyökeres to Atlético as part-payment.
PL 4% Transfer Levy
A 4% surcharge on transfer fees paid by Premier League clubs, funding player pension and education schemes. It capitalises into the registration cost and amortises with the fee — Tzolis at £34m really costs ~£35.4m.
FIFA Solidarity Contribution
Up to 5% of an international transfer fee distributed to the clubs that trained the player between ages 12 and 23. Rides inside the transfer cost for compliance purposes.
Intra-Group Asset Sale
Selling an asset (women's team, real estate) to a company under the same ownership to book profit. The PL accepted £114m of such sales in Villa's PSR numbers; UEFA rejected them for FER. Arsenal have never used the device — their accounts pass both rulebooks unedited.
Sell-On Clause
A percentage of any future sale owed to a selling club. Arsenal retained one on Jakub Kiwior's move to Porto; nothing material is owed BY Arsenal on this window's business — unlike Villa, whose British-record Rogers sale sent £15m to Middlesbrough, that clause being 20% but capped.
Senior Loan Quotas
Limits on loan signings: domestically, max 2 concurrent (4 per season) from English clubs and never two from the same club; internationally, max 6 senior loans (over-21, non-club-trained) with U21 and academy players exempt. Arsenal currently use none of them.
SSR (Sustainability & Systemic Resilience)
The PL's incoming liquidity and solvency tests running alongside the squad cost rules — proving clubs can actually pay their bills, including an £85m stress test. Bites hardest on promoted clubs; a non-event for a club with £56m cash and a parent-company lender.
Headroom
The gap between current squad cost and the 70% line — the practical transfer budget. Arsenal's is ~£38m/yr of running cost on this model now the Guimarães deal is registered: roughly one Álvarez package, IF matching wages leave.
Calendar vs Season Test
UEFA tests the ratio over the calendar year (Arsenal's 2026 number freezes 31 December); the PL tests the season (assessment March 2027). The same window of deals lands in both, on different clocks — a January signing splits across two UEFA years but one PL season.