Brighton & Hove Albion crest
The Bean Counter
Brighton & Hove Albion · Financial Position · 2026/27

The loss of valuable players is actually an inevitable consequence of progress. If we do sell, it will be because it's right for us, right for the player — and because we've realised the value we think is the best we can get.

— Paul Barber · Brighton Chief Executive (paraphrasing his long-stated position)
Brighton & Hove Albion official crest

The Bean Counter · Brighton

2026/27 PRE-SEASON
Seagulls
Football has become a game of bean counting — so here's the abacus. PSR · Squad Cost Ratio · the player-trading engine · book values · the Conference League return, counted

State of Play

Brighton & Hove Albion's estimated squad cost ratio is 63.8% against the 70% limit that applies to clubs in UEFA competition, leaving roughly £20.8m/yr of cost headroom. The summer 2026 window stands at £156.9m banked from sales against £126.8m 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
The 70% wall arrives with Europe: the PL tests season 2026/27; UEFA tests calendar 2026 — if Brighton get through the Conference League play-off (away 20 Aug, Amex 27 Aug). The opponent is all but settled: Tromsø won 5-0 in Cluj in the first leg on 6 Aug, with the return on 13 Aug.
Window Net Balance
~£92m sold vs ~£106m committed — the trading engine is reinvesting, not harvesting
List A Churn Since 23/24
·
Last UEFA List A (23/24 Europa League) → projected 26/27 Conference list: 6 signings + returning loanees & academy grads
Sanctions Record
£0 EVER
Zero PSR or UEFA charges in club history — not among July 2026's fined four

The Clock — What's Counting Down

DAYS TO UECL PLAY-OFF LEG 1
20 AUG · LIST DUE ~MID-AUG
DAYS TO SAUDI WINDOW CLOSE
6 SEP
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
EST USAGE: ~£0 of the £105m 3-yr loss allowance — FY24's +£75m profit and FY26's sale profits (João Pedro, Adingra) absorb FY25's −£56m; the aggregate is around breakeven before 'good' deductions even start.
ROOM: cycle secured on our estimates · one final test Jan 2027, then the rule retires.
UEFA SCR
Returns With Europe
NOW: vs the 70% limit — Brighton's first UEFA cost test since the 2023/24 Europa League, live only if they beat the play-off (20 & 27 Aug).
WHY IT'S TIGHT: amortisation more than doubled to £82m in FY25 and ~£106m more was spent this window — the trading engine's denominator boost is now load-bearing.
ROOM: of cost/yr before the line · calendar-2026 number freezes 31 Dec.
FER
Expected Pass
LIMIT: ~£52m (€60m) max UEFA-basis loss over 3 yrs. Brighton's profits are the kind UEFA actually counts — real player sales, not intra-group asset deals.
ROOM: FY24's +£75m and this window's £60m+ of booked sale profits cover FY25's loss · applies only if Brighton reach the UEFA league phase.
PL SCR
Not Yet Tested
PROJECTED: vs the 70% green line (red at 100%) that applies to clubs in Europe · season basis.
ROOM: of cost/yr · first checkpoint Oct 2026, assessment 1 Mar 2027. Lose the play-off and the cap relaxes to 85% — the strangest consolation prize in football.
Transfer Balance
Net Spend — By Choice
USED: of window sales reinvested · BALANCE: this window (~£92m sold vs ~£106m committed).
CONTEXT: unlike settlement clubs (Villa, Chelsea), no registration gate applies to Brighton — a negative balance is strategy, not sanction. Over five years they remain the only PL club in net transfer PROFIT.
Loan Quotas (In · Senior)
2 + 6 Left
DOMESTIC (English clubs): 2 of 2 concurrent slots free — Brighton have no senior loanees 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 exempt · max 3 from any single club.
ROOM: the traffic runs the other way — Brighton's development model sends double figures of players OUT on loan each season (nine left in January alone); FIFA's out-loan caps are the ones to watch.

Quick Answers — Brighton's Finances in Plain English

Are Brighton in trouble with FFP in 2026?

No. Brighton have never been charged under PSR or by UEFA, and the 2023/24–2025/26 PSR cycle closed with the club estimated around breakeven in aggregate — barely touching the £105m loss allowance. The new pressure point is different: costs rose sharply (amortisation more than doubled to £82m in FY25) just as the 70% squad cost ratio arrives with European qualification.

What is Brighton's squad cost ratio right now?

Roughly 69% on this tracker's estimates — squad cost against football revenue plus average player-trading profit, vs the 70% limit for clubs in Europe. That margin was the thinnest of any number on this page until 25 August, and the Baleba sale is what the warning was about: one big sale dropped it 6.8 points at a stroke. The page read 68.1% before Baleba, 62.3% after him, and 63.8% now that Femi Azeez has been signed. UEFA tests calendar 2026 (if Brighton reach the league phase); the PL tests season 2026/27 with an October checkpoint.

Have Brighton ever been fined for FFP breaches?

No — zero charges, zero fines, zero deductions, at home or in Europe. When UEFA fined four English clubs in July 2026 (Villa £19.4m, Chelsea, Newcastle, Forest), Brighton weren't in the room. The model that sells Caicedo for £115m doesn't need creative accounting.

Why did Brighton sell Jan Paul van Hecke?

He turned down a new contract with his terms expiring in 2027 — and Brighton never let a contract run down. £52m fixed from Tottenham against a book value near zero (£1.3m from NAC Breda in 2020) books roughly £51m of near-pure profit, instantly. Vušković arrived three weeks later as the reinvestment.

Is the van Hecke–Vušković traffic a "swap" under UEFA's 45-day rule?

The deals completed 26 days apart (18 June and 14 July), inside UEFA's 45-day player-exchange window — the rule that shaped the Rogers–Garnacho structuring at Villa and Chelsea. But it targets inflated reciprocal valuations; both fees here look market-consistent with different payment structures (£52m fixed vs £46m + add-ons), and it only bites UEFA calculations if Brighton reach the league phase. A watch item, honestly flagged — not a live problem.

Will Brighton sell Carlos Baleba this summer?

Sold. United announced it on 25 August at £65m + £5m, and Brighton book ~£56m of profit. Earlier: very unlikely as of 9 August, when Baleba damaged ankle ligaments in training in early August — he limped out of a session at the Austria camp, missed the Strasbourg friendly and then Saturday's 3-0 win over Roma at the Amex — and is expected out for "a few weeks", a doubt for the 23 August opener against Villa. Manchester United are now reported (Romano, 9 Aug) NOT to be proceeding with a deal while he recovers; they had in any case made no approach or proposal to Brighton, with the late-July running coming from the player's camp. A sale at the ~£70m ask would still book ~£60m of near-pure profit and instantly fix the tight ratio — but Brighton have already spent ~£106m this window, don't need the money, and now have an injured asset to rebuild first. Model it yourself in the Rumour Mill.

The whole thing in two sentences: Brighton enter 2026/27 with the cleanest compliance record in the league and the thinnest squad-cost margin in their modern history — the £210m spending spree of FY25 and this window's ~£106m reinvestment have finally made the trading engine's output load-bearing. This window's £139m of booked sale profits and −£7.0m/yr cost swing tell the story — the swing turned negative in August as Welbeck's wages and seven loans out (Buonanotte to Elche the latest, 7 Aug) came off the numerator; the detail lives in the other tabs.

Incomings & Outgoings

Summer 2026 window (opened 15 June, closes 1 September — delayed by the World Cup). 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. Fees per media reports; wages are estimates. Rebuilt from a full source list on 4 Aug and re-swept on 8–9 Aug: seven in, four sold (van Hecke, Coppola, Rushworth, Welbeck), three released and seven loaned out — Brighton's most front-loaded buying window in years, with a late-window clear-out running alongside it. The seventh loan out landed on 7 Aug: Facundo Buonanotte to Elche for the season, a straight loan with no buy option. The seventh arrival, 18-year-old striker Valentin Joseph from Blackburn Rovers (announced 1 Aug, undisclosed fee, three-year deal), goes to the under-21 squad rather than the senior list, so he changes the ledger's shape without changing its money.

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
Negative = net spend. No registration gate applies to Brighton
Annual Cost Freed (outs)
Wages + stopped amortisation leaving both SCR numerators. Loans out count the estimated wage share only — the amortisation stays on Brighton's books
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 balance and the FY27 accounts. Wages are estimates.
The window inverts the stereotype: Brighton are net buyers. Van Hecke (£1.3m in 2020, book value ~zero) converts almost entirely to accounting profit — but for once the proceeds went straight back out: Vušković (a club record £46m), Yohanna, Struijk, Costinha, Svoboda and Rêgo arrived for ~£106m combined. August's completed Rushworth sale to Coventry (£22.5m, £0 book) narrows the gap to roughly £14m without changing the shape of it. The window's seventh arrival, teenage striker Valentin Joseph from Blackburn on 1 August, came for an undisclosed fee that nobody has put a number to — counted £0 here, exactly as Welbeck's is, and parked in the under-21 squad, so it moves neither the balance nor the ratio. Danny Welbeck's move to Chelsea on 1 August went through for an undisclosed fee — reported at around £5m, but unconfirmed, so it is left out of the balance above rather than guessed at; whatever it is, it is pure profit on a 2020 free. Losing March, Milner and Webster on frees costs nothing in the books but strips three homegrown veterans from the squad list maths, and Welbeck and Rushworth take two more. The seven season-long loans out (Gruda to Leipzig, Watson to Leicester, Rêgo to Castellón, Beadle to Birmingham, Yoon to Magdeburg, Ramming to Rochdale, and — from 7 Aug — Buonanotte to Elche on a straight loan with no buy option) move no fees at all but take an estimated ~£6.2m/yr of wages off the numerator — while every pound of their amortisation stays exactly where it was.

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

PlayerFromFee £mWindow

2025/26 Season — Out

PlayerToFee £mWindow
The 2025/26 pattern was classic Brighton: sell João Pedro (£60m, Chelsea) and Adingra (£21m, Sunderland) at peak, replace early and cheaper (Kostoulas £29.8m, Tzimas ~£20.8m, Coppola £9.5m), take Boscagli on a free — and bring Pascal Groß home for £1m in January. The FY25 accounts behind it carried a record £210m gross spend cohort, which is why amortisation is now the line to watch.

Spending Headroom

"Room" means something different at Brighton than at the settlement clubs: there is no registration gate and no fine hanging over the window. The constraints are the two 70% squad-cost ratios (UEFA on calendar 2026, the PL on season 2026/27) — and, uniquely for Brighton, the self-imposed discipline of a model that has never spent beyond its trading engine. The model below is adjustable — the defaults are my estimates, so put your own numbers in.

The window balance — harvest vs reinvestment

Sales banked
Van Hecke £52m (Spurs) + Coppola ~£17.4m (Paris FC) + Rushworth £22.5m (Coventry, completed early Aug). Welbeck to Chelsea (1 Aug) was undisclosed and is not counted here
Committed on signings
Vušković, Yohanna, Struijk, Costinha, Svoboda, Rêgo. Valentin Joseph (Blackburn, 1 Aug) was undisclosed and is counted £0 here
Net window balance
First materially negative summer balance of the Bloom era's trading years — funded by the FY24–26 profit stack, not by borrowing against the future
The hidden line: ~£106m of new fees adds roughly £22m/yr of amortisation to every squad-cost test for the next five years — on top of the FY25 cohort that already doubled the charge to £82m. Brighton's future seasons are increasingly pre-spent; the runway chart on the Squad tab shows exactly how much. The offset: the sale conveyor (Baleba, Mitoma, Minteh, Ferguson…) is the deepest stock of unrealised profit in the league.

The Fined Four — July 2026's CFCB Round (Brighton Weren't In It)

Four English clubs were fined in UEFA's July 2026 decisions. Brighton — re-entering UEFA jurisdiction via the Conference League — weren't among them, and never have been. The comparison shows the rulebook they're walking back into.

Club2026 FineSuspendedBreachSettlementExit Route
Aston Villa£19.4m£12.9mSCR 2025 ("significant") · 2nd straight4-yr to 2028/29 · £9.5m paid 2025 · trend formally ENDORSED£144m of player-sale profits + record Visit Rwanda deal — selling the squad's appreciation
Chelsea£2.6mSCR · repeat4-yr · £26.7m paid, up to £51m conditionalAcademy sales (pure profit) + intra-group hotel sales the PL accepted — and now the Rogers/Garnacho tightrope
Newcastle£2.6m + £8.6mBOTH SCR and FER — the doubleObligations 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
The pattern across all four: every exit route runs through selling players — Rogers to Chelsea, Isak to Liverpool, Anderson to City. The bean counter's irony: the compliance strategy every fined club reached for in extremis is the one Brighton have run by choice for a decade. The rulebook fines you in millions and lets you settle in transfers.
Why this matters to Brighton now: UEFA jurisdiction returns the moment the club enters the Conference League play-off, and full SCR/FER monitoring follows if they reach the league phase. Brighton arrive with no settlement, no suspended fines and a decade of genuine trading profits — but also with the highest cost base in club history. The lesson of the fined four is that the 70% line forgives nothing about how you got there.

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
Context only — no gate applies to Brighton
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 — and the fastest way to widen it isn't cutting costs at all: the Baleba sale added £18.7m to the three-year average profit in the denominator AND removed his wages and amortisation from the numerator. At Brighton the escape hatch is always the same door the money came in through.
Caveats: revenue projection assumes ninth straight PL season on the new TV cycle, Conference League league-phase income (modest — UEFA's third competition pays a fraction of the CL) and commercial growth on FY25's £222m. The wages figure is the SCR-relevant slice (players + head coach, built up from the ~£96m player payroll reported by squad-value analyses plus new signings), not the £165m total staff bill — and the head-coach line is Fabian Hürzeler's, in post since June 2024 and extended in May 2026 on a deal to 2029, so there is no managerial-change cost sitting in the 2026 numbers. The £100m amortisation estimate is FY25's £82m charge plus this window's ~£22m of new fees less stopped charges. Agent fees are a guess from the FA's intermediary reports. UEFA's precise adjustments (which income lines qualify, FX, averaging mechanics) mean the true ratio will differ — treat this as a planning tool, not a compliance calculation. And note the asymmetry unique to Brighton: if the play-off is lost, the UEFA test never happens and the domestic green line relaxes to 85% — the numbers below assume Europe happens.

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 profit booked. Uses the same base assumptions as the Headroom tab, so tweaks there flow through here. The out column is where Brighton's summer will be decided — the in column is thinner because seven signings are already done. Where a rumour has no reported fee at all, the modelled figure is labelled as a placeholder in its note rather than dressed up as reporting.

Incoming rumours

Outgoing rumours

Window balance
Δ annual squad cost
UEFA SCR
PL SCR
Profit booked
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 and deepens the window's net spend, with zero benefit anywhere. An outgoing deal does the opposite three times over — fee into the balance, wages + remaining amortisation out of the numerator, and the profit (fee − book value) into the SCR denominator and the FY27 accounts. That's why one Baleba-sized sale funds roughly three Vušković-sized signings in compliance terms — the arithmetic that has powered Brighton since Bissouma, and the reason "we don't need to sell" is a negotiating position, not a constraint.

Squad · Book Value & Amortisation

Senior squad after this summer's confirmed 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 third-party estimates (Capology-style databases, cross-checked against contract reporting) — Brighton's actual wage structure is famously flat and famously private. 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. This is the deepest such list in the league: Baleba was the largest entry here and has now been realised — £65m to Manchester United on 25 August, ~£56m of profit booked, so he leaves this list and enters the accounts. What remains: Mitoma (£2.5m in 2021 — any fee is ~pure profit), Verbruggen, Minteh, and academy graduates Hinshelwood and Ferguson at £0 book value. These are the bean counter's favourite players and the reason Brighton never panic in a negotiation. Market values are Transfermarkt-style estimates — Baleba's row has left the squad table following his £65m sale to Manchester United on 25 August. Players out on a 2026/27 loan are still Brighton's asset and still amortise here — Gruda (Leipzig), Tommy Watson (Leicester) and Rêgo (Castellón) carry a LOAN tag rather than being removed. Danny Welbeck's 1 August sale to Chelsea removes him from this table entirely. Not listed individually (academy/low book value, out on loan): August's under-21 signing Valentin Joseph (Blackburn, undisclosed) and the rest of the loan army including Buonanotte (Elche, 7 Aug — reported ~£8m 2023 fee still amortising here), Beadle (Birmingham), Yoon Do-young (Magdeburg), Ramming (Rochdale), Yalcouyé, Osman and Cashin — collectively immaterial to the amortisation picture but pure profit if ever sold, as the completed £22.5m Rushworth sale to Coventry has just demonstrated. Free transfers & academy players carry £0 book value (that's why selling them is pure PSR 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. New-signing wages are estimates until the databases catch up with the window. Amortisation shown on remaining contract; UEFA and the PL both cap the amortisation schedule for new deals at 5 years even on longer contracts.
Squad Book Value
Sum of estimated carrying values
Annual Amortisation
Current squad only. Club-wide FY25 charge was £82m — more than double FY24's £39m
Est. Squad Wages
Estimated senior squad only. Total club FY25 wage bill: £165m (incl. staff, bonuses)
Ferguson's ankle and the asset ledger: injuries give no relief under squad-cost rules, but Ferguson's case is the mirror image of a big-fee casualty — as an academy graduate he carries £0 book value and £0 amortisation, so his ankle surgery (which cut short the Roma loan) costs Brighton nothing in the compliance numbers except his wages. What it really costs is optionality: a fit, scoring Ferguson was a £40m pure-profit sale waiting to happen; today the market (and pundits pushing a Celtic "fresh start") prices him at a fraction of that. The bean counter's rule: injuries to bought players hurt the numerator, injuries to academy players hurt the exit pipeline. Brighton's whole risk model is built on having more pipeline than any injury can drain.

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 Brighton buy anyone else — and after two heavy windows, it's the tallest this chart has ever been.

Assumes current contracts run to term (sales remove their bars; extensions re-spread them). Unlike the settlement clubs, Brighton carry no off-book purchase obligations — what you see is the whole committed runway. Add-ons (e.g. Vušković's £4m) excluded until triggered.

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 Pascal Struijk qualifies through three seasons at Leeds from 19, while Yankuba Minteh does not: signed by Newcastle at 18 and loaned to Feyenoord, which left two English seasons where three were needed.

Brighton have the smallest registrable squad in the league and the tightest cap on it. 20 of the 25 places are used, and at 6 homegrown and 14 non-homegrown they cap at 22 — three places short of the maximum, with only four of the seven that look free actually usable. The trading model explains both halves. Six players are under 21 and outside the list — Vušković, Hinshelwood, Kostoulas, Tzimas, Yohanna and Cozier-Duberry — and three more are out on loan. The squad is deliberately young and deliberately foreign, which is excellent for resale and poor for the quota. Only Lewis Dunk and Jack Hinshelwood are club-trained, and Hinshelwood does not count against the list until he turns 21.

UEFA List A — The Conference League Return

Brighton's last UEFA List A was the 2023/24 Europa League under De Zerbi — three seasons and one full squad cycle ago. The 3 August draw sent Brighton to CFR Cluj or Tromsø — away first on 20 Aug, home at the Amex on 27 Aug — and the identity is all but settled: Tromsø won the first leg 5-0 in Cluj on 6 Aug, with the return in Norway on 13 Aug. The play-off list is due around mid-August; win it, and a fresh league-phase List A follows in early September. Max 25 names, minimum homegrown quotas, unlimited U21s on List B. The board below shows how much of the 23/24 list has already been converted to cash — the churn IS the business model.

List A Transition · 2023/24 Europa League → 2026/27 Conference League (Projected)

Each position: who's gone since the 23/24 European list (indicative reconstruction), who survives, and who fills the holes. Roughly two-thirds of the old list has been sold, released or moved on — for a combined ~£150m+ in fees — while the replacements arrived younger and cheaper. Loose links stay in the Rumour Mill.

Goalkeepers

Out · 1
Carl RushworthCOVENTRY £22.5m · COMPLETED, EARLY AUG
Retained · 2
Bart VerbruggenSTAYS · REPORTED SPURS INTEREST WENT TO VAN HECKE INSTEAD
Jason SteeleSTAYS · ASSOCIATION-TRAINED
In · 0
Third keeper slotOPEN — RUSHWORTH'S PLACE TO FILL BY THE LIST DEADLINE
James BeadleNEW DEAL SIGNED — BUT LOANED BACK TO BIRMINGHAM FOR 26/27, SO NOT AVAILABLE
NET: the department that was untouched since 23/24 became a seller in August — Rushworth's £22.5m is ~pure profit on a £0 book value, but it costs a club-trained name and leaves the No.3 shirt to fill. The obvious internal answer, James Beadle, signed a new contract in July and immediately went back to Birmingham on loan — so the third-keeper slot is a genuine hole, not a formality. Verbruggen (£16.3m in 2023, market ~£35m) remains one of the biggest unrealised profits on the books.

Defenders — the rebuild

Out · 6
Joël VeltmanGONE · WEST HAM UNITED · FREE
Jan Paul van HeckeTOTTENHAM £52m · 18 JUN · REFUSED NEW DEAL
Adam WebsterRELEASED JUN 26 · 7 YEARS
Pervis EstupiñánAC MILAN · SUMMER 25
Tariq LampteyLEFT FREE · SUMMER 25
Diego CoppolaPARIS FC ~£17.4m · JUL 26 (signed only in 25)
Retained · 2
Lewis DunkSTAYS · CAPTAIN · CLUB-TRAINED
Igor JulioBACK FROM WEST HAM LOAN · FUTURE UNCLEAR
In · 6
Luka VuškovićCLUB RECORD £46m · 14 JUL · AGE 19
Pascal StruijkLEEDS ~£18m · SIGNED
CostinhaOLYMPIACOS £10.9m · SIGNED
Michael SvobodaVENEZIA £4.3m · SIGNED
Ferdi KadıoğluJOINED 2024 · FIRST UEFA LIST
Maxim De Cuyper + BoscagliJOINED 2025 · FIRST UEFA LIST
NET: an entire back line turned over for profit and rebuilt younger — Vušković (19) replaces van Hecke (26) at roughly the same money, six years earlier in the value curve. Textbook.

Midfielders

Out · 6
Carlos BalebaGONE · MANCHESTER UNITED · £65m
Billy GilmourNAPOLI · 2024
Mahmoud DahoudMOVED ON · 2024
Adam LallanaLEFT FREE · 2024
James MilnerRELEASED JUN 26 · TRIBUTE FROM BLOOM
Pascal GroßDORTMUND 24 → BOUGHT BACK £1m JAN 26
Retained · 2
Kaoru MitomaWANTS TO STAY — DEAL EXPIRES 2027
Yasin AyariSTAYS
In · 4
Pascal GroßTHE £1m HOMECOMING · CONTRACT TO 2027
Matt O'RileyBACK FROM LOAN · ASSOCIATION-TRAINED
Diego GómezJOINED JAN 25 · FIRST UEFA LIST
Jack HinshelwoodCLUB-TRAINED · QUOTA GOLD
NET: the engine room lost Baleba on 25 August, so the Conference League campaign starts with the hole this page warned about — £65m banked, six days to spend it, and no replacement signed. Groß returning for £1m two years after leaving for £7m is peak Brighton accounting.

Forwards

Out · 5 since 23/24
João PedroCHELSEA £60m · SUMMER 25
Simon AdingraSUNDERLAND £21m · SUMMER 25
Ansu FatiLOAN ENDED · 2024
Solly MarchRELEASED JUN 26 · 300 APPS · 7 PL CLUBS CIRCLING
Danny WelbeckCHELSEA · UNDISCLOSED · 1 AUG 26 · ASSOCIATION-TRAINED
Retained · 1
Evan FergusonBACK FROM ROMA LOAN · ANKLE SURGERY · CLUB-TRAINED
In · 6 (+ watch)
Georginio RutterJOINED 2024 · FIRST UEFA LIST
Yankuba MintehJOINED 2024 · FIRST UEFA LIST
Brajan GrudaJOINED 2024 — BUT LOANED BACK TO RB LEIPZIG FOR 26/27, SO NOT LISTABLE
Charalampos Kostoulas + TzimasTHE £50m TEEN STRIKE PAIR · SIGNED 25
Zadok YohannaAIK ~£24.1m · SIGNED · ROLE PER EARLY REPORTS
Rubén VargasSEVILLA · LINK WARMS — ~€20m ASK, NO BID
Valentin JosephBLACKBURN, 1 AUG · U21 SQUAD — NOT LIST A OR B ELIGIBLE
NET: the 23/24 front line has now been fully turned over — Welbeck's 1 August move to Chelsea removes the last survivor of it, and with him the club's all-time Premier League top scorer and another association-trained quota name. The replacements were bought for ~£81m of the ~£81m the old line raised, and all five are 22 or under. Two caveats the chips make explicit: Gruda is back at Leipzig on loan and Tommy Watson is at Leicester, so neither is available to the Conference League list.
List B (unlimited) needs players born 2005 or later with two uninterrupted years at the club since their 15th birthday — it covers the academy crop, but NOT new arrivals like Vušković, who takes a full A spot despite his age. The same bar excludes August's teenage signing Valentin Joseph (18, from Blackburn, under-21 squad): brand new to the club, so he is eligible for neither list this season and is no help to the quota problem below. Rêgo would have done the same had he stayed; his 20 July loan to Castellón takes him off both lists for 2026/27, as do the Gruda (Leipzig), Watson (Leicester), Beadle (Birmingham), Yoon (Magdeburg) and Ramming (Rochdale) loans. The 23/24 list reconstruction is indicative, from squad records of that season.
The quota that actually pinches: List A requires 8 locally-trained places (4 club-trained, 4 association-trained) — unfilled quota slots shrink the list below 25. Releasing March, Milner and Webster in one June stripped three association-trained veterans at a stroke; August then took two more homegrown names out in three days — Rushworth sold to Coventry (club-trained) and Welbeck to Chelsea (association-trained) — while Tommy Watson, another association-trained option, went to Leicester on a season loan. The burden now falls on Dunk, Hinshelwood and Ferguson (club-trained — three names against a four-slot sub-quota, so an academy promotion or an unfilled slot is coming) plus Steele and O'Riley (association-trained), which is two against four. On these numbers the eight locally-trained places do not currently fill, and an unfilled slot shrinks the list below 25 — the sharpest practical consequence of an otherwise profitable fortnight, with the play-off list due around mid-August. It is why academy graduates at Brighton are worth more than their book value in two different currencies: pure profit if sold, quota relief if kept. The same maths applies to the Premier League's own 25-man squad list (max 17 non-homegrown), due after the window shuts.

Sanction Tracker — A Clean Sheet

Charges: none. Fines: none. Deductions: none. Settlements: none — domestically or in Europe, ever. This tab exists on every Bean Counter page; on Brighton's it tracks the distance to trouble rather than the trouble itself. Below: the estimated squad-cost trajectory that explains why the margin is thinner than the record suggests.

The SCR Glidepath

100% 90% 80% 70% 60% UEFA LIMIT 90% 80% 70% FY2023FY2024FY2025FY2026 ~low 50s · Caicedo year tested in EL year · clear ~mid 70s · UNTESTED (no Europe) est ~69% · the test returns
Brighton line is this tracker's estimate (UEFA does not publish club ratios, and 2024–25 weren't UEFA-tested because Brighton weren't in Europe). The limit stepped 90% → 80% → 70% as UEFA phased the rule in. The story: record sale profits kept the early ratios tiny; the £210m FY25 spend pushed the untested number over where the line now sits; this window's sales must pull the 2026 figure back under it.
2022 – 2023

The harvest years — compliance by profit

Caicedo to Chelsea (£115m, then a British record), Mac Allister to Liverpool, White, Bissouma and Cucurella before them. FY23 closed with a record £122.8m pre-tax profit — the largest in Premier League history at the time. PSR wasn't a constraint; it was a rounding error.

Season 2023/24

First UEFA exposure — clean

Brighton's first European campaign (Europa League, last 16). Full UEFA licensing and monitoring, squad cost comfortably inside the then-90% limit, no findings of any kind. The only UEFA paperwork Brighton have ever generated is a licence.

FY2024 (y/e 30 June 2024)

+£75m profit — the buffer is banked

A second consecutive heavily profitable year. In PSR terms this single result underwrites the entire 2023/24–2025/26 cycle: even FY25's big loss can't drag the three-year aggregate near the −£105m line.

FY2025 (published Jan 2026)

The model inverts — £56m loss, £210m spent

Record £210m gross spend; sales profit nearly halves to £57m; amortisation more than doubles to £82m; wages up 13% to £165m; pre-tax result swings £131m to a −£56m loss. Tony Bloom re-loans £106.9m to cover the cash gap. Nothing here breaches anything — but every squad-cost trend line turns the wrong way at once.

June – July 2026

Watch items, honestly logged

(1) The 26-day gap: van Hecke to Spurs (18 Jun) and Vušković from Spurs (14 Jul) sit inside UEFA's 45-day exchange window. Both fees look market-consistent and payment structures differ — this page's judgement is "optics, not breach" — but after UEFA's reported formal warnings to Villa and Chelsea over swaps, reciprocal traffic gets read closely. Only relevant if Brighton reach the UEFA league phase. (2) The thin margin: ~69% estimated vs the 70% wall, the closest Brighton have ever run to any line. (3) July's fined four (Villa, Chelsea, Newcastle, Forest) shows the CFCB is enforcing hard.

Now → 2026/27

Staying clean

The play-off — now almost certainly against Tromsø, 5-0 up on CFR Cluj from the 6 Aug first leg (return 13 Aug) — runs away 20 Aug, Amex 27 Aug, and decides whether UEFA jurisdiction is live at all. Either way the PL's SCR checkpoint lands in October and the final PSR assessment in January 2027 — both expected passes on this tracker's estimates. The cheapest compliance strategy in football remains the one Brighton invented: sell one star a year at your price, on your clock.

Last Accounts — FY2024/25 (y/e 30 June 2025)

Published January 2026. The season Brighton finally spent like the clubs they used to fleece: a club-record £210m gross on signings — and the accounts show exactly what that costs. Headline: a £55.8m pre-tax loss, the club's biggest of the Bloom era, one year after a £75m profit.

Revenue
£222m
Broadly flat year-on-year — broadcasting fell, commercial surged
Pre-tax result
−£55.8m
vs +£75m in FY24 — a £131m swing. After a £5m tax credit: −£51m
Profit on player sales
£57m
Nearly halved from £110m — Undav, Gilmour, Groß, Moder recouped £64m in fees
Wage bill
£165m
+13% from £146m · ~74% of revenue
Player amortisation
£82m
More than DOUBLED from £39m — the £210m spend, spread over contracts
Owner funding
£106.9m
Fresh loans from Tony Bloom in-year, re-loaning what the profit years had repaid

Revenue mix

Broadcasting
£151m
Commercial
£43m
Matchday & other
~£28m
The revenue story under the flat total: broadcasting fell £13m (8%) to £151m — the price of finishing mid-table without Europe in a league where TV money follows position — but commercial jumped £12m (41%) to £43m, the fastest-growing line on the books. The structural point for 2026/27: American Express, the front-of-shirt and stadium partner, is unaffected by the Premier League's incoming gambling-sponsor front-of-shirt ban that is forcing rivals to re-broker their biggest deals — one of the few compliance changes this decade that costs Brighton exactly nothing. Conference League participation adds prize money in FY27, though UEFA's third competition pays a fraction of the Champions League cheques Villa or Arsenal bank.

How +£75m became −£56m

FY24 pre-tax result+£75m
Player-sale profits nearly halve (£110m → £57m)−£53m
Amortisation more than doubles (£39m → £82m) → the £210m spend−£43m
Wages up 13% (£146m → £165m)−£19m
Broadcasting income down (no Europe, lower finish)−£13m
Commercial growth (+£12m) offset by ~£15m other cost growth (est.)−£3m
FY25 pre-tax result−£55.8m
The whole story in one line: Brighton's losses are the honest kind — no intra-group asset sales, no repriced women's teams, just a club choosing to convert a decade of trading profits into squad investment, with the owner's interest-free loans (~£400m advanced across the Bloom era, £107m of it re-lent this year) bridging the cash. The PSR cycle absorbs it easily because FY24 banked +£75m first. The bean counter's only note: you can run a −£56m year once by choice — the 70% era makes it expensive to run twice.

Rules & Compliance Status

Every regime that applies to Brighton, 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). The UEFA rules apply to Brighton only via the Conference League — lose the play-off and two cards below go dormant.

COMPLIANT CLOSE / UNDER SETTLEMENT NOT COMPLIANT

Compliance calendar

3 Aug 2026UECL PLAY-OFF DRAW — CLUJ OR TROMSØ
~Mid-Aug 2026PLAY-OFF PLAYER LIST DUE
20 & 27 AugUECL PLAY-OFF LEGS · AWAY THEN AMEX
1 Sep 2026WINDOW CLOSES 11PM
~Early SepLEAGUE-PHASE LIST A (IF THROUGH)
Oct 2026PL SCR MONITORING
31 Dec 2026UEFA SCR YEAR ENDS · PSR ACCOUNTS DUE
Jan 2027FINAL PL PSR ASSESSMENT
1 Mar 2027PL SCR ASSESSMENT
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 (Brighton's y/e 30 June) — aggregate of FY24 + FY25 + FY26.
What countsAggregate 3-yr pre-tax result, with deductions for infrastructure, academy, community & women's football costs. Intra-group asset sales at fair value ARE allowed — a loophole Brighton have never needed.
BrightonComfortably compliant on this tracker's estimates: FY24's +£75m profit plus FY25's −£56m loss plus an FY26 year carrying João Pedro (£60m) and Adingra (£21m) sale profits leaves the aggregate around breakeven — before deducting a penny of academy or women's-football spend against a £105m allowance. Never charged, never close.
DeadlineAccounts submitted by 31 Dec 2026 → final-ever PSR assessment January 2027. After that the rule is retired.
UEFA · returns with the Conference League
Untested since 23/24

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. This is why 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. On a sale it works the other way and is now modelled: the 5% is deducted from the fee, so a club selling abroad banks 95% and books its profit on that. Domestic sales are untouched. Amortisation capped at 5 years for new deals.
BrightonLast tested during the 2023/24 Europa League — clear by a distance, with the ratio held down by giant sale profits in the denominator. The rule goes live again the moment Brighton enter UEFA competition, and the picture has changed: this tracker estimates ~69% for calendar 2026 after FY25's amortisation doubling and this window's ~£106m of buying. Under the line, but by a point — Brighton's thinnest compliance margin anywhere. One major sale (the denominator counts the profit AND the numerator drops the costs) would restore double-digit clearance overnight.
DeadlineApplies only if Brighton pass the play-off (20 & 27 Aug); the calendar-2026 number freezes 31 December 2026, with the CFCB verdict cycle in summer 2027.
UEFA · "FER" — yes, that's the one
Expected pass

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 (Brighton's y/e 30 June), assessed annually by the CFCB for clubs in UEFA competition.
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. This is the rule that split Villa's accounts in two; it can't split Brighton's, because Brighton's profits are all the countable kind.
BrightonThe 3-year window (FY24 +£75m, FY25 −£56m, FY26 est. around breakeven-to-positive on João Pedro/Adingra profits) aggregates comfortably inside the limit — and every pound of it is genuine third-party player trading, the exact activity FER was written to reward. The van Hecke–Vušković reciprocal traffic is the only line a CFCB reviewer would even underline (see Swap-Deal card).
DeadlineLive only if Brighton reach the league phase; first assessment would cover the FY26 accounts in the 2027 review cycle.
Premier League · live from 2026/27
Could be close

SCR — Squad Cost Ratio (PL)

CLUBS IN EUROPE (incl. Brighton): 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, i.e. y/e 30 June 2027) — 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 = fine (levies only payable for breaches from 2027/28); over red = risk of sporting sanctions. The intra-group asset-sale loophole of the PSR era is explicitly closed — irrelevant to Brighton, who never used it.
BrightonAs a European qualifier, Brighton's domestic green threshold is 70% — among the nine capped clubs alongside the Champions League sides. The 2026/27 season projection (~69% on the model defaults) sits inside it by barely a point — hence amber. The denominator quirk cuts both ways for a trading club: sale profits raise the cap in the season they're booked, so Brighton's ratio is structurally volatile — the Baleba sale swung it 6.6 points in one entry. Breaching green but staying under 100% means a levy, not points; the buffer also RATCHETS: use it one season and next season's red threshold drops by the same amount, earned back at 10%/season of full compliance. And the odd wrinkle: lose the play-off and the green line relaxes to 85%.
DeadlineMonitoring checkpoint October 2026; formal assessment 1 March 2027, after the January window. Levies for breaches only bite from 2027/28 — 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 support counts in a club's favour.
BrightonEffectively pre-passed by structure: Tony Bloom's ~£400m of interest-free, undated loans (£106.9m re-lent in FY25 alone) plus a squad independently valued around £558m — 40% of which (~£223m) counts as liquidity under the test — dwarf the £85m stress scenario. Brighton's balance sheet is unusual in the league: enormous owner patience, minimal external debt.
DeadlineFirst full tests 7 July 2027 for 2026/27, with in-season submissions from the start of the season.
UEFA + Premier League squad registration
Quotas covered

List A & homegrown quotas

UEFA: max 25 on List A · min 8 locally trained (4 club + 4 association) · unfilled slots shrink the list — PL: max 17 non-homegrown in the 25
BasisClub-trained = 3 seasons at the club between 15 and 21; association-trained = 3 seasons at any English/Welsh club in that window. List B (unlimited) covers players born 2005+ with 2 uninterrupted years at the club since their 15th birthday.
BrightonCovered on paper, thin in practice: releasing March, Milner and Webster removed three association-trained veterans in one June, the completed Rushworth sale to Coventry (early Aug) removes a club-trained goalkeeper and Welbeck's move to Chelsea (1 Aug) an association-trained forward, with Tommy Watson away at Leicester on loan. Club-trained supply is now Dunk, Hinshelwood and Ferguson — three names for a 4-slot sub-quota, so either an academy graduate is promoted onto the list or a slot goes unfilled and List A shrinks; Steele and O'Riley are what is left of the association side. New teenage signings (Vušković, Rêgo, Kostoulas) are too recent for List B's two-year residency and take full A spots. No settlement conditions attach to any of it — unlike Villa, Brighton's registration maths is just maths.
DeadlinePlay-off player list ~mid-August; league-phase List A ~2 September if through; PL squad list after the window; knockout additions early February 2027.
UEFA Annex G.3.5 + PL FMV protocols
Formally warned

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 the fee and residual book value
What countsSubstance over form, not a fixed day-count — deals weeks apart can be linked (Newcastle's Anderson sale was tied to the Vlachodimos purchase, wiping £30m+ off their UEFA trading profit). For academy players the book value is £0, so an exchange kills the profit entirely; under IAS 38, if fair value can't be measured, NO profit can be recognised. The PL runs its own fair-market-value assessment protocols for player registrations (Handbook, App 19).
BrightonThe live question on this page: van Hecke to Spurs (18 June, £52m fixed) and Vušković from Spurs (14 July, £46m + £4m add-ons) completed 26 days apart — squarely inside the 45-day window, between the same two clubs, in opposite directions. Why this tracker scores it amber-not-red: the rule requires "same or similar payment obligations", the two structures differ (fixed vs add-on-laden), both fees track independent market benchmarks rather than mirror-inflation, and the profit at stake (~£51m on van Hecke) matters to UEFA only if Brighton reach the league phase. But after UEFA's reported formal warnings to Villa and Chelsea, reciprocal traffic between the same clubs is exactly what the CFCB now reads first.
ConsequenceWorst case — the two deals deemed one exchange — would value the swap at the lower of fee and book value and cut the bookable van Hecke profit towards zero for UEFA purposes (the PL and PSR would be unaffected; both clubs' fees look defensible at fair value). This page's honest judgement: a filing-cabinet risk, not an expected outcome — but it belongs on the record, which is why it's here.
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 Brighton have an "FFP problem", the precise answer is: no problem under any of the five regimes — just one thin margin, under both SCR versions, for the first time in the club's modern history.
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. Brighton are the genre's defining practitioners: Caicedo cost £4.5m and sold for £115m; Mac Allister, Bissouma and João Pedro repeated the trick; van Hecke's £52m against a £1.3m 2020 fee books ~£51m this year. Buying works the other way: Vušković at £46m adds only ~£9.6m/yr of cost (with the 4% levy). That asymmetry — sell instantly at 100%, buy slowly at 20%/yr — is the entire arithmetic of the Brighton model, and the reason a decade of trading has funded a stadium-training-ground empire without a single sanction.

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%~617~328~53%Comfortable on both ratios; CL runners-up 25/26. Amortisation £170m+ the main cost line.
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 (£19.4m in Jul 26, trend endorsed) — the £117m British-record Rogers sale is the exit route.
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%22216574%The subject of this tracker: cleanest record in the league, thinnest new margin — FY25 amortisation doubled to £82m just as Europe drags them onto the 70% cap. Hürzeler extended to 2029 in May 26; keeper Rushworth completed a £22.5m move to Coventry in early Aug and Danny Welbeck joined Chelsea (undisclosed) on 1 Aug, the same day 18-year-old striker Valentin Joseph arrived from Blackburn for an undisclosed fee; Buonanotte followed on a season loan to Elche (7 Aug, no buy option). Baleba damaged ankle ligaments in training — out weeks, with Man Utd reported (9 Aug) not to be proceeding. Pre-season closed with a 3-0 Amex win over Roma (8 Aug). UECL play-off opponent all but set: Tromsø beat Cluj 5-0 in the first leg, return 13 Aug. See every other tab.
Chelsea85%~541~360~67%Xabi Alonso era. UEFA settlement (£26.7m paid, up to £51m conditional), fined again Jul 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 Jul 2026 for BOTH SCR and FER breaches; FY25 leaned on selling Isak to Liverpool for £125m. Settlement obligations continue despite missing Europe.
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 in Jul 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 — and they have started spending it: a club-record £22.5m (rising to a reported ~£30m) completed for Brighton's Rushworth in early Aug.
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 — and Brighton are the tier divide's strangest case: qualifying for UEFA's THIRD competition, worth single-digit millions in prize money, costs them 15 points of domestic spending headroom. Chelsea, Newcastle, Spurs and Forest all get the softer 85% cap precisely because they failed to qualify. Bournemouth and Palace share Brighton's squeeze; Fulham and the promoted clubs face the other one — 85% of a small revenue is still 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. Every club has its own page with the full treatment — transfers, book values, A-list, headroom — via the menu at the top.

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 story from opposite ends for Brighton: over five years they are the ONLY club in the division in net transfer profit — and this window, for once, they sit among the net spenders (~£106m committed vs ~£92m sold, including Rushworth's completed £22.5m; Welbeck's undisclosed Chelsea fee is counted £0 under the disclosed-fees rule above). The engine hasn't stopped; it's reinvesting its own output. Watch whether a late Baleba sale flips the row before 1 September.

Can Anyone Still Catch the Big Six?

The question underneath every number in this tracker — and Brighton are the club every other answer cites. The honest answer: the old door is bricked up, but there's a turnstile, and Brighton built the blueprint for it.

Why it feels closed — because it mostly is

The 70% rule is a percentage of revenue — so it doesn't cap spending, it caps spending relative to income. City's 70% of ~£715m buys a ~£500m squad; Brighton's 70% of ~£300m (with trading profit) buys ~£210m. The gap is locked in by design. And the FER kills the only ladder anyone ever actually climbed: Abramovich's Chelsea, early City, even Newcastle's takeover surge all spent ahead of revenue — exactly what's now illegal. The clubs at the top climbed the ladder, then wrote rules that pulled it up. Worse, the compliance machinery itself transfers talent upward: Brighton's own conveyor has sent Caicedo and João Pedro to Chelsea, Mac Allister to Liverpool, van Hecke to Spurs — the well-run feed the rich too, they just get paid properly for it.

The cracks in the door — the ones Brighton made

1 · Grow the denominator. Every £1 of new revenue is 70p of new squad allowance — which is why FY25's 41% commercial growth, the Amex partnership and even the modest Conference League cheques matter as much as any signing. 2 · The trading engine. Net transfer profit counts IN the denominator — selling well literally raises your cap. This is the loop Brighton have run for a decade, so effectively that "do a Brighton" is now the league's standard strategy memo; the difference in 2026 is that everyone else is copying it at the exact moment Brighton switch from harvesting to reinvesting. 3 · Efficiency is legal. The only five-year net PROFIT in the division, a squad valued ~£558m on a £96m player payroll — the recruitment machine as competitive advantage. 4 · The rich can now fail permanently. United's £650m for one top-four finish used to be survivable — just spend again. Under squad-cost rules, mistakes consume finite headroom even for giants. Bad buying is finally fatal, and nobody buys better than the algorithm on the south coast.

The bean counter's verdict: catching the Big Six in one leap is dead — the rules exist to prevent precisely that. What remains is a slower arc: gatecrash Europe on efficiency, monetise it, sell your stars for compliance fuel, and let revenue compound until 70% of it rivals theirs. Brighton wrote that playbook — ninth straight PL season, two European qualifications in four years, a £558m squad assembled at net-zero cost. The 2026/27 test is the hard part of their own curve: whether a club built on selling can afford to stop selling long enough to win something. The FY25 accounts say the attempt has begun; the 70% line says it must be paid for by January. The door isn't closed — Brighton just have to fit through their own turnstile.

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

Femi Azeez signed on a deal sheet at 01:00 — a window signing dated after the window shut OFFICIAL

£12.5m initial from Millwall, rising past £15m, four years with a further year at Brighton’s option. A deal sheet was lodged before the 11pm deadline and the paperwork completed at 01:00 on 2 September, which is why the row is dated a day after the window closed and is still summer-window business. Millwall rejected at least three earlier bids.

About £6.4m/yr — £2.6m of amortisation on the guaranteed fee with the levy, £0.3m of agent fee, £3.6m of grossed wage on an estimated £45k/wk. The ratio moves 62.3% → 63.8%, and the glossary sentence about the Baleba sale — which said the page had dropped to 62.3% — now carries all three readings rather than the one that suited it.

A 25-year-old Nigeria international out of the Championship, PFA team of the year, for a fee that would not buy a squad player at the clubs above them: the house style, priced. He is homegrown, so he adds a qualifier to the 25. Wages go £101m → £104m on the bridge and amortisation £95m to £97m.

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

Hadjam was signed on 24 August and never recorded DATA

Jaouen Hadjam joined from Young Boys for a reported €13m, about £11m, and this page had no row for him. He is now in the Ins table, the squad and the defensive line.

Algeria left-back, 23, on a five-year deal, so ~£2.2m/yr of amortisation joins the numerator alongside an estimated £35k/wk. He arrived at 23 and is therefore non-homegrown, taking one of the 17 places — the squad-list prose has been recounted.

Not added: two other names appeared on one aggregator’s list of Brighton signings — a £13m Gustavo Sá and a £12m Sverre Nypan. Sá signed for Forest and Nypan for Manchester City a year earlier. The same list was the only source for a £17m Otávio, with no selling club named and two active players sharing the name, so that one is not recorded either. A single source with two demonstrable errors in it does not get to add a third figure unchallenged.

Net effect: committed spend £103.3m → £114.3m and the ratio goes 61.4% → 62.3%, headroom £25.8m against the 70% limit.

2 Sept 2026

Struijk was £3m dearer here than on Leeds’ page CORRECTION

This page carried Pascal Struijk at £18m; Leeds’ page carried the same transfer at £15m. The settled reporting is £15m up front plus £3m in add-ons, so Leeds had it right and the early £18m and £20m figures were describing the maximum rather than the money.

Committed spend falls £106.3m → £103.3m and the window swing to −£18.8m/yr. The counterpart gate did not catch this, because it compares the status of an intra-league move on both pages and not the fee. Two pages can agree a deal is done and disagree about what it cost.

2 Sept 2026

Four loaned-out players added, and Buonanotte was amortising against nothing CORRECTION

Facundo Buonanotte, Yoon Do-young, James Beadle and Nils Ramming are all out on loan for 2026/27 and none of them had a squad row on this page. A player out on loan is still Brighton’s asset: his registration sits on the balance sheet and keeps writing down, and only a sale stops it.

Buonanotte is the one that was actually costing something. He came from Rosario Central on 18 January 2023 for €6m, about £5.3m, on a four-and-a-half-year deal to June 2027 — struck before the five-year amortisation cap applied. That charge is £1.19m/yr and this page was carrying none of it while he was at Elche. Under £1m of book value is left, so it runs off next summer either way, but it was real this season and it was missing.

The other three are recorded at £0 with the estimate flag. Yoon arrived from Gangwon FC at 17 and Beadle from Sheffield Wednesday’s academy in 2020, neither fee published; Ramming came through German youth football. Beadle signed a new four-year contract before going back to Birmingham City on loan.

The squad amortisation floor is £81.5m against an input of £95m, so the headline ratio is unmoved at 62.3% — the input already had room above the squad for players the table did not list. That is the gap closing rather than a number changing.

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

No row on this page had to move — every deal in the tables here was already at a medical or announced. The rule and its gate apply the same way, and the wording on both tabs now states it.

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 smallest registrable squad in the league, capped at 22 NEW

The Premier League’s own squad rule arrives on this page. Until today it carried UEFA’s List A and nothing about the domestic quota — a different rule with different arithmetic: 25 senior places, no more than 17 non-homegrown, under-21s outside the list altogether, and players out on loan not registered at all.

Where this squad stands: 19 of the 25 places used, 5 homegrown and 14 non-homegrown, with 6 under-21s playing free of the list. They can name 22, not 25 — the seventeen non-homegrown ceiling runs out before the places do.

Homegrown is a registration test, not a passport test, which is why every player now carries a stated basis rather than a bare flag: three entire seasons, or 36 months, at any club affiliated to the FA or the FAW before the end of the season in which he turns 21. Nationality is not the question and repeatedly gives the wrong answer.

Why it was missing until now. The section was built for one club eleven months ago and the commit that shipped it said the other nineteen would follow. They did not, because an absent feature breaks no gate and nothing was watching for absence. Every count here derives from the squad table, and the same headcount gate that holds every other page holds this one.

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 £0.87m, from the foreign sales of Diego Coppola. 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 cost swing in the overview read +£10.2m/yr against a computed −£17m/yr. The sale-profit figure beside it said £60m+ where the page computes £139m. 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

Baleba sold: 68.6% → 62.0%, the biggest single move of Brighton’s window DONE

Manchester United announced it on 25 August. £65m guaranteed plus £5m in add-ons, five years with an option of a further one. £23.2m from Lille in August 2023, three years into a five-year spread, book ~£9.3m — so ~£56m of profit.

It moves Brighton further than anything else this window, and in both directions at once. The profit enters the UEFA denominator at a third of itself (+£18.7m), while his £50k/wk wage and ~£4.8m/yr of amortisation come off the numerator. 68.6% → 62.0%, headroom £4.5m → ~£26m. The wage input moves 104 → 100 because the bridge’s own derivation said so once the sale was marked done — the page flagged the disagreement itself rather than waiting to be asked.

Nine forward-looking lines had to be rewritten, and the status gate could not see any of them. “The engine room holds IF Baleba stays”. “One big sale would drop it several points at a stroke.” “A Baleba sale would swing it ~5 points.” Every one of those was true as a prediction and false as a statement the moment United posted. The gate built last week catches a completed deal described as unfinished; it has nothing to say about a forecast that has come true. It swung 6.6 points, not five.

And the Lille sell-on is now live rather than hypothetical. Lille are reported to have kept 15–20% when they sold him here in 2023. That claim still traces to no named tier-1 report, so it is still recorded as an unquantified exposure and still not modelled — but if it is real it comes straight off the £56m.

25 Aug 2026

Baleba’s medical is done — £56m of profit against £4.5m of headroom UPDATE

Update 25 August: medical completed, signing and announcement expected within a day. This is the largest single number on Brighton’s page. £23.2m from Lille in 2023, three years into a five-year spread, book ~£9.3m, so £65m guaranteed books ~£56m of profit — against £4.5m of headroom at 68.6%. It still counts here at advanced stage and is still reversible until a club confirms it, which is worth stating plainly when a number this size is doing this much work.

Minteh, meanwhile, has had two Liverpool bids rejected. Ornstein reported an improved offer worth around £60m turned down on Friday, with Brighton naming £70m. Personal terms with the player are reported agreed. Brighton now have the two biggest sales of anyone’s deadline week on their books, one nearly done and one twice refused.

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

Baleba is agreed at £65m plus £5m, and this page had the pursuit dead. Ornstein and Romano both on 21 August: guaranteed fee, add-ons, a sell-on at an undisclosed percentage, five years plus an option, medical booked. Held at ADVANCED — neither club has announced. Against a book of ~£9.3m the guaranteed money books ~£56m of profit, not the £61m the old card assumed by crediting add-ons that have not triggered. One liability is flagged and deliberately not modelled: Lille are reported to have retained a 15–20% sell-on from 2023, which would divert several million — but that traces to no named tier-1 report and reads like recycled copy.

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 67.6% to 68.6% (wages 101→104).

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.

19 Aug 2026

Veltman added — the cost of letting a contract run out SWEEP

Joël Veltman to West Ham, 6 August. Missing from this page entirely, and not the same thing as the three releases beside it: Brighton offered him a new deal, he declined it and ran his contract to expiry on 30 June, then signed a one-year deal at West Ham.

What it is worth. £0 fee, £0 book value, so the entire accounting event is ~£2.9m/yr of wage relief and no profit whatsoever. A player with resale value who leaves for nothing is the trap the Meslier row on the Leeds page describes, and Brighton have now taken it twice this summer.

15 Aug 2026

Arsenal lead the race for Hinshelwood RUMOUR ADDED

Jack Hinshelwood. New outbound card: Arsenal are reported to lead the race, with £43–51m believed enough for an agreement — modelled at £47m. Academy graduate, £0 book value, so effectively the entire fee would land as year-one profit. No bid lodged yet.

09 Aug 2026

Sunday sweep: United walk away from Baleba, Roma swept aside, nothing moves money 0 completed · 6 rerated

Re-rated — the Baleba door closes a little further. Romano's 9 Aug reporting hardens Friday's picture: Manchester United are NOT proceeding with a Baleba deal at the moment — the ankle ligament injury halted what little there was, even with their own midfield thinned by injury — while the player is still said to want the move and Brighton show no sign of budging on the ~£70m ask. That is a firmer version of what this page already carried, not a new fact pattern: still no bid, no approach, no club-to-club negotiation, ever. His row stays in the Rumour Mill re-tagged INJURED · UNITED NOT PROCEEDING, and the FAQ, JSON-LD, A-List chip and league-table note are reworded to match. He remains a Brighton player and this page still treats a 2026 sale as live-but-remote until 1 September says otherwise.

The weekend's football, counted only where it touches the ledger. Brighton closed pre-season with a 3-0 win over Roma at the Amex on 8 Aug — Rutter's curler and an Ayari double — with record signing Vušković impressive on his Amex debut alongside Boscagli, and Baleba absent with the ankle injury (his second missed friendly after Strasbourg). A friendly moves no money, but it is now cited where the page already discussed those fixtures. The Conference League picture is unchanged: Tromsø's return leg against Cluj is 13 Aug, from 5-0 up, before Brighton's play-off on 20 & 27 Aug.

Re-rated at the margins, none promoted, none retired. Igor Julio: the rejected Espanyol offer is now detailed in English and Spanish reporting as a loan with an obligation to buy deemed unrealistic at the price — Espanyol are expected to return (or, per some Spanish outlets, have parked it), Beşiktaş still lurk, and nothing is agreed. Vargas: the formal Brighton bid reported "in preparation" on 7–8 Aug had still not landed by Sunday evening — West Ham are reported to have made the first contact with Sevilla, Villa stay briefed as hopeful, Leeds and Trabzonspor are also credited — so he stays a rumour, not a deal. Cozier-Duberry: talks with Rangers remain ongoing and unconcluded four days after the "48 hours" briefing; weekend reporting attributes the rejected £5m bid to Anderlecht rather than Rangers, a discrepancy logged in his row rather than resolved by guesswork. Mitoma and Ferguson re-dated, unchanged — and aggregator headlines recycling Mitoma's October 2023 extension (to 2027) as new contract news were checked and excluded. Webster (West Ham) and March (Palace) remain unannounced free agents.

Hero figures: unchanged across the board. No fee moved, no deal completed, no contract signed — sales ~£91.9m, committed ~£106.3m, the derived amortisation, the £75m smoothed 3-yr sale-profit input and the £105m wages estimate all stand exactly where Friday left them. Data stamp moved to 9 Aug 2026.

08 Aug 2026

Buonanotte loaned to Elche, Baleba's ankle answers the £70m question, Tromsø all but confirmed 1 completed · 5 rerated

Completed — one deal, no fee. Facundo Buonanotte joined Elche on 7 August on a straight season loan with no buy option — Schalke's formal inquiry was passed over in favour of La Liga. His Rumour Mill row (which carried explicitly-labelled placeholder figures) is retired and he graduates to the Outs table as the window's seventh loan out: no fee moves, the reported ~£8m 2023 fee keeps amortising at Brighton, and only his estimated wage share (~£1.6m/yr) leaves the numerator. The loans-out wage relief rises from ~£4.7m to ~£6.2m/yr in the computed cards; sales (~£91.9m), committed (~£106.3m), the net balance and both 70% ratio models are all unmoved. The wages input stays at £105m — a £1.6m loan saving is inside that figure's £5m rounding, and it is a stated estimate either way. Amortisation continues to derive itself from the squad contracts (unchanged — no signing was completed), and the 3-yr smoothed sale-profit input stays at £75m: nothing since 5 Aug has booked a penny of profit.

Re-rated — the Baleba saga turns on an ankle, not a bid. Baleba damaged ankle ligaments in training at the Austria camp in early August, missed the Strasbourg friendly, and is expected out for "a few weeks" — a doubt for the 23 Aug opener against Villa, with reporting saying the injury effectively closes the door on an August move. Nothing else in the file changed: United never made an approach or proposal to Brighton, and none arrived this week either. His row stays in the Rumour Mill (nothing is officially dead), re-tagged INJURED IN TRAINING · DOOR CLOSING, and he now carries an ANKLE tag in the squad table; the FAQ and JSON-LD answers are rewritten to match. Igor Julio heats instead: Brighton rejected an opening bid from Espanyol (7–8 Aug), after Cruzeiro's earlier approach was also turned down, with Beşiktaş reported to have shortlisted him — still no agreed move. Rubén Vargas warms again: Spanish outlets report Brighton preparing a formal opening bid (one unconfirmed claim of ~€25m offered), with Villa briefed as "hopeful" in the same race — no bid acknowledged by either club, so he stays a rumour. Cozier-Duberry: Rangers' briefed 48-hour confidence came and went without an announcement; West Ham are reported to have cooled, easing the path — the £5m rejected bid still stands as the only concrete number. Mitoma and Ferguson unchanged in substance, re-dated to 8 Aug.

Housekeeping. Tromsø won the play-off's other semi-final in all but name — 5-0 in Cluj on 6 Aug (return 13 Aug), so Brighton's Conference League opponent is now near-certain and the hero, A-List, Sanctions timeline and league-table prose say so without pre-empting the second leg. March (Palace considering) and Webster (West Ham "almost official" per club-adjacent reporting) both remain unannounced free agents and both stay parked as such. Data stamp moved to 8 Aug 2026. Hero figures: unchanged across the board — this was a week of loans, ligaments and rejected bids, none of which moves money.

05 Aug 2026

Daily sweep: a seventh signing surfaces, Baleba cools, Cozier-Duberry heats 1 added · 6 rerated

Added — one completed deal the 4 Aug rebuild missed. Valentin Joseph, an 18-year-old striker, joined from Blackburn Rovers on 1 August on a three-year deal for an undisclosed fee. No figure has been reported by anyone, so it is recorded as undisclosed and counted £0 in the window balance — the same treatment Welbeck's Chelsea fee gets — rather than guessed at. He goes into the under-21 squad, not the senior list, so he is absent from the squad/book-value table (£0 book value either way) and, having just arrived, is eligible for neither UEFA List A nor List B this season. The window is therefore seven in, four sold, with the fee columns unchanged: sales ~£91.9m, committed ~£106.3m, net balance and the 70% ratio model all exactly where they were.

Re-rated — nothing was promoted to done that hasn't been announced. Carlos Baleba moves DOWN in temperature, not up: Romano's account is that Baleba's camp initiated the late-July contact, that a loose personal-terms understanding has existed since last summer and that the player is "super keen" — but that Manchester United have made no approach and no proposal to Brighton and have cooled while they weigh alternatives. The row now reads PLAYER KEEN · NO UNITED APPROACH, and the page's Baleba prose, the A-List chip and the FAQ answer have all been reworded from "talks reopened" to what is actually reported. Amario Cozier-Duberry moves the other way and is the most active outgoing link on the page: Rangers have opened formal talks and briefed confidence of concluding within 48 hours, Brighton have rejected a £5m bid, and the reported club stance is that he signs an improved contract first and leaves on loan if at all — so his modelled fee drops from £8m to the £5m actually bid, and the note now flags that a loan books no profit at all. Rubén Vargas comes off the cold list: Sevilla are reported willing to sell at ~€20m (~£17m) after his World Cup, with Brighton named among several Premier League clubs weighing an opening bid — still no bid, still no club-to-club talks. Kaoru Mitoma, Evan Ferguson and Igor Julio are unchanged in substance and re-dated to 5 Aug.

Added to the Rumour Mill. Facundo Buonanotte now has a row of his own after Schalke 04's formal inquiry (1 Aug), with Italian and English interest alongside it. His contract runs to 2028, which is why the reporting describes a permanent sale as difficult and a loan as the likelier structure — a distinction that decides whether Brighton book profit or only free wages. Because no fee has been reported by anyone, the £10m/£6m in his row are labelled in the note as this tracker's illustrative placeholders, not as reporting. His Chelsea and Leeds loans stay filed where they belong, in 2025/26.

Free agents, honestly parked. Adam Webster is reported (4–5 Aug) to be on the verge of joining West Ham — a Championship club this season — on a free, and Solly March is reported to be under consideration by Crystal Palace, also on a free. Neither is announced, so both stay listed as released free agents here; neither would move a penny of Brighton's balance in any case.

Housekeeping. The 3 August draw is now on the page: Brighton meet CFR Cluj or Tromsø in the Conference League play-off, away on 20 Aug and at the Amex on 27 Aug (the Romanians and Norwegians settle their tie on 6 and 13 Aug) — the fixture that decides whether the UEFA 70% test happens at all. Tom Watson corrected to Tommy Watson throughout, per both clubs' own announcements. Data stamp moved to 5 Aug 2026. Two things checked and deliberately left OFF the page: an agency report of 2 Aug that Brighton are "closing in" on an unnamed 22-year-old Portuguese defensive midfielder — no player, no club, no fee, so nothing to list — and the £8m Sky figure for Costinha, which conflicts with the £10.9m carried here; the higher figure is retained pending a cleaner source, and the discrepancy is logged rather than quietly split.

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 a full source list 7 added · 3 corrected

Method changed. Previous passes treated the list already on this page as the baseline and only hunted for news since the last update — which is exactly how a completed deal goes missing. This pass rebuilt Brighton's entire summer-2026 ledger from scratch against club announcements and the transfer databases, then compared it to the page. Six signings were already correct and complete: Yohanna (AIK), Costinha (Olympiacos), Struijk (Leeds), Rêgo (Benfica), Svoboda (Venezia) and Vušković (Spurs, club record). Seven departures were missing entirely.

Added. Danny Welbeck to Chelsea — completed 1 August on a two-year deal for an undisclosed fee (reported ~£5m, unconfirmed, so it is recorded as undisclosed and counted £0 in the window balance rather than guessed at). Six years, 201 appearances, Brighton's all-time Premier League top scorer; a 2020 free transfer, so £0 book value and ~£5.2m/yr of wages off the numerator. Also added: six season-long loans out that the page had never carried — Brajan Gruda back to RB Leipzig, Tom Watson to Leicester City (1 Aug), Rodrigo Rêgo straight back out to CD Castellón (20 Jul, three weeks after signing), James Beadle to Birmingham City on a new contract, Yoon Do-young to 1. FC Magdeburg (5 Jul) and Nils Ramming to Rochdale. Loans move no fee, so the window balance is unchanged, but they take an estimated ~£4.7m/yr of wages out while every pound of amortisation stays on Brighton's books — the cost-freed and net-swing cards are recomputed on that basis and now carry the caveat explicitly.

Corrected. Carl Rushworth's status moved from "Advanced" to "Done" — Coventry City completed the club-record £22.5m permanent deal in early August (rising to a reported ~£30m with add-ons, with a buy-back and a large sell-on); every "agreed"/"reported" phrasing across the Outs table, the A List, the Rules tab, the 20-club table and the net-spend table has been updated to completed. Rêgo's entry was wrong in two ways — he is a 21-year-old Portugal U21 winger, not a teenage left-back, and he arrived from Benfica rather than Benfica II — and the claim that he "takes a full A spot" is now false, because he is at Castellón for the season.

Counterpart checks. Three cross-page flags were investigated and resolved without inventing current business. Facundo Buonanotte appears on both Chelsea's and Leeds' pages as a Brighton departure: both are real, and both are previous windows — the Chelsea loan was summer 2025 (terminated in January) and the Leeds loan ran from January 2026 to the end of last season. Both are now recorded in the 2025/26 Out table where they belong. He is back at Brighton, contracted to 2028, with a Schalke 04 approach reported on 1 August; no 2026 exit has completed, so he is deliberately absent from the summer-2026 Outs. Steven Alzate is flagged by Hull's page as a Brighton departure, but he was released by Brighton in 2024 and signed for Hull as a free agent that September — before this page's earliest window, and he has since moved on to Atlanta United. Nothing was added here; the error is on the other page.

Consequences followed. Welbeck is removed from the squad table (book value £0, so book and amortisation totals are unchanged; wages and market value fall). The three loanees who are still Brighton assets — Gruda, Tom Watson and Rêgo — stay in the squad table with a LOAN tag, because their fees keep amortising here. The UEFA List A board now shows Welbeck as an exit rather than a retained forward, flags Gruda and Watson as unavailable, and the homegrown-quota callout has been rewritten: with Rushworth (club-trained) sold, Welbeck (association-trained) sold and Watson on loan, the eight locally-trained places no longer fill on our reading, which would shrink List A below 25 unless an academy graduate is promoted before the mid-August play-off list. Window sales (£91.9m), fees committed (£106.3m), net balance and sale profits are all unmoved — the two August exits were an undisclosed fee and a status change on a sale already counted — so the 70% ratio model defaults are untouched.

04 Aug 2026

Accuracy audit + first August refresh 10 corrections

Audit. Every named player on the page was re-checked against the club he is actually at in August 2026 — squad table, both transfer windows, the rumour mill, the List A board, the league notes. The headline finding: Carl Rushworth is no longer a Brighton asset to count. Coventry City have agreed a reported club-record initial £22.5m for the academy goalkeeper, so he has moved from the A-List goalkeeping column into the Outs table, and out of the homegrown-quota arithmetic in two places. Nine further corrections: the Ferguson injury tag read "ACL" while every line of prose on the page correctly said ankle surgery (fixed); a stray "De Zerbi pushed for him" line was cut from the van Hecke sale note, and a "Lazio wanted him" aside from the Coppola note, as unverifiable and out of period; the Solly March and Adam Webster free-agent links were rewritten as clearly-flagged July reporting rather than live fact; the Vargas link is now marked cold pending fresh reporting; and the Baleba, Mitoma and Cozier-Duberry rumours each carry an explicit 4 Aug status line saying what has not happened — no bid, no fee, no agreement, still Brighton players. No case was found on this page of the error class that prompted the audit: a player attributed to a club he had already left. João Pedro (Chelsea, 2025), Adingra (Sunderland, 2025), Estupiñán (Milan, 2025) and Coppola (Paris FC) are all filed as completed history, not as live links.

Refresh, 27 Jul – 4 Aug. The Rushworth sale is the only confirmed movement: ~£22.5m against a £0 book value is ~pure profit, taking window sales to ~£92m against ~£106m committed and window sale profits to ~£83m — but it also strips a fourth club-trained name out of the UEFA List A quota, leaving Dunk, Hinshelwood and Ferguson against a four-slot requirement with the play-off list due in a fortnight. Also logged: Fabian Hürzeler remains head coach, having signed an extension to 2029 in May 2026 — relevant because head-coach pay sits inside the squad-cost numerator, and there is no severance in the 2026 figures. The Baleba, Mitoma, Cozier-Duberry and Vargas links were all still unresolved at the time of writing. Window balance, sale profits, the net-spend league table and the 20-club table's Brighton and Coventry rows have been recomputed accordingly; the 70% ratio model defaults are unchanged, since a £0-book-value keeper takes only ~£1m/yr of wages out of a ~£217m cost base while adding his profit to the denominator — helpful at the margin, not a repricing.

Housekeeping: all club names in the 20-club table expanded to their full official forms, and the data stamp moved to 4 Aug 2026.

27 Jul 2026

Page launched

The Bean Counter's Brighton & Hove Albion tracker goes live at bean-counter.co.uk/brighton. Launch dataset: the FY24/25 accounts (£222m revenue, £165m wages, £82m amortisation, −£55.8m pre-tax, £106.9m of fresh Bloom loans); the full summer 2026 window — van Hecke £52m to Spurs (18 Jun) and Coppola ~£17.4m to Paris FC out, Vušković (club-record £46m, 14 Jul), Yohanna, Struijk, Costinha, Svoboda and Rêgo in for ~£106m; the March/Milner/Webster releases; squad book values and amortisation runway; the ~69% squad-cost estimate against the 70% wall; the Conference League play-off calendar (draw 3 Aug, legs 20 & 27 Aug); the van Hecke–Vušković 26-day swap-rule watch item; and a Rumour Mill headlined by Manchester United's reopened ~£70m Baleba pursuit, Mitoma's expiring contract, the Ferguson–Celtic chatter, Cozier-Duberry's suitors and the monitored Rubén Vargas.

Glossary

Every rule in this tracker, in plain English — each with a real Brighton example. 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. Brighton's FY24 profit of £75m means even FY25's −£56m leaves the closing cycle comfortably passed; one final assessment in January 2027, then the rule retires.
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. Applies to Brighton again via the Conference League; this tracker estimates them at roughly 69% for 2026 — under the wall by barely a point.
PL Squad Cost Ratio (PL SCR)
The Premier League's version of the squad cost rule, tested on a season basis rather than calendar year, phasing in from 2026/27 as PSR retires. Clubs in Europe — including Brighton — carry the 70% green threshold; the other eleven clubs get 85%. Same cost base as UEFA's rule, different clock: October checkpoint, March 2027 assessment.
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, intra-group asset sales do not. Built, in effect, to reward exactly what Brighton do: every pound of their profit history is genuine third-party player trading.
CFCB
UEFA's Club Financial Control Body — the panel that judges compliance, imposes fines and agrees settlements. It fined four English clubs in July 2026 (Villa, Chelsea, Newcastle, Forest). It has never written to Brighton about anything except a licence.
Settlement Agreement
A negotiated compliance plan with UEFA in place of escalating punishment: annual targets, monitoring, suspended penalties. Brighton have never needed one — the term appears on this page only to describe other clubs.
List A
A club's registered senior squad for UEFA competition, capped at 25 with homegrown quotas (min 8 locally trained: 4 club-trained + 4 association-trained; unfilled slots shrink the list). Brighton's next one is due ~mid-August for the Conference League play-off — their first since the 2023/24 Europa League.
List B
The unlimited under-21 supplement to List A: players born 2005 or later with two uninterrupted years at the club since their 15th birthday. Covers Brighton's academy crop — but not new teenage buys like Vušković or Rêgo, who take full A spots despite their age.
Amortisation
Spreading a transfer fee as a cost over the contract length. Vušković's £46m over five years is ~£9.6m/yr in the books (with the levy) — which is why fees are judged per-year while sales count at once. Brighton's club-wide charge more than doubled to £82m in FY25: the quiet cost of the £210m spree.
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 (partly at Brighton's expense: Caicedo signed an eight-year deal).
Book Value
What's left of a player's fee still to be amortised. Sale profit = fee minus book value. Van Hecke's £1.3m fee from 2020 was nearly fully amortised — so £52m from Spurs booked ~£51m of profit, instantly.
Pure Profit
Shorthand for selling a £0-book-value player (academy graduate or free transfer): the entire fee lands as profit. The engine of the Brighton model — Caicedo (£4.5m in, £115m out) is the genre's masterpiece, and Baleba (£23.2m in, £70m asked) is the next exhibit.
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 — slashing bookable profit. Van Hecke out (18 Jun) and Vušković in (14 Jul) sit 26 days apart between the same two clubs — this page's amber watch item, though both fees look independently market-priced.
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 — Vušković's £46m really costs £47.8m.
FIFA Solidarity Contribution
Up to 5% of an international transfer fee distributed to the clubs that trained the player between ages 12 and 23 — Hajduk Split's youth setup collects on Vušković's move, as NAC Breda's did on van Hecke's. 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 PSR-era manoeuvre Villa and Chelsea used and UEFA rejects. Brighton have never booked one: their profits come from the transfer market, which every rulebook counts.
Sell-On Clause
A percentage of any future sale owed to a selling club. Brighton write them into their own exits and owe them on some buys — small reported shares to the training clubs of their lower-league signings; none material enough to move this page's window maths.
Senior Loan Quotas
Limits on loan signings: domestically, max 2 concurrent (4 per season) from English clubs; internationally, max 6 senior FIFA loans each way. Brighton's exposure is on the OUT side — the development model runs double figures of loans every season (nine exits last January alone).
SSR (Sustainability & Systemic Resilience)
The PL's incoming liquidity and solvency tests running alongside the squad cost rules. Brighton pass by structure: ~£400m of patient interest-free owner loans and a ~£558m squad, 40% of which counts as a liquid asset in the test.
Headroom
The gap between current squad cost and the 70% line — the practical transfer budget. Brighton's is roughly £3m/yr of running cost on this tracker's estimates — about one squad-player signing — unless a big sale resets the denominator.
Calendar vs Season Test
UEFA tests the ratio over the calendar year (Brighton's 2026 number freezes 31 December, if they reach the league phase); the PL tests the season (assessment March 2027). The same window of trading moves both, on different clocks.
The Brighton Model
Buy undervalued players young via data-led recruitment, develop them in the shop window, sell at peak to bigger clubs, reinvest a fraction, repeat. It has produced the league's only five-year net transfer profit, funded the club's infrastructure, and — as of this summer's ~£106m reinvestment — entered its riskiest phase: spending the surplus.