Man, sometimes you just need to settle a score, right? This whole deep dive into the Birmingham City F.C. vs Shrewsbury Town F.C. history started because of a ridiculous argument I had late last week with my mate, Terry. We were talking about the old days, and Terry swore up and down that BCFC had always, and I mean always, just absolutely wiped the floor with Shrewsbury, even when they were both floating around the lower leagues back in the 80s and 90s. I vaguely remembered a few shock results the other way, so I threw down a challenge. A £20 bet. Winner compiles the definitive head-to-head comparison table for the last 40 years, only using official sources.

My first step, of course, was to just jump onto the usual football result aggregator sites. That was a disaster. Why? Because Birmingham City mostly hangs out in the Championship these days, and Shrewsbury is generally League One. They don’t have “current standings” against each other in a shared league. That initial search just gave me current league tables, which was completely useless for settling our argument. I needed the historical fixture records, the proper head-to-head (H2H) results.
The Grinding Process of Data Extraction
I realized quickly I couldn’t trust the secondary sites. They often miss old League Cup matches or obscure friendlies that sometimes pop up in the official records. So I had to go straight to the source. This is where the real work started, the actual practice of data collection.
I started by hitting up the English Football League (EFL) archives. This was a brutal hour of filtering. The interface isn’t designed for cross-division historical H2H. I had to manually filter by season, then check who was in which league, and then try to spot any cup draws. This initial sweep was just to get a baseline list of potential fixtures. I managed to pull out a decent list of about 25 competitive games going back to 1980.
Then came the painful part: verification. I opened up three tabs side-by-side. The EFL site, the FA Cup results history (to catch the Cup ties), and then, just for good measure, I cross-referenced with a historical results database run by a dedicated football statistician I trust—someone who pulls primary newspaper reports, not just digital summaries. I wasn’t going to lose £20 because some online table had the wrong scorer listed for a match in 1993.
I started compiling the comparison table in a basic spreadsheet program. I needed four key columns for every entry:

- Date of Match
- Competition (League, FA Cup, League Cup, etc.)
- Venue (Home/Away for BCFC)
- Final Score
It was slow. I’m talking about clicking through decade after decade, making sure the scores matched up perfectly. There was one match in 2013 where one site listed the result as 5-1 and the official archive listed it as 5-2. I had to dive deeper just for that one goal difference, which turned out to be a late consolation goal that some sources simply missed in their quick summary. That detail mattered to me because I was promising an official comparison table.
Why I Bothered to Be So Painstakingly Exact
Now, you might ask why I would spend three solid hours just to verify a £20 bet on some old football scores. This is where my personal history steps in, and it explains why I always insist on primary source verification, even for something as silly as sports data.
A few years back, I was working on a totally different project—an inventory system for a client. They had given me their “definitive master list” of parts, claiming it was 100% accurate. I was rushed, and I foolishly didn’t cross-check it against their physical inventory records or shipping manifests. I just trusted the digital file. Long story short, that file was riddled with errors. They had wrong part numbers for about 20% of their stock, and when it came time to ship a major order, the entire system collapsed. We lost the client, and I took a massive hit professionally. It took me six months of pure grinding to rebuild my reputation after that screw-up.
That experience taught me one thing: Never trust a summarized report, and never trust someone else’s definition of “official” data. Always go back to the source. Always verify the raw numbers, no matter how tedious the task is.
So, spending three hours manually checking the BCFC vs Shrewsbury scores wasn’t about the £20; it was a deeply ingrained habit. It was me practicing what I preach: verify the input, especially when compiling something you call a “comparison table.”

The Final Result and Terry’s Face
After all that cross-referencing and compiling, I had the complete, verified table. And guess what? Terry was wrong, mostly. While BCFC certainly had the edge overall, Shrewsbury had managed to pull off some significant wins, especially in the League Cup fixtures we’d completely forgotten about. I aggregated the data—total games played, total BCFC wins, total Shrewsbury wins, total draws, and total goals scored by each side.
I didn’t send him a link, obviously. I sent him the actual spreadsheet table I built, printed out and verified against the official sources. He called me up, quiet as a mouse, and admitted I was right. He sent the £20. But honestly, the satisfaction of creating that completely reliable, self-verified comparison table was worth more than the money. It confirmed that the messy, slow process of manually checking primary sources is the only way to get true accuracy.
