So, the other day, I was sitting around, arguing with my friend Mark about which team really dominates El Clásico lately. He kept shouting about trophies, and I kept saying that the recent matchups are way more intense than the history books show. We were getting nowhere, just throwing out random scores from matches we vaguely remembered. That’s when I thought, you know what? Enough talk. I’m going to get the actual, raw data and shut this thing down. I needed the cold, hard numbers for the last 30 times Real Madrid and Barcelona faced off. Not just who won, but the ugly details: goals scored and, more importantly, who was racking up the yellow cards. That’s where the real story is, in the discipline, or lack thereof.

Setting the Boundaries: Defining “Recent”
The first thing I did was figure out the time frame. Thirty games felt like a solid, relevant sample. It covers roughly the last eight to ten years, depending on how many Cup and Champions League meetings they chuck in. I didn’t want ancient history; I wanted the modern rivalry captured completely. I opened up my laptop, fired up a fresh spreadsheet, and started digging.
My initial search was easy. You type in “last 30 El Clásico results,” and Wikipedia or some sports aggregator spits out a list of dates and final scores. I copied that basic structure into my sheet: Date, Competition, Home Team, Away Team, Final Score. That part took maybe five minutes. Simple. Too simple.
I realized immediately how useless this top-level data was. Mark wouldn’t be satisfied with just a 2-1 result. I needed to know who scored, and more crucially for the argument about ‘intensity,’ I needed the foul count, specifically the yellow cards. This is where the project went from a quick copy-paste job to a manual data entry marathon.
The Real Grind: Hunting Down Match Details
I had my list of 30 games, but now I had to treat each match as its own mini-research project. I couldn’t rely on summary tables anymore. Those sites never include card counts easily. They just show the final tally, maybe a clean sheet.
I dumped the general sports news sites and moved straight to official archival sources or detailed football statistics databases. Even then, the data wasn’t uniform. For the older matches in the set (around 2013-2015), sometimes the easily available online match reports were patchy. I had to cross-reference three or four different sites for some of those early matches just to be certain about the yellow card totals.

I started opening up individual match pages. Thirty browser tabs open simultaneously. My methodology was simple, but grueling:
- Click: Open Match 1.
- Scroll: Find the ‘Match Events’ or ‘Summary’ section.
- Record Goals: I noted down who scored and the minute. This was essential for figuring out momentum shifts, even if I wasn’t going to publish the minute-by-minute details.
- Scan for Cards: This was the worst part. Some sites use tiny little icons, others list them under ‘Disciplinary Actions.’ I had to manually count every single yellow card issued to each team.
- Input Data: I returned to my spreadsheet and entered the two new columns: ‘RM Yellow Cards’ and ‘Barça Yellow Cards.’
- Repeat: Close tab, open Match 2.
It was painfully slow. I spent a good two hours just verifying the card counts for the first dozen matches, especially because some databases incorrectly merge second yellow/red cards into the total yellow count, so I had to be careful to only tally the initial yellow warnings.
Structuring the Records and Finding the Gold
Once I finished manually compiling the raw totals for all 30 games, my spreadsheet started looking robust. It wasn’t just a basic list anymore; it was a battle ledger.
I ran a quick sum calculation on the columns I had just created. This was the moment of truth. My initial hunch that the games were far more foul-heavy and aggressive than people remember was instantly confirmed by the raw numbers. The goals were distributed fairly evenly, which is what keeps the rivalry so intense, but the card discipline told a different story.
I realized I needed to present the goal data clearly too, so I added a breakdown column showing the goal count for each team per game, not just the final score, allowing for easier filtering later if someone wanted to look at just high-scoring draws, for instance.

I went back through the entire dataset one final time, checking for any obvious outliers or errors. For example, there was one match where I accidentally counted a manager’s yellow card in the team total. I fixed that quickly, making sure only player disciplinary actions were included in the final statistics.
The outcome of this whole project wasn’t just data; it was proof. I went from an aimless argument to having a perfectly verifiable data set that documents the aggression, the goals, and the sheer chaos of the last thirty Clásicos. I finally created the full breakdown, exactly as I promised, ready to share the practice record with anyone else who wants to settle a football argument based on facts, not fuzzy memories.
The Final Tally Confirmation
I’m not going to bore you with the minute-by-minute account of every single 3-1 or 4-3 game, but trust me, the work put in to verify those yellow card numbers was immense. Every single number you see in the final presentation of this data was painstakingly verified across multiple sources. This wasn’t scraped from one API; this was built through manual, match-by-match effort. That’s why the record is solid.
Here’s a snippet of what the final internal document looked like before I formatted it for public viewing:
- Total Yellow Cards Across 30 Matches: 180+ (depending on specific referee report interpretation).
- Average Yellow Cards Per Game: Over 6.
- The most common score line in the last 30 games: 2-1 (surprisingly often!).
- Total Goals Scored: Enough to confirm nobody is playing boring football.
I finally closed that big spreadsheet and sat back. Argument won, data verified. Now I just need to figure out how to easily share this mammoth dataset without overwhelming everyone with thirty lines of raw numbers. But that’s a data visualization challenge for another day. The collecting part is done, and it was a proper digging operation.

