
By Jason McKeown
It’s around 300BC. The ancient Greek playwrights are looking for a new way to decide the outcome of the dramas they are producing. They’ve worked themselves into a bit of a writing hole, and they don’t how to end the story. What they need is a new plot device.
So they invented a god, who towards the end of the show would be lifted into the arena on a crane, and who would solve the seemingly unsolvable. Deus ex machina – translated as “God from the machine” – was born. It remains a safety blanket for writers to this very day.
To give the term its full, modern-day explanation, deus ex machina is a plot device whereby a seemingly unsolvable problem is suddenly or abruptly resolved by an unexpected and unlikely occurrence.
You see it happen a lot in popular culture:
- The 1993 masterpiece Jurassic Park, where the main characters are stuck in an irretrievable situation of being completely cornered by Raptors, only for a Tyrannosaurus Rex to appear from nowhere to eat the Raptors and save the day.
- There’s the brilliant if partly flawed 2019 film Avengers Endgame, where the writers knew they were stuck in a hole of half the superheroes having been killed off. So they introduced time travel to the story, to bring them back to life.
- The amazing HG Wells classic War of the Worlds heads to a conclusion of humans conquered by the overbearing Martians, only for the aliens to all suddenly die from bacteria.
In 2024/25, you could say that whoever writes the scripts for Bradford City leaned heavily on deux ex machina to get the right outcome. Promotion had become a seemingly unsolvable problem, then it was suddenly resolved. No T-Rexs, time travel or bacteria involved, but after it seemed the task of restoring Bradford City to a higher division was beyond the abilities of its main characters, everyone abruptly got their act together and did just that.
A chairman, CEO, head of recruitment, manager and group of players who had been written off, all pulled in the same direction to deliver something truly special. And just like that, Bradford City’s problem of escaping League Two is cracked.
Deus ex machine seemed especially at play when you consider the goal that got them over the line. It came in the 96th minute and via the luckiest of deflections. It was a moment and outcome that carried a whiff of the implausible. You almost wouldn’t believe it could have happened this way, if you weren’t there to witness it with your own eyes. As Tommy Leigh launched up the high ball, from which George Lapslie would hit a shot, from which it would hit James Bolton/Antoni Sarcevic’s shin, and from which it rolled in slow motion into the net, you could almost see the crane towering over Midland Road, lifting over the god to provide this unlikeliest of endings.
So improbably and implausibly, the problem was solved. Six long and difficult years in League Two have come to an end. Scenes of celebration ensued, with the players and manager joined by CEO and chairman on the pitch. And how sweet that post-match beer and champagne must have tasted for all involved.
Because that was the most brilliant end to what has been the biggest of struggles.
***

To remind ourselves why all of this seemed so unlikely, we only need to rewind a year and remember the atmosphere surrounding the club.
2023/24 had proven to be a season of disappointment, with the damage considerable. A messy summer recruitment, an unconvincing start, a sacking of Mark Hughes, a dithering managerial replacement process, some uninspiring performances on the pitch, some uninspiring actions from those off the field.
Patience snapped. Confidence in those running the club drained out of most supporters. Mutterings, criticisms, boos and eventually a protest. And in those dark moments it seemed the club could never succeed. Not with its safety-first sustainable model. Not with a distant, uncommunicative owner. Not with a young, inexperienced CEO. Not with the club renting rather than owning its stadium and training ground. Not with seemingly so many internal issues, mis-steps and a chronic lack of resilience. And not with the wider landscape of financially stronger clubs like Stockport and Wrexham easily overtaking them.
The story of March 2024 is well documented. As the club imploded on the field, crisis talks took place between Stefan Rupp and Ryan Sparks over in Germany. The details of what was said remain private, but it was evidently a crucial conversation. An open letter from Rupp to supporters duly following, promising considerable change. It sounded good, but no one was really sure whether to believe it. Still, an improved end to the 2023/24 offered just about enough reason for supporters to give those running the club one more chance.
But there were clearly high stakes going into 2024/25. There wasn’t any margin for error, it seemed. No room for any hard luck stories or further mistakes. On the eve of the season, I wrote the following:
| More than anything, the worry is that if City can’t get it right this time, when will they ever under this current structure? We’ve tried all sorts of managers. All sorts of recruitment approaches. All sorts of playing styles. All sorts of players. The dice keeps being rolled, but with each unsuccessful outcome doubts about the future grow. The worry is not just that City end up floundering once more and make it a seventh straight year in League Two. But that City are trapped in an endless loop of dashed hopes and failure. A zombie football club. Where no matter what we try, it will fail. Until eventually League Two becomes so depressingly familiar that we have no choice but to resign ourselves to calling it home. Or even worse, we fall further. This has to be the year it turns. It just has to be. Because if City can’t deliver success from this point, the consequences feel huge. |
And that really what was on the line going into this season. There had to be progress. There had to be upwards momentum. And there had to be promotion, really. But given what we’d seen over 2023/24, and City’s near-constant struggle since falling back into League Two, it was hard to put aside past concerns and actually trust the club to deliver.
Fair to say though that those worries were eased. It has been a year where the seemingly flawed characters of before salvaged their reputations and proved their worth. Where you could see evidence of past mistakes been learned upon. Where City thrived in the League Two landscape. And though it was a typical season of twists and turns, further implosion was avoided. It all bubbled up nicely as the campaign went on, leading to a truly memorable final few months – where supporter cynicism was almost completely removed and giddy excitement took over.
They absolutely put us through the emotional wringer. But the leap of faith we took of believing in this football club again was ultimately vindicated.
Deus ex machina Bradford City.
***

In some ways there was no argument over the biggest signing the club made in 2024. David Sharpe, head of football operations. He arrived shortly after the Rupp open letter – a position that Sparks had evidently campaigned in Germany to be created. Sharpe had walked the walk and brought expertise to an area of the club where it was sorely lacking. Sparks had been trying to plug that gap with questionable success.
With Sharpe on board, Sparks could focus on the overall running of the club – which suited everyone.
So Sharpe worked with Stephen Gent and Graham Alexander to strengthen a squad that had ability but not depth. It wasn’t a spectacular summer by any means, with Sarcevic the only true headline-grabbing arrival. But there was greater competition places in almost every area of the pitch. Back up for when injuries struck.
And over the first half of the season, that depth was especially tested. City had so many injuries, especially in defence. At one stage they had only two fit centre backs, and even then, they were relying on the relatively youthful on-loan pair of Jack Shepherd and Cheick Diabete. Sarcevic, Alex Pattison and Tyreik Wright also had lengthy periods out. And for a time, it felt a bit too much like last season – where when everyone was fit City looked pretty good, but when injuries struck they struggled badly.
There were some good early season moments. They made the best start to the campaign imaginable by going 2-0 up inside five minutes on the opening day at MK Dons, ultimately winning 2-1. There were decent home wins over Bromley and our 2023 play off conquerors Carlisle United. But there were setbacks too. Home draws with Salford and Wimbledon were pretty dull and uninspiring, though they were nothing compared to the non-performances served up in losing away to Grimsby, Walsall and Harrogate Town.
The Salford game – City’s first home match of the season – sticks in the mind as an example of the early teething problems. Alexander had found real success at the end of 2023/24 from a 3-5-2 formation that had Richie Smallwood sat deep on his own, with two number 8s – Jamie Walker and Bobby Pointon – pushing on to support Andy Cook and Calum Kavanagh. So the summer rebuild was centred around that 3-5-2 set up. But bringing in Sarcevic and restoring a fit-again Pattison – ahead of Walker and Pointon – seemed questionable. That day against Salford, Pattison barely touched the ball and Sarcevic inadvertently kept slowing down City’s build up. It was all just a bit flat.
At Grimsby in August, City lost the services of Aden Baldwin until December. At Walsall in September, Neill Byrne and Ciaran Kelly suffered injuries that would keep them out for months. Callum Johnson, who had arrived in the summer, remained injured on the sidelines with no return date in sight.
So Alexander went to 4-4-2, which didn’t really suit anyone, not least the number 8s. And they went to Harrogate and were typically pathetic, losing 2-1. And crisis was brewing, especially with the next game away at bottom of the table Morecambe, managed by the antagonistic Derek Adams. And 10 minutes in, Diabete clumsily put the ball into his own net. And for the next 79 minutes, we faced up to an embarrassing defeat that would no doubt see fans turn on the club again. And then Shepherd popped up with a minute to go to rescue a point. Blushes spared. Crisis averted.
That pulling-back-from-the-brink moment happened a couple of other times pre-Christmas. We saw some good days, some bad. Every time they wobbled, they just about pulled it back. Barrow at home in December, where with City 1-0 down and winless for a month. Cook rescued a draw just as knives were sharpening. Notts County away, just before Christmas, was definitely the season’s low point, but it was followed up by a brilliant Boxing Day win over Port Vale that kept the wolves at bay.
The Port Vale game was in hindsight lift off. There was some good promise in October before that, with City beating Newport 3-1 on a Monday night Sky game in enjoyable circumstances. Cook scoring a glorious header. Pointon coming off the bench to set up Jamie Walker, before scoring the third himself. The week after, they comfortably beat Tranmere 2-0 at Prenton Park with Cook at the double. Then there was a 2-1 home win over Gillingham, where Shepherd channelled his inner-Zidane.
But each time it looked like they were on track, there was a bump to bring us back down to earth. A 2-1 home loss to Doncaster in late October was a humbling experience, where City were very much second best. They got beat 1-0 at Fleetwood in November, and threw away a hard-thought 1-0 lead at Colchester by conceding an equaliser deep in stoppage time. The EFL Trophy was bringing a bit of relief, with City getting through the group stage with a game to spare. But in the FA Cup, they were knocked out in the second round by Adams’ Morecambe. And in doing so, they missed out on a third round tie away to Chelsea.
So grumbles aplenty, which weren’t especially eased even after getting back to winning ways through beating Swindon 1-0 in mid-December. That was followed by the Notts County debacle, giving rise to more supporter angst and calls to boycott. Port Vale was a huge game in the circumstances, and the 2-1 win delivered by an amazing Cook double (the first goal an absolutely worldy) reminded us how special this club can be.
It would not be the last time we felt this way.
***

Cook’s Boxing Day brace meant he had 15 goals from 20 league and cup starts. He was having a brilliant personal season, right at the front of the division’s golden boot race. And with each mega contribution, we supporters began to rhetorically ask where on earth this club would be without their heroic number 9, and how would they ever cope without him?
We were about to find out.
First, in December Cook picked up a fifth yellow card and a one-match ban, just before the trip to then-second place Crewe. It forced Alexander to switch from 3-5-2 to 3-4-3, with hugely encouraging results. Then on New Year’s Day at Barrow, Cook went down injured early doors early and his season was sadly over. The crutch the club had so heavily relied on was no longer there. And at the time, you worried the season was in huge jeopardy.
But whether coincidence or Ewing Theory, Cook’s absences sparked positive change. Others stepped up. And the team really kicked on. After ending the year with a fortuitous win over Chesterfield and beginning 2025 drawing 2-2 at Barrow, performances began to reach another level.
The 3-1 victory over Grimsby was one of City’s finest displays in years, but would soon be eclipsed by even better ones. They won 1-0 at Carlisle, then smashed runaway leaders Walsall 3-0 to bring an end to the Saddlers’ nine-game winning streak and send them on into terminal decline. City were 17 points behind Walsall before kick off that day. The consequences of that handsome Bantams’ victory really can’t be underestimated.
The wins kept coming. 1-0 over Adams’ Morecambe. 1-0 over bogey team Harrogate. 1-0 over Accrington to move into the top three. 2-0 over MK Dons, 1-0 away at Bromley, 2-1 at Salford and 3-0 over Cheltenham. The last of those wins meant it was 10 home victories in a row at Valley Parade – a new club record. They were flying, with Sarcevic, Pattison and Pointon in superb form. Kavanagh was emerging from underneath Cook’s considerable shadow to lead the line effectively, scoring plenty of key goals.
At the same time as all this was going on, City were progressing well in the EFL Trophy. In the knockout stages they had won away at Stockport and at Aston Villa’s kids. Then in quarters they beat Rotherham at the New York Stadium, meaning they’d made the semi finals for the second year in a row.
They earned the toughest draw possible – runaway League One leaders Birmingham, at St Andrews – but almost 3,000 City fans travelled to the second city, and the Bantams put up a heck of a fight. Pointon’s second half equaliser was one of the great moments of the season. Heartbreakingly, they lost the game late on. In hindsight, probably for the best.
The late December, January and February period was City’s best of the season. No doubt about that. They picked up a mammoth 41 points from 17 games, rising from 12th in the table – after the Notts County defeat – to second in the league, and right behind flagging leaders Walsall. There were some great moments too along the way. Pattison’s wonder strike against Accrington. Sarcevic’s double against the MK Dons. Pointon’s late goal against Bromley. Michael Mellon’s stoppage time winner at Salford.
City were on the march.
***

Only just as the finishing line seemed in sight, they stalled. Weeks of playing Saturday-Tuesday suddenly seem to catch up with them, and winnable-looking fixtures weren’t seized upon. In early March, they surprisingly lost 1-0 at out-of-form Gillingham, then they were beaten 1-0 at home to struggling Tranmere. There was a drab 0-0 at Accrington, and a disappointing 2-0 loss at promotion rivals Port Vale, where the Bantams didn’t turn up until it was too late. Injuries to Pattison, Sarcevic and Pointon really hit them hard.
Thank goodness for the home form though. Whilst Tranmere stopped City’s record run, the Bantams bounced back well. Big occasions against Colchester and Crewe – where the crowd was inflated by cheap ticket initiatives – saw big victories. The 4-1 smashing of Colchester stands out as one of the best City league games this century, with George Lapslie and Kavanagh netting two goals apiece. Kavanagh also scored late on against Crewe, sealing a 2-0 victory that had been started by Pointon netting the fastest goal in Bradford City history.
They were great moments played in front of great atmospheres, but there were bumps in other games around that time. Swindon away – argh! 2-0 up, Smallwood red-carded. 3-1 up with Kavanagh completing a hat trick, but the 10 men could not hold out and lost 5-4 through a stoppage time own goal from Shepherd.
You worried about the mental impact, and the loss of Smallwood for three crucial games. Notts County were next. A good game between two good teams, but a nagging feeling City hadn’t capitalised on taking the lead through Kelly’s header, with David McGoldrick afforded space to smash home a stunning equaliser. 1-1. Chesterfield away followed, and for a time the Bantams were magnificent. 2-0 up. Could have been 4-0. Chesterfield made it 1-2 right on half time. 3-1 City early in the second half. But they couldn’t see it out, the home side coming back to draw 3-3.
Composure seemed to have gone out the window, as demonstrated in the penultimate game at Doncaster. Baldwin’s ridiculous red card. The missed penalty. Doncaster won 2-1 to seal their promotion. City had to wait, grateful that Walsall were continuing to self-destruct.
So it all came to the last day and that unforgettable ending. With just 50 seconds left on the clock, it seemed all hope was lost. Automatic promotion thrown away.
Then deus ex machina struck.
***

The league table never lies. 46 games. Every other team played home and away. You have luck, you have misfortune. You have good days, and you have bad. But when the music stopped, City were still in that final automatic promotion place. Promoted after six years of frustration.
And as the team celebrated long into the night with fans, you would have to be hugely cynical – indeed vastly mean-spirited – to say they didn’t deserve it. Because after so much adversity of dealing with numerous injuries, and all the burden of playing for a club with plenty of emotional baggage, the players had stood up and given everything for the cause.
It was a squad effort. Sam Walker in goal had a great season. The very occasional slip up and a tiny bit of concern over form around the opening of the window, which perhaps prompted City to bring in Joe Hilton as back up, but Walker came very good and produced many huge moments during the run-in, not least his massive save at 0-0 on the final day.
In the wing back positions there was mixed fortunes in terms of injury and form. Last season’s player of the season Brad Halliday surprised everyone by starting the campaign slowly. He lost his place to loanee Jay Benn – who initially looked a great signing, before struggling when opposition sides targeted him. Halliday bided his time, rediscovered his mojo and was back to his consistent self.
On the left hand side, Wright didn’t quite grasp the opportunity to nail down wing back as his position. He was also hampered by injury. Lewis Richards built on last year’s promise and for a period was City’s best player. He too suffered injuries at the wrong time, meaning January loanee arrival Tayo Adaramola was relied on – and what a brilliant job he did. If City can persuade Crystal Palace to loan Tayo back next season it would be massive.
At centre back the three available slots saw so many different faces involved, and most largely did well. Baldwin might have significantly blotted his copybook with that Doncaster red card, but before then, and after recovering from a three-month lay off, he looked a really good signing and impressed with his passing from the back. There were questions and doubts over Byrne, but he largely did fine.
You felt Kelly would struggle to get in the team this season, but he made himself a regular until injuries plagued his second half of the campaign. Romoney Crichlow arrived in January as cover for Kelly. Some okay performances, but we know he has a higher ceiling.
Shepherd was probably City’s best defender. A great addition from Barnsley, and again someone you hope could be lured back to Valley Parade. He has a real warrior-like style and is talented on the ball with it. Diabete had some decent early games but fell badly away. Paul Huntington was an astute arrival who provided important cover, coming in occasionally and delivering some brilliant displays. Johnson had to wait a long time to be fit enough to play, but looked a class act. Sadly, he struggled to stay fit.
In front of them, Smallwood cleaned up at the official player of the year awards, such was the level of his performances. And it was no small feat for him to turn around a situation where much of the crowd did not rate him. He scored the first Valley Parade goal of the season from the spot, yet when he prepared to take the penalty, some fans were booing him.
The red card silliness aside, Smallwood was superb and won over his public. He did have some first half of the season competition from Corry Evans, but ultimately the former Sunderland man couldn’t prove his fitness. Joe Adams was another would-be Smallwood back-up who suffered a really bad injury, in his case less than 20 minutes into his league debut.
Smallwood thrived sitting with Pattison, who like the season before had his injury problems. When available he was a regular difference maker, bursting forward from deep positions. It’s no coincidence that City’s best period of the season came when Pattison was fit and his best.
Ditto Sarcevic, who after missing most of the first half of the season thrived in the wide forward role and showed his class. Sarcevic came with a big reputation as a winner at this level, and often those kind of signings don’t work out at City, but he lived up to the big expectations. He felt ready-made for the Valley Parade stage.
Pointon too blossomed in his second season as a first team player. You feared he would struggle to keep up with the heightened competition for places, but this lad is something special and regularly showed it. In fact, the real loser of all the recruitment changes was Jamie Walker. Only 16 league starts. Spells not even in the matchday squad. He remained popular with the crowd and was excellent when called upon, but will naturally be disappointed with how it all turned out.
Walker was especially down the pecking order after January and the arrivals of Brandon Khela, Lapslie and Leigh. They had differing levels of an impact. Khela looks a fine player and put in some important end of season performances. Lapslie was the best player on the pitch one week and utterly anonymous the next. Leigh has another two years left on his deal. You have to hope for him that things only get better (though he played very well as a deep-lying midfielder against Fleetwood).
Clarke Oduor became the forgotten man of Valley Parade, but he played a part with some decent performances over the first half of the season. The fact he couldn’t quite master one position ultimately counted against him, as well as the rising tide of greater ability in the squad. But respect to the lad, he looks a good player and just needs to find a happy home.
Up front, Cook was great until his heartbreaking injury, and Kavanagh – who didn’t score a league goal until December – emerged from early season struggles to plough a lone furrow up front commendably well. He might have expected a stronger fight for a starting place from January arrival Mellon, but the on-loan Burnley striker didn’t quite have the impact hoped.
Other forwards on the City books were loaned out after doing little when given opportunities before Christmas. Tyler Smith and Vadaine Oliver ultimately weren’t missed. Olly Sanderson initially looked promising but faded. Highly rated youngster Harry Ibbitson made his City debut from the bench in the Birmingham game.
***

Going back to those pre-season words, this do or die season for City’s hierarchy has proved to be a success. You could tangibly see the difference Rupp’s greater investment was making. The impact of Sharpe. Recruitment was better, with the much-maligned Stephen Gent deserving great credit. The club as a whole operated much more smartly, and Sparks deserves our respect for overseeing all of that. The club also did well at tapping into supporter mood, working with us rather than against us.
There was absolutely no one you could begrudge enjoying in the moment of promotion. From top to bottom, the club looked to be operating on the same page, and that shared purpose helped them to deliver memorable success. It all meant they could wave goodbye to League Two, close the chapter on an unhappy era for the club. We doubted them, but they delivered.
And like all great stories that have a happy, biblical ending, there is now huge anticipation over the sequel.
Categories: 2024/25 season review, Season Reviews
The 2024/25 Width of a Post Player of the Season
Amen to that
A brilliant summary of a year in the life of being a city supporter. It shouldn’t be that hard to get out of league two, but it is and don’t we know it! I do feel it was more of a level playing field this season as nobody ran away with it, there was no Wrexham or no Stockport, but even without a couple of big spenders, it is still a hell of a grind.
Great summary Jason! Thanks for putting together. For once, I’ll keep my comment to a single paragraph. The only thing I want to add is… how did that T-rex get into that building without them hearing it???