Championship: Top moments from the 2018-19 season
Big clubs, controversies, late twists, a frantic promotion race, spy-gate and goals, goals, goals - the Championship has had it all. Again.
Each season, English football's second tier confounds the experts, and stuns and thrills the fans.
This year feels like it has gone up a notch again in pure drama.
There's only one place to start:
The year started in bizarre fashion with one of the Leeds backroom staff found "spying" outside Derby's training ground in the build-up to a game between the teams.
Leeds boss Marcelo Bielsa later admitted to sending the 'spy', but insisted he hadn't broken any rules.
Some, like Daily Telegraph journalist Matt Law, took it seriously…
Some, like former Leeds striker Michael Bridges, less so…
Bielsa's response was to stage a remarkable news conference in which he showed - with a PowerPoint presentation - how much analysis he and his staff did of all opposition teams.
Spoiler: it's a lot.
Leeds were fined £200,000 for the 'spying' - but could still afford to look back at it in a light-hearted way.
Apart from that it's been a quiet season at Elland Road.
Wait. No it hasn't.
The 'absolute carnage' of Leeds v Villa
- Villa striker Jonathan Kodjia is injured tackling Leeds defender Liam Cooper.
- Leeds initially play on, but then Tyler Roberts appears ready to put the ball out.
- Instead he passes it forward for Mateusz Klich, who despite being in an offside position is allowed to play on and scores.
- Bedlam ensues. Villa forward Ahmed el Ghazi is sent off for an alleged elbow on Leeds striker Patrick Bamford, who slumps to the turf holding his face despite no apparent contact.
- Bielsa orders his team to allow Villa an uncontested equaliser.
- Albert Adomah scores that goal, despite defender Pontus Jansson briefly trying to stop him.
- Bielsa and Villa assistant John Terry have a verbal altercation on the touchline.
Who takes a cabbage to the football?!
That draw ended a 10-game winning run that had seen Villa power into the play-offs under Dean Smith.
He had replaced Steve Bruce in October - the former Manchester United defender sacked just hours after a fan threw a cabbage at him.
Yes, you read that right - during a 3-3 draw with bottom club Preston (which, as an aside, included a red card and last-minute missed penalty), a Villa supporter decided the best way to vent their anger was to throw a cabbage at the manager.
The cabbage, of course, has its own Twitter account. Bruce, meanwhile, is back in football as Sheffield Wednesday boss.
Bruce later managed Wednesday against Villa - but even though that game contained two injury-time goals it didn't come close to the drama we saw when Paul Lambert went back to his former club.
A wink, promotion, and a broken bus
With Lambert's Ipswich trailing Norwich in the East Anglian derby, a challenge from Jon Nolan on Max Aarons prompted a rumpus on the touchline.
Lambert and Norwich coach Chris Domogalla were sent off. As a policeman calmed Lambert, Norwich counterpart Daniel Farke channelled a 2006 Cristiano Ronaldo.
What a guy, indeed - Norwich finished top, Ipswich finished bottom.
And while the Canaries certainly can't be accused of parking the bus, they were left with no choice during their celebrations as theirs broke down.
A blue bucket and One Direction
Bielsa has brought us so much this season - 'spygate', the PowerPoint, the great pronunciation of "Ipswich", and... a bucket.
The Argentine has made sitting on an upturned blue bucket look like an art form - and Leeds were quick to cash in.
And the club weren't shy of a savage social media message when required.
When One Direction's Niall Horan - a Derby fan - tweeted "no-one likes Leeds", the club hit back.
What about the serious stuff?
Aston Villa midfielder Jack Grealish was attacked by a Birmingham fan 10 minutes into the derby in March - a match televised live.
Grealish had the last laugh - scoring the winner in a 1-0 victory. We think he enjoyed it.
Bolton had a season to forget, culminating in the unprecedented postponement of their match against Brentford last month.
Relegated to League One, the Trotters are set to go into administration after appearing in the High Court over a £1.2m unpaid tax bill.
Birmingham survived - comfortably as it turned out - but only after being deducted nine points for breaching profitability and sustainability rules.
They were briefly five points above the relegation zone - after incurring losses of nearly £48.8m between 2015 and 2018 - but had stretched that to 12 by the end of the season.
The late, late show
Everyone loves a late goal, don't they? Norwich in particular, it seems...
But plenty of others got in on the act:
Aston Villa came from 3-0 down to draw 3-3 with Sheffield United.
Derby came from 2-0 and 3-2 down - the latter with five minutes left - to win 4-3 against Norwich in a match delayed by floodlight failure.
Sheffield Wednesday scored in the 10th minute of injury time to draw 2-2 with Rotherham (and then had Fernando Forestieri sent off for his celebration).
Goals, goals, goals
We should have known what lay ahead when Brentford thumped Rotherham 5-1 for the biggest opening-day win since 1994.
Dean Smith was Bees boss then, but little over three months later he led Villa in an incredible 5-5 draw with Nottingham Forest.
Tammy Abraham scored four times for Villa. Forest scored five times from five shots on target.
Expect the unexpected
As always, there were plenty of managerial changes across the league, from announcements to unexpected sackings... and I mean unexpected.
When West Brom announced they were sacking Darren Moore in March, while they were fourth in the table, it's safe to say few could have seen that coming.
One of the season's biggest managerial talking points has to be Chelsea legend Frank Lampard making his debut with Derby County - riling plenty of people who had to endure the club name change: Frank Lampard's Derby County.
Aston Villa sacked Steve Bruce in October and the club announced Dean Smith as his replacement, with ex-Chelsea defender John Terry as assistant.
In January, Aitor Karanka left Nottingham Forest, with the club welcoming back former players Martin O'Neill and Roy Keane as manager and assistant manager respectively.
Stoke City sacked Gary Rowett after less than eight months in charge at the pre-season favourites to win promotion. He left them in 14th, having won just eight of their 26 league fixtures.
And shortly after that, Queens Park Rangers sacked Steve McClaren after just one win in 15 league games.
It's not over just yet...
And while it's been a far-from-quiet season all round, it's not quite over yet... With everything that went on during the regular season, you would have been forgiven for thinking that the play-off semi-finals might not quite live up to the 46 drama-filled weeks which preceded them.
You would also have been wrong.
Two ties brought us 11 goals, four red cards, a penalty shootout, the breaking of a long-standing record… and scenes like this:
With that stunning 4-2 victory against Leeds United at Elland Road, Derby County became the first team to lose the first leg of a Championship play-off semi-final at home and go on to reach the final.
Waiting for them at Wembley? Aston Villa, who fended off West Brom via the giant gloves of 26-year-old Jed Steer, a keeper who - despite being the Villans' second longest-serving player - had played just one league game for the club in five and a half years before returning to the side on New Year's Day.
And so the stage is set for the richest game in football. Aston Villa are looking to return to the Premier League after a three-year absence, while Derby County are praying for an end to their 11-year exile from England's top flight. There's also a decidedly blue-tinged subplot which will see at least one Premier League legend return to where they belong.
Whatever the result on Bank Holiday Monday, it will top off what will go down as one of the classic Championship seasons.
And best of all? Once the dust settles at Wembley, there's only two short months to wait before we do it all again.