Aston Villa crest
The Bean Counter
Aston Villa · Financial Compliance · 2026/27

Managing a sports team has become more like being a treasurer or a bean counter rather than looking at what your team needs. It's more about creating paper profits, not real profits. It becomes a financial game, not a sporting game.

— Nassef Sawiris · Financial Times · June 2024
Aston Villa official crest

The Bean Counter · Aston Villa

2026/27 PRE-SEASON
Prepared
Football has become a game of bean counting — so here's the abacus. PSR · UEFA Squad Cost Ratio · Football Earnings Rule · transfer balance · book values · settlement tracker

State of Play

Aston Villa's estimated squad cost ratio is 63.9% against the 70% limit that applies to clubs in UEFA competition, leaving roughly £32.8m/yr of cost headroom — on the 2026/27 season. On UEFA’s own clock, the twelve months to 31 December 2026, this tracker now models 67.5% and about £12.8m of headroom, because calendar 2026 carries six months of a cheaper Europa League season’s revenue against a cost base that has already stepped up. The summer 2026 window stands at £313.3m banked from sales against £258.7m committed on signings, with Mbaye’s ~£47m and Harwood-Bellis’s £25m guaranteed both included at advanced. Every figure here is this tracker's own estimate, built from published accounts and media reporting, as reported 3 Sept 2026.

Squad Cost Ratio · Estimated
/ 70%
70% wall · 100% red line
One 70% wall, enforced twice — UEFA on calendar 2026, the Premier League on season 2026/27.
Fee Room Left
before the List A gate · net of Boro sell-on
List A Churn
·
EL-winning list → projected CL list (~22): 9 new arrivals — 6 bought, Goretzka free, Garnacho and Wan-Bissaka on loan — plus returners, B→A grads and youth. Mbaye, at 18, is exempt from the PL 25 — but NOT from UEFA’s, where he takes a full List A place
PL Squad List
Premier League homegrown quota — full working in Squad Lists
UEFA Fines
£16m PAID
~£26m more suspended on hitting 2026 targets

The Clock — What's Counting Down

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

The Six Regulations — Pass / Fail / Room Left

PL PSR
Passed
EST USAGE: ~£0 of the £105m 3-yr loss allowance — deductions (academy, infra, women's) + £114m of asset sales turn the aggregate positive.
ROOM: cycle secured · one final test Jan 2027, then the rule retires.
UEFA SCR
Failed 2025 · TREND ENDORSED
NOW: vs the 70% limit · fined £19.4m for a "significant breach", £6.5m paid.
LENIENCY: the CFCB formally credited the 2024→2025 improvement as in line with settlement projections — that's why 2/3 of the fine (£12.9m) was suspended.
ROOM: of cost/yr before the line — keep the ratio falling through 31 Dec 2026 and the £12.9m never lands.
FER
In Settlement
TARGET: max UEFA-basis loss of just £4.3m this cycle (no intra-group sales allowed). EST: window sale profits push the FY26 result into surplus — target met with room, pending audit.
ROOM: this window's £151m of sale profits clears it with a distance · four-year monitoring to 2028/29.
PL SCR
Not Yet Tested
PROJECTED: vs the 70% green line (red at 100%) · season basis.
ROOM: of cost/yr · first checkpoint Oct 2026, assessment 1 Mar 2027.
List A Gate
COST TEST — the one the settlement actually sets: . What every exit stops paying against what every arrival starts costing, both sides priced the way the ratio above prices the squad. This is now computed from the deal tables rather than typed, and it does not say what the hand-typed margin here used to say. Full working, and the reason a record sale barely moves it, on the Rules tab.
FEE TEST — the looser reading: in credit after the Boro sell-on · of that credit committed. The two readings disagree, and which one UEFA applies is not something this page can settle, so both are published rather than one being chosen.
ROOM: taken on the aggregate at the list deadline, ~2 Sep — not one-in-one-out. One further exit closes a gap of this size; one further arrival widens it.
Loan Quotas (In · Senior)
0 + 6 Left
DOMESTIC (English clubs): 0 of 2 concurrent remaining — Garnacho and, from 18 Aug, Wan-Bissaka take both · season cap of 4 (2 left, but neither can be used until one of these ends) · never more than 1 from the same club at a time · can't loan a player bought in the same window · max 1 GK between PL clubs. This is now a binding constraint on ARRIVALS: no further loan can be signed from an English club this window, so any remaining incoming business has to be a permanent or a foreign loan. It says nothing about who Villa send out — the quota counts loans in, and the academy players going the other way are unaffected by it.
INTERNATIONAL (FIFA): 6 of 6 SENIOR remaining — counts only over-21, non-club-trained players; U21 & club-trained loans are exempt entirely · max 3 from any single club.
ROOM: none left domestically. Garnacho and Wan-Bissaka hold both concurrent slots, so a Jackson-style loan is no longer possible this window — anything further has to be permanent or foreign. Note that Nedeljković going to Rangers cost neither ceiling: Scottish clubs are not English domestic loans, and U21 loans are exempt from the FIFA cap. And because Garnacho is already the one Chelsea loan, a second Chelsea loanee is outright prohibited while he's here.

Quick Answers — Villa's Finances in Plain English

Are Aston Villa in trouble with FFP in 2026?

Partly. Villa are fully compliant with the Premier League's PSR, but breached UEFA's squad cost ratio in both 2024 and 2025, leading to a £19.4m fine in July 2026 — of which only £6.5m is payable, because UEFA formally recognised the improving trend. Villa remain under a UEFA settlement with monitoring to 2028/29.

What is Aston Villa's squad cost ratio right now?

Roughly 64% of football revenue on this tracker's estimates, against a 70% limit — after £313.3m of completed summer sales including the British-record £117m Morgan Rogers deal. UEFA tests calendar year 2026 (freezing 31 December); the Premier League tests the 2026/27 season with an October checkpoint.

How much have Villa been fined by UEFA?

About £16m paid across 2025 and 2026 (£9.5m settlement plus £6.5m in 2026), with roughly £26m more suspended — written off if Villa keep hitting their settlement targets, payable if they don't.

Can Villa still sign players this summer?

On one reading yes, on the other not comfortably — and this page now computes both instead of asserting one. The settlement’s List A transfer-balance condition lets Villa register new players while the cost savings from sales exceed the cost of arrivals. On fees the window is deep in credit. On costs, which is how UEFA’s own settlement summary words it, the completed business is negative — Jackson has now landed and is inside that figure, and it moves again if Watkins goes — because the players Villa sold were cheap or academy-grown and freed almost no amortisation. The exits that fixed the earnings rule barely touch this test. The margin here used to be hand-typed at a pass; it is now derived from the deal tables, and the Rules tab shows the working line by line. The other constraint is the ratio: 63.9% with ~£32.8m/yr of headroom on the 2026/27 season, or 67.5% with ~£12.8m on UEFA's calendar-2026 clock, which is the one the settlement is written against, most of it restored on 30 August when Martínez’s £150k/wk left for Chelsea.

Why was the Garnacho deal a loan?

Structure. UEFA treats opposite-direction transfers between the same clubs as a swap if concluded within 45 days with similar payment terms — which would slash the booked profit on the £117m Rogers sale to Chelsea. Garnacho arriving on a season loan with a £42.5m obligation triggering next season sits outside that window and keeps the ~£98m profit clean.

Did Aston Villa pass the Premier League's PSR?

Yes — including via the £114m of intra-group asset sales (women's team and Warehouse) which the Premier League accepted but UEFA did not. PSR's final assessment is January 2027, after which it's replaced by the squad cost and sustainability rules.

The whole thing in two sentences: the PL accepted the women's-team sale, UEFA didn't — so Villa are compliant at home while paying fines in Europe. This window's £243m of sale profits is the exit route, and it needs to be: the rebuild adds +£28.3m/yr to the annual squad-cost bill; the detail lives in the other tabs.

Incomings & Outgoings

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

What actually makes up the numbers for a transfer — amortisation, wages, agent fee
A fee is never a cost. It is a balance-sheet asset written off over the contract, and only the annual slice reaches the squad cost ratio. Every column in the two tables below is one part of that, so a row adds up: amortisation + wages + agent fee = SCR cost.

Worked example — Ibrahim Mbaye, £47m from Paris Saint-Germain, 1 September 2026, contract to 30 June 2031, £100k/week.
  • Amortisation — £10.1m/yr. The fee plus the Premier League’s 4% levy (£47m × 1.04 = £48.9m), spread across the 4.83 years of the contract. Contracts longer than five years are still written off over five, which is the cap that came in on 1 July 2023.
  • Wages — £8.1m/yr. £100k/week is £5.2m of basic pay, grossed at 1.55× for employer’s NI, bonuses and the rest of what it costs to employ somebody. No club publishes a salary, so every wage on this site is an estimate.
  • Agent fee — £1.0m/yr. Taken at 10% of the fee and spread over the same span as the fee itself.
  • Total — £19.2m/yr, the largest single annual cost on this page. Roughly 53% fee, 42% wages, 5% agent.

Going the other way, the same three parts run in reverse — but not equally. A sale stops the wage and the amortisation; a loan out stops only the wage, because amortisation never leaves the club that owns the registration. That is why Nedeljković at Rangers still costs Villa ~£1.3m/yr. The Profit column is a different quantity again: fee minus remaining book value, which is why an academy player is close to pure profit and a recent expensive signing can be sold for real money at an accounting loss.

What the columns feed. Amortisation, wages and agent fees are the three components of the SCR numerator. Profit on disposal goes in the denominator, averaged over the 36 months to 31 December. Fees themselves appear in neither — they matter for PSR and for the settlement’s transfer-balance test, which is cost-based rather than fee-based.

Three things deliberately not in these numbers. Add-ons are counted only when they trigger, so a “£65m package” is carried at its guaranteed portion. FIFA’s 5% solidarity is deducted from a foreign sale, where it never reaches the selling club, but is not modelled on a purchase — the buyer’s cost is unchanged either way. And an injury gives no relief at all: Onana’s wages and amortisation both continue in full while he plays nothing.

Summer 2026 — Out

PlayerToFee £mWage £k/wkWages freed £m/yrCost freed £m/yrProfit £mStatus
Also out, and deliberately not given rows above because none of it moves a number: Villa published their released list on 11 June — eight players out of contract on 30 June (Edwards I-Lani Hollingshead, Ronnie Katsukunya, Thierry Lott, Max Moreland, Calum Pavey, Charlie Simpson, Ewan Smith, Kerr Brisco) plus four scholars not offered professional terms. All twelve are free transfers with nil book value and academy wages. Eight season loans out now carry no modelled relief — Zych, Redmond, Young, Koné and Gauci, joined on deadline day by Sousa, Feeney and Rowe, with Broggio alongside them. This sentence said “five” until 2 September, which it was when it was written and stopped being on 1 September, when three more academy players went out in a single afternoon. A count in prose goes stale the moment the thing it counts moves — but that is a statement about those five, not about loans generally, so it is worth setting out what a loan out really does. Three separate things happen, and they are treated differently here. Amortisation always stays: the player is still Villa's asset, so the annual charge runs whether he is at the club or not, and only a permanent sale stops it. Wages are relieved to the extent the borrowing club pays them — usually most or all for a senior player joining a club of comparable standing, and progressively less the further down the pyramid he drops. The senior loans here (Guessand at Palace, Iling-Junior at Bolton, Nedeljković at Rangers) are modelled with the wages coming off, which is the normal arrangement; if a split is reported the figure gets corrected. These five are academy players on academy wages, so nothing is assumed because nothing material turns on it. Loan fees are income, not cost relief, and belong on the other side of the ratio: none of Villa's outgoing loans this window has a disclosed fee, so none is modelled — which understates the benefit slightly rather than overstating it.

Summer 2026 — In

PlayerFromFee £mWage £k/wkWages £m/yrAgent £m/yrSCR cost £m/yrStatus
Fees Out (sales)
Confirmed + advanced permanent deals
Fees Committed (buys)
Confirmed + advanced permanent deals
Net Window Balance
Positive balance required before List A registrations
Annual Cost Freed (outs)
Wages + stopped amortisation leaving both SCR numerators
Annual Cost Added (ins)
Fee÷5 amortisation + wages + ~10% agent fee
Net SCR Swing
Change to the annual squad-cost numerator from this window
How the columns map to the rules: SCR cost / Cost freed hits the numerator of BOTH the UEFA 70% and PL 70% ratios (identical cost base, different clocks) · Profit feeds the FER earnings calculation AND both SCR denominators · Fee moves the List A transfer balance. Wages are estimates.
Sales lead the window by design. Tielemans (free signing) and Rogers (£8m book cost, largely amortised) convert almost entirely to accounting profit, which hits both the FER earnings calculation and the SCR denominator. Amadou Onana's ACL injury at the World Cup is why midfield is where the money is going.

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

PlayerFromFee £mWindow

2025/26 Season — Out

PlayerToFee £mWindow
Last season's £71m gross spend was the second-lowest in the Premier League (only Fulham spent less) — the settlement in action. Jacob Ramsey's £39m sale to Newcastle was effectively forced: an academy graduate is 100% profit in the books.

Spending Headroom

"Room" means three different things for Villa: the List A balance (hard gate, per-window), the UEFA 64% ratio (calendar year), and the PL SCR — which for clubs in Europe is ALSO capped at 70% (season basis, red threshold 100%). The model below is adjustable — the defaults are my estimates, so put your own numbers in.

Hard gate — List A registration room

Sales banked / advanced
Rogers, Konsa, Watkins, Tielemans, Malen, Barrenechea, Dobbin, Digne, Martínez — and Bailey to Olympiacos for £3.4m on 2 Sep, three weeks after the Hull move collapsed
Committed on signings
Manzambi, Gomes, Cissé, Ruggeri, Suzuki and now Jackson (all official) + Wan-Bissaka on a loan whose obligation lands next summer
Gross fee room on the FEE reading
Max further spend registrable on the CL List A (due ~2 Sep) with no further sales, after deducting Boro's £15m capped sell-on on Rogers. This is the fee reading only. The settlement's own wording is cost-based, and on that reading the balance is already negative — the gate on the Rules tab computes both
Committed but deferred: the Garnacho obligation (£42.5m, expected to trigger for next season) is this window's hidden liability — it consumes none of this year's List A balance or squad cost, but it is a near-certain claim on NEXT summer's pool: ~£8.5m/yr of amortisation from FY28 plus his wages already on the book. Bean counters call this "buy now, count later."

The Fined Four — July 2026's CFCB Round, Compared

Four English clubs were fined in UEFA's July 2026 decisions. Same rulebook, very different situations — and very different exit routes.

Club2026 FineSuspendedBreachSettlementExit Route
Aston Villa£19.4m£12.9mSCR 2025 ("significant") · 2nd straight4-yr to 2028/29 · £9.5m paid 2025 · trend formally ENDORSED£151m 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 United£2.6m + £8.6mBOTH SCR and FER — the doubleObligations continue despite missing EuropeIsak to Liverpool for £125m — one sale (Sep 2025, so it lands in FY26) to rule the accounts, with Gordon and Tonali following this summer
Nottingham Forest£2.2mSCRAnderson to City for £116m weeks later — fine dwarfed 53:1 by one transfer
Villa's fine is the largest by far — but Villa is also the only club whose improving trend was formally credited by the CFCB, with two-thirds suspended against continued compliance. The pattern across all four: every exit route runs through selling players. The rulebook fines you in millions and lets you settle in transfers.
How the gate actually works (per UEFA's published settlement summary): it's an aggregate, cost-based test — total cost savings from outgoings (wages + stopped amortisation) vs total new costs from incomings (amortised fee over max 5 yrs + wages + agent fees), measured at each List A submission deadline. One-in-one-out is NOT required: the Rogers proceeds can be split across as many signings as the pool covers, and because incoming fees count amortised while a sale removes a player's entire annual cost, the official test is materially more generous than the raw fee balance shown above — and that generosity is exactly why the test still has to be computed rather than asserted. This callout used to end here with a hand-typed “~£3.5m/yr: passing again with a little air”. It was wrong, it survived three sweeps after the deal that broke it, and the gate on the Rules tab now computes the real figure from the deal tables — currently a deficit, not a pass. Read that instead of this sentence.

The list as filed — UEFA List A, 2026/27

Everything else on this page models the European list. This is the list itself, read off UEFA's own club page after the 2 September deadline, so the model can be checked against the article rather than against itself. Villa named 23 of a possible 25. Two places sit empty.

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). Announced deals only: a transfer counts here the day a club confirms it, not the day it is agreed — so Wan-Bissaka's wages are excluded and Konsa's are still on the bill, even though both deals are done bar the paperwork. Advanced deals are listed everywhere on this page and counted nowhere; tick them in the Rumour Mill to see what they would do. Edit any figure:

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

The other clock — UEFA's calendar 2026

The bars above are the 2026/27 season: 1 July 2026 to 30 June 2027, which is the Premier League's period and the one every other page on this site is built on. UEFA does not use it. The squad cost rule is assessed on the period ending 31 December regardless of a club's own year end, and the trading line is the net profit on disposals over the 36 months to that 31 December, pro-rated to twelve. So Villa's UEFA number for the 2026/27 licence is the twelve months to 31 December 2026 — half of the season just finished and half of the one just started — and until 3 September this page showed one blended figure against both tests and hoped nobody asked. Somebody asked. This is the answer.

UEFA SCR · calendar 2026 · limit 70%
limit 70%
What the calendar model does and does not know. The trading line is the same £114m on both clocks, and that is not laziness — the input above is now built on UEFA's own 36 months to 31 December 2026, so the calendar test is the one it was designed for. Where the two genuinely diverge is revenue and cost, because calendar 2026 is half of a season Villa played in the Europa League and half of one they are playing in the Champions League. FY2025/26 revenue is carried at ~£372m, which is an INDEPENDENT PROJECTION and not a club figure — those accounts are not due until March 2027 — built from the Premier League and Europa League money, commercial and matchday — a figure that is BELOW FY2024/25's £378m, which is worth sitting with, because the 2026/27 line above assumes £420m. The FY2025/26 cost figures are this tracker's estimates: wages at £218m is the wage bridge's own pre-window derivation from the FY2024/25 anchor, amortisation at £108m adds the 2025/26 signings to the £100m FY2024/25 club-wide charge, agents at £18m is flat. The half-year split is a modelling choice and is exposed as one: revenue is weighted to the second half of a season (knockout football, more home games in the run-in), so 45% is the default and the box moves it. Costs are spread straight-line at 50/50. None of that is a UEFA adjustment schedule — it is an attempt to model the right period rather than the convenient one.

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 this signing
Fee basis, and it moves with the fee box above — this is not the settlement gate. UEFA words the List A condition in costs, not fees: see the Rules tab
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 — but remember the settlement condition isn't a number, it's a direction: the 2026 ratio must be significantly lower than 2025's, or the suspended £12.9m lands. Spending the headroom to the limit would risk exactly that.
Caveats: revenue projection assumes CL league phase + Europa League winner prize money + the €4m (~£3.5m) Super Cup participation fee (12 Aug vs PSG in Salzburg — winning adds €1m, NOT assumed here) + commercial growth on FY25's £378m. The wages figure is the SCR-relevant slice (players + head coach), not the £273m total staff bill — and remember loan players count fully in the SCR numerator through their wages (Garnacho adds ~£6m/yr with zero amortisation), so keep loanees inside the wage input. On agent fees: UEFA counts them as their own SCR category; our amortisation estimate is accounts-based and already contains the amortised slice of past capitalised agent fees, so pairing it with the separate £18m agents line double-counts a few £m — deliberately, as a conservative margin for a club under settlement. UEFA's precise adjustments (e.g. which income lines qualify, FX, averaging mechanics) mean the true ratio will differ — treat this as a planning tool, not a compliance calculation.

Three things this model did badly. Two of them were fixed on 3 September; the third is still an assumption. (1) One number was shown against two different tests — now there are two numbers. UEFA assesses the period ending 31 December, not the club’s financial year, and the Premier League assesses the season. This page computed a single blended figure and displayed it against both, which cannot be right for both at once. There is now a calendar-2026 model above with its own inputs: on the twelve months to 31 December 2026 — the period UEFA will actually assess — the ratio reads 67.5% with about £12.8m of headroom, against 63.9% and £32.8m on the season. Implementing the distinction cost 3.6 points, which is roughly what it was worth. (2) The trading input was anchored, not sourced — it is now sourced. in-psp was a carried £41.17m plus this window’s booked profit over three, with a code comment admitting the anchor made the bridge agree with the input by construction. It is now built from UEFA’s actual window, the 36 months to 31 December 2026, itemised period by period: £28.0m for Jan–Jun 2024 (Kellyman £19m to Chelsea and Iroegbunam £9m to Everton, both academy, both completed before the 30 June line), £52.0m for FY2024/25 (published: £52.0m of profit on £90.5m of sales), £42.5m for FY2025/26 (Jacob Ramsey £39m and Kesler-Hayden £3.5m; accounts not due until 2027) and £220.3m booked live from the table below for Jul–Dec 2026. The first of those reconciles to the audited year: the other half of FY2023/24 was Archer, Aaron Ramsey and Philogene at £37.5m, and £37.5m + £28.0m is £65.5m against a published £65m. The honest result is that the asserted anchor was very nearly right — £122.5m sourced against the £123.5m it implied — and the input moves only £115m to £114m. Being right by luck and being right by evidence look identical in the output and are not the same thing. (3) The revenue projection still assumes a full stadium. £420m carries no allowance for reduced matchday income while the ground is redeveloped and part of the capacity is out of use, and this one has not been fixed because no published figure for the lost capacity or the lost income has been found. Worth pairing with something the calendar model turned up: the best available projection of FY2025/26 revenue is ~£372m, which is BELOW FY2024/25’s £378m. The £420m assumes a £48m jump off a base that just went backwards. What the remaining disagreements are worth, from a 63.9% season base: wages at £215–220m rather than £205m is +1.9 to +2.8pp; revenue at £395m rather than £420m is +3.1pp; and this window’s trading profit at £95m rather than £220m — which would put in-psp near £73m — is +5.4pp on its own. Stack all three and the season ratio reads about 75%, and the calendar ratio worse still. That range is not hypothetical: an outside reconstruction of this model has publicly put Villa at roughly 70% at best, and 75–80% if revenues under-deliver for 26/27, working from a higher cost base and a much lower trading figure — and it rebuilt this page’s £341m/£535m from the two published numbers to do it. The gap is almost entirely the trading line. This page itemises £220m of booked profit from sourced fees and purchase prices — Rogers £117m against an £8m cost, Konsa £51m against a fully-amortised £12m, Tielemans £35m on a free — and that itemisation, deal by deal, is the thing to attack if the number is wrong.

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: List A balance, UEFA 70%, PL SCR (also 70% for clubs in Europe), FER earnings and settlement optics. Uses the same base assumptions as the Headroom tab, so tweaks there flow through here. Also on the reported midfield shortlist, not modelled here: Mandela Keita (Parma, ~€15–18m — the genuine budget option, with Spurs and Atalanta also interested), Pape Gueye (Villarreal, but with a €45m release clause, so no bargain) and Lamine Camara (Monaco). Emiliano Martínez's Juventus link is gone — Juve formally ended their pursuit on 2 August — so it has been removed from the board. Leon Bailey has come off this board for good: he signed for Olympiacos on 2 September for £3.4m, permanent, on a contract to 2029. His card is kept as a dead record of a pursuit that ran through Hull (medical passed 5 August, collapsed on the 12th), Ajax, Sevilla and Al Diriyah before Greece — whose window outlasted England’s — took him the day after the English one shut.

Incoming rumours

Outgoing rumours

List A balance
Δ annual squad cost
UEFA SCR
PL SCR
Profit booked (FER)
Tick the rumours above to model a scenario — and change any fee or wage to model your own number instead of this tracker’s.
How each lever maps to the rules: an incoming deal adds (fee + the PL’s 4% levy)÷5 + wages + ~10% agent fee to both SCR numerators and consumes List A room, with zero benefit anywhere. An outgoing deal does the opposite three times over — savings into the List A balance, wages + remaining amortisation out of the numerator, and the profit (fee − book value) into FER earnings and the SCR denominator. That's why one Konsa-sized sale funds roughly two Garnacho-sized signings in compliance terms, whatever it costs in football terms. (The scenario panel uses the conservative fee basis for the List A gate — the official test is cost-based and more generous; see Headroom.)

Squad Depth by Position

Emery's 4-2-3-1 as a depth chart rather than a teamsheet — every slot in the shape, with everyone who plays there stacked underneath. What it is built to show is the gap between nominal and available depth: a player out on loan is on the wage bill and the book, but he is not an option on Saturday, so he is counted separately and dimmed. Ordered by market value within each slot, which is a proxy for standing rather than a prediction of the XI — but it is a number you can check, which a hunch is not. Derived from the squad table below, so it moves when the squad moves.

Squad · Book Value & Amortisation

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

Player Pos Fee £m Signed Contract End Yrs Left Amort £m/yr Book Value £m Mkt Val £m Profit If Sold £m Est Wage £k/wk
💰 highlighted rows = est. profit if sold ≥£20m — where market value towers over book value (Kamara arrived free, so any fee for him is pure profit). The two worked examples this caption used to carry have both been realised, and both beat the valuation quoted here: Konsa’s nearly-amortised 2019 fee turned £51m from Arsenal into ~£48m of profit on 21 August, and Watkins’s £28m 2020 fee turned £50m from Al-Hilal into ~£43m on 30 August — against the ~£29.5m/€35m valuation this caption was quoting for him in early August. Neither is in the table below any more. These are the bean counter’s favourite players and the football department’s nightmare. Market values are Transfermarkt-style estimates. The two overrides this caption carried — Konsa and Watkins, both priced off figures reported in live talks rather than a database — have left with their deals, so every value in the table below is now on the estimate basis. This caption used to name seven players as not listed individually on grounds of academy or low book value — Zych, Kadan Young, Mohamed Koné, Feeney, Sousa, Jimoh-Aloba and keeper James Wright. Six of the seven are now in the table below, because “immaterial” and “absent” are not the same claim and only one of them is checkable. The one that still is not listed is Jimoh-Aloba. Koné is the reason the change was worth making: Villa bought him from ASEC Mimosas in July 2025 on a five-year deal for an undisclosed fee, so he is not a free academy player at all — he carries real book value still writing down, and it was missing from the amortisation total rather than being small. He sits at £0 with the estimate flag on it, which is a stated gap rather than an invented number. Academy and free-transfer players do carry £0 book value, and that is still why selling them is pure PSR/FER profit. Free transfers & academy players carry £0 book value (that's why selling them is pure PSR/FER profit). Undisclosed fees estimated where flagged ~. Add-ons are treated differently on the two sides of the ledger, and this page says so rather than quietly netting it out: both an incoming and an outgoing fee are modelled at the guaranteed amount, with add-ons counted only when they trigger. This caption used to claim the opposite for incoming deals — that they were modelled all-in — and that was a description of a rule this site does not follow: every incoming row bar two was already on the guaranteed basis, and the two exceptions, Suzuki and Ruggeri, were brought into line on 2 September. Contingent money is not capitalised until it is owed, which is the conservative reading and the one the corrections here have consistently enforced. Wages triangulated across six databases — Capology, AiScore, TransferFeed (€), GiveMeSport/Birmingham Live contract reporting, SalaryLeaks and footballfancast — using the majority figure where they diverge (they often do). 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 £100m (+£6.5m impairment)
Est. Squad Wages
Estimated senior squad only. Total club FY25 wage bill: £273m (incl. staff, bonuses)
Onana's ACL and the SCR — four separate hits, one offset: an injury gives no relief under the Squad Cost Ratio. (1) His wages (~£6m/yr est.) stay in the numerator in full while he plays zero minutes. (2) His ~£10m/yr amortisation on the £50m fee keeps charging regardless. (3) He was one of Villa's few remaining big saleable midfield assets — the injury removes a potential ~£30m-book-value sale from the toolkit at exactly the moment sale profits are the compliance strategy, and instead forced ~£97m of replacement spend on Manzambi and Gomes (adding ~£20m/yr of new squad cost). (4) If his carrying value is judged impaired, an impairment charge lands in the numerator too — impairments count as squad cost, so a write-down would worsen the ratio in the year it's booked. Confirmed timeline: the ACL tear came in Belgium's 4–1 last-16 win over the USA in Seattle, surgery followed, and he is out roughly nine months — a realistic return around April 2027, i.e. almost the whole 2026/27 campaign. The one offset: because the injury happened on international duty at the World Cup, FIFA's Club Protection Programme reimburses a capped share of his fixed salary (up to ~£6.5m/€7.5m per year, max 365 days) — that softens the cash and earnings hit, though it doesn't remove his wages from the SCR numerator itself.

Amortisation Runway — What's Already Committed

Transfer-fee amortisation locked into future seasons from today's contracts (straight-line on remaining book value), plus the Garnacho obligation landing from FY28. This is spending that's already eaten before Villa buy anyone else.

Assumes current contracts run to term (sales remove their bars; extensions re-spread them). Garnacho: £42.5m over a 4-year deal from 2027/28, conditions expected to be met. Amber = committed but not yet on the books.

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 player’s 21st birthday. That is why Alejandro Garnacho and Aaron Wan-Bissaka count, and why John McGinn does not — St Mirren and Hibernian sit under the Scottish FA. Squad lists are submitted after the window shuts on 1 September, so what follows is this tracker’s projection of the list Villa would file today, not a filed list. Tick cards in the Rumour Mill and this recalculates.

Where Villa actually stand. The homegrown quota is not the binding constraint here — total places are. 22 of the 25 places are used, leaving three, against ten qualifiers and a floor of eight. On the other ceiling there is more room: twelve non-homegrown of a permitted seventeen. Total places run out first, and they run out soon. Three homegrown exits have now happened. The exposure this page flagged was that the two biggest live sale rumours, Ezri Konsa and Emiliano Martínez, were both qualifiers — and both have gone, Konsa to Arsenal for £51m on 21 August and Martínez to Chelsea for £7.5m on 30 August. Watkins is the third, to Al-Hilal for £50m on 30 August, and he is the one that bites: the qualifier count is now nine against a floor of eight, so a cushion this page has been calling comfortable is one player deep. It reads nine rather than eight because one came back the other way. Wan-Bissaka, a Crystal Palace academy product, was announced on 18 August and is registered here — he adds a qualifier as well as filling a place. Suzuki and Jackson took places without touching the homegrown count at all. So the qualifier count has held until today, and the free places have moved both ways: five in mid-August, three yesterday, four now — Watkins is the first departure this window to hand a place back. Mbaye did not change it. At 18 he sits outside the list entirely, as do Manzambi, Cissé, Özcan, Alysson and Madjo — six under-21s playing free of the 25, and the reason a £47m signing costs no registration here. Everything in this box is the Premier League list, and Europe inverts it. The PL exempts every player born on or after 1 January 2005 with no qualifying period at all; UEFA’s List B additionally demands two uninterrupted years at the club since the 15th birthday. Villa bought all six of these players inside that window, so not one of them is List B eligible and all six need a full List A place. The domestic list has four spaces; the European one is the tighter of the two, and this page had it the other way round until 3 September. Note too that Wan-Bissaka takes the second and last concurrent DOMESTIC LOAN slot, so further incoming business has to be permanent or foreign — a separate ceiling from this one, and still the tighter of the two.

UEFA List A — 2025/26 Europa League

Villa's List A as registered from the round of 16 (Feb 2026) — the squad that won the trophy, beating Freiburg 3–0 in Istanbul on 20 May. 21 players named of a possible 25. Players who have since left, or are leaving this summer, are flagged.

Squad registration · both regimes, player by player

Premier League · homegrown
25 places, at most 17 non-homegrown. Qualify by three seasons or 36 months at an FA or FAW club before turning 21 — any club, so a player bought in can still count. U21s are exempt entirely. Shown as the blue PL · HOMEGROWN tags below.
UEFA · List A
25 places, of which 8 must be association-trained and 4 of those club-trained at Villa specifically. A stricter test on a shorter list, and the one that has actually cost Villa slots — four sat empty last season. Shown in the existing chip text.

The two disagree more often than people expect, which is why both are marked here. Alejandro Garnacho is homegrown for the Premier League — Manchester United registered him from 16 — while for UEFA he is simply a bought player on loan. John McGinn runs the other way: a decade at the club makes him club-trained for UEFA, but St Mirren and Hibernian sit under the Scottish FA, so he is not homegrown domestically. A signing can therefore ease one quota while doing nothing for the other.

List A Transition · 2025/26 EL winners → 2026/27 Champions League

Position by position: who is on the filed list, who arrived this window, and who was available and left off. This is now derived from the list as filed rather than written by hand — which it was until 3 September, when it still had Emiliano Martínez in the retained column four days after he joined Chelsea, showed “Out · 0 — Nobody” in goal, omitted Goretzka and Jackson entirely, and carried Kim Min-jae, Endrick, Jonathan David and Igor Paixão — none of them Villa players — in its incoming columns.

UEFA Sanction Tracker

The SCR Glidepath

100% 90% 80% 70% 60% UEFA LIMIT 90% 80% 70% FY2023FY2024FY2025FY2026 within 90% BREACH · £5.2m fine BREACH · £19.4m fine* must fall further
Villa line is directional (UEFA does not publish exact club ratios) · *£6.5m payable, £12.9m suspended on continued improvement. The limit stepped 90% → 80% → 70% as UEFA phased the rule in.
Season 2023/24

Warning shot

SCR within the 90% limit then in force, but fined £50,000 for late submission of financial information. FER pressure building underneath.

4 July 2025

Settlement agreement — £9.5m paid, £12.9m suspended

Breach of both the Football Earnings Rule (~£52m/3yr limit — intra-group asset sales excluded) and the 80% Squad Cost Ratio for calendar 2024. Sanction: £5.2m SCR fine + £4.3m of a £17.2m FER penalty payable, remaining £12.9m suspended under a multi-year settlement with a four-year monitoring period. Conditions: financial targets each year, and the List A positive-transfer-balance restriction. Directly triggered the £39m Ramsey sale.

Season 2025/26

Living under the settlement

Gross spend of £71m, second-lowest in the league; net spend ~£21m. Missed out on Conor Gallagher to Spurs' higher bid. Ezri Konsa said the restrictions "killed" the club's window. Won the Europa League anyway.

Early July 2026

Second SCR breach — £19.4m, but 2/3 suspended for improvement

Above the 70% SCR limit for calendar 2025, alongside Chelsea (£2.6m fine, £1.7m suspended), Newcastle (£2.6m SCR + a new £8.6m FER settlement) and Forest (£2.2m). Villa's headline fine was the biggest — UEFA called it a "significant breach" — but the treatment was notably lenient: the CFCB formally recognised the drastic 2024→2025 improvement as in line with the settlement projections and suspended £12.9m, conditional only on the ratio continuing to fall in 2026. Read together: the breach was still the largest in England, but UEFA publicly endorsed the direction of travel.

Now → FY2026 assessment

The exit route

≈£16m paid to date; up to ~£26m still hanging across the two suspended tranches. Get under (or close enough to) 70% in calendar 2026 — via the Rogers/Tielemans sale profits, CL revenue and a lower wage bill — and the suspended amounts fall away with the settlement ending after 2027/28.

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

The season of the Champions League quarter-final run (beaten by eventual winners PSG) and 6th place. Headline: a £17m pre-tax profit. Reality: it only exists because of £114m of one-off asset sales to sister companies.

Revenue (club record)
£378m
+37% on FY24's £276m
Pre-tax result
+£17m
vs −£86m in FY24
…excluding asset sales
−£97m
Underlying loss actually worsened by £11m
Operating loss
−£140m
Barely improved on FY24's −£145m
Wage bill
£273m
~72% of revenue (down from 96% two years prior)
Player amortisation
£100m
+ £6.5m impairment charge

Revenue mix

Broadcasting
£241m
Commercial
£91m
Matchday
£38m
Player loans
£7.9m
Confirmed for 2026/27 — the new shirt money: Visit Rwanda becomes front-of-shirt sponsor (multi-year, up to £20m/yr with bonuses — reported as the most lucrative deal in club history, covering men's, women's and academy shirts), while Betano extends as sleeve sponsor (announced 23 Jul, undisclosed, said to beat the previous Trade Nation sleeve deal). The regulatory story: the Premier League's front-of-shirt gambling ban starts this season — which is why Betano's £20m/yr front deal (2024's club record, timed to expire exactly at the ban) slides to the sleeve. The bean-counter's read: the headline £20m replaces Betano's £20m at par, so the true uplift is the sleeve upgrade (~£5m/yr est) — but the real win is what DIDN'T happen: other clubs simply lose their gambling front money at the ban; Villa replaced it at full value AND kept Betano's money on the arm. Every pound lands in the SCR denominator and FER earnings from FY27. Worth noting honestly: the Visit Rwanda deal has drawn supporter criticism on sportswashing grounds — commercially significant and contested.

How −£140m became +£17m

Operating loss−£140m
Profit on player sales (Durán etc.)+£52m
Profit on sale of women's team → intra-group+£78m
Profit on sale of The Warehouse operating rights → intra-group+£36m
Net interest payable−£8.9m
Pre-tax profit+£17m
The whole story in one line: the Premier League's PSR counts that +£114m; UEFA's FER doesn't. Which is why Villa are simultaneously "PSR compliant" at home and paying fines in Europe. Also worth noting the FY24 comparative covered 13 months (year-end moved May→June→back), flattering the year-on-year cost growth by ~£33m.

Rules & Compliance Status

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

COMPLIANT CLOSE / UNDER SETTLEMENT NOT COMPLIANT

Compliance calendar

~2 Sep 2026CL LIST A DEADLINE
31 Dec 2026UEFA SCR YEAR ENDS
Jan 2027FINAL PL PSR ASSESSMENT
Oct 2026PL SCR MONITORING
~Early Feb 2027CL KNOCKOUT LIST WINDOW
1 Mar 2027PL SCR ASSESSMENT
Summer 2027CFCB VERDICT ON 2026
7 Jul 2027SSR TESTS
2028/29UEFA MONITORING ENDS
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 (Villa'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.
PL homegrown quotaSeparate from UEFA’s club-trained rules and usually the easier of the two: 25 registered, max 17 non-homegrown, U21s exempt. Villa project at 21 registered — 9 homegrown, 12 not — so both ceilings are clear, though the Watkins sale leaves the homegrown side one above its floor. Full working in the Squad Lists tab.
VillaVerified compliant by the Premier League. The women's-team sale (£78m profit, plus £36m on The Warehouse operating rights — £114m combined) turned an underlying −£97m year into +£17m, anchoring the 3-year sum inside £105m.
DeadlineAccounts submitted by 31 Dec 2026 → final-ever PSR assessment January 2027. After that the rule is retired.
UEFA · the binding constraint
Breached ×2

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 loaned-in players (Garnacho's ~£6m/yr counts in full despite £0 amortisation) — 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.
VillaBreached the 80% limit in 2024 (£5.2m fine) and the 70% limit in 2025 — the largest SCR fine in England at £19.4m for a "significant breach", but only £6.5m payable. The CFCB formally credited the drastic 2024→2025 improvement ("in line with projections submitted as part of their settlement agreement") and suspended the remaining £12.9m — proportionally the same leniency shown to Chelsea (£2.6m fine, £1.7m suspended). Red because still above the line; the trajectory, though, carries UEFA's written endorsement.
DeadlineRatio must show a significant decrease by 31 December 2026; clubs report in spring and the CFCB verdict lands summer 2027 — miss it and the suspended £12.9m crystallises.
UEFA · "FER" — yes, that's the one
In settlement

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 (Villa's y/e 30 June), assessed annually by the CFCB.
What countsUEFA's PSR equivalent — but it EXCLUDES profits on asset sales to related parties, player swaps (see the Swap-Deal rule card) and related-party transfers. The women's-team sale is invisible here.
VillaBreached → 3-year settlement (Jul 2025): £4.3m paid of a £17.2m penalty, £12.9m suspended. This month's UEFA sanction was SCR-only — no fresh FER penalty, consistent with the intermediate targets being met. The reported settlement target for 2025/26 was a maximum UEFA-basis loss of just £4.3m — a brutal bar that the Rogers/Tielemans profits exist to clear.
DeadlineNext intermediate target: the FY ending 30 June 2027 (FY26 accounts feed the summer-2027 review); the settlement carries a four-year monitoring period (to 2028/29), at the end of which the remaining suspended amounts are written off or enforced.
Premier League · live from 2026/27
Could be close

SCR — Squad Cost Ratio (PL)

CLUBS IN EUROPE (incl. Villa): 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 Villa used under PSR is explicitly closed.
VillaAs a Champions League club, Villa's domestic green threshold is 70% — the BBC lists Villa by name among the nine capped clubs. So there is no soft domestic option: the same 70% bar applies at home and in Europe, just on different clocks. The 2026/27 season projection (~63% on the model defaults, helped by CL + Super Cup revenue and ~£98m net Rogers profit) sits inside it, but with only a few points of margin — hence amber. 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.
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 equity injections count in a club's favour.
VillaV Sports (Sawiris/Edens/Atairos) have consistently funded via equity, and accounts are prepared on a going-concern basis with owner support confirmed. No indication of an issue.
DeadlineFirst full tests 7 July 2027 for 2026/27, with in-season submissions from the start of the season.
UEFA settlement condition
Negative on the cost test

List A transfer-balance rule

CONDITION: List A transfer balance must be positive before any new player is registered
BasisAggregate and cost-based, per UEFA's published settlement summary: the difference between the cost savings from ALL outgoing players (wages + amortisation that stop) and the new costs from ALL incoming players (amortised fee, max 5 yrs, + wages + agent fees), tested at each List A submission deadline. NOT one-in-one-out — one big sale funds multiple registrations. Applies unconditionally in 25/26 & 26/27, conditionally after; miss a settlement target by €10–20m and the calculated cost savings take a haircut.
DeadlineCL league-phase List A due ~2 September 2026 (day after the window shuts); up to three additions permitted in the knockout registration window closing 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).
VillaThis rule exists partly BECAUSE of Villa: Maatsen↔Kellyman (Chelsea), Dobbin↔Iroegbunam (Everton) and Douglas Luiz↔Iling-Junior+Barrenechea (Juventus) were the textbook cases. Following the July 2026 fines, UEFA has reportedly issued a formal warning to Villa and Chelsea over inflated swaps — with heavier fines and a potential European ban on the table for a repeat.
ConsequenceThis is live RIGHT NOW: Garnacho has officially joined from Chelsea days after Rogers went the other way for £117m. The deal is engineered around the rule — an initial season LOAN with a £42.5m conditional obligation triggering next season — pushing the permanent conclusion well outside the 45-day window and onto entirely different payment terms, so the ~£98m Rogers profit stays clean. If UEFA nonetheless deemed the two deals one exchange, that profit could be slashed towards book value — which is why both clubs are publicly framing them as unrelated. The same logic applies to any Konsa-to-Arsenal traffic. The era of the casual academy swap is over.
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 say Villa have an "FFP problem", the precise version is: a UEFA SCR problem, managed under an FER settlement, while fully PSR-compliant at home.
Accounting mechanics

Amortisation & "pure profit"

Fees spread over the contract (max 5 years); sale profit = fee received − remaining book value − any sell-on shares owed, booked instantly. Academy products (Ramsey £39m, Barry) and free transfers (Tielemans £35m) are ~100% profit; £117m for Rogers against a largely-amortised cost books ~£98m net once Middlesbrough's sell-on — 20%, but capped at £15m — is deducted. Buying works the other way: Manzambi at £50m guaranteed adds only ~£10.4m/yr of cost. Clauses run towards Villa as well as away. Everton are closing on a £15m sale of Tim Iroegbunam to Hull, and Villa hold 10% of it: reported at about £500,000, which is 10% of the uplift over the £9m Everton paid rather than 10% of the accounting profit, since that would be £1.09m. Nothing is booked for it here. The sale has not happened, and a clause on someone else’s transfer is contingent income in the same way an add-on is — real when it triggers, not before. It is also the one shape this page cannot yet model: every sell-on it tracks is money owed, deducted from a profit, and there is no field for money coming in. That asymmetry is the entire logic of Villa's summer.

The Whole League — Bean Counted

All 20 clubs for 2026/27: which SCR tier they're in, their latest published accounts (FY2024/25, y/e mid-2025), and their compliance baggage. Nine clubs in Europe carry the 70% green / 100% red caps; the other eleven get 85% / 115%. Notes updated 9 Aug — officially announced deals and appointments only, plus deals flagged where they sit at medical/agreed stage; 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%The subject of this tracker: mid-settlement, fined twice, trend endorsed — and the £117m British-record Rogers sale is the exit route. Out so far: Rogers, Tielemans (£35m, Man Utd), Digne (PSG, now officially confirmed both sides), Malen, Barrenechea, Dobbin — with Guessand to Palace on a season loan (official 12 Aug) and Bailey to Olympiacos for £3.4m on 2 Sep — the last exit of the window, after Hull, Ajax, Sevilla and Al Diriyah had all failed to land him. In: Manzambi (club-record £50m guaranteed of a £59.5m package), João Gomes (£38m), Suzuki (£29.9m), Ruggeri (~£22.9m), Cissé and now Jackson (£47.5m guaranteed, £65m package, official 28 Aug), plus Garnacho and Wan-Bissaka on loan — £201.8m of completed spending. Konsa went to Arsenal for £51m. See every other tab.
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 24/25 title bonuses; the £241m spent on Wirtz and Isak (£125m) falls in FY26. 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.
Sunderland AFCEUROPA70%~180*~95*~53%*FY25 = first PL season back. Europe two seasons after League One — the 70% cap lands on a still-growing revenue base.
Crystal PalaceEUROPA · CONF WINNERS70%~190~135~71%Conference League winners — then Glasner officially departed for Forest. Second straight European season keeps them on the 70% cap, right on the line like Villa.
Brighton & Hove AlbionCONFERENCE70%~222~165~74%FY25 costs rose sharply on amortisation; historically balanced by elite player trading profits.
Chelsea85%~541~360~67%Xabi Alonso era. UEFA settlement (£26.7m paid, up to £51m conditional), fined again 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; the £125m Isak sale to Liverpool (Sep 2025) lands in the FY26 accounts, with Gordon (£60.5m, Barcelona) and Tonali (£92.5m, Spurs) following this summer. 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 — big headroom if they spend sensibly.
Ipswich TownPROMOTED85%~145*~115*~79%*FY25 reflects their last PL season. Straight back up at the first attempt.
Hull CityPROMOTED · PLAY-OFFS85%~30*~28*~93%*Championship accounts. The biggest financial step-up in the division — SSR liquidity tests bite hardest here. In: Butland, ex-Villa Targett, Zambrano & Morita. Leon Bailey passed a 5 Aug medical here and Hull withdrew on the 12th over the pay-off structure; he went to Olympiacos on 2 Sep for £3.4m, so Hull did not lose him on price — they lost him on ~£120k/wk of wages.
The tier divide is the story of 2026/27: nine clubs in Europe live at 70/100 while eleven live at 85/115 — meaning Chelsea, Newcastle, Spurs and Forest all get 15 points MORE domestic spending headroom than Villa precisely because they failed to qualify. UEFA settlement obligations (Chelsea, Newcastle, Villa) travel with the club regardless. And note the squeeze cases at both ends: Bournemouth and Palace dragged down to 70% by success, Fulham and the promoted clubs for whom even 85% of a small revenue is a hard ceiling.
Sources: Deloitte Annual Review (league totals), club accounts via Swiss Ramble/Maguire/BlueCityBrain analyses, UEFA CFCB statements. ~ figures are estimates; * marks accounts from a different division. 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; Villa's Digne fee is now included following the 22 Jul completion. LAST 5 YEARS: net spend 2021/22–2025/26, Transfermarkt basis (€ converted), ~ = estimated. The two views tell one story from opposite ends: over five years Villa rank 5th-LOWEST in net spend while making the Champions League — and this window they're the second-biggest sellers anyway. Efficiency wasn't enough; the calendar-2025 breach demanded the fire sale on top of it.

Can Anyone Still Catch the Big Six?

The question underneath every number in this tracker. The honest answer: the old door is bricked up — but there's a turnstile, and Villa are halfway through 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; Villa's 70% of ~£510m buys ~£357m. 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: Villa's exit route was selling Rogers to Chelsea; Forest's was selling Anderson to City. The fined feed the rich.

The cracks in the door

1 · Grow the denominator. Every £1 of new revenue is 70p of new squad allowance — which is why the Visit Rwanda deal, Villa Park expansion plans and every European run matter as much as any signing. Compliant growth means revenue first, squad second. 2 · The trading engine. Net transfer profit counts IN the denominator and in FER earnings — selling well literally raises your cap. Brighton have run this loop for a decade; Villa's academy (Barry, Swinkels, Mosquera: pure profit) is the same machine starting up. 3 · Efficiency is legal. Kamara and Lindelöf free, Konsa at £75k/wk, fifth-lowest net spend in the league — the five-year table above is proof you can reach the Champions League on brains. 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 at every level.

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, harder arc: gatecrash Europe on efficiency, monetise it (prize money, sponsors, stadium), sell your stars for compliance fuel, and let revenue compound until the 70% of it rivals theirs. It takes a decade, it charges admission (usually your best player), and the turnstile admits roughly one club per cycle. Villa are further through it than anyone since Leicester — a Europa League trophy, Champions League revenue baking into the denominator, a record sponsor, and the league's most efficient five-year spend. The door isn't closed. It's just been redesigned so that only the well-run can fit through — which, Sawiris might note, is the financial game swallowing the sporting one whole.

Changelog

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

3 Sept 2026

Ins & Outs now shows what a transfer is actually made of — and the columns exposed two errors in the totals above them MODEL

A fee is never a cost, and the tables now say so in columns rather than in prose. The Ins & Outs tab opens with a worked example — Mbaye, £47m, £100k/week, contract to 2031 — broken into the three things a signing actually charges against the squad cost ratio: £10.1m of amortisation (the fee plus the Premier League’s 4% levy, over his 4.83-year contract, capped at five), £8.1m of wages (basic pay grossed at 1.55×), and £1.0m of agent fee (10% of the fee over the same span). £19.2m/yr, roughly 53% fee, 42% wages, 5% agent.

Both tables carry those components as their own columns now. Incomings show amortisation, wages and agent fee beside the total; outgoings split cost freed into the wages that stop and the amortisation that stops. That split is the one that matters most, because the two halves do not behave alike: a sale stops both, a loan out stops only the wage. Amortisation never leaves the club that owns the registration, which is why Nedeljković still costs Villa ~£1.3m/yr at Rangers.

Putting the parts next to the total is how you find out the total was wrong. Two errors surfaced within minutes of the columns existing, and neither was visible while the page showed a single figure. (1) The Amort column read the squad row’s contract-based charge while the SCR cost column spread the fee over a flat five years, so on a 4.8-year contract the parts came to £19.1m and the total said £18.8m. (2) Fixing that by pointing the total at the squad row introduced a worse one: the squad row knows nothing about the 4% levy, because its book values are fee values, so the levy silently dropped out of every incoming cost on the page. Harwood-Bellis read £5.2m + £6.9m + £0.5m against a stated £12.8m. Both are fixed, one function now produces the charge for both columns, and every row adds up.

The knock-on is a real change to a headline number. Amortising over the actual contract rather than a flat five years raises the cost of every signing on a sub-five-year deal, so the window’s net squad-cost swing moves from +£25.6m/yr to +£28.3m/yr. The overview-figures gate caught the stale figure immediately, which is exactly what it exists for — and the new number sits sensibly beside the settlement’s cost-based transfer balance of −£27.7m, two measurements of the same thing arriving within £1m of each other by different routes.

And the gate had to be taught the new shape. check-overview-figures evaluates the page’s own formulas rather than reimplementing them, which is the right design and means it breaks honestly when those formulas gain dependencies. inCost stopped being a one-liner, so the gate now pulls the squad table, the amortisation helpers and the five-year cap constants under it. Its own file warns against evaluating a formula without the things it reads; that warning earned itself again today.

Three things are stated as deliberately absent. Add-ons count only when they trigger, so a package figure is carried at its guaranteed portion. FIFA’s 5% solidarity is deducted from a foreign sale, where it never reaches the seller, and is not modelled on a purchase — the buyer pays the same either way. And an injury gives no relief whatsoever: wages and amortisation both run in full, which is what makes Onana’s cruciate worth roughly £16m/yr of numerator for no minutes at all.

3 Sept 2026

The List A Transition board was hand-written, and it had rotted badly CORRECTION

Reported by a reader looking at the live page: Martínez was still in the retained column. He was, and it was worse than that one name. The List A Transition board — three columns per position, showing who left last season’s European list, who stayed and who filled the hole — was written by hand and maintained by hand, and by 3 September it was wrong in eight separate ways at once.

The full audit. (1) Emiliano Martínez sat under “Retained” four days after Villa announced his £7.5m sale to Chelsea, with a tag still explaining that Juventus had signed Vicario instead — a reason that stopped mattering on 30 August. (2) Directly above him, goalkeepers read “Out · 0 — Nobody”, in a window where the club’s first-choice keeper of six seasons left. (3) Leon Goretzka and (4) Nicolas Jackson were missing from the board entirely, both registered, one of them a £47.5m centre-forward. (5) Kim Min-jae, (6) Endrick, Jonathan David and Igor Paixão appeared in incoming columns; not one has ever been a Villa player. (7) Douglas Luiz was among the departures, having left for Juventus in 2024, two seasons before the transition this board describes. (8) Two columns disagreed with their own headings — defenders said “In · 5” above six names, forwards “In · 3” above seven.

So it is derived now. A player cannot appear on that board unless the filed list or the omissions list puts him there, which means the worst it can be is as wrong as the article it is built from. The columns are registered again, new and registered, and available and left off — and the counts come out at 23 named and 5 omitted without anybody typing either number. Departures are deliberately not shown by position any more: a player who has left is not in the squad table, so his position has to be guessed, and guessing is precisely what put Douglas Luiz on a 2026 board.

And the closing callout was making a prediction that the filed list has now answered. It said that under the settlement every new signing “must be covered by sales first” and that “the Rogers and Tielemans fees clear that bar comfortably”. The list says something more complicated than either the optimistic version or the one this page argued yesterday. Eight players signed this window were registered — Suzuki, Ruggeri, Wan-Bissaka, Goretzka, Gomes, Manzambi, Jackson, Garnacho, Mbaye — so nothing blocked new names across the board. Harwood-Bellis, Cissé and Madjo were not, and two places were left empty rather than used. A club stopped only by space does not leave places unused; a club stopped by nothing does not leave a homegrown £25m centre-back off a list he would have eased the quota on. Something bound, and this page now says plainly that it cannot yet tell you which of the two candidates it was.

The lesson is the one this site keeps relearning, one section further out each time. The deal arrays are gated, the ratio inputs are gated, the squad table is gated, the answer block is derived. This board was none of those things — it was prose in the shape of a table, sitting inside a tab that gets read a lot and edited by hand, and no gate could see it because it referenced players by name in free text. It took a reader with the live page open to find it.

3 Sept 2026

The filed Champions League list, and a correction to what this page said about it CORRECTION

Everything on this page was a model of the European list. Now the list itself is here. Villa’s 2026/27 league-phase squad as filed with UEFA is recorded above, twenty-three names with shirt numbers, and it can be checked against the squad table rather than against itself. Three things came out of doing that, and one of them is this page correcting itself.

The squad table is right, including the part that looked wrong. Every one of the twenty-three is in it, and the two loanees — Garnacho and Wan-Bissaka — are correctly carried as squad members rather than absentees. Emiliano Martínez is not on the filed list, which is what this page has said since 30 August: he is a Chelsea player, £7.5m, announced by Villa, and the three goalkeepers named are Suzuki, Bizot and Wright. Twenty-three named plus five accounted for is twenty-eight, which is exactly the number of registerable players on this page. Nothing is missing in either direction.

Villa named 23 of a possible 25, and this page had told readers why before it knew. Two places sit empty. Nine of the twenty-three are locally trained, comfortably past the minimum of eight — so the headline homegrown quota is not what capped the list, and the explanation has to be elsewhere. Two candidates survive. The club-trained sub-quota: four of the eight must be trained at Villa specifically, and an unfilled quota place is a lost place rather than one somebody else can take — this page has said for weeks that this is the test that actually costs Villa slots and that four sat empty last season. Or the settlement: UEFA bar Villa from adding new players to List A while the transfer balance is negative, and this page computes it at −£27.7m.

And here is the correction. This page argued the second of those on its own and argued it too hard. The reasoning was that Harwood-Bellis and Madjo were left out because the settlement blocks new registrations. The filed list does not support that as a complete account: Jackson, Manzambi, Mbaye, João Gomes, Suzuki, Ruggeri, Goretzka and Alysson all arrived in this same window and all eight are registered. Whatever the condition did, it plainly did not block new signings across the board, and saying it did was a stronger claim than the evidence carried. What still points at the settlement is Harwood-Bellis himself: he is homegrown, so he eases the quota rather than straining it, and with two places going spare a club constrained only by space would have named him. Both readings are now on the page, with the fact that cuts against each, and neither is asserted as the answer.

Onana was an assumption this page never checked, and it was wrong. He is missing from the list for no registration reason at all: he ruptured his anterior cruciate ligament for Belgium against the United States in the World Cup last sixteen, was substituted after twenty-one minutes, and is out for around nine months. This page had the injury recorded in detail — the four ways an ACL hits the SCR with no relief — and still never connected it to the European squad, because it was busy modelling registration rules and he had stopped being a registration question in July.

A gate, the twenty-fourth. tools/check-uefa-list.js holds three relationships wherever a page records a filed list: every name on it is a real squad player and not one marked out on loan; every registerable player is either named or explained with a reason; and nobody appears in both lists. Tested by deleting Onana’s entry, which is the exact shape of the failure it exists for — a player who quietly stops being available and whom nothing on the page notices. It checks no quota, deliberately: domestic homegrown and UEFA locally-trained are different tests, McGinn is club-trained for UEFA and not homegrown at home while Garnacho is the reverse, and guarding a quota with the wrong flag is worse than not guarding it.

3 Sept 2026

Two lists, one rule applied to both — Mbaye was never List B eligible CORRECTION

The Premier League and UEFA both exempt young players, and they do not mean the same thing. The PL leaves every player born on or after 1 January 2005 off its 25-man list with no qualifying period whatsoever — buy an 18-year-old on deadline day and he is exempt that afternoon. UEFA’s List B adds a condition: two uninterrupted years at the club since the player’s 15th birthday, or three consecutive years with at most one year-long loan inside the same association. This page knew that rule and quoted it correctly in one place, then applied the PL version everywhere else.

What it got wrong. Ibrahim Mbaye, signed from Paris Saint-Germain on 1 September, was described in four separate places as costing no registration — “he sits outside the 25-man Premier League list entirely and goes on UEFA List B”, “he takes no registration”, “takes no senior place”. The first half of that is right and the second half is backwards. He signed one day before the Champions League list was filed, so in Europe he takes a full List A place. The same is true of all five of the others: Manzambi (July 2026), Cissé (July 2026), Madjo (January 2026), Alysson (January 2026) and Özcan (June 2025) were every one of them bought inside the two-year window. Not one of Villa’s six under-21s is List B eligible.

Which inverts the story this page has been telling. The A-list board has run all summer on the idea that the six young players were a relief valve — the reason a £47m signing cost nothing in list terms, and why the domestic squeeze was survivable. Domestically that is true and the four free places are real. In Europe it is the other way round: six players who are free at home each need one of 25 places on a list that Villa’s UEFA settlement makes far harder to add to than the domestic one. The tighter list was being described as the looser one. A separate note on this page had it right for three of the six and stopped there; it now covers all six, and the A-list box states plainly which competition each rule belongs to.

A gate, because a rule that is quoted correctly and applied wrongly is exactly the kind that comes back. tools/check-listb.js reads each club’s incoming arrays for players bought from another club, cross-checks their date of birth and signing date against the two-year test, and fails if one of their own data rows claims List B. It deliberately says nothing about academy graduates — their signing date is a scholarship date, not the start of eligibility, so Arsenal’s Hale End pair and Sunderland’s Rigg are correctly quiet — and nothing about free prose, where associating a claim with a player really is guesswork.

Worth recording how the gate was built, because the first two versions were worse than none. Version one matched a name near the words “List B” and reported two clubs that had the rule right, including Manchester City’s correct “too new for List B”. Version two added a negation guard and then passed the very page it was written for, because the guard saw “sits outside the 25-man Premier League list” and read a denial that belonged to a different list two clauses earlier. Version three widened the search and reached six thousand characters out of a Brighton squad row into a general sentence about the rules. Proximity was the wrong instrument throughout: the sentence that caused all this says “he goes on UEFA List B”, and no amount of name-matching finds a pronoun. The working version keys on the data row instead, where every word is about one player by construction. It was tested by reverting the page and confirming it fails — which the second version would not have done.

Every other European club on this site had it right. Brighton: “too recent for List B’s two-year residency and take full A spots.” Manchester City: “Monga and Kilwa are too new for List B.” Liverpool, Arsenal, Palace and Sunderland all name the right players. Villa’s page was the outlier, which is the uncomfortable part — it is the page that gets the most attention here, and it drifted precisely because it was edited the most.

3 Sept 2026

The two criticisms that were fixable are fixed: UEFA gets its own clock, and the trading anchor gets a source MODEL

The calendar model is built, and it costs 3.6 points. UEFA assesses the squad cost ratio on the period ending 31 December, not on a club’s financial year, and the player-trading line is the net profit on disposals over the 36 months to that 31 December pro-rated to twelve. The Premier League assesses the season. This page computed ONE blended figure and displayed it against both limits, which cannot be right for both at once — the sharpest of the three criticisms put to it yesterday, and the only one that was a modelling failure rather than an unstated assumption. There are now two models. On the 2026/27 season Villa read 63.9% with £32.8m of headroom. On the twelve months to 31 December 2026 — the period UEFA will actually assess, and the one the settlement is written against — they read 67.5% with about £12.8m. Same club, same window, same deals; 3.6 points and roughly £20m of room between them, because calendar 2026 carries six months of a cheaper Europa League season’s revenue against a cost base that has already stepped up.

The trading anchor is sourced, and the honest result is that the made-up number was nearly right. in-psp was a carried £41.17m plus this window’s booked profit over three, with a code comment admitting the anchor “makes the bridge agree with today’s input by construction”. It is now built from UEFA’s own window, period by period, each with a provenance: £28.0m for Jan–Jun 2024 (derived — Kellyman £19m to Chelsea, Iroegbunam £9m to Everton, both academy, both pushed through before the 30 June line), £52.0m for FY2024/25 (accounts — £52.0m of profit on £90.5m of sales in the year to 30 June 2025), £42.5m for FY2025/26 (estimate — Jacob Ramsey £39m and Kesler-Hayden £3.5m; those accounts are not due until 2027) and £220.3m read live off the table below for Jul–Dec 2026. Sum £342.8m, over three, £114m — against the £115m the asserted anchor produced. A one-million-pound difference on a £534m denominator.

The first period reconciles to an audited number, which is the part worth checking. Splitting a published annual figure into halves is normally an assertion dressed as arithmetic. Here both halves are itemised independently: the FIRST half of FY2023/24 was Archer to Sheffield United (£18.5m), Aaron Ramsey to Burnley (£14m) and Philogene to Hull (£5m), all academy, all pure profit, £37.5m. The second half was Kellyman and Iroegbunam, £28.0m. Together £65.5m, against a published profit on player sales for that year of £65m. Five hundred thousand pounds apart on a figure built from five separate transfer fees and never fitted to the total. That is the difference between a number that is sourced and a number that agrees with itself.

What did NOT get fixed, and why it is stated rather than quietly modelled. The third criticism was that £420m of revenue is optimistic with part of the stadium closed for redevelopment. No published figure for the lost capacity or the lost matchday income could be found, so nothing has been invented to plug it — inventing an allowance would be the same sin the anchor was just cured of. But building the calendar model turned up something that sharpens his point considerably: the best available projection of FY2025/26 revenue is ~£372m, which is BELOW FY2024/25’s £378m. The £420m for 2026/27 assumes a £48m jump off a base that has just gone backwards. That is now in the caveats, in the calendar model’s own inputs where a reader can move it, and here.

And the gate that should have existed all along. check-invariants already refused to let in-psp drift from the bridge’s derivation. It had nothing to say about where the bridge’s anchor came from, which is exactly the level the criticism landed at. A page can now publish PB_PRIOR — the periods UEFA counts, each with an amount, a provenance of accounts, derived or estimate, and a note saying where it came from — and where that array exists the anchor must BE its sum over three rather than a number that happens to sit near it. A period without a source fails the gate. The other nineteen clubs keep the old behaviour until someone does the same work on them, which is the honest way to ship a standard: reward the page that meets it, do not pretend the rest already do.

3 Sept 2026

An outside reconstruction puts this page at c70% rather than 63.7% — and three of the criticisms land CHALLENGED

The model was rebuilt from the outside and got exactly right. Working only from the two published figures, an external analysis identified this page’s calculation as £341m / £535m, which is precisely what it computes, and then reverse-engineered the trading input as £115m x 3 = £345m of implied three-year profit. The model’s own arithmetic gives £343.8m. When someone can rebuild your workings from two numbers and land within £1m, the disagreement that follows is worth taking seriously rather than defending.

Where the criticism is right, and it is put on the page rather than answered here. (1) UEFA measures the calendar year and this website uses the same number for both tests. Correct, and it is the sharpest of the three. This page computes ONE ratio and shows it against a UEFA limit while also describing a Premier League season test. The glossary has said all along that the two tests run on different clocks; the model never implemented the distinction. (2) The trading anchor is asserted. in-psp is a carried £41.17m plus this window’s profit over three, so it implies ~£124m from the two earlier years that this page has never sourced from accounts — the code comment already confessed that it “makes the bridge agree with today’s input by construction”, and the same weakness was found from outside. (3) £420m of revenue is optimistic with part of the stadium closed. The revenue projection contained no allowance for the redevelopment at all — the word did not appear on the page.

What each disagreement is worth, now published in the caveats. From a 63.7% base: wages at £215–220m rather than £205m is +1.9 to +2.8pp; revenue at £395m is +3.1pp; and this window’s trading profit at £95m rather than £220m — putting in-psp near £73m — is +5.4pp on its own. Stack all three and this page reads about 75%, against an external range of roughly 70% at best and 75–80% if revenues under-deliver. The two models reconcile almost exactly once you know which assumptions differ.

Where this page does not simply concede, and why the disagreement is checkable. The gap is overwhelmingly the trading line: the outside figure for this window is a best case of £95m against £220m here. That £125m is not a modelling choice, it is an itemised list — Rogers at £117m against an £8m cost from Middlesbrough, less £15m to Boro on the capped sell-on; Konsa at £51m against a £12m 2019 fee long since written off; Watkins at £50m against a £6.6m book, less £3.25m to Brentford; Tielemans at £35m on a free. Those four are £203m of the £220m. For £95m to be right, roughly £125m more book value has to exist across four players whose purchase prices and dates are published. That is a falsifiable claim rather than a difference of opinion, and the deal-by-deal table is where it should be settled.

Nothing in the headline numbers has been changed on the strength of a disagreement. Moving the ratio to match a critic would be the same failure as leaving it wrong to defend it. What has changed is that the three weaknesses are now stated where the number is, with the sensitivity attached, so a reader can see the model’s soft spots without having to reverse-engineer them from outside.

3 Sept 2026

Luka Lynch to Oxford — a half-season loan, ratified overnight after the deadline OFFICIAL

Oxford United announced him on 2 September, on a deal sheet lodged before the 11pm deadline and ratified overnight — the second row on this site dated after the window shut and still belonging to it, after Femi Azeez’s move to Brighton the same night.

It is a HALF-season loan, and this page’s card said otherwise. The card read “season loan”; the deal runs to 2 January 2027. That is a recall point and a conversion point in the winter window, and it means four months of wage relief rather than ten. The card was right to hold the deal off the table while EFL ratification was outstanding, and wrong about its length.

A 19-year-old academy winger — West Brom to Villa at 14, eleven U21 games and four goals last season — so there is no fee, no book value and nothing to amortise. The £8k/wk is an estimate from the band Villa’s other loaned-out academy players sit in. The wage bridge counts announced loans, so the input goes to £205m and the ratio to 63.7%.

3 Sept 2026

The Iroegbunam sell-on lands — £0.4m in, and the receivable field earns its keep OFFICIAL

Everton sold Tim Iroegbunam to Hull on 1 September, and Villa kept 10% of the uplift when they sold him to Everton for £9m in July 2024. On the £13m guaranteed the uplift is £4m, so £0.4m is due here. It is booked as player-trading profit, because a receivable on a former player’s onward sale is income with no book value against it — Villa wrote his fee off when they sold him.

This is the second entry in a field built one window early. In August this page said that Villa’s 10% of a possible Iroegbunam sale “had nowhere to live” and that “the model needs a field for a receivable, and that is better built before the money moves than after”. It was built on 2 September for the Watkins sell-ons; the Iroegbunam money moved on the 3rd. If Everton’s £9m of add-ons trigger the uplift becomes £13m and Villa’s share £1.3m — not booked until it does.

Player-trading goes £114m → £115m and the ratio 64.0% → 63.9%. Small, and it is here because the alternative is a clause everyone remembers until the day it pays.

3 Sept 2026

Leon Bailey is sold, and a £3.4m fee moves the ratio further than the £51m one did OFFICIAL

He signed for Olympiacos on 2 September, permanent, on a contract to June 2029, for a fee reported by Tanswell at £3.4m. Neither club published a figure, so that is a reported number rather than a disclosed one and is labelled as such on the row. He is in the Ins & Outs table at ‘done’ and his rumour card is dead.

The headline: 66.3% → 64.0%, headroom £19.8m → £31.8m. That is a bigger move than the £51m Konsa sale produced, on a fee one-fifteenth the size, and the reason is worth stating because it is the whole argument of this site. £120k/wk grossed at 1.55x is ~£9.7m/yr; the amortisation that stops is ~£1.6m. Six-sevenths of what Villa saved here is salary. A club inside a UEFA settlement is buying relief from the wage line, and the cheque is close to incidental — which is exactly why he had to go before 1 September mattered less than that he went at all.

The inputs moved with him, and the bridges did the moving. The wage bridge derives £218.4m of player-and-coach cost from the FY2024/25 anchor and then applies the window’s announced moves; his £6.24m of basic pay leaving takes the derivation to £205.98m, so the input goes £216m → £206m and input and derivation still agree to a rounding. Amortisation goes £119m → £117m. The player-trading input is unchanged at £114m: £1.8m of profit, £1.6m after the 5% FIFA solidarity on a foreign sale, enters the three-year average at a third and does not survive the rounding. Sales banked go to £313.3m.

A book value that had been wrong in two paragraphs. The page said his book value was ~£4.6m. His own card’s stored numbers said ~£1.6m and had done for weeks — a relief of £11.3m against a £9.7m grossed wage leaves £1.6m of amortisation, and a profit of £7m on an £8.6m fee leaves £1.6m of book. Those two agree with each other and with the shape of a final contract year, in which the book value IS one year’s charge. £4.6m is not reconcilable with a £1.6m annual charge under any convention on this site, so it was the outlier and both paragraphs are corrected. No gate caught it, because nothing compares a book value asserted in prose against the arithmetic implied by a card’s own fields. That is a real hole and it is named here rather than quietly patched.

What the fee says about the last month. Villa asked £12–20m in early August, dropped to €9–10m by the 30th, and took £3.4m on 2 September. This board carried £8.6m — two and a half times the outcome, the largest fee miss of the window here, and it is left visible on the dead card rather than overwritten. The relief estimate was the good half: £11.3m stored against ~£11.3m realised, because relief was almost all wage and the wage was known. The lesson is the one the window keeps teaching: a fee on a player in his final year is a guess about leverage, and leverage runs out.

Fed across the site, not just onto Villa’s page. The rumour-already-gone invariant fired immediately on Hull, which still carried Bailey as a live incoming at £15m — that gate was written last week for exactly this and it earned itself back in one run. Hull’s card is dead with the fee comparison on it: they walked away over the wage, not the price, and the price then fell by three-quarters. The deadline section on all twenty pages moves from seven live cards to six, and the Süper Lig line is corrected from “closed on 4 September” to closes — it had been written in the past tense two days early. The answer block, the FAQ, the structured-data copy of the FAQ, the glossary, the overview swing and profit figures, the league-table rows on two pages, the A-list board, the pitch graphic, the share card and the four non-club tables all follow from the deal arrays and were rebuilt or corrected.

And a window this site does not list. The English window shut at 11pm on 1 September and this transfer completed after it, which is direct evidence that Greece was still open on the 2nd. No closing date for the Greek window could be sourced. None has been stored: tools/windows.js now carries a comment saying so, and any future rumour card pointing at a Greek club will fail check-window-state until somebody fills it in properly. A loud failure on a date nobody knows beats a plausible date typed to keep a gate quiet — which is precisely how the Saudi close came to be wrong by five weeks yesterday.

Two projections rebased on the new baseline rather than left standing. Ordóñez read “£14.3m/yr against £19.5m of headroom, 66.3% → 69.0%, a point off the limit”; on the post-Bailey base the identical signing reads 64.0% → 66.7%, three points under. Nothing about that deal changed. Borland’s wage-bridge rounding note moves with the input it was written about.

Squad-list effect: none, and that is a reporting gap that happened to end well. He came out of the squad table and the A-list on 5 August when the Hull move looked done, and was never restored when it collapsed on the 12th — so the registration counts have been running without him for a month and do not move today. The A-list lede is corrected from “7 are now gone” back to 8, which is where it was on 5 August, wrongly revised down on the 12th, and is now right for the first time since. His wage, meanwhile, sat INSIDE the £216m input the whole time, because that input derives from an accounts anchor covering a season he played. Out of one derivation and inside another is exactly the state that makes a sale hard to book, and it is why the first question asked today was whether relieving his wage would double-count.

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

A what-if reading as a live position — and a reader took it that way CORRECTION

The Headroom tab carried a card labelled “List A balance after fee” with the sub-line “Must stay positive to register”, reading −£7m. Nothing on it said the number was conditional. It is the output of the what-if signing box directly above, whose fee defaults to £40m: the fee-based window balance is £33m, so £33m − £40m = −£7m. Empty the box and the same card reads +£33m.

So the figure was not Villa’s position at all. It was the answer to “what if Villa spent another £40m”, presented in the typography of a live compliance reading, on the one page where a List A registration gate genuinely binds. A reader on X asked whether it meant Villa had exceeded their UEFA settlement by £7m — which is exactly how the card was written to be read, and the reason this is a correction rather than a tidy-up.

It was also the wrong basis. The card tested fees; UEFA’s published settlement summary words the List A condition in costs — the savings from everyone sold against the new costs of everyone bought. That test is on the Rules tab and reads −£38.9m/yr. Two contradictory List A numbers sat on one page, and the prominent one was both hypothetical and computed the wrong way.

The card is now “Window balance after this signing”, says it moves with the box above, and points at the cost test rather than impersonating it. The headroom sentence beneath it called the same fee figure “List A” and no longer does.

Worth recording how this survived: the other nineteen club pages already label this card honestly — “Window balance after fee · Cash view only, no registration gate applies”. That sweep fixed the pages where the number does not matter and missed the single page where it does. No figure on the site moves; what changes is what the number claims to be.

2 Sept 2026

Villa owe part of the Watkins fee to Brentford, and something to Exeter CORRECTION

Tanswell reports that Brentford will receive £3m–£3.5m of the £50m Al-Hilal fee, with Exeter City awaiting the final figure of their payment. Neither clause was on this page, so the £43m of booked profit was gross of money Villa do not keep.

Brentford’s share is modelled at the £3.25m midpoint with the range stated. Exeter’s is listed and booked at nothing, because no figure has been reported and a guess would be worse than a gap — it is a real deduction from the £43m whose size this page cannot yet state.

A sell-on reduces the profit, not just the cash, and profit is a third of it feeds the denominator on a three-year average. The trading input goes £115m → £114m, the ratio 66.2% → 66.3%, headroom £20.5m → £19.8m. Small, and in the direction nobody wants: Villa sold the player and keep less of him than the page said.

The model needed a second clause shape to hold it. SELLONS assumed a percentage of the fee, because that is how the Rogers clause reads. Tanswell gives a sum, not a rate. Deriving “6.5%” from £3.25m of £50m would invent precision the report does not have, so sellOnDue now takes an amt as well as a pct and prefers it where both exist.

2 Sept 2026

The squad caption described a fee rule this site does not follow — and two rows obeyed the caption METHODOLOGY

The caption under the squad table said an incoming fee was modelled at the all-in figure while an outgoing one used the guaranteed amount. That was not what the site did. Every incoming row in the league bar two was already on the guaranteed basis, including this page’s own Harwood-Bellis and Manzambi, both corrected onto it in August. The caption was describing a rule two rows followed, and both of them were here.

Suzuki goes £29.9m → £25.6m (€30m guaranteed plus €5m of add-ons) and Ruggeri £22.9m → £21.6m (€25m fixed plus €1.5m). Committed spend falls £264.3m → £258.7m and the window swing +£39m → +£37.5m/yr. The headline ratio does not move: both were announced deals whose wages were already counted, and the change is to the capitalised fee rather than the wage bill.

Which rule is right is not arbitrary. Contingent consideration is not capitalised until it is owed, and a club that books an add-on before it triggers is claiming an asset it may never buy. Applying that on the sell side and not the buy side made this page’s net spend read worse than the ledger supports, in one direction only. The caption now states the rule the site actually enforces, on all twenty pages.

A seventeenth gate now holds it. check-guaranteed.js reads every deal note for a stated “£Xm guaranteed” and fails when the fee field disagrees. That exact split had been found by hand four times — Harwood-Bellis, Manzambi, Tonali and Suzuki — each time only because somebody happened to read the prose beside the number. It was broken on purpose in both directions before being trusted.

1 Sept 2026

Five loaned-out players given squad rows, and one of them was bought DATA

Three Villa academy players went out on loan today and none of the three existed on this page beforehand — not in the squad table, not in either window. That was said twice in the notes and then left alone, so here it is closed. Oliwier Zych (Vitória Guimarães), Ben Broggio (Stevenage), Kadan Young (Annecy), Mohamed Koné (Annecy) and Lino Sousa (Shrewsbury) now carry squad rows. Villa’s squad table goes from 36 rows to 41, of which 13 are out on loan (the other two loan flags are Garnacho and Wan-Bissaka coming the other way). Every Villa player currently on loan elsewhere now has a row; before today, five did not.

Four of the five are worth nothing and the fifth is not, which is the point of doing this. Zych came from Zagłębie Lubin at 16 for nothing and has been here since 2020; Broggio and Young are academy from U9 and U13. Those three are genuinely nil book value. Sousa arrived from Arsenal in February 2024 for a fee, and is carried at £0 with the estimate flag on it. Mohamed Koné is the one that matters: Villa bought him from ASEC Mimosas in July 2025 on a five-year deal, fee undisclosed. He is a bought player with real book value still writing down, and until now the model did not know he existed. He is recorded at £0 with the estimate flag rather than at an invented number — a stated zero that is known to be wrong is more honest than a plausible figure that is made up, and it is now visible instead of missing.

Nothing in the headline figures moves. All five are out on loan, so none enters the 25-man base, and the quota counts — 22 registered, 10 homegrown, 6 U21 exempt — are unchanged. Their wages were already coming off through the outs rows. The only change is that the amortisation the squad table derives now has five more contracts to look at, four of which contribute nothing and one of which contributes an acknowledged gap.

The Annecy trio is not a coincidence. Young, Koné and Zépiqueno Redmond all went to the same Ligue 2 club, which V Sports — Villa’s ownership group — took a stake in during June. That is a partnership arrangement rather than three separate loan markets, and it is worth naming because it explains why three players left for one club in eleven days.

This is one club’s share of a league-wide gap. Twenty-three loaned-out players across thirteen other clubs still carry no book value here — Brentford four, Brighton four, Fulham three. Villa’s five are done. The count is now produced by the audit tool rather than typed, so it cannot quietly go stale the way the previous figure did.

1 Sept 2026

Lynch to Oxford joins Borland one rung below the table, and either one moves the ratio RUMOUR

Tanswell has Oxford United hopeful of finalising a season-long loan for Luka Lynch, with EFL ratification outstanding and the documentation still unsigned, though all parties intend to complete. Unsigned is unsigned, so he sits on the Rumour Mill next to Aidan Borland rather than in the Outs table.

The Athletic’s own headline on that story reads “Lynch joins Oxford on loan” above a report saying the paperwork is not signed. That gap is the whole reason this site has a rung between a rumour and a row: a headline is written to be read, a status field has to be true. Five Villa academy loans have been reported today and three of them are done — Sousa, Feeney and Rowe, each announced by the club.

Two pending deals now sit either side of a rounding boundary. The wage bridge derives £215.66m against an input of £216m, £160,000 above the point where it rounds down. Either loan alone takes the input to £215m, the ratio to 66.0% and headroom to £21.5m. Both take it to £214m, 65.8% and £22.5m. The three that completed today were each too small to cross that line on their own; the fourth will not be.

Born 11 January 2007, U21 and outside the 25, no fee and no book value. Oxford are English, which costs Villa nothing — the two-slot domestic quota counts arrivals, as the correction logged an hour ago now says in as many words.

1 Sept 2026

Borland to Accrington is a rumour, and the loan quota I cited an hour ago counts the other direction CORRECTION

Tanswell has Aidan Borland expected to join Accrington Stanley on a season-long loan, Accrington close to finalising. Expected and close are not a medical, so he goes on the Rumour Mill and not into the Outs table alongside the three loans the club has actually announced today.

Checking whether Accrington being English mattered turned up an error of mine from an hour ago. The Rowe entry said Villa’s domestic loan slots were full, so a foreign loan was the only shape left and Belgium was the point. That is wrong. The two-slot quota counts loans IN — Garnacho from Chelsea and Wan-Bissaka from West Ham hold both — and it places no limit on where Villa send players. Sousa went to Shrewsbury and Feeney to Peterborough the same morning, both English, both untouched by it. Corrected on the entry, on Rowe’s row and in the registration panel, which is where the confusion started: it read “no further domestic loan can be registered this window” without saying it meant arrivals.

That is a sentence which had been accurate and ambiguous for a fortnight, and the ambiguity was load-bearing enough to produce a wrong claim within twenty minutes of my reading it. It now says arrivals.

If Borland completes, he is the one that moves the number. The wage bridge derives £215.66m against an input of £216m — £160,000 above the rounding boundary. Sousa, Feeney and Rowe were each too small to cross it. Another £8k/wk takes off £0.645m and tips the input to £215m, the ratio to about 66.0% and headroom to roughly £21.5m. Four hours of the window left, and nothing is counted until a club says so.

1 Sept 2026

Triston Rowe to Charleroi, the only shape of loan Villa had left OFFICIAL

Announced by the club: a season-long loan to Sporting de Charleroi. The third Villa academy player out today after Lino Sousa and Josh Feeney, and the third who was not on this page in any form before it happened.

A correction to the first version of this entry, made within the hour. It said Belgium was the point — that Villa’s domestic loan slots were full so a foreign loan was the only shape left. That is wrong, and the mistake is worth keeping visible. The two-slot quota counts loans IN, and Garnacho from Chelsea and Wan-Bissaka from West Ham hold both. It places no limit at all on where Villa send players: Sousa went to Shrewsbury and Feeney to Peterborough this same morning, both English, both untouched by it. Charleroi being Belgian costs nothing and saves nothing.

What is true is the other ceiling. Born 2 October 2006, so he is U21 and exempt from the FIFA senior international loan cap — and that cap is nowhere near binding anyway: of Villa’s six loans abroad, only Andrés García at Getafe is a senior non-club-trained player. Villa have ten out on loan in all, three of them at Annecy, where Rowe spent last season.

No fee either way and nothing to amortise: he came from West Bromwich Albion’s academy at 14 and signed a scholarship in July 2023. Homegrown, U21, outside the 25 — the quota does not move.

The ratio does not move either, and only just. The wage bridge now derives £215.66m against an input of £216m, which is £160,000 above the point where it would round down to £215m. Rowe’s £8k/wk shifts it by £0.645m and that was not quite enough. So Villa hold at 66.2% and £20.5m of headroom — but the next loan out of almost any size tips the input a whole million, and with it the headline.

One thing had to be decided by hand. Charleroi is a destination this site had never met, and check-solidarity.js fails on an unknown club rather than assuming a country — a foreign sale banks 95% of its fee and a domestic one banks all of it, so guessing wrong is a real error. It is a loan with no fee, so nothing turns on it today; the classification is recorded anyway, because the next deal with that club might carry one.

1 Sept 2026

Villa announced Mbaye, and the row cites the post rather than the inference OFFICIAL

The club posted the signing this afternoon. His row carried “in the stand at the 31 August game” as its basis since this morning — the second exception to the rule that a deal is promoted on a club announcement, after Watkins on his own post — and it now carries the announcement itself, linked.

Not one figure moved. He went to done at 09:15 on the inference and the club confirmed it a few hours later; the ratio, the wage input, the amortisation and the squad list were all already carrying him. That is the whole argument for keeping a rung below done rather than a single true-or-false: the question a status field answers is not “is this real” but “has anyone said so”, and the two came apart by about four hours here.

Harwood-Bellis followed about fifteen minutes later, and his row cites his own announcement too. For a quarter of an hour this entry read “no club post for him yet, so his row keeps the weaker basis”, which was true when written and is corrected here rather than quietly deleted. Both men were promoted on the same inference at 09:15, both were confirmed by the club in the afternoon, and neither moved a figure when it happened.

1 Sept 2026

Josh Feeney to Peterborough — and the first loan out entered the way this morning said they should be OFFICIAL

Villa announced a season-long loan to Peterborough United. Like Lino Sousa this morning he was not on this page in any form, which is twice in one day and the reason the gap is worth naming.

He goes into the squad table as well as the Outs, and that is the change. This morning’s work found that thirty-eight loaned-out players across eighteen clubs have no squad row, so none of them carries book value anywhere — a player on loan is still yours, and his registration keeps writing down until you sell him. Feeney is the first to be entered under the corrected rule rather than left out of it.

His charge is zero, and the reason matters more than the number. Villa paid Fleetwood Town a substantial undisclosed fee in July 2021, when he was 16 and captaining England U16. That fee was real. It is also five years old, and on any contract his first deal could plausibly have run to it finished writing down before this season began; a later renewal does not revive it, because a renewal re-spreads whatever book value is left and by then there was none. So this is a fee that has run off, recorded as such, rather than a blank nobody checked. That distinction is exactly what the thirty-eight are missing.

The wage does move. A loan out with no fee still takes the salary off the bill and the bridge counts announced loans, so the wage input goes £217m → £216m, the ratio 66.4% → 66.2% and headroom back up to £20.5m. His £10k/wk is an estimate from the academy players already out — Sousa and Gauci at £10k, Broggio and Young at £8k.

Born 6 May 2005, so U21 for 2026/27 and outside the 25, and homegrown besides after five years here from the age of 16. The quota does not move. Two further figures did, both caught rather than remembered: the window swing to +£39m/yr and the Ordóñez projection to 68.9%.

1 Sept 2026

Mbaye and Harwood-Bellis are signed, and Villa go to 66.4% OFFICIAL

Both were in the stand for the game on 31 August. A club does not put an unsigned player in front of its crowd, so both move from advanced to done, and £72m of fees and £185k a week of wages arrive in the headline ratio at once.

60.6% → 66.4%, and headroom from £50.5m to £19.5m. That is 5.8 points from two signings, and the size of it is the point: a deal at advanced contributes nothing. The fee is not capitalised and the wage bridge counts announced deals only, so both men sat in the Ins table for days without touching the number. Completion lands the fee and the wage in the same instant — £15.0m of newly capitalised cost and £14.9m of grossed pay.

Mbaye is £19.2m/yr, the largest single annual cost on the page. He takes no domestic registration — born January 2008, so he is outside the Premier League 25 — but he is not List B eligible in Europe and takes a full List A place there. Harwood-Bellis is £12.6m/yr and does the opposite — homegrown at Manchester City, he is the tenth qualifier and restores the margin the Watkins sale had cut to one. The list goes to 22 of 25, three free.

The basis is worth naming rather than glossing. This page promotes a deal on a club announcement, and what is recorded here is a presentation to supporters, not a post that could be linked. It is the second such exception after Watkins on 30 August, who was promoted on his own announcement. Both are on the row in the words that actually apply. The rule exists so that a medical is not mistaken for a signature; it is not meant to argue with a player sitting in the stands.

What else had to move, and how it was found. One command did the mechanical half — the two rows, the squad registrations, the three inputs, the rumour cards for Mbaye still live on Liverpool’s and Manchester City’s pages, the league net-spend row, the share card and the feed. The gates found the rest, and there was a lot of it: the Ordóñez projection rebased from 63.2% to 69.0%, four copies of a “roughly 60%” answer across the FAQ and its structured-data twin, and six headcounts in sentences. That last category is the one worth watching — “21 of the 25 places are used, leaving four, against nine qualifiers” is three numbers in one clause, and every deal breaks all three.

One figure quoted here yesterday was wrong and is worth correcting rather than quietly fixing: headroom lands at £19.5m, not the £19.1m projected. Agent fees are an integer input, so £19.44m is carried as £19m and the page keeps the difference.

1 Sept 2026

Five deal notes were still costing players on the old model CORRECTION

The agent fee went to 10% and the gross-up to 1.55x on 31 August, and every derived figure on the site moved with them. The notes attached to individual deals did not, because nothing reads inside them — every gate here checks a number against a formula or against another page, and a sentence is neither.

Harwood-Bellis was the clearest case. His card said “£6.4m of wages grossed at 1.55x” — but £6.4m is the 1.45x figure. The multiplier in the prose had been updated and the arithmetic beside it had not, which is worse than leaving both alone: it reads as checked. His agent fee was still at 5%, and the total £11.8m/yr should have been £12.6m. Mbaye’s card had the same shape, £17.8m → £18.8m.

A sweep of all twenty pages for the same fault found three more, all on completed deals where the figure is not a projection but a description of what the club is paying now. Jackson £20.2m → £21.3m and Watkins’ relief £13.4m → £14.1m here; Jackson’s departure on Chelsea’s page, the sell side of the same transfer, £13.9m → £14.5m. The changelog’s own copies of those figures are left alone, because a dated record of what a change moved at the time is supposed to keep the numbers of its time.

Three other things fell out of reading those cards properly. Harwood-Bellis’s note claimed Villa “sit at 10 homegrown and use 10 of their 17 non-homegrown places”; the squad says 9 and 12, and the same sentence appears twice on the page, so both were wrong. His card also argued that “doubling the fee to £50m would move the ratio by less than a point” — it moves it by 1.1, and it did under the old constants too, so that one was never right. And the Ordóñez card carried the old model and the new one in consecutive sentences, having been patched by appending rather than replacing; it now says the thing once.

What this says about the gates. Sixteen of them pass on this page and not one caught a deal note that contradicts the constant it names. The check is straightforward — recompute each row’s cost under the superseded model and fail the note if it quotes that figure and not the current one — and it is the scan that found the last three. It should be the seventeenth gate rather than something run by hand after someone notices.

1 Sept 2026

Lino Sousa to Shrewsbury, and the loan that moves the wage bridge OFFICIAL

Villa have announced a season-long loan for Lino Sousa at Shrewsbury Town, in League One. The club said it, so it is done, and it goes straight into Outs at st:'loan' rather than sitting on the Rumours tab.

He was not on this page at all. Not in the squad, not in either window’s tables, not among the rumours — a 21-year-old left-back who joined from Arsenal in February 2024 and has spent most of his time since at Plymouth, Bristol Rovers and Rotherham. Born 19 January 2005, so he is U21 for 2026/27 and outside the 25 either way; the homegrown count does not move.

The ratio does. A loan out with no fee still removes a wage, and the wage bridge counts announced loans, so the wage input goes £203m → £202m, the ratio 60.7% → 60.6% and headroom to £50.5m/yr. His £10k is an estimate, set from what Villa carry for the academy players already out on loan — Broggio £8k, Gauci £10k, Young £8k — and marked as one.

Three other figures moved because they are built on that baseline rather than stored beside it: the Ordóñez projection recomputes to 63.2%, and the headroom quoted in the answer block follows the page. Each was caught by a gate rather than remembered, which is the only reason a one-line loan does not leave four stale numbers behind it.

1 Sept 2026

A sell-on running towards Villa, and the one shape this page cannot model RUMOUR

Everton are closing on a £15m sale of Tim Iroegbunam to Hull, and Villa hold 10% of it. Tanswell puts it at about £500,000.

That number identifies the clause rather than just sizing it. 10% of Everton’s accounting profit would be £1.09m. 10% of the uplift over the £9m they paid is £600k. So this is a resale-uplift clause, and the reported figure is the only thing that distinguishes the two readings.

Nothing is booked. The sale has not happened, and a clause on someone else’s transfer is contingent in the same way an add-on is.

It also names a gap. Every sell-on this site tracks is money owed, deducted from a profit through SELLONS and sellOnDue, and both assume a percentage of the fee. This one is money coming in, and it is a percentage of an uplift. If it completes, the model needs a field for a receivable and a second clause shape, and that is better built before the money moves than after.

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

The rest of the window’s arrivals, checked — and Manzambi was being counted at his add-ons CORRECTION

Having raised the two new wages, the same band test was run on every arrival this window rather than stopping at the ones under discussion. Two moved, one did not, and the biggest fee on the page turned out to have a second problem underneath the first.

Johan Manzambi: £59.5m → £50m, and £80k → £100k. His own note had said it all along — “Club record £59.5m/€70m incl add-ons (~£50m guaranteed)” — and the fee field was carrying the package anyway. This page has never capitalised a contingency, and Harwood-Bellis was held to exactly that rule yesterday; this row had been breaking it since 17 July with the evidence written on its own card. He is still the club record on guaranteed terms, narrowly, ahead of Jackson’s £47.5m. The wage was the plainer error: he cost £12m MORE than João Gomes and was carried on £10k LESS, which is not a wage structure any club runs.

Zion Suzuki: £70k → £90k. He was priced as a £29.9m understudy and he is not one any more — Martínez went to Chelsea on 30 August, so Suzuki is the No.1, and the man he replaced was on £150k. Goalkeepers sit below outfield players on every wage table here, so he does not go to £150k; but £70k for a first-choice keeper at a Champions League club was the old role, not the new one.

Matteo Ruggeri stays at £65k, and it is worth saying why rather than raising everything. He is 81% of the club band, which sounds low until you set him beside the player he competes with: Maatsen cost £14.6m more and earns £35k more. That is proportionate, not an inversion, and a sweep that corrects every number below the median is not a check, it is a ratchet.

What it moved. Committed spend £273.8m → £264.3m, the wage input to £203m, the ratio 60.2% → 60.7% and headroom to £49.5m/yr. Villa’s row in the league net-spend table moved with it, −£98.7m to −£108.2m — caught by the shared-data gate, which compares that table against the club pages rather than trusting either.

The same check across the league found four more fee fields worth reading twice, and one real one. Baleba and Methalie are correctly at their guaranteed figures with add-ons named separately. Nico González is reported at “£50m including add-ons” with no published split, so both Manchester City’s and Newcastle’s pages now carry that caveat on the row. The error is not symmetric: for Newcastle it overstates cost, which is the safe way to be wrong, and for City it overstates the profit booked, which is not.

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.

31 Aug 2026

Both new wages raised again — and a league-wide sweep says seventeen signings are priced too low CORRECTION

Mbaye £85k → £100k, Harwood-Bellis £70k → £85k. Yesterday’s Mbaye correction anchored him to Johan Manzambi on £80k. That anchor is itself too low, which a sweep of every incoming signing on the site turned up: seventeen arrivals at £15m or more are paid well under what their own club pays players it bought for a comparable fee, and Manzambi is one of them, at 62% of Villa’s band. A number built on a light anchor inherits the lightness.

Both are now set from the club’s own comparable band rather than one player. Villa’s median wage for a signing bought at £28–75m is £100k — Jackson at £47.5m is on £130k, Onana at £50m on £140k, Suzuki at £29.9m on £70k — so Mbaye sits at the middle of it. For a £15–40m signing the median is £80k, and a first-choice centre-back replacing Konsa belongs above the middle: Torres £100k, Lindelöf £120k, so Harwood-Bellis goes to £85k. Both remain estimates; no club has published a salary for either.

Where it leaves the projection. Advanced deals still move nothing in the headline, so Villa stay at 60.4% today. Once both are announced the ratio goes to 65.9% — Mbaye alone 63.8%, Harwood-Bellis alone 62.5% — leaving £21.8m/yr of headroom under the 70% limit against £51.5m now. The window’s net cost swing rises to +£37.4m/yr, flagged by the overview gate rather than remembered.

The sweep is the more useful output and it is not a Villa problem. Chelsea, Arsenal, Liverpool, Manchester City, Spurs, Newcastle, Brighton and Forest all carry at least one signing under 70% of their own band. These are third-party salary estimates, and the pattern suggests they lag a new contract rather than being wrong at random — a player’s published wage is often his old one until someone updates it. Nothing on this site checks for it, which is the third typed-wage error in a month and the argument for a gate that reads a wage against the wages beside it.

30 Aug 2026

Mbaye’s wage broke the table it sat in — £50k to £85k CORRECTION

Raised by a reader, and they were right. This card had a £47m signing from Paris Saint-Germain on £50k/wk, and built an argument on it — “the wage is the striking part; at 18 he is on a fraction of what the fee implies”. Villa’s own squad table refutes it. Johan Manzambi, a year older and £59.5m, is on £80k/wk. Garnacho, on a ~£42.5m obligation, is on £120k/wk. Against those two, £50k would have made Mbaye the cheapest expensive teenager at the club by a distance — while arriving from the one club in the comparison that pays best.

This is the second time the same mistake has been made on this page, and the first one is written down two entries below. Goretzka went in at £220k/wk in July on a figure that made him £70k clear of every other player at the club, and the note recorded the lesson at the time: a figure that breaks the wage table it sits in should not go up without a second look. The lesson was written and then not applied. Nothing caught it, either — every gate here checks a figure against a formula or against another page, and none of them asks whether a typed wage is plausible beside the twenty-nine wages next to it.

£85k/wk is the new estimate, set just above Manzambi for the PSG origin despite the lower fee, range £70–120k, and flagged as an estimate because no club has published a salary — a search of the reporting turns up the €55m fee everywhere and the wage nowhere. His modelled annual cost goes £13.5m → £16.7m/yr and the window’s net cost swing +£32.5m → +£35.2m/yr, caught by the overview gate rather than remembered. The headline ratio does not move: he is advanced, and the wage bridge counts announced deals only.

What the correction costs the argument is worth stating plainly. The point the card was making — that a fee buys an asset which amortises and can be resold while a wage buys nothing and recurs — is still true. It just is not illustrated by this signing, because his wage is ordinary for the money. The illustration was the invented part.

30 Aug 2026

Harwood-Bellis to advanced — and the £30m in the headline is not the fee ADVANCED

Ornstein has him granted permission to travel, take a medical and complete the move, club-to-club agreement finalised, five years to 2031. That is the medical rung, so he leaves the Rumour Mill and enters the Ins table at advanced — and no further, because no club has announced him. Second deal in a day to be graded under the rule set this afternoon, and the first to be promoted by it rather than demoted.

The fee is £25m, not £30m. Ornstein’s own word is “package”, and the split reported alongside it is £25m guaranteed plus £5m of bonuses. This page has never capitalised a contingency — Jackson’s £17.5m of add-ons got the same treatment — so £5m of it does not exist until it triggers. The card had been modelling the £30m, because that was the ask before anyone published the structure, and £11.8m/yr becomes £10.7m/yr when the contingent half comes out: £5.2m of amortisation with the levy, £5.3m of wages grossed at 1.45x, £0.25m of agent fee. It is flagged as an estimate because the package figure is Ornstein’s and the split is not.

Nothing in the headline ratio moves, and that is the design. Villa stay at 60.4%: the wage bridge counts announced deals only, so an advanced signing sits in the table without touching the number until a club posts. What does move is committed spend, £248.8m → £273.8m, and the window’s net cost swing, +£21.8m/yr → +£32.5m/yr — both flagged by the gates rather than remembered. Once announced he would take the ratio to about 62.4% and spend £10.7m of the £32.6m of annual headroom.

He answers the Konsa hole on both counts. A Manchester City academy product, so homegrown: once registered he restores the qualifier that left for Arsenal on 21 August and the centre-back rotation that went from six to five with him. Being straight about the size of that, as this card has had to be before — Villa sit at 9 homegrown against a floor of 8 and use 12 of 17 non-homegrown places, so the quota is not binding, and this preserves flexibility rather than relieving a squeeze. He is not in the squad table yet, deliberately: advanced signings are not modelled into the 25-man list until announced, which is why the quota counts are unchanged today. The Kim Min-jae card was the hedge against exactly this and is now dimmed.

The part worth keeping from the old card: over half his annual cost is wages, and wages do not scale with the fee. Doubling it to £50m would move the ratio by less than a point — so the £5m being argued over in the headline is close to noise, and haggling Southampton down buys far less headroom than a transfer-fee number suggests.

30 Aug 2026

Tammy Abraham to Ipswich on loan — and a loan is not a small sale RUMOUR

Added to the Rumour Mill, not the Outs table. The clubs have agreed a straight season-long loan with no option and no obligation to buy; Abraham has not accepted and there has been no medical, so under the rule set today it stays interest. Mirrored on Ipswich’s page at exactly this stage.

What it would actually do is smaller than it looks, and that is the useful part. The share of his ~£140k/wk that Ipswich cover is unreported; modelled at half, it frees ~£5.3m/yr grossed and moves the ratio from 60.4% to ~59.4%. At the full wage, about two points. Nothing else moves at all — no fee, so no window balance; no sale, so no profit into the denominator; and the £18m paid to Beşiktaş in January keeps being written down against a contract to 2031 regardless. Set that beside a sale and the contrast is the whole lesson about loans: a sale of the same player would free the amortisation as well as the wage and book the difference between fee and book value. A loan frees a wage and nothing else.

Where it sits in the window: Jackson has signed at £47.5m guaranteed and Watkins has gone to Al-Hilal, so the striker room has been rebuilt around a player Abraham is now behind. He is homegrown, so the exit also costs a qualifier off the 25-man list rather than freeing a non-homegrown place.

The Rumour Mill could not price a loan, and nobody had noticed because nobody had put one in it. All 172 cards across the site were sales or signings; every outgoing card was costed as a sale. Priced that way, Abraham’s card read “FREES £14.2m/yr COST · BOOKS ~−£15.9m PROFIT” — both halves wrong. A loan does not free the amortisation: the £18m paid to Beşiktaş in January is still being written down against a contract to 2031 whether he plays in Birmingham or Suffolk. And a loan books nothing: nothing is sold, so a “sale” at no fee looks exactly like writing off his entire remaining book value — a £15.9m phantom loss that would have gone into the denominator and moved the ratio the wrong way. The card now reads “FREES £5.3m/yr OF WAGE · AMORTISATION STAYS · NO PROFIT”. A loan in already worked, because a zero fee carries no amortisation and no agent fee by arithmetic rather than by intent.

One more thing changed with it. On a sale the wage box is locked, because the cost freed comes from the player’s own squad row and is not the reader’s to move. On a loan out it is the opposite: what leaves is the share the parent club stops paying, which is the negotiation and not a fact, so that box is now open on both sides of a loan. The branch is held identical on all twenty pages by tools/check-deal-stage.js, and was broken on purpose before being trusted.

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

Palhinha comes out of the Ins table HOUSEKEEPING

He signed for Benfica on 26 August — €14m plus up to €5m, to 2030 — and his row here had been carrying an OFF status ever since, explaining a move that was never going to happen. A dead pursuit is worth keeping while it is recent and instructive; a week later it is just a name in a table of arrivals who arrived. The row is gone.

Nothing financial moves, because an off row was never counted in any total: twelve incoming rows now instead of thirteen, and the fee balance, the ratio and the squad list are untouched. He stays in tools/gone.json, which is what stops any page offering him as a signing again, and he stays in the changelog and in Kim Min-jae’s card, where “alongside the Palhinha talks” is a true account of what was happening at the time.

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 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 £4.52m, from the foreign sales of Ollie Watkins, Donyell Malen, Enzo Barrenechea, Lucas Digne. 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

Watkins is gone — £50m to Al-Hilal, and the ratio lands within a tenth of where this page said it would CONFIRMED

Ollie Watkins has announced his own departure on Instagram, after travelling to Riyadh and completing a medical. The row moves from advanced to done at the £50m plus small add-ons both tier-1 reports agreed on a week ago. The rung that completed it is worth naming: this site treats a club announcement as the only promoter, and neither club had posted when this was written. What is here is the player himself saying the move has happened, on top of a completed medical — a different thing from the 27 August farewell to team-mates, which was correctly left at advanced. Saying goodbye is a statement about leaving; this is a statement that he has left.

What moved, and it is most of the page. Sales banked go to £309.9m; ~£43m of profit is booked against a book value near £6.6m; ~£13.4m/yr of grossed cost comes off the numerator. The wage input falls to £201m on the bridge, amortisation to £104m as his ~£3.59m/yr charge stops, and the three-year sale-profit average rises to £122m — his profit enters the denominator at a third, which is the rule this page kept getting wrong before it was written into the model. Ratio 63.8% → 59.6%, headroom £56.4m/yr.

The card that carried this deal projected 59.7%. The realised number is 59.6%. That is the first time this window a projection has been checked against its own outcome, and a tenth of a point of rounding in the amortisation is the whole of the difference.

The cost is a registration, not money, and it is the part worth watching. Watkins is homegrown — Exeter City academy — so the 25-man list drops to 21 registered, 9 homegrown, with four places unused. That is the third homegrown exit of the window after Konsa and Martínez, and it leaves the qualifier count one above the floor of eight a full squad requires. Villa have been selling homegrown players and buying non-homegrown ones all summer; this is the deal that makes that a constraint rather than an observation. He is also the first departure this window to hand a place back rather than take one.

Fed through every section that states any of it: the answer block, the structured data a search engine reads, the Position board, the squad-list callout and its FAQ, the shared league table’s window row, three live rumour projections rebased onto the new denominator, and the share card. Six gates failed on the first run after the deal row changed — the wage bridge, the league table, the answer block, the headcounts, the baselines and the card — which is the system working as intended rather than six separate mistakes.

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 −£3.5m/yr against a computed +£21.8m/yr. The sale-profit figure beside it said £151m where the page computes £241m. 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

The squad-list card was right and every sentence explaining it was wrong CORRECTION

The Position card derives “22 / 25 · 10 HG” from the squad table and reconciles exactly — 33 players, less six loaned out and five under-21s who play outside the list, leaves 22 registered with ten qualifiers. That number was never wrong. The prose around it was three deals out of date.

The FAQ said Villa would register nineteen senior players, ten homegrown and nine non-homegrown, with six places unused and six under-21s. The squad gives 22, ten and twelve, with three places unused and five under-21s. Every one of those had moved since it was written, and the direction matters: the page was describing six spare places when there are three.

The Squad Lists tab was worse, because it was narrative rather than arithmetic. It said “Martínez stays, because Juventus took Vicario” — written on 17 August and still there on the morning he joined Chelsea. It had Wan-Bissaka sitting in the agreed, not yet registered column twelve days after his announcement. And it put free places at five. Rewritten to what the table actually says: both homegrown exits happened, Konsa and Martínez, and the qualifier count only reads ten rather than eight because Wan-Bissaka came the other way.

Also corrected: the definition’s own example. The homegrown rule was illustrated with “Martínez and Garnacho count”. He is a Chelsea player. It now uses Garnacho and Wan-Bissaka.

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

Position tab audited number by number — the page was carrying three different ratios at once CORRECTION

Asked to check every figure in the boxes on the Position tab, and three were wrong. “£213m of summer sales”, in four places, when the answer block at the top of the same page said £259.9m — the figure predates the Konsa and Martínez exits and had been restated everywhere except the FAQ and the glossary. It now reads £259.9m of completed summer sales, which is what the deal table adds up to.

The glossary said Villa “sit at roughly 66%”. The page computes 63.8% and the FAQ two boxes away said 64%. Three different ratios on one page, and the one furthest from the top was two revisions stale.

And the List A churn line undercounted the window. It read “6 new arrivals (5 bought)”; the squad table has nine players signed since the window opened — six bought, Goretzka on a free, Garnacho and Wan-Bissaka on loan. Jackson and Suzuki had landed since the line was written and nobody had counted them.

What checked out, and it is most of it. The fine arithmetic reconciles exactly across nine separate mentions: £5.2m plus £4.3m paid in 2025 with £12.9m suspended, £19.4m in 2026 with two-thirds (£12.9m) suspended and £6.5m payable — £16m paid, ~£26m hanging. The £105m PSR allowance, the £114m of intra-group sales, the £117m Rogers fee, the £42.5m Garnacho obligation, the 45-day rule and every loan-quota count are right.

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

Ben Broggio to Stevenage on loan — logged, and it moves almost nothing LOAN

A U21 forward with no senior squad row here, so no fee, no book value and no amortisation. The entire financial content is his wage moving to Stevenage: about £0.6m/yr grossed, on an academy figure this page is estimating and flags as one. The List A cost test improves by that much and nothing else changes — the ratio holds at 63.8%. The wage bridge’s derivation moved from £211.4m to £210.8m, which still rounds to the same input, so no rebase was needed.

It does not touch the loan quotas, and it is worth saying why. Those count senior loans IN: Villa’s two domestic slots are held by Garnacho and Wan-Bissaka, and a player going the other way to an English club uses neither. Nor does it touch the FIFA cap on international out-loans — Stevenage are English, and he would be exempt in any case as an under-21 who is club-trained.

Second loan in three windows: Falkirk in the Scottish Premiership from February 2026, five goals in seventeen, now League One. Sourcing: Football Insider had it at agreed; it is logged as completed on the club confirmation rather than on that report.

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

Mbaye moves from the Rumour Mill into the table at ADVANCED — medical taken, nobody has announced him ADVANCED

Agreement with PSG and a medical on 29 August, five years with an option for a sixth. No club has announced him, so he goes in at advanced and moves nothing in the headline ratio — which stays at 64.0%. He does move the committed-spend total, to £248.8m, and the List A gate’s advanced line: with Watkins out and Mbaye in, the cost test reads −£23.2m/yr against −£22.7m/yr on completed business alone. An £47m signing and a £50m sale very nearly cancel on that test, which is the clearest illustration yet of why it is not a fee test.

The fee is reported two ways and this page is carrying the worse one for Villa. One reading is an initial €55m with add-ons on top; another is ~£47m including add-ons. €55m is £47m at the rate used throughout here, so the two headlines are the same number described differently — but under the second the guaranteed portion is lower. £47m is carried as the top of the guaranteed range and flagged as an estimate, so the cost is overstated rather than understated until someone publishes the structure.

He costs no squad place, which matters more than it sounds. Born after 1 January 2005, he sits outside the 25-man Premier League list — a non-homegrown arrival consuming none of the domestic non-homegrown places that have bound this list all summer. Europe is a different rule and he does not get the same relief: UEFA List B needs two uninterrupted years at the club since the 15th birthday, and he signed on 1 September, so in the Champions League he takes a full List A place. And the shape is the point: at 18 he is on £50k/wk against a fee that implies far more. Villa spent the winger money on an 18-year-old on £50k/wk rather than on Leão at roughly ten times that — the fee amortises and can be resold, the wage would have recurred and bought nothing.

Manchester City and Liverpool cards demoted, not deleted. Both were credited with interest and City were reported to be hijacking it in mid-August. A medical is not a signature, so neither is marked dead.

30 Aug 2026

Leão signs for Galatasaray — and the wage this page modelled was wrong by half CLOSED + CORRECTION

€43m fixed plus €2m in bonuses, four years to 2030, Milan keeping 20% of any resale. He chose Istanbul over Villa. The card is closed and stays on the board as the record.

The number that mattered is the one this page had most wrong. The card carried £200k/wk. The real deal is €10m NET a year, about €12m with bonuses. Net is not gross: at UK rates €10m net grosses to roughly €18.9m, about £16.1m of basic pay — £310k/wk — and this site then applies its 1.45x for employer NI and image rights on top, giving ~£23.4m/yr on the wage line alone against the £15.1m modelled. The same net salary costs a Premier League club far more than a Turkish one, and a euro headline hides that completely.

What he would actually have cost Villa, on the terms Galatasaray struck: ~£9.6m/yr of amortisation and ~£23.4m/yr of grossed wages, about £33.3m/yr — which on today’s base is roughly 70.3%, over the line, not the 68.5% the card was showing this morning.

So the conclusion that flipped twice in three days was right the first time, for the wrong reason. It read “breaches 70%” while Jackson was wrongly in the base, then “inside it” once Martínez left. Both used a wage too low by half. The honest version — that Villa could not have afforded him at these terms — is one no version of the card ever printed, and it is on there now.

Also removed: the last hand-typed List A pass. A callout on the Headroom tab still ended “~£3.5m/yr: passing again with a little air”. That figure was replaced on the Rules tab three days ago by a computed gate showing a deficit, and this copy of it survived three sweeps. It now points at the gate instead of contradicting it.

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

Emi Martínez sold to Chelsea — 66.5% → 64.0%, and Leão flips back under the limit OFFICIAL

Announced by Villa on 30 August: £7.5m, a two-year Chelsea contract with an option for a third. The fee is small and what it moves is not. £150k/wk grossed is £11.3m/yr, against just £2.3m/yr of amortisation that stops — so nearly all of this is wages. Ratio 66.5% → 64.0%, headroom £18.6m → £31.6m.

The profit is almost nothing, and that is the interesting part. ~£1m. He cost £20m from Arsenal in September 2020 on a deal to 2029, signed before the five-year cap existed, so the fee is still being written off across nine years and ~£6.4m of book value remains. A £7.5m sale against a £6.4m book is a wage decision, not a player-trading one — the opposite of every other exit Villa have made this summer, and a reminder that “sold a player” and “banked a profit” are different sentences.

Leão has now flipped twice in three days, and both times the reason was the base rather than the player. On 28 August, with Jackson counted, he read 66.5% → 70.9% — past the limit. Today he reads 64.0% → 68.5%, inside it with ~£7.9m to spare. Nothing about the reported deal changed. The card says so in those words, because a projection that moves this much this fast is worth less than the base it stands on, and the reader should be told which one moved.

It is also the third Villa–Chelsea transfer in six weeks — Rogers out at £117m on 24 July, Jackson in at £47.5m on 28 August, Martínez out on 30 August. This page’s reading is that UEFA’s 45-day exchange provision is drafted for opposite-direction pairs, so a third leg does not obviously create a new one; but three deals between the same two clubs inside six weeks, one carrying a £98m profit, is the exact pattern Annex G.3.5 exists to examine. And there is a squad-list cost: he was homegrown for Premier League purposes, so this is a homegrown senior leaving, not just a goalkeeper.

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

Jackson is official — 62.7% → 66.5%, and the List A gate goes deeper into deficit OFFICIAL

Announced and registered on 28 August, in time to face Arsenal. This page held him at advanced for a day after promoting him too early on a tier-1 report, and the promotion now rests on the announcement, which is the rule this site applies everywhere else. £47.5m guaranteed plus £17.5m of add-ons — a £65m package — on a five-year contract. Only the guaranteed fee is counted: add-ons are contingent and this page has never capitalised a contingency.

What it costs. £9.8m/yr of amortisation and £130k/wk grossed at 1.45x, about £20.2m/yr all in. The ratio moves 62.7% → 66.5% and headroom falls from £38.6m to £18.6m — exactly the figures this page published when it briefly counted him, so the reversal and the restoration reconcile.

The List A gate moves the other way, and it is the number worth reading. Completed business goes from −£15.8m/yr to −£36.3m/yr on the settlement’s cost test — his £20.5m/yr of cost lands entirely on the wrong side of it. If the Watkins sale lands it comes back to −£22.8m/yr — still negative, and further under than the whole window was this morning. Jackson is the most expensive thing Villa have done all window on a test that barely noticed £213m of sales, because those sales were of players who were hardly on the books.

One earlier conclusion flips back with him. Leão was taken off the “breaches 70%” list yesterday precisely because Jackson had been removed from the base. With Jackson properly in it, Leão reads 66.5% → 70.9% again — past the limit. The finding was never wrong about Leão; it was wrong about the base, and it is restored rather than quietly dropped. Every other projection on the page has been rebased with it.

Also updated: the Watkins card, whose stated condition — he leaves only if a replacement arrives — is now satisfied rather than pending; the squad-list projection, the A-list, the league row and the window totals (£201.8m of completed spending).

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

The List A gate now runs the test instead of quoting a hand-typed answer — and the answer changes sign CORRECTION

The settlement condition is cost-based and this page has always said so. Its Basis row spells it out: the savings every outgoing player takes off the wage bill and the amortisation charge, against the cost every incoming player puts on, aggregated and tested at the list deadline. Not fees, not one-in-one-out. And then the page answered that test with a figure somebody typed. Three numbers were live for one test: the summary card said Villa passed by ~£3.5m/yr, the Rules tab said they were ~£4.4m/yr negative, and the window sums under the transfer tables implied something different again. None of them recomputed when a deal landed.

It now computes, from the deal tables, on the same footing as the ratio. Wages grossed 1.45x on both sides; incoming fees carrying the 4% levy and spread over the real contract length with the five-year cap applied; agent fees capitalised at 5% and spread over five. Completed business alone comes out at −£15.8m/yr, and at −£22.5m/yr if the Jackson and Watkins moves land. The card is regraded from green and “Satisfied” to amber and “Negative on the cost test”.

The reason is the uncomfortable one, and it is the point of publishing this. Villa sold £213m of players who were barely on the books. Rogers left for £117m and freed about £1.3m/yr of amortisation, because that is all he was still costing; Tielemans arrived free and freed none at all. A pure-profit sale is enormous for the earnings rule and close to worthless for this one. The exits that fixed FER do almost nothing for the gate — the savings on that side are overwhelmingly wages.

What this does not claim. The fee reading of the same condition is +£85.6m and it is still shown, because the settlement summary describes cost savings while the condition is named a transfer balance, and this page cannot settle which UEFA applies. If the balance aggregates across the settlement period rather than one window, earlier windows’ savings carry in and the figure above is too harsh; that is unmodelled and could be worth more than the gap. One asymmetry is left in deliberately and stated on the page: the saving on each exit is derived from that row’s cost-freed figure less its wage, a book number carrying no levy, while each arrival’s cost includes one. It is worth well under a million a year and does not decide the sign.

Also fixed, found while wiring this up. Wan-Bissaka was described as advanced in the headroom notes after the row had gone to done.

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

Jackson goes back to ADVANCED — this page promoted him too early REVERSED

He was moved to done on the tier-1 exception — Romano reporting the deal complete, documents finished, medical passed, contract signed, with Tanswell adding the five-year term. That exception is documented here and Konsa went through it. It should not have been used for this. No club has announced him.

The argument against was already on the page, twice over. In the same week this site held Savinho for five weeks through a “here we go” and a reported medical, held Bouaddi with every document reported signed, and held Baleba until Manchester United actually posted. And the card itself printed the tension: The Athletic’s headline said the move “nears completion” while its reporter’s text said signed. The right response to a split like that is to wait, not to take the stronger half.

So he comes out of the numbers entirely — the squad row, the £9.8m/yr of amortisation, the £130k/wk, and Chelsea’s £35.7m of profit. Villa 66.5% → 62.7%, headroom out to £38.6m. Chelsea 89.1% → 93.1%, their overshoot back to £49.5m. Both wage bridges re-derived their inputs and agreed once set, and every projection on both pages has been rebased.

One conclusion changes with it, and it is worth being explicit. Leão was reported yesterday as taking Villa past the 70% limit. Without Jackson in the base he does not: 62.7% → 67.1%, with £15.2m still to spare. That finding depended entirely on a signing this page should not have counted — which is the practical cost of promoting early, rather than an abstract one.

27 Aug 2026

Goretzka’s wage was modelling his demand, not his deal — £220k down to £171k CORRECTION

The £220k/wk on this page was grossed up from €7m net a season. Schira has since confirmed that €7m, plus a €10m signing bonus, was what Goretzka REQUESTED — a figure put to all his suitors before Villa were involved. This card said exactly that in its own text and then modelled the number anyway. A demand is not a deal, and writing the caveat is not the same as heeding it.

The reporting on the Villa agreement specifically has him at €5–6m net. At this page’s own euro rate €5.5m net is about £90.5k/wk in the hand, which at the additional rate plus employee NI grosses to roughly £171k/wk. The midpoint is modelled; the range is £155k to £186k, about £2.3m/yr of grossed cost between the ends, and it stays flagged as an estimate because no club has published a salary.

The sense check was available the whole time and this page did not apply it. At £220k he was £70k clear of every other player at the club — Martínez and Kamara sit at £150k. No club runs a structure with that shape, and a figure that breaks the wage table it sits in should not have gone up without a second look. At £171k he is the top earner by £21k, which is steep for a 31-year-old and entirely normal for a Champions League winner arriving free.

Villa move 67.0% → 66.5%, headroom £15.6m → £18.6m. The wage bridge derived the new figure independently and flagged the disagreement before the input was touched, which is what it is for. Every projection on the page has been rebased with it: Lêao now reads 66.5% → 70.9% — still past the 70% limit, so that conclusion survives the correction.

One thing this exposed in the tooling. The wage lives in two places — the squad row and the deal row — and changing only the squad row left the bridge deriving the old number. It caught itself, because the bridge reads the deal rows and reports when it disagrees with the input. Worth knowing that the two are not linked.

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

Jackson’s term confirmed at five years, and Watkins has said his goodbyes CONFIRMED

The one figure this page had flagged as an assumption is now confirmed. Tanswell has Jackson on five years plus an option of a further twelve months. The squad row carried five years with the estimate flag on it, and the flag comes off. The term is not a detail here — it is what the fee amortises over. August 2026 to June 2031 is 4.84 years, just inside the five-year cap, so the charge is £9.8m/yr rather than the £9.5m a flat five would give. The option year does not extend it until someone exercises it.

Ollie Watkins said farewell to team-mates earlier the same day. Nothing is promoted on it — a goodbye is not a registration, and there is still no medical and no announcement — but it is a different state from “agreement being finalised”, and the row now says so. The condition that card carried is satisfied: the exit was expressly subject to Villa landing a replacement, and the replacement has now signed.

One tension kept rather than smoothed. The Athletic’s headline says the move “nears completion” while Tanswell’s own text says he has signed and Romano says the deal is done. Body beats headline — headlines are written by sub-editors and the reporter’s words are the report — so the grading stands at done, and the disagreement is recorded on the card instead of being quietly resolved in one direction.

27 Aug 2026

Jackson is done, Leão would breach the limit, and Martínez was priced at more than double the ask DONE + CORRECTIONS

Nicolas Jackson: done. Romano, this afternoon — “deal now done and documents completed”, medical passed, contract signing. Taken on this site’s documented tier-1 exception rather than a club announcement, the route used for Konsa, and labelled as such on both pages. The “£65m package” in that report is the maximum, not the fee — £47.5m guaranteed plus £17.5m in add-ons is the structure, and the guaranteed figure is what gets capitalised. Villa 63.4% → 67.0%, headroom down to £15.6m; Chelsea 93.4% → 89.1%, their overshoot cut from £51.5m to £25.3m.

The chain resolved in the order this page predicted. Yesterday the Watkins sale was reported expressly subject to Villa landing a replacement, and the note said the weak link was the signing. The signing landed. It is the sale that is outstanding now, and with Watkins gone Villa would fall to 62.8% with about £39.1m of room.

Leão: Villa are not in front, and at the new price he does not fit. Romano has Galatasaray agreeing €45m plus add-ons with Milan and waiting on the player, with Emery making direct personal contact to push for Villa — “key hours ahead”. Tavolieri has Villa behind, reports Leão turning down both Al-Hilal and Villa earlier, and says Villa would have to break their own wage ceiling. The modelled fee moves €50m → €45m (£38.5m) — not because an ask fell, but because a rival has actually agreed that number, which beats a price nobody has met. And at £38.5m on top of Jackson he now takes Villa to 71.5%: past the 70% limit, turning £15.6m of headroom into a £7.8m overshoot. The grading stays at talks — an indicative offer and a phone call are less than the agreed deal beside them.

Martínez: promoted to talks, and the fee was more than double the ask. Romano has Chelsea negotiating with both the player’s camp and Aston Villa, working through whether it can be a loan. This card carried £20m. Ornstein’s Juventus reporting is the only hard pricing anyone has published: Juve bid up to €10m (€7m + €3m), Villa want €10m fixed — about £8.6m. A 33-year-old on a 2020 fee is nearly amortised out, so the sale books roughly £2m of profit: the value to Villa is the wage, not the fee. If it is a loan, the wage leaves and the amortisation stays — the distinction the amortisation book now shows as a zero in its own column.

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.4% → 63.6%” 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

Goretzka announced — and one free transfer moved fifteen numbers on this page DONE + CORRECTION

Announced by the club on 27 August. Promoted on the announcement, which is the only thing this page waits for — and the reason he sat at ADVANCED through a “here we go”, a completed medical, and a report that he was already “considered a new Villa player”. Each was written as though it settled the matter. None of them did.

He has a squad row now, which a free transfer can easily not get. The invariant that catches uncapitalised fees would not have fired — there is no fee to capitalise — but the row drives the wage bridge, the squad-list projection and the new amortisation split. A signed player missing from the squad table is wrong regardless of what he cost.

And the wage bridge did the arithmetic before this page did. With his row in, the bridge derived £217m against a stored input of £200m and flagged the disagreement itself, landing on 63.4% — the exact figure his card had predicted while he was still unannounced. Input and derivation now agree, and the headline moves 60.4% → 63.6%, headroom £51.6m → £34.6m.

Then the awkward part. Fifteen figures on this page quoted 60.2% as the baseline, and nine of those were projections — “takes Villa 60.4% → 65.0%” — which were wrong at both ends, because the target had been computed from a baseline that no longer existed. Every one has been recomputed from the page’s own inputs rather than retyped: Lêao now reads 63.4% → 68.0%, Jackson 63.4% → 67.3%, Watkins 63.4% → 59.3%. The two Goretzka projections became past tense, since his cost is the baseline now rather than something to add to it.

The contract length is still not settled and the model still refuses to guess it. The announcement could not be read directly from this tracker, and the reporting never converged past “two years” against “two or three”. That term is what a signing-on bonus would amortise over, so the bonus stays out. With no fee the end date changes no cost here, only the expiry the squad table displays, and it is flagged as an estimate.

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.

26 Aug 2026

The Athletic reports the same reading of the 45-day rule this page argued to CORROBORATION

Tanswell and Weatherspoon, The Athletic, this morning: Villa could sign Jackson despite UEFA’s 45-day guideline — their word — which “seeks to prevent” clubs completing “player exchange actions”; clubs can put a case to UEFA based on several factors, and Villa are aware of this in relation to Jackson.

That confirms three of the four corrections this page published yesterday. It is not automatic. It is an assessment a club can argue, not a mechanical trigger. And 45 days is a guideline, not a deadline — which is the specific claim this page retracted on 25 August after stating for three weeks that any permanent deal before 7 September is an exchange. The fourth correction, that the treatment cuts both ways and reduces the buyer’s amortisation as well as the seller’s profit, is not addressed either way.

It also names a factor this page did not have, and it is a good one: an argument that the club would have pursued the player regardless of which team he played for. That is commercial substance stated in football terms rather than accounting ones. On this site’s own record it is a strong argument for Villa — the Jackson pursuit ran through Tottenham, Napoli and Atlético Madrid interest across the whole summer, which is exactly the evidence that test asks for.

What it does not change. The provenance caveat stands: the operative wording of Annex G.3.5 has still not been read directly here, UEFA’s document servers are still unreachable from this tracker, and “guideline” is The Athletic’s characterisation rather than a quotation. It also says nothing about which sale an exchange would pair with, which remains unspecified anywhere. And the numbers are untouched: 64.0% without an exchange finding, 64.1% with one.

One admission. That report was published this morning and predates both of today’s sweeps on this site. It was available, it is tier-1, and this tracker did not find it — while publishing a long analysis of the same question and a note saying the primary source could not be reached.

26 Aug 2026

Ornstein an hour after Romano, and the Watkins deal has a condition attached RE-GRADED

An hour after Romano’s “here we go”, Ornstein filed a materially weaker version of the same story. Romano at ~19:45: Al-Hilal have agreed all details, Villa accepted €58.4m + €2m, green light, travel this week. Ornstein at 20:39: Al-Hilal are finalising an agreement, £50m plus small add-ons on three-year terms, he would travel in the next days for a medical — subject to Villa landing a replacement.

The card is re-graded to the weaker report, which is this site’s rule when tier-1 sources diverge: publish the disagreement, grade to the softer claim. It stays at ADVANCED — both reports have the fee agreed in substance — but the row now carries the condition, and the “here we go” framing published earlier this evening has gone with it. No medical has been taken.

The condition is the story. Watkins leaves only if a replacement arrives, and the replacement is Jackson — whose own personal terms are still being finalised. That turns Villa’s deadline week from three independent bets into one chain with the weak link at the front: no Jackson, no Watkins sale, no £43m of profit, and the 59.9% modelled on both deals does not happen. Both cards now say so.

One thing the two reports agree on, and it is worth recording. Romano’s €58.4m and Ornstein’s £50m are the same number at the rate this page already used to turn €45m into the £38.5m it carried a week ago. It is the first time this window that two tier-1 sources have given a fee in different currencies and reconciled to the pound — after a month in which a single article called the same proposal ~£45m in one sentence and ~£38m in another. The euro figure was held as primary throughout and no fourth bid was ever recorded on that article.

26 Aug 2026

Jackson agreed and Watkins gone: the £65m was never the fee AGREED + CORRECTION

Three tier-1 items in one day, and the first is a correction to yesterday. Ornstein has Villa and Chelsea striking an agreement for Nicolas Jackson — but the structure is £47.5m guaranteed plus £17.5m in add-ons for a maximum package of £65m. This page spent yesterday modelling a flat £65m. That was the maximum read as the fee, and it overstated the committed cost by £17.5m. On the guaranteed base he costs £20.2m/yr, not £24.0m, and takes Villa to 64.0% with £31.4m of headroom.

Watkins has his “here we go”. Romano: Al-Hilal agreed all details, Villa accepted €58.4m plus €2m, travel this week. At this page’s own euro rate — the same one that turned €45m into £38.5m a week ago — that is £50.0m, against a £28m 2020 fee amortised to a ~£6.6m book: ~£43m of profit. The currency discipline on that card earned its keep: it refused to record a fourth bid off an article that called the same proposal ~£45m in one sentence and ~£38m in another, and held the euro figure as primary throughout.

Together they leave Villa at 59.9% — better than the 60.2% they sit at today. A £47.5m striker in and a £50m striker out is close to cost-neutral on the ratio, with £43m of profit banked on top. The cost is not financial: Watkins is homegrown, Villa were already at 10 after Konsa, and the replacement is not.

And the 45-day rule shrinks again on the real structure. Net cash to Villa is now £69.5m, not the £52m modelled on a flat £65m — and more cash moving means more commercial substance under IAS 38.45, so the exchange case gets weaker, not stronger. If one were found anyway: Jackson floors at nil, the gain crystallises at £50.5m against £98m, and the profit falls by exactly £47.5m — his capitalised fee, which is the check that the sum is right. The ratio difference is 64.1% against 64.0%. Six hundredths of a point. This page called that rule the central obstacle to signing Jackson for three weeks; on the real numbers it is close to a non-event.

Third item, and it is the one that could still change the analysis: Ornstein reports Emiliano Martínez has been offered to Chelsea by his representatives, with Chelsea keen and Villa open now Suzuki is No.1. That would be the third Villa–Chelsea transfer of the window. This site has argued the exchange provision has no matching rule and that its drafting is plural throughout — “two or more players”, “the outgoing player(s)”. Three deals between the same two clubs in six weeks is exactly what that plural is pointed at. Graded below talks: the player’s camp is offering him, not a club bidding.

25 Aug 2026

The exchange arithmetic was wrong by £52m — the net cash had been left out CORRECTION

This card was rewritten this morning and is being corrected again tonight. It put an exchange finding at 67.0% with £14.8m of headroom, Jackson entering at “Rogers’ £19m book” and the whole £98m profit deleted. A widely-circulated post working the Chelsea side of the same deal is what exposed it, and its maths is right: Chelsea pay £52m net, so their £52m goes into the asset — Rogers at £20m + £52m = £72m, amortising £14.4m/yr instead of £23.4m, a £9m/yr saving that exactly offsets the £45m of Jackson profit they give up.

Villa would be on the other end of that £52m, and this page had simply not adjusted for it. IAS 38 measures the incoming registration at the carrying amount given up adjusted for cash. Villa would give up £4m of book — not £19m; this page’s own Rogers row derives Middlesbrough’s sell-on from a “~£113m gain” on a £117m fee — and take £52m in. That is minus £48m, and no asset can be carried below zero. So Jackson would enter at nil and the £48m the asset cannot absorb would be a gain immediately: £33m after Middlesbrough. The club taking money out cannot defer it. To be plain about what is real: the Rogers sale is the only completed transaction in any of this, and its £98m is already booked. Jackson is a rumour card with no agreement and no fee. An exchange finding would not be an adjustment made at the time — it would be a restatement of a profit already recognised, contingent on a second deal that may never happen.

The check that catches it in one line: five-year profit must be identical either way, because an exchange is a timing choice and not a value one. Ordinary route +£98m then £65m amortised = +£33m; exchange route +£33m with nothing to amortise = +£33m. The old figures gave −£19m — a £52m loss out of nothing, which is precisely the net cash that had been forgotten. Any published version of this sum should have been run through that test before it went up.

And the conclusion inverts. An exchange costs £65m of profit, which reaches the UEFA denominator at a third — £21.7m — and saves the whole £13.5m/yr of Jackson’s amortisation. Those very nearly cancel: 64.9% with £26.0m of headroom against 64.8% with £27.6m. A tenth of a point. For three weeks this page has treated the 45-day rule as the central obstacle to signing Jackson. On the corrected arithmetic it is close to a non-event for the ratio; the obstacle is the £65m fee and the £9.8m/yr of wages, neither of which any accounting treatment touches.

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.

25 Aug 2026

Deadline week: Léão and Mateta added, Martínez back from the dead, and the Jackson card retracted SWEEP + CORRECTION

Two new links, both dated today. Rafael Leão — Ornstein and The Athletic have Villa making an indicative offer to AC Milan, brokered by Jorge Mendes, with the player open to it. That wording is doing work and this page is not flattening it: an indicative offer is more than an enquiry and less than a bid, so it sits at talks. Milan want €50m rising to €60m — euros, and the £42m/£51m in the English coverage are conversions rather than asks. At €50m he costs £24.2m/yr and takes Villa to 64.8%. The wage is the soft number and it dominates: nothing is reported, £200k/wk is this tracker’s estimate, and it is nearly two thirds of his annual cost. Edit it yourself on the card.

Jean-Philippe Mateta — Villa bid on 25 Aug, reported at £20–25m, and Palace rejected it out of hand. Framed as the Watkins replacement, which is the thing to hold onto: he is one of three forward lines running at once alongside Jackson and Leão, every one of them contingent on Watkins actually going. Palace’s page now carries the other side.

Martínez is not dead. This card was killed on 17 August when Juventus took Vicario instead. Spurs, having sent Vicario on to Juventus, now want an established No.1 and have moved — and Villa are reported open to selling before 1 September with Suzuki already signed. Graded no higher than talks and arguably only a strong link: no bid, no fee, no agreement, and neither Romano nor Ornstein is on it at all. Every financial figure on that card is this tracker’s own.

Harwood-Bellis: two bids in, two rejected. £18m plus add-ons on the 20th, £20m + £4m on the 24th, both turned down; Southampton want around £30m and the card now models the ask rather than the rejected bid. The player has made clear he wants the move. Ordóñez has agreed personal terms and club talks have opened — and he has a fractured metatarsal with no return date, which was missing from the card entirely. For a £38m centre-back that is not a footnote.

The currency discipline earned its keep this week. A single article on 24 August described Al-Hilal’s latest Watkins proposal as worth ~£45m in one sentence and had them ready to improve on a bid of ~£38m in another. Those cannot both be true, and £38m is what €45m converts to — so the slip this page identified last week is now visible inside one piece rather than between outlets. No fourth bid is recorded here. The same test is why Ordóñez’s new £43m valuation is flagged and not stored, and why Bailey’s fee has been restated from a typed £12m to the reported €9–10m and derived.

And the Jackson card has been retracted and rewritten. It stated that any permanent deal with Chelsea before 7 September is an exchange under UEFA Annex G.3.5, quoted “the lower of fee and book value” as though that were the drafted rule, and put the result at 69.0% with £4.8m of headroom. Four things were wrong. It is not automatic — G.3.5 obliges the club to assess, and points to IAS 38.45–47. “Lower of” is shorthand, not the text. 45 days is an indicator, not a deadline — it sits alongside contractual linkage, similar payment terms and limited movement of cash, and deals outside 45 days have reportedly still been caught. And the treatment cuts both ways: an exchange carries the incoming player in at the outgoing player’s book value, so the buyer’s amortisation falls as the seller’s profit does. The old 69.0% combined the worst half of each side and could not have been right.

On the facts this is the weak case for an exchange, not the strong one. £117m out against £65m in, five weeks apart, on different terms, with £52m of real cash moving, is close to the definition of a transaction with commercial substance — which is what IAS 38.45 actually tests, and which leaves it on the ordinary route with the profit intact. So the card now gives a range rather than a number: 64.8% if no exchange is found, 67.0% if one is and it pairs with Rogers. Which sale it would pair with is not specified anywhere — the regulation has no matching rule and no tie-break, and its drafting is plural throughout. Anyone citing a most-recent rule is inventing one. The card’s fee has also been corrected from £40m to Chelsea’s actual £65m ask, which the prose had been reasoning from all along while the model used the lower figure.

Provenance, because it matters here: UEFA’s document servers are unreachable from this tracker, so the wording of G.3.5 above came through search extraction rather than being read directly, and the 45-day figure could not be confirmed as appearing in the regulation itself as opposed to guidance. One report also remains unresolved: a syndicated headline on 24 August has Villa working on a loan-to-buy for Jackson, contradicting Romano’s permanent-only line from the same day. If it is real it changes the whole analysis, because a deferred obligation is the one structure that sidesteps this. Flagged, not adopted.

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

Goretzka to advanced, Ordóñez down to an approach — and this page had both wrong CORRECTION

Two cards were graded off a relayed summary and both were wrong, in opposite directions. They were published that way for about half an hour. What follows is what the reporting actually says.

Ordóñez: an approach, not a bid. The card said “Villa have BID” in bold. Ornstein and Tanswell report a club-to-club approach — contact made, Ordóñez one of three centre-backs on the list to replace Konsa — and no bid, or bid figure, has been reported by anyone. Belgian reporting has the gap between the clubs “currently too wide”. The tag now says approach, and the note says the card briefly said otherwise.

The £38m needed explaining too. It is Brugge’s reported €45m valuation converted, which is the right way to read it when no Villa offer exists to model instead. One figure is contested: Belgian daily HLN puts the ask nearer £30m, and that is not a currency artefact — €45m is about £38m — so they are genuinely different claims. The higher, better-supported one is used and the other is flagged. He is also 22, not 21.

Goretzka: the report is STRONGER than this page said, and from someone else. He was added hours earlier at TALKS on a line that the deal was “nearly done”, under a long note explaining why “nearly done” falls short of ADVANCED. The reasoning was sound; the premise was not. Plettenberg’s 21 August post is the weaker “in talks”. Romano posted “here we go” on 22 August — verbal agreement after a direct call with Emery, documents ready, medical and signature planned for the coming week. Under this site’s own ladder that is ADVANCED, so he moves into the ins table. Held below DONE because no club has announced anything and he has not signed.

What that costs: he leaves the scenario modeller, which only reads the rumour board. The row carries the numbers instead. £16.6m/yr, and there is no fee — a free transfer carries no amortisation, so the wage is the entire cost. That is MORE than Ordóñez at £38m would cost at £13.6m/yr. The free one is the expensive one: a fee buys an asset that amortises over five years and can be sold, a wage buys nothing and recurs. Nothing moves in the headline ratio yet — the wage bridge counts announced deals only, which is why an advanced signing sits in the table without touching the number until it completes.

Two things are deliberately not modelled. The signing-on bonus is still a ceiling rather than a figure — “could reach €10m”, with no confirmation Villa have accepted it. And no contract length has been reported by anyone, which is precisely what a signing-on fee would have to amortise over, so it is left out rather than guessed. The £220k/wk is this tracker’s own conversion of a €7m NET demand made across all his suitors before Villa were involved; no Villa-agreed wage has been reported on any basis.

22 Aug 2026

The £45m Watkins bid was a currency slip, and Goretzka joins the board CORRECTION + RUMOUR

This card carried two figures for the same bid and now carries one. A second number — “Al-Hilal’s ~£45m bid rejected” — reached this page second-hand and was flagged rather than adopted. Chased down properly, the only currency-explicit primary source is David Ornstein and Jacob Tanswell for The Athletic on 18 August, after Romano, and it says a €45m package. Euros. Every outlet that converted that bid to sterling landed between £38m and £40m; not one landed on £45m. The slip was then caught in the act — on 22 August an aggregator wrote that The Athletic had reported “around £45 million”, attributing a pound figure to the outlet whose figure was in euros.

So the bid is now stored as it was reported, €45m, with £38.5m marked as a derived conversion rather than a reported number. That is the durable fix: if a genuine fourth bid lands, it adds a row instead of correcting one. What could not be ruled out is that John Percy of the Telegraph — a real Villa correspondent, not an aggregator — reported a new bid at around £45m, in which case both figures are right at different dates. The Telegraph original could not be read. Against it: Saudi-sourced reporting on 21 August still had the fourth bid in preparation, and neither Romano nor Ornstein has reported one.

Villa’s asking price is on the record too, and it is awkward. £55m (€65m), with ~£50m thought to be enough. This page calculates the ratio-neutral price at ~£59m — so even Villa’s own ask would leave the squad-cost ratio slightly worse than not selling at all. Selling Watkins is a cash decision and a squad decision; on the ratio alone it does not pay for itself at any price being discussed.

Leon Goretzka is added at TALKS. Free agent since his Bayern contract expired on 30 June, Villa in negotiations from 21 August per Matteo Moretto, after Palhinha went to Benfica. No Romano, no Ornstein, no offer reported, so it stays a rumour whatever the aggregator headlines say.

He is also the cleanest illustration of why the modeller was rebuilt this morning. A free transfer has no fee, so there is no amortisation and the wage is the entire cost — and the wage is exactly what the old code understated, by 45%. On a £65m signing that error was worth a tenth of the total; here it would have been worth nearly half. The old code would have priced him at £11.4m/yr. He costs £16.6m/yr, and the page now says so: signing him added £16.6m/yr of grossed wage to the base every other card here projects from.

Read the wage with care. What is reported is a demand of €7m NET plus a €8–10m signing-on bonus. Net, not gross. €7m net is about £116k/wk in the hand, which at the UK top rate takes roughly £220k/wk gross — the figure modelled here, and this tracker’s arithmetic rather than a published number. On it he would be the highest earner in the squad by some distance. The signing-on fee is capitalised and amortised over the contract term, but no term has been reported, so it is excluded rather than guessed; agent fees are reported to exist and have never been quantified. And these are his demands, not agreed terms — the same demands are the stated reason Atlético, Juventus, Milan and Inter all walked away.

Seventeen rumour cards had prose that disagreed with their own panel. Deriving the relief figure this morning fixed the number the modeller uses and left the number the reader sees, so cards were quoting the ungrossed wage in their text while the panel above showed the grossed one. Nine were genuinely wrong and are corrected. Two were corrupted by the first repair attempt — it replaced a profit figure on one card and a sale price on another — and both were caught by reading the diff rather than trusting the script, reverted, and redone by hand.

22 Aug 2026

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

The Harwood-Bellis card was double-counting. It set his cost against the £5.6m/yr Konsa's exit freed and called the signing close to cost-neutral. Konsa is a completed deal, so that relief is already inside the 62.7% base and cannot be credited again against a new signing. He is a straight £10.7m/yr addition — 62.7% to 64.7%. What is genuinely cheap about him is the shape of the cost rather than its size: over half of it is wages, which do not scale with the fee, so haggling Southampton down buys far less headroom than the fee headlines suggest.

The Jackson card now carries the 45-day arithmetic in full, including the one structure that survives it, and the Watkins card flags a second reported figure for the Al-Hilal bid without adopting it.

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

Wan-Bissaka announced — a loan that costs wages now and a fee later DEAL COMPLETE

Announced by the club, which is this site's trigger and needs no exception — unlike the Konsa row earlier today, which was taken on a tier-1 report of completion and is labelled as such. Season loan from West Ham with a conditional obligation to buy next summer.

How it is accounted, and why the shape matters. Nothing has been bought, so no amortisation starts. This season the whole cost is his ~£90k/wk, which is ~£6.8m grossed up: wages 193 to 200, ratio 58.9% to 60.2%. The purchase price amortises from conversion, not from now. West Ham's ask had been ~£25m and the obligation terms were not published with the announcement, so no fee is modelled rather than a guessed one — the same treatment as Garnacho, whose £42.5m obligation also sits outside this year's numbers.

Two constraints it moves that money does not. He is a Crystal Palace academy product and therefore homegrown, so the 25-man list goes to 21 registered with 11 homegrown — recovering the place Konsa took with him this morning. And he uses Villa's last concurrent domestic loan slot: no further loan from an English club can be registered this window, so the Harwood-Bellis and Ordóñez threads both have to be permanents or they cannot happen at all.

20 Aug 2026

Ordóñez added — a second centre-back link, and a correction to how tight the quota is RUMOUR ADDED

Joël Ordóñez, Club Brugge, 21. Villa have watched him in person — scouts at the Ecuador–Argentina international — and faced him three times in last season's Champions League. Interest is real; a bid is not reported. Brugge value him near €45m (~£38m) and he signed a new deal to 2029, so there is no contract leverage. Liverpool, Newcastle, Chelsea and Inter are all credited, which is the main argument against it landing.

What it would cost. £38m over five years is ~£7.9m/yr of amortisation with the levy, plus ~£5.3m of grossed-up wages — about £13m/yr against £58.6m of headroom. Affordable rather than cheap.

A correction to what I wrote about Harwood-Bellis this morning. That card said a homegrown centre-back would "restore both counts at once", which implied the squad list was under pressure. Checking the panel rather than assuming: Villa sit at 10 homegrown against a floor of 8, and use 10 of the 17 non-homegrown places, with seven unused. The quota is not currently binding. So the difference between the two — Harwood-Bellis homegrown, Ordóñez not — is a matter of preserving flexibility, not of relieving a squeeze. Both cards now say so.

Which leaves the choice where it should be: roughly £25m for a 24-year-old with Premier League seasons behind him and a bid already lodged, against ~£38m for a 21-year-old in a four-club auction. The ratio can absorb either.

20 Aug 2026

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

The ratio moves from 59.5% to 58.9% (wages 196→193).

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

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

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

20 Aug 2026

Watkins: the bidder is Al-Hilal, and it is at £38.5m RUMOUR RE-GRADED

What changed. This card still had Fenerbahçe at €35m from 9 August. The live pursuit is Al-Hilal: three bids rejected, the latest a formal €45m (~£38.5m) on 18 August, with Villa expecting a fourth. Sky report direct club-to-club talks, Watkins is reported keen and to have agreed personal terms as the Benzema replacement, and Emery has said publicly he is not for sale.

The books say sell, loudly. £28m from Brentford in 2020 on a deal to 2028 leaves a book value near £6.7m, so £38.5m books about £32m of profit. It also frees ~£10.4m/yr — £130k/wk of wages plus ~£3.6m of amortisation — which is the largest single piece of cost relief left in this squad.

The quota says don't, and that is the part a ratio cannot see. Watkins is homegrown. Villa are already at 10 homegrown in a 20-man list after Konsa, with a homegrown centre-back bid in for Harwood-Bellis precisely to repair that. Selling the centre-forward who is also a homegrown qualifier, in a Champions League season, with no replacement signed and eleven days of the window left, is the kind of decision the ratio makes look easy and the season does not.

20 Aug 2026

Özcan: the January loan was missing, and the purchase clause lapsed CORRECTION

What was missing. On 28 January Villa recalled Özcan from his Anderlecht loan and sent him to Beşiktaş, as part of the Tammy Abraham deal moving the other way. This page recorded none of it. The January leg is now in the 2025/26 outs, and his return in the 2026 ins.

Where it ended up. The loan expired on 30 June and the purchase clause was not exercised, so he is back at Bodymoor Heath and available. He is a Villa player right now.

The clause is the part worth keeping. Villa's January statement described a mandatory purchase; Beşiktaş and the Turkish market described an option ("satın alma opsiyonu"). He came back, which means the Turkish version was the accurate one, or that a condition inside Villa's went unmet. This is the second such case on this page in one window — Palace called their Guessand clause an option while Villa called it a conditional obligation, and that one lapsed too. Two for two. A tracker that books a selling club's description of its own obligation clause will book fees that never arrive, and this page will keep treating them as unconfirmed until they pay.

A correction to this morning's Konsa note. It said the centre-back rotation went from six to five. Five is right — Lindelöf, Mings, Torres, Cissé and Özcan — and an intermediate version of this entry briefly said four by marking Özcan as still out on loan. He is not.

20 Aug 2026

Rumour Mill cleaned: Palhinha and Guessand out, Harwood-Bellis in BOARD MOVES

Two cards retired. João Palhinha has completed his move to Benfica, so he leaves the board entirely; the dead entry in the Ins table stays as the record that Villa chased him and lost. Evann Guessand should have gone a week ago — his Palace loan was announced on 12 August and has sat in the outs table since, while the Rumour Mill card was still describing Trabzonspor interest and a lapsed option. A completed deal and a live rumour for the same player is exactly the contradiction this site exists to avoid.

One card added, and the timing matters. Ornstein reports Villa have bid for Taylor Harwood-Bellis. No figure is published, so the £25m modelled here is a tracker estimate and nothing more. What makes it more than a centre-back link is the quota: Konsa left this morning and he was homegrown, taking the 25-man list from 21 with 11 homegrown to 20 with 10, and the centre-back rotation from six to five. Harwood-Bellis came through Manchester City's academy, so he is homegrown too — he would restore both counts at once.

And it would be close to free on the ratio. £25m over five years is ~£5.2m/yr of amortisation plus ~£5.3m of grossed-up wages, against the ~£5.6m/yr that Konsa's exit just released. Villa would undo the squad damage for roughly what they saved, having banked ~£48m of profit in between — which is the whole argument for selling a nearly-amortised academy-era signing and replacing him.

20 Aug 2026

Konsa to Arsenal is complete — £51m plus £4m, and it settles the cycle DEAL COMPLETE

The deal. Ornstein reports the move complete: £51m guaranteed plus £4m in add-ons. Only the £51m is modelled; add-ons are contingent and are not counted until they trigger.

What it does, which is a lot. A £12m signing from Brentford in 2019 is all but fully amortised, so almost the whole fee is profit — ~£48m booked, against a book value near £2.5m. It also takes ~£5.6m/yr off the numerator. Wages fall to £196m, amortisation to £100m, and sale profit rises to £108m: remember that input is a three-year average under UEFA smoothing, so a £48m profit enters it at roughly a third, not whole. The ratio moves from 62.7% to ~59.5% against a 70% limit.

The cost is not financial. Konsa is a homegrown qualifier. The 25-man list goes from 21 with 11 homegrown to 20 with 10, and a centre-back rotation of six becomes five with the season under way. Villa have sold the compliance problem and bought a squad-depth one.

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

19 Aug 2026

The Rogers sell-on is capped at £15m — and the cap changes the answer CORRECTION

The correction. Middlesbrough's sell-on on Morgan Rogers is 20%, but it is capped at £15m. This page modelled it uncapped, at 20% of the gain, which came to ~£20.3m. The cap binds comfortably: 20% of the ~£113m gain would have been ~£22.6m, so Boro take £15m and no more.

What it moves. Villa keep £5.3m more than modelled. The booked profit on the record sale rises from ~£93m to ~£98m, net spend after the sell-on improves to +£98.1m, and List A fee room rises to ~£83.1m. The clause was also hardcoded twice — once as a named constant and once as a bare number in a second calculation — so the second copy now reads the constant and cannot drift from it again.

The wider point, which is the reason this is worth a note. A sell-on has two terms and this site was carrying only one of them. The percentage is the part that gets reported; the cap is the part that decides what actually gets paid, and on a nine-figure sale it is usually the cap that binds. Every other sell-on on this site is recorded as a bare percentage — Spurs' 20% on Vušković, City's 20% on Bobb, Bournemouth's 20% on Ünal, the Rapids' 15% on Herrington, Benfica's 17.94% of Dedić's future gain. None of them has a cap recorded, and it is unlikely none of them has one. Treat those as upper bounds on what the selling club receives until each is checked.

19 Aug 2026

SCR wages restated to £202m — ratio moves 65.9% → 62.9% HEADLINE FIGURE MOVED

Why. The wage input was the one number on this page that carried no working, and once the derivation was written out it did not support the figure in use. Building it end to end — £273m of published FY24/25 staff costs, less non-playing staff to reach player-and-coach, plus this window’s movement of −£11.1m of reported basic pay (−£16.1m grossed for NI, bonuses and image rights) — lands at about £202m. The input has been set to that, so the headline and its derivation now agree instead of disagreeing by three points.

What moves with it. Squad cost ratio 65.9% → 62.9% against the 70% UEFA line, and cost headroom roughly £21m → £36m/yr — about £180m of fees on five-year deals rather than £105m. That is a materially different picture of what Villa can still do, which is precisely why it should not have rested on an undocumented number.

What it still rests on. Two of the four steps are assumptions and are labelled as such on the Headroom tab: no club publishes the split between playing and non-playing staff, and none publishes the multiple between reported basic pay and booked cost. Not included: contract renewals and rises for players who stayed, and any fall in bonuses between a Champions League quarter-final season and this one. Both of those push upwards, so the error now runs the opposite way to before — if this figure is wrong it is more likely too low than too high.

19 Aug 2026

What a loan out actually relieves — corrected, and a missing loan flag fixed CORRECTION

The old line was too blunt. A footnote said five season loans carried “£0 of cost relief”, which was true of those five — academy players on academy wages, where nothing material turns on it — but it read as a statement about loans in general, and it is not one. A loan out does three separate things and they deserve separating. Amortisation always stays: the player is still Villa’s asset, so the annual charge runs whether he is here or not, and only a permanent sale stops it. Wages are relieved to the extent the borrowing club pays them — normally most or all for a senior player joining a club of comparable standing, less the further down the pyramid he drops. Loan fees are income, not cost relief, and belong on the other side of the ratio entirely; none of Villa’s outgoing loans this window has a disclosed fee, so none is counted, which understates the benefit rather than overstating it.

A data error found with it. Guessand’s move to Palace is a season loan and was never flagged as one in the data, so it was being counted among the permanent departures. Fixed — the three senior loans out (Guessand, Iling-Junior, Nedeljković) now group correctly, and the wage bridge splits £30.8m of permanent exits from £7.0m of loans rather than lumping them.

And a sign error in the bridge itself, caught before it settled: outgoing loan wages were being added to the window’s net movement instead of subtracted, which made the wage bill look as though it had risen £3m when it has fallen £11.1m. It had the bridge concluding the page understated wages by a point when the truth is the reverse — end to end the movement implies about £202m and a ratio near 62.9%, against the £217m and 65.9% shown. The figure is still left where it is rather than moved on an inference, but the direction of the doubt is now stated correctly.

19 Aug 2026

The wage figure now shows its working — including where it stops being solid SOURCING

Why. Every other input on the ratio could be traced; the wage figure could not, and it is the input the answer is most sensitive to — a point of SCR is only ~£5.1m of cost, so a £20m judgement about wages moves the headline four points. The Headroom tab now derives it in four steps: £273m of published FY24/25 staff costs, less non-playing staff to reach player-and-coach, plus this window’s net change from announced permanent deals, grossed up for employer NI, bonuses and image rights.

Two of the four steps are estimates, and they are labelled as such. No club publishes the split between playing and non-playing staff, and nobody publishes the multiple between reported basic pay and booked cost — though that multiple is demonstrably real and large: reported basic across this squad is about £119m against £273m of booked staff cost.

The honest part. The base figure predates this tracker’s current records, so it cannot be confirmed whether it already nets off Rogers, Tielemans, Digne and Malen — about £27m of basic pay between them. If it does not, the input carries roughly £11m too much and the true ratio is nearer 64% than 66%. The error, if there is one, runs towards caution: this page would be overstating cost, not understating it. The number is left where it is rather than moved on an inference.

And an internal contradiction found while writing it. This page states that loans out carry £0 of cost relief — wages stay with Villa unless a split is disclosed, and none has been — yet the wage input has been reduced for the Guessand, Iling-Junior and Nedeljković loans. Both cannot be right; the truth is usually partial. Worth about £4.5m of cost, or 0.9 points of ratio, and now stated on the page rather than buried.

19 Aug 2026

The squad cost ratio now counts announced deals only BASIS CHANGE

What changed. A transfer now enters the ratio the day a club confirms it, not the day it is agreed. So Wan-Bissaka’s estimated £90k/wk comes back out — he is agreed but unannounced — and Konsa’s £75k/wk and amortisation go back in, because his Arsenal move is likewise agreed but unannounced and he remains a Villa player until it is not. The two very nearly cancel: the ratio is 65.9% either way, which is luck rather than design.

Everywhere, not just the hero. The registration panel gains a fifth column — agreed, not yet registered — so pending deals are visible rather than silently dropped, and the depth chart marks them not yet official and excludes them from the fit count. That last one earns its keep immediately: right-back now reads one fit body, Matty Cash, with Wan-Bissaka unannounced and both Nedeljković and García out on loan. On the old basis it looked like two.

A real bug found while checking this. The function that re-derives amortisation from the squad rows was overwriting the SCR input — but the two measure different things: the squad rows cover the players listed here (~£92m) while the SCR input is the club-wide charge (£100m in FY25), which is the correct basis because UEFA counts every registered player. Worse, it only ever ran on a midnight timer rather than at load, so it would have fired for a reader who left the tab open overnight and silently moved the headline by about 1.6 points. It no longer touches the input, and the page’s daily refresh now runs once at load as it always should have.

19 Aug 2026

Nedeljković to Rangers is OFFICIAL — season loan with a £4m conditional obligation OFFICIAL

Announced on Villa’s own channels. Season-long loan to Rangers, with a £4m obligation triggered on appearances. No fee moves now and his ~£1.3m/yr amortisation on the £6.5m 2024 fee stays on Villa’s books — only a permanent sale stops that — so the gain is ~£20k/wk off the wage bill. Ratio 66.1% → 65.9%.

The obligation is close to financially neutral, which is the interesting part: £4m against a book value of roughly £4.3m by next summer means converting books almost nothing either way. This is a deal about games, not money — his second loan in successive seasons after RB Leipzig.

It cost neither loan ceiling, which is worth stating given the domestic one is now full. Rangers are Scottish, so this is not one of the two English domestic slots that Garnacho and Wan-Bissaka hold; and he is under 21, so it is exempt from the FIFA senior international cap as well. Free on both.

Right-back is now thin. The depth chart reads two fit and two out on loan — and one of the two fit is Wan-Bissaka, whose own move is still only advanced. If that fell through, Villa would be down to Matty Cash. The registration count is unchanged at 20, because Nedeljković was U21 and outside the 25 already; he simply moves from the exempt column to the loaned-out one.

19 Aug 2026

Konsa to Arsenal agreed — £51m plus add-ons, medical tomorrow ADVANCED SALE

The number came in below the model, not above it. Ornstein reports £51m plus add-ons, agreed after dialogue at ownership level closed a gap that had sat at ~£60m for a fortnight — so both pages have been revised down, which is the unusual direction for a deadline-adjacent deal and worth more than the headline. Konsa has said his goodbyes at Bodymoor Heath; medical on the 20th. ADVANCED until a club announces.

Financially this settles the cycle on its own. A £12m signing from Brentford in 2019 is all but fully amortised, so £51m books roughly £48m of near-pure profit and takes ~£5.6m/yr of cost off the ratio: 66.9% → 66.1%.

The cost is registration, not money. Konsa is a homegrown qualifier, so the 25-man list drops to 20 registered, 10 homegrown — still two clear of the floor, but the cushion is visibly thinner now that Martínez is the only other senior qualifier of that standing. The depth chart loses a centre-back too: six fit becomes five. He is modelled forward out of the squad, exactly as advanced signings are modelled forward in; if the medical fails, this reverses.

19 Aug 2026

Squad Lists: the hand-written notes caught up with the week STALE TEXT SWEPT

The registration panel and the depth chart derive themselves from the squad data, but the List A transition chips and NET lines are written by hand, and a week of movement had left several saying things that were no longer true. All of them audited against current state and corrected: Ruggeri and Suzuki from “awaiting announcement” and “medical 17 Aug” to OFFICIAL 19 Aug; Wan-Bissaka from “talks opened (12 Aug)” to agreed on a loan with a conditional obligation, undimmed from target to arrival, and flagged as taking the last domestic loan slot; Bailey from “Hull collapsed · Saudi interest” to Ajax talks; Jonathan David to the loan-with-obligation structure.

Two counting errors fixed with them. The section lede still said Bailey “joined that group on 5 Aug”, counting him among the eight who had left — he had not, the Hull move collapsed on the 12th, and the count was one too high. And the defenders column header still read “In · 3” after Wan-Bissaka became a solid arrival rather than a dimmed target, so it and the NET line now read 4. The midfield NET line’s “a Palhinha-type would slot straight in here” now records that Palhinha himself went to Benfica.

19 Aug 2026

Ruggeri and Suzuki are OFFICIAL — announced together by the club OFFICIAL

Both confirmed on Villa’s own channels on 19 August — “Ciao, Matteo” and “Zion has arrived” — five days and two days after their respective medicals. Both move from ADVANCED to DONE and into the completed totals; the club-announcement test is the one this tracker waits for, and it has now been met.

No numbers move. Both were already carried at their agreed fees and already sat in the squad table, so the ratio, the amortisation line and the registration counts are unchanged at 66.9% and 21 registered, 11 homegrown. What changes is the status, which is the point of separating the two.

One caveat kept visible on the Ruggeri card. Neither club published a fee. Early-August reporting had Atlético agreeing an exit at around €20m; the later and more consistent accounts of final terms say €25m fixed plus €1.5m in add-ons, which is the ~£22.9m modelled here. If €20m is ever confirmed the amortisation line drops by roughly £1m/yr. Suzuki’s €30m + €5m on a five-year deal is corroborated, and he is reported as arriving to be first choice — which makes the goalkeeping order, not the fee, the thing worth watching.

Also tidied. Palhinha had a second entry in the Ins list carrying “in talks”, left over from Villa publicly confirming the negotiation on 8 August. He is going to Benfica, so it is now marked off and excluded from every total, with the record of the talks kept.

18 Aug 2026

Wan-Bissaka agreed on loan with an obligation · Palhinha picks Benfica · Bailey in Ajax talks · two signings still unannounced ADVANCED SIGNING

Aaron Wan-Bissaka · agreed. A season loan with a conditional obligation to buy next summer, after a West Ham U-turn following relegation; he has permission to travel for the medical. Accounted like Garnacho: this year only the undisclosed loan fee and an estimated £90k/wk hit the numbers, and the purchase price amortises from conversion rather than now. West Ham’s ask had been ~£25m but the obligation terms are unreported, so no fee is modelled rather than a guessed one. Ratio 65.9% → 66.9%.

Two ceilings move at once. He is homegrown (Crystal Palace academy from 11), so the 25-man list goes to 21 registered, 11 homegrown — four places free. And he takes the second and last concurrent domestic loan slot alongside Garnacho, so no further domestic loan can be registered this window: anything else has to be permanent or foreign. That is now the tighter of the two constraints, and the registration panel and the domestic-loan bar both reflect it.

João Palhinha · to Benfica. Personal terms agreed there on a four-year deal, and Benfica have switched from a loan — which Bayern rejected, exactly as they rejected Villa’s — to a permanent offer of €15m plus €5m, spread across two seasons. Bayern still want €25m, so the clubs are not aligned, but the player has chosen. Villa are out.

Leon Bailey · Ajax talks. He is on Ajax’s shortlist as a winger replacement and his agent confirms several clubs are talking. Better than the Saudi route only if Ajax buy: Villa want a permanent, and a loan would leave his ~£1.6m book value and £120k/wk exactly where they are, in a final contract year. Corrected 3 Sep: this paragraph said ~£4.6m. It was wrong — in a final contract year the book value is one year of amortisation, and the charge is ~£1.6m.

Still unannounced. Ruggeri (medical 14 Aug) and Suzuki (medical 17 Aug) both remain unconfirmed by either club. Nothing suggests a problem — paperwork and registration timing are the usual explanation — but expected is not announced, so both stay ADVANCED and outside the done totals, and their status lines now say so rather than repeating that an announcement is imminent.

17 Aug 2026

New on the Squad tab: depth by position, in the shape NEW FEATURE

What it is. Emery’s 4-2-3-1 drawn as a depth chart rather than a teamsheet — every slot in the formation with everyone who plays there stacked underneath, built from the squad data so it moves when the squad does.

The distinction it exists to draw is nominal depth against available depth. A player out on loan is still on the wage bill and still on the book, but he is not an option on Saturday, so loanees are counted separately and dimmed, and injuries are counted separately again rather than lumped in as "out". Villa read thin at three positions — left wing, No. 10 and right wing, one fit senior body each. The left is the sharpest case: three left wingers on the books and two of them, Guessand and Iling-Junior, out on loan, leaving Garnacho alone. An injury in that front three is a formation change, not a substitution.

Ordering is by market value within each slot. That is a proxy for standing, not a prediction of the XI, and it is labelled as such — but it is a number a reader can check, which a hunch is not. Homegrown, U21, injured and new-this-window all carry markers, so the chart doubles as a read on where the registration quotas sit by position.

17 Aug 2026

Zion Suzuki is happening — medical done, €30m+€5m agreed ADVANCED SIGNING CORRECTION

Correction first. Earlier today this page marked Suzuki DORMANT on the reasoning that the card only existed because of the Martínez–Juventus talks, and those had died. That was wrong, and wrong in an avoidable way: it reasoned from the supposed motive instead of tracking the deal. Romano is explicit that terms were “all confirmed with the Japanese GK even after Martinez to Juventus deal off”, and the actual trigger was PSG withdrawing, not anything at Villa Park.

The deal. €30m guaranteed plus €5m in add-ons — about £25.6m guaranteed, £29.9m all-in, modelled at the package figure on the same basis as Ruggeri. Personal terms in place on a five-year contract, medical at Villa on the morning of 17 August, announcement expected within days. Held at ADVANCED until a club announces, per house rule.

What it moves. Squad cost ratio 65.1% → 65.9% as the amortisation and an estimated £70k/wk land. On the Premier League quota he is non-homegrown and not U21, so registered goes 19 → 20 and free places 6 → 5, while the homegrown count is untouched at 10. He takes a UEFA List A place too. The goalkeeping order is the open question rather than a settled one: Martínez is 33 and staying for now, Bizot is out of contract in 2027, and a £30m 23-year-old on a five-year deal is not signed to be third choice.

17 Aug 2026

Martínez to Juventus is dead — Juve took Vicario on loan instead RUMOUR CLOSED

Emiliano Martínez. Dead, and for a checkable reason rather than a quiet fade: Juventus abandoned the pursuit and agreed a season-long loan for Tottenham’s Guglielmo Vicario, with a reported £8.6m option to buy next summer. A club that has signed its keeper is not buying another. Martínez stays.

Zion Suzuki · dormant. That card existed only because of the Martínez vacancy, and the vacancy has closed. Villa have no obvious reason to spend ~£30m on a goalkeeper now. Noted on the card: Juve taking Vicario also removes Juve from the Suzuki race, so he is more available — just not to a club that no longer needs him.

Homegrown effect. The exposure named on 15 August was that Konsa and Martínez were both homegrown. Half of it has gone: the keeper and his qualifier stay, so Konsa is alone in play and a sale would leave nine, one above the floor, rather than exactly eight. The goalkeeper chip and the Squad Lists callout are updated to match.

15 Aug 2026

Homegrown quota now shows on Position, and the transition block carries both regimes FEATURE + CORRECTIONS

Position tab. A fourth headline stat, PL Squad List — 19/25, 10 HG, sitting beside Fee Room, List A Churn and UEFA Fines. It reports the squad as it stands rather than a ticked scenario, matching how the hero ratio above it behaves; scenarios stay in the Rumour Mill and the Squad Lists panel.

Both regimes, player by player. The transition block now opens with the two registration tests side by side and tags every chip with its Premier League status, matched from the squad data rather than typed in — so the pair stay in step. The disagreements are the point: Modou Kéba Cissé needs a UEFA List A spot but is U21-exempt domestically; Garnacho is homegrown for the Premier League and just a bought loanee for UEFA; McGinn is club-trained for UEFA and not homegrown at all here, because the Scottish FA is neither the FA nor the FAW.

Two corrections while in there. The goalkeeper chip still read "Juventus ended their pursuit 2 Aug", which today’s Romano story reverses — updated, along with the note that a Martínez-for-Suzuki trade costs a domestic qualifier while leaving the UEFA club-trained count untouched. Konsa’s chip still showed the 9 Aug "second bid awaited" and now reflects the 13 Aug reopening at ~£60m.

15 Aug 2026

New rule built in: the Premier League homegrown quota NEW FEATURE

What it does. The Squad Lists tab (formerly A List) now opens with Villa's projected 25-man Premier League registration, derived from the squad data rather than typed in: 19 registered — 10 homegrown, 9 not — against the two ceilings that actually apply, 25 places and a maximum of 17 non-homegrown. Six under-21s sit outside the list, five loanees are unregistered. It recalculates when you tick cards in the Rumour Mill, so a scenario shows its registration cost alongside its cost in pounds.

The rule, stated properly. "Eight homegrown" is a consequence, not the rule. The rule is 25 and 17; eight is what remains if you fill every place. A club with seven qualifiers breaches nothing — it just cannot register more than 24. Homegrown is a registration test, not a passport test: three entire seasons or 36 months at an FA- or FAW-affiliated club before turning 21. Martínez is Argentine and homegrown; McGinn is Scottish-trained and is not.

Why it matters here. The quota is not Villa's binding constraint — places are. But the two biggest live sale rumours, Konsa and Martínez, are both homegrown, and Suzuki, linked as the replacement keeper, is not. Sell both and the count sits at exactly eight, legal but with no cushion. Wan-Bissaka would add one back. Every player now carries a birth date and a homegrown basis you can hover to read. Villa first; the other 19 clubs follow.

15 Aug 2026

Iling-Junior to Bolton is OFFICIAL · Romano: Juve close on Emi Martínez, Villa eye Suzuki · Palhinha collapses · Ruggeri medical · Konsa talks reopen · Wan-Bissaka terms agreed OFFICIAL + STATUS CHANGES

Emi Martínez → Juventus · Zion Suzuki → Villa (Romano, on X). The keeper succession, broken as a pair: Juventus are increasingly close on Martínez — willing to take a three-year deal on LOWER wages than his Villa terms — and Villa are eyeing Parma’s Zion Suzuki as the replacement. Two new linked rumour cards: Emi’s £20m fee is fully amortised so almost any sale price is pure profit plus ~£150k/wk off the bill; Suzuki modelled at ~£30m (€35m talk). The hedge to watch: Juve and PSG both hold firm interest in Suzuki, and Juve could take him instead if Villa refuse to sell Emi — which would kill both cards at once.

Samuel Iling-Junior · OFFICIAL. Bolton announced the season-long loan — their ninth signing of the summer. No fee reported; the ~£2.4m/yr amortisation on his £11.9m fee stays on Villa’s books and ~£40k/wk comes off the wage bill, so the SCR wages input eases 216 → 214. Zero competitive Villa appearances since the 2024 swap that brought him in — the book cost of that deal keeps running whether he plays or not.

João Palhinha · COLLAPSED. Bayern rejected the loan structure — they want a permanent sale at ~€30m — and Max Eberl said publicly: “We will not be able to reach an agreement with Aston Villa.” Personal terms were agreed and the player wanted the move, so the only revival is Villa switching to permanent money late in the window. Treated as dead.

Matteo Ruggeri · medical. Arrived in Birmingham 14 Aug with the medical scheduled and reports of completion inside 48 hours on the €25m + €1.5m package (~£22.9m). Still ADVANCED — nothing announced, so nothing moves in the done totals yet.

Ezri Konsa · talks reopened. Timber’s injury on top of Saliba’s has Arsenal back at the table, and the louder end of the reporting calls an agreement ‘99% done’ at ~£60m; the soberer end still has Villa demanding £60m+ with the improved bid expected rather than lodged. Stays a rumour — modelled fee moved to £60m.

Aaron Wan-Bissaka · terms agreed in principle. Personal terms reported agreed; the fee — £20–25m — is the remaining piece with relegated West Ham. Named the next priority once Ruggeri is done.

Jonathan David · structure firming. Villa’s approach is now reported as a loan with an OBLIGATION to buy, and Juventus are described as open to a loan for the first time.

12 Aug 2026

Guessand to Palace is OFFICIAL · Bailey’s Hull move collapses · Ruggeri reaches a verbal agreement · Arsenal come back for Konsa — all on Super Cup day OFFICIAL + CORRECTIONS

Evann Guessand · OFFICIAL. Both clubs announced the season-long loan to Crystal Palace today — Villa’s statement specifies a conditional obligation to buy (Palace’s wording says option), reported at £25m+. No fee now; his ~£5.2m/yr amortisation stays on Villa’s books and the gain is ~£75k/wk of wages off the numerator — SCR wages input eases 220 → 216. He misses tonight’s Super Cup vs PSG having initially been named in the squad.

Leon Bailey · COLLAPSED. Hull have withdrawn — the pay-off structuring around his ~£120k/wk wages never closed — so the £12m comes back OUT of the committed sales totals and he reverts to an outbound rumour with Saudi Pro League interest the live route. Final year of contract: sell now or lose him free.

Matteo Ruggeri · verbal agreement. Romano reports a full verbal agreement: €25m fixed + €1.5m add-ons (~£22.9m package, up from the ~£20.4m modelled), personal terms settled, medical set, completion possible by the end of the week. Stays ADVANCED until announced.

Ezri Konsa · Arsenal’s improved second bid is in (first, ~£64–65m, was rejected 2 Aug). No reliable figure yet; Villa’s stance — replacement first, Emery wants him kept — unchanged. João Palhinha: personal terms are now reported agreed (12 Aug); the club-to-club gap on Bayern’s ~€25m ask remains, so the deal stays in talks. New in the Rumour Mill: Jonathan David (Juventus) — loan route explored, Palace rival, wage-share the sticking point.

Later on 12 Aug — two more. Ruggeri hits “here we go”: Romano calls it done bar the announcement — flying in for medical and contract signing. Stays ADVANCED on this tracker’s ladder until a club announces, per house rule (Guimarães was held the same way). Kim Min-jae enters the Rumour Mill: a reported Villa link to the Bayern centre-back — a Konsa hedge, with Bayern’s ask cut to €20–25m and his ~€15m-a-year package the real obstacle. One-source freshness on the Villa angle, labelled as such. And a third: Aaron Wan-Bissaka — Villa have opened talks with relegated West Ham (ask ~£25m, five years left on his deal), chasing competition for Cash and reported ahead of Arsenal in the race.

Net effect on the ledger. Committed sales ease with Bailey’s £12m out; the conservative cost-basis registration view flips marginally negative (~−£4.4m/yr) until the next exit, while the fee-based view stays comfortable at ~+£56m. Ratio headroom improves to ~£36m/yr on the squad-synced basis (~£23m/yr on the conservative accounts view) with Guessand’s wage relief in.

10 Aug 2026

Endrick enters the Rumour Mill on loan talk · the Super Cup’s €4m + €1m spelled out

Endrick · NEW loan pursuit. Villa are reported to want the 20-year-old Brazil striker on a season-long loan — Real Madrid have approved a Premier League loan and Roc Nation are working on the move, with Roma in the race. He hit 8 goals and 8 assists in 21 games for Lyon after January. A loan means no fee and no amortisation — the cost is purely his wage share in the SCR numerator, which the new Rumour Mill card models at an estimated £100k/wk until real terms surface.

Super Cup money, itemised. Wednesday’s final vs PSG in Salzburg (12 Aug) is worth €4m (~£3.5m) for taking part and a further €1m (~£0.9m) for winning. The participation fee was already inside this tracker’s £420m revenue projection; the caveat under the model inputs now says so explicitly, and the win bonus is deliberately NOT assumed — if Emery lifts it, nudge in-rev up £1m and the ratio eases a hair.

09 Aug 2026

Digne is officially done, Ruggeri says yes, Bailey stalls on the paperwork — and the Palhinha talks go on the record

Lucas Digne · OFFICIALLY CONFIRMED. The departure is now official on both sides — the confirmation noted today (9 Aug) closes the loop on a move that actually completed on 22 July, when PSG triggered the ~£8.5m/€10m release clause after his 20 July medical (three-year deal to 2029). His row already sat at 'done' with the fee in every total, so no number moves — the change is that the row now reads officially confirmed rather than reported-completed. 182 appearances, out with the Europa League trophy.

Matteo Ruggeri · still ADVANCED, personal terms AGREED. The last hurdle flagged on Saturday cleared over the weekend: Ruggeri has accepted Villa's offer (Moretto, 8 Aug), leaving medical, contract signing and the announcement — plausibly early next week. Neither club has announced, so he stays 'adv', and the ~£20.4m all-in figure (€18m + €6m add-ons, agreed club-to-club 5 Aug) was already counted, so the totals are untouched.

Leon Bailey · still ADVANCED, but held up. The signing expected "within days" of Wednesday's medical did not land: the move was held up over the weekend, with the structuring — Villa's contribution to the pay-off bridging his ~£120k/wk wages — the reported sticking point. No announcement from either club, no fee confirmed, so the conservative £12m stays in the totals and he stays 'adv'. Mirror at exactly this stage on Hull's page.

João Palhinha · talks now club-confirmed. Sporting director Damian Vidagany went on the record on 8 Aug: "We are in talks, but there is currently no agreement" — with Onana out for the season, Palhinha "would fit our plans". A loan with an option to buy has been discussed; Bayern's ~€25m ask is still the gap, and reporting suggests nothing concludes before Wednesday's Super Cup against PSG (12 Aug). Stays at 'talks' — but a confirmed negotiation, not a rumour of one.

Rumours re-graded. Watkins: Fenerbahçe raised their offer from €30m to €35m — at Villa's reported ask — after London talks around their Greenwood deal, and he has agreed a three-year, ~€9–10m/yr contract in principle; Villa resisted in those talks (a replacement being unsourceable this late) and one account has them now asking nearer €40m, so nothing is agreed and he stays a rumour, still modelled at £30m. Jackson: Villa have stepped up talks with Chelsea; Spurs remain in the race and the £65m tag stands. Konsa: Arsenal's second bid had STILL not arrived by Sunday evening — but reports now describe the Villa squad as increasingly resigned to him leaving, with the club wanting a replacement first. Bernal: the player went public — "my wish is to stay here for many years" — on top of Flick's "untouchable"; the card stays only because Villa's interest does. Paixão, Mbaye, Guessand, Garner: no verifiable movement.

Squad availability, for the record. Manzambi is ruled out of the Super Cup — still recovering from the knee injury picked up with Switzerland at the World Cup, sidelined weeks not months. McGinn hurt his left knee in the 3–1 win over BG Pathum United (4 Aug); scans were encouraging (6 Aug) but he is a doubt for Wednesday, and the reported timelines still conflict, so none is adopted here. Neither has any cost effect — injuries give no SCR relief.

The numbers did not move. No deal completed, collapsed or changed fee between Saturday morning and Sunday evening: window sales stay £213.4m, committed fees £121.9m, List A fee room ~£71m, the net SCR swing −£3.5m/yr and booked FER profit £151m. Amortisation still derives itself from the squad contracts, and the 3-yr smoothed sale-profit input is untouched — no new completed sale, no change to the smoothing basis.

08 Aug 2026

Ruggeri nears the line, Bailey survives a wobble, and the Bayern talks come to nothing — yet

Matteo Ruggeri · still ADVANCED, now nearly done. The Athletic (Jacob Tanswell, Saturday morning) reports Villa are closing in on a FULL AGREEMENT with Atlético Madrid — fee around €20m, deal "now advanced" but not yet finalised with the 24-year-old. His row and the A-list chip now carry the latest stage; the ~£20.4m all-in figure (€18m fixed + €6m add-ons, as reported 5 Aug) stays until anything firmer lands. Neither club has announced, so he remains 'adv', NOT done — and none of the totals move, because his fee and estimated costs were already counted from 5 Aug.

Leon Bailey · still ADVANCED. The Hull move survived its midweek near-death: after collapse reports on 3–4 Aug (with Saudi Pro League clubs circling as the fallback exit), talks moved forward again, the medical happened on Wednesday 5 Aug, and the latest reporting (6–7 Aug) has him penning a long-term contract within days. Still no announcement from either club, so still 'adv'; the fee is still unconfirmed and the conservative £12m still stands in the totals. Needs mirroring on Hull's page at exactly this stage.

Palhinha · impasse intact. The Bayern friendly happened as scheduled — Bayern 2–1 Villa, Friday 7 Aug, Kai Tak in Hong Kong, João Gomes with Villa's goal, Palhinha on at half-time — and senior officials were reported to be talking face-to-face around it. As of Saturday morning nothing has changed on the record: Bayern still want ~€25m, Villa still haven't bid. He stays at 'talks'. Next fixture that matters to the beans: the UEFA Super Cup on 12 Aug, whose prize money is already assumed in the revenue projection.

Rumours re-graded. Jackson: Tottenham have joined the race and Chelsea have set a £65m price tag, while Villa stay in direct talks — the card now says so, still modelled at £40m. Konsa: the expected second Arsenal bid had NOT arrived by Saturday morning — braced-for is not lodged, and the card now dates that. Paixão: Marseille's ask is briefed anywhere from €35m to €50m; Leeds have held talks; Villa still haven't bid. Watkins, Bernal, Guessand, Mbaye and Garner: no verifiable movement since 5 Aug, left as they were.

The numbers did not move. No deal completed, collapsed or changed fee between 5 Aug and this morning, so window sales stay £213.4m, committed fees £121.9m, List A fee room ~£71m, the net SCR swing −£3.5m/yr and booked FER profit £151m. Amortisation still derives itself from the squad contracts (unchanged squad = unchanged figure), and the 3-yr smoothed sale-profit input is untouched — no new completed sale, so the smoothing basis is exactly as it was.

05 Aug 2026

Two deals reach the last step — Ruggeri in, Bailey out — and Estupiñán is off the board

Matteo Ruggeri · ADVANCED. Villa have an agreement in principle with Atlético Madrid for the Italy left-back: a fixed €18m (~£15.3m) plus up to €6m (~£5.1m) in add-ons, so ~£20.4m all-in. The one thing left is the player's personal terms, which he is reported to be leaning towards accepting; he is training away from Atlético's main group and is not travelling on their South Korea tour. Neither club has announced anything, so this is logged 'adv', not 'done' — and the wage and contract length used here are this tracker's estimates until terms exist. Note the club: Ruggeri joined Atlético from Atalanta last summer for €17m, so anyone still filing him under Atalanta is a year out of date. Newcastle and Liverpool were both reported to have looked late.

Leon Bailey · ADVANCED. The Hull City move, which looked dead earlier in the week over his ~£120k/wk wages, is back on: he was due at Hull for a medical on Wednesday afternoon, aiming to sign permanently before the weekend. He moves out of the Rumour Mill and into the outs table at 'adv'. The fee is not confirmed — reporting puts Villa's ask in a £12–20m bracket, and the conservative £12m is what the totals use, with Villa expected to fund part of a pay-off. Hull are a fellow Premier League club: this deal needs mirroring on their page.

Pervis Estupiñán · DEAD, removed. Milan head coach Rúben Amorim blocked the sale for long enough that Villa walked and turned to Ruggeri. The deal is no longer live in any form, so it has been deleted from the incomings table rather than left sitting at 'talks' looking alive. This is the correction that matters most on the page today.

What moved as a result. Window sales rise to £213.4m and committed fees to £121.9m; List A fee room falls from ~£79m to ~£71m after the Boro sell-on. Cost freed by outs rises to ~£54.2m/yr against ~£50.7m/yr of new cost, so the net SCR swing improves from −£0.9m/yr to −£3.5m/yr and the cost-based List A test passes by ~£3.5m/yr instead of ~£1m/yr. Booked sale profit for FER goes to £151m. Bailey leaves the squad table and the A-list (8 of last season's 21 now gone); Ruggeri joins both.

Rumours re-graded. Konsa: Arsenal's ~£64–65m bid was rejected and Villa are braced for an improved second offer, per the Daily Mail — an Arsenal-side deal that needs mirroring. Watkins: Fenerbahçe are in pole with a three-year ~€10m/yr contract prepared, but the fee gap is ~£10m (Villa €35m, Fener €25m) and Manchester United are out — his squad-table valuation drops from £40m to Villa's own ~£29.5m ask. Palhinha: still an impasse at Bayern's ~€25m, with face-to-face talks expected around Friday's Bayern–Villa friendly; Benfica are the rival, Newcastle are watching. Bernal: Villa are said to be formalising a written offer at Barcelona's offices this week, with numbers briefed anywhere from £30m to €80m — Barça have already rejected ~£25m. Guessand: Trabzonspor, not Roma, are the active party, exploring a loan with an option. NEW — Igor Paixão (Marseille, 26): Villa have enquired and Marseille want at least €35m, with Leeds also approaching — an enquiry, not a negotiation, so it goes on the board and nowhere near the tables. Jackson: an "agreement reached, medical to follow" story on 1 Aug came from a low-credibility outlet and has not been carried by any tier-one source — it is not recorded as a deal here, and the card now says so.

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

Ins & Outs rebuilt from a full source list — six departures and one return that were never logged

Why this pass was different. Every previous rebuild started from the list already on this page and only hunted for news since the last update. That is how a deal that never got entered stays missing forever. This time the summer-2026 ins and outs were reassembled from scratch — permanent deals, loans out, loans in, loan returns, frees and released players — and only then compared against what was here. The senior business was already right; the loan and academy layer was not.

Added — outs. Five confirmed season loans that had only ever appeared as passing prose in the squad footnote, never as entries: Oliwier Zych → Vitória Guimarães (15 Jul, announced alongside the Mosquera sale), Zépiqueno Redmond → Annecy (7 Jul), Kadan Young → Annecy (8 Jul), Mohamed Koné → Annecy (17 Jul) — the Annecy trio going to the Ligue 2 club V Sports took a minority stake in during June — and Joe Gauci → Lincoln City (28 Jul), a Championship step up after Port Vale. All five are logged at £0 cost relief: amortisation stays with Villa on a loan and no wage split has been disclosed in any of them, so none is invented. The window totals, net balance, SCR swing and List A fee room are therefore unchanged. Gauci is now flagged as out on loan in the squad table. The 11 June released list — eight out-of-contract players and four scholars — is now recorded as a note under the outs table rather than being absent.

Added — ins. Evann Guessand's loan return from Crystal Palace (30 Jun) is now an explicit line in the incomings table. Palace let both the £28m obligation and the £28.5m option lapse after his April knee injury, so he came back at no fee; his £26m 2025 fee and wage never left Villa's books, so this adds nothing to the window's cost. It was already described correctly in the A-list board and Rumour Mill — it simply had no entry in the table that Palace's own page pairs against.

Corrected — window attribution. Kaine Kesler-Hayden → Coventry City (~£3.5m, permanent, four-year deal) was missing entirely. It belongs to 1 July 2025, not this window, so it has been added to the 2025/26 outs where it cannot inflate summer-26 sales. Anywhere it is presented as current business is wrong.

Checked and left alone. Garnacho stays "done" — Villa announced the season loan with a conditional obligation on 23 July and Chelsea confirmed the same day; the deal is complete, and the £42.5m obligation triggering next season is a future event, not a pending status. Leon Bailey → Hull is still not a transfer (Hull were reported on 3 Aug to be weighing pulling out over his wages) and remains in the Rumour Mill. Iling-Junior's Bologna loan (2024) and Gauci's Port Vale loan (2025) are prior-window business and were correctly absent. No new senior signing or sale has landed since 27 July.

04 Aug 2026

Madjo cleared by CAS · full accuracy audit — 16 corrections — plus the first week of August

Madjo available. CAS upheld Villa's appeal against FIFA's block on registering Brian Madjo (17, signed from Metz in January). FIFA had caught the move under its rules on the international transfer of minors — Madjo was born in Enfield and is a UK citizen, but was raised in Luxembourg and had represented them before switching back to England. He can be registered now rather than on his 18th birthday in January 2027, and is available for competitive football this season. No cost impact (fee paid in January, amortisation already running); the gain is free squad depth against the 70% wall in a window spent selling. Added to the A-list section, where his A spot had been assumed before the ruling made it real.

Audit. Every named player, manager and club on this page was re-checked against source reporting, one by one — squad table, ins & outs, rumour mill, A-list board, league notes and prose. 16 corrections were made, and every club in the league table now carries its full official name. The important ones: Digne's PSG move was still logged as "advanced" when it actually completed on 22 July (~£8.5m/€10m release clause, three-year deal) — it is now marked done and his fee is included in the net-spend table; the Emiliano Martínez–Juventus link is dead (Juve formally ended the pursuit on 2 Aug, per Romano) and has been deleted from the Rumour Mill rather than left sitting there looking live; the Guessand card wrongly said "no buy option exists" when Palace in fact held a £28m obligation AND a £28.5m option and let both lapse; Newcastle's £125m Isak sale was attributed to FY25 when it happened in September 2025 and therefore lands in FY26 (same fix applied to Liverpool's £241m Wirtz/Isak outlay); Rogers' Chelsea contract is seven years, not six; Cissé joined on 7 July, not 15 June; and Pape Gueye was described as a "budget option" when he carries a €45m release clause. Ross Barkley was shown as settled squad depth despite being in unresolved Coventry talks. Everything else checked out: Emery, Amorim at Milan, Maresca at City, Carrick at United, Iraola at Liverpool, Glasner at Forest, Xabi Alonso at Chelsea, the £19.4m/€22.5m CFCB fine split, the FY24/25 accounts (£378m revenue, +£17m, £114m of intra-group sales) and the 3–0 win over Freiburg in Istanbul are all confirmed as stated.

New since 27 Jul. Arsenal have lodged a bid for Ezri Konsa — reported at ~£64–65m on 2 Aug after Saliba's World Cup back injury — and Villa's stated position is that he is not for sale at any price. Leon Bailey to Hull turned into a permanent negotiation, with owner Acun Ilicali saying on 30 Jul it was days away, before Hull were reported on 3 Aug to be considering pulling out over his ~£120k/wk wages. Manchester United have cooled on Watkins (4 Aug) while Fenerbahçe keep pushing; Villa's reported valuation of ~£40m is now used in the squad table. Marc Bernal (Barcelona, 19) added as a new incoming rumour — Emery's reported No.1 target with a ~£30m bid being readied, though Flick calls him "untouchable". Mbaye downgraded: his camp has pushed back and Manchester City have moved to hijack. Palhinha reframed: Bayern have publicly listed him and are hoping Villa bid; Villa won't meet the price. Estupiñán remains blocked by Amorim with no resolution. On the pitch: 3–1 over Indonesia All-Stars in Jakarta on 1 Aug (Garnacho's debut, Madjo's fourth pre-season goal), then BG Pathum United. No new signings, sales, fees or sanctions landed in the window itself — the numbers are unchanged apart from Digne.

27 Jul 2026

The window gets complicated

Estupiñán BLOCKED — ~£13m and 2030 terms agreed, then Milan's Amorim demanded a post-World Cup assessment; timing now Milan's. Bailey collapses into a standoff: Hull want a loan, Villa insist on a £12–20m sale and have offered him around Europe. Digne completes his PSG medical (Romano: confirmed). Manchester United and Arsenal join the Watkins watch; PSG begin accepting they must sell Mbaye; Arsenal reportedly line up a Konsa alternative. Wages re-verified across six databases (Abraham up to £140k/wk); the net-spend league table, the "catching the Big Six" analysis and the in-app glossary all ship.

24 Jul 2026

Rogers completes — the British record is official

Morgan Rogers → Chelsea, £117m, done. Mosquera (Vitória SC) and Swinkels (Sheffield Wednesday) added as permanent exits; Redmond, Kadan Young and Zych logged on loans to partner clubs. League page refreshed with the summer's confirmed appointments and records: Iraola to Liverpool (4 Jun), Glasner to Forest (6 Jul), Anderson's £116m City move. New: deadline countdowns, the amortisation runway chart, official X announcements on deals, and this changelog.

23 Jul 2026

Garnacho official — and the 45-day rule documented

Season loan with a £42.5m conditional obligation triggering FY28 — engineered to sit outside UEFA's 45-day player-exchange window around the Rogers sale. Loan quotas corrected to senior-only (2 concurrent/4 per season domestic; 6 FIFA international); a Jackson loan ruled impossible under the one-per-club rule. Same day: Betano confirmed as sleeve sponsor — retained through the gambling front-of-shirt ban, undisclosed but reportedly above the old Trade Nation deal.

21–22 Jul 2026

Rumour Mill reshuffle

Out: Wharton, Bergvall, Baturina, Summerville (Saudi). In: Mbaye (PSG), Jackson (Chelsea), Martínez–Juventus talks, Watkins–Fenerbahçe (stalled), Guessand–Palace return mooted. Bailey → Hull upgraded to advanced (£12m + £3m). List A transition board rebuilt with strict advanced-only classification; Onana classed out (ACL).

20 Jul 2026

Gomes & Dobbin official · wages verified

João Gomes (£38m) and Lewis Dobbin (£9m) announced. Squad wages cross-checked against Capology: Martínez, McGinn, Cash, Lindelöf and Bailey all corrected upwards; window cost relief rose to ~£42m/yr. Squad audit added García and corrected the Guessand–Palace January loan.

19 Jul 2026

The Bean Counter launches

Live at bean-counter.co.uk/aston-villa. UEFA's leniency documented: £12.9m of the £19.4m fine suspended with the CFCB formally endorsing the improving trend. League tab added covering all 20 clubs' SCR tiers and FY25 accounts.

17 Jul 2026

Manzambi — the club record, officially

Villa announce Johan Manzambi from Freiburg: £59.5m/€70m including add-ons, a club record and the first signing of the window. The 20-year-old Swiss international takes the No.44 shirt — the number he wore against Villa in the Istanbul final.

14 Jul 2026

Visit Rwanda confirmed · Tielemans completes

Visit Rwanda announced as front-of-shirt sponsor — multi-year, up to £20m/yr with bonuses, reported as the most lucrative deal in club history, replacing Betano ahead of the Premier League's gambling front-of-shirt ban. The deal has drawn supporter criticism on sportswashing grounds. Same week: Youri Tielemans' £35m move to Manchester United completes — Villa's farewell honours the Europa League final volley and his Players' Player double.

Early Jul 2026

The CFCB rules — fined, but endorsed

UEFA's second SCR verdict: £19.4m for a "significant breach" of the 70% limit in 2025, alongside Chelsea, Newcastle and Forest — but only £6.5m payable, with £12.9m suspended after the CFCB formally credited the 2024→2025 improvement as in line with settlement projections. The window's entire strategy flows from this decision.

Glossary

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

Homegrown player (Premier League)
A player registered with any FA- or FAW-affiliated club for three entire seasons, or 36 months, before his 21st birthday. Nationality is irrelevant and so is birthplace: Emiliano Martínez is Argentine and homegrown because Arsenal registered him from 17; John McGinn is Scottish-trained and not homegrown, because the Scottish FA is neither the FA nor the FAW. Clubs may register 25 seniors with at most 17 non-homegrown, and under-21s — born on or after 1 January 2005 for 2026/27 — are outside the list entirely.
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. Villa passed their 2026 assessment — helped by £114m of asset sales the PL accepted — with one final test in January 2027 before PSR is replaced by squad-cost rules.
Squad Cost Ratio (UEFA SCR)
UEFA's rule limiting spending on the squad — player and head-coach wages, transfer amortisation and agent fees — to 70% of football revenue plus net transfer profit, tested on a calendar-year basis — the 36 months to 31 December for the player-trading line, and the 12 months to 31 December for everything else. Villa breached it in 2024 and 2025 and this tracker models roughly 68% for calendar 2026 (63.9% on the 2026/27 season, which is the Premier League's clock) after £313.3m of completed summer sales and £258.7m committed on signings.
PL Squad Cost Ratio (PL SCR)
The Premier League's version of the 70% squad cost rule, tested on a season basis rather than calendar year, phasing in from 2026/27 as PSR retires. Same cost base as UEFA's rule, different clock — Villa face an October checkpoint and a 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 — crucially, profits from selling players count, but intra-group asset sales do not. This is the rule Villa's women's-team sale failed to satisfy, and the reason UEFA and the PL reached opposite verdicts on the same accounts.
CFCB
UEFA's Club Financial Control Body — the panel that judges compliance, imposes fines and agrees settlements. In July 2026 it fined Villa £19.4m but suspended two-thirds, formally crediting the club's improving trend.
Settlement Agreement
A negotiated compliance plan with UEFA in place of escalating punishment: annual targets, monitoring, and suspended penalties that only bite if targets are missed. Villa's runs to 2028/29.
Suspended Fine
The portion of a fine written off if settlement targets are met, payable if they aren't. Villa carry ~£26m suspended — a behavioural leash, not a bill.
List A
A club's registered senior squad for UEFA competition, capped at 25 with homegrown quotas. Under Villa's settlement, adding players to List A is conditional on the transfer balance test.
Transfer Balance Condition
The settlement rule governing whether Villa can register new signings: aggregate cost savings from players sold must exceed the aggregate cost of players bought (amortised fee + wages + agent fees), measured at each List A deadline. Not one-in-one-out — one big sale can fund several signings.
Amortisation
Spreading a transfer fee as a cost over the contract length. A £59.5m signing on a five-year deal costs ~£11.9m/yr in the books — which is why fees are judged per-year while sales count at once.
Five-Year Amortisation Cap
UEFA and PL rule that fees must be amortised over a maximum of five years even on longer contracts — closing the eight-year-contract loophole Chelsea made famous.
Book Value
What's left of a player's fee still to be amortised. Sale profit = fee minus book value. Academy players carry £0 book value, which is why selling them is pure profit.
Pure Profit
Shorthand for selling a £0-book-value player (academy graduate or free transfer): the entire fee lands as profit for PSR/FER purposes. The engine of modern compliance.
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. The reason Garnacho arrived on a loan-with-obligation rather than a straight purchase after the £117m Rogers sale.
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 — a £40m signing really costs £41.6m.
FIFA Solidarity Contribution
Up to 5% of an international transfer fee distributed to the clubs that trained the player between ages 12 and 23. Rides inside the transfer cost for compliance purposes.
Intra-Group Asset Sale
Selling an asset (women's team, real estate) to a company under the same ownership to book profit. The PL accepted Villa's £114m of such sales for PSR; UEFA rejected them for FER. One transaction, two verdicts — the defining split of Villa's situation.
Sell-On Clause
A percentage of any future sale owed to a selling club — and the percentage is only half the term, because these clauses are routinely capped. Middlesbrough's on Morgan Rogers is 20% but capped at £15m, so Villa's £117m record sale nets ~£98m rather than the ~£93m an uncapped 20% would have left.
Senior Loan Quotas
Limits on loan signings: domestically, max 2 concurrent (4 per season) from English clubs and never two from the same club; internationally, max 6 senior loans (over-21, non-club-trained) with U21 and academy players exempt.
SSR (Sustainability & Systemic Resilience)
The PL's incoming liquidity and solvency tests running alongside the squad cost rules — proving clubs can actually pay their bills. Bites hardest on promoted clubs making the revenue leap.
Headroom
The gap between current squad cost and the 70% line — the practical transfer budget. Villa's is ~£32.8m/yr of running cost on the 2026/27 season and ~£12.8m on UEFA's calendar-2026 clock — it was ~£19m before Leon Bailey's wage came off the numerator, which is what one high earner leaving in his final contract year is worth.
Calendar vs Season Test
UEFA tests the ratio over the calendar year (Villa's 2026 number freezes 31 December, and the player-trading line is the 36 months to that date over three); the PL tests the season (assessment March 2027). The same window of sales improves both, on different clocks — and this tracker now models them separately, at roughly 68% and 63.9% respectively, because a single blended figure cannot be right for both.