Data Analyst Portfolio Project with AI | World Cup Prediction Model (End-to-End Project)

In this tutorial Kedeisha Bryan demonstrates how to build a complete data‑analytics portfolio project using Claude (Fable) AI, centered on predicting the 2026 FIFA World Cup. She walks through sourcing real, non‑Kaggle historical match data (≈50,000 matches from 1872 onward), auditing and cleaning the data (resolving name variants, limiting to a 30‑year window, handling country‑name changes), and engineering a custom Elo rating system that updates team strengths chronologically. The Elo scores are benchmarked against FIFA’s official rankings, showing a 3.7‑percentage‑point accuracy advantage (76% vs 73% on decisive matches). She conducts exploratory analysis revealing home‑advantage effects and a smooth upset curve, then builds a predictive model that simulates the entire tournament 10,000 times to generate title odds (Spain and Argentina as top contenders). Finally, she uses the AI to produce a consulting‑style one‑page portfolio artifact (HTML dashboard, data pipeline diagram, schema visual) suitable for job‑search portfolios. Throughout, she highlights AI workflow management, prompt engineering, QA checkpoints, and cost considerations (session limits, credit usage), while emphasizing the analyst’s role in steering the AI and validating its outputs. The video ends with a call to action for viewers to engage with her coaching services.
Chapters
Claw just launched their brand new AI model. This is supposed to be the best performing model ever, best on the market, and even something they said that we should be fearing about. They've been hyping it up that it is going to be so good that is actually going to be dangerous to the human race. So we're going to test it out and build a data analytics project. And in honor of the FIFA World Cup, we're going to build a FIFA World Cup prediction project completely end to end, fetch our dataset, build the project requirements, the analysis, the data cleaning, and a final actual portfolio one-pager. Now, if this is your first time here, I'm Kadeisha, self-taught data scientist instructor turned data career coach for over 5+ years, and I've helped thousands of career changers break into data analytics without going back to school and wasting more money on courses that don't work. And if you ever want to work with me to land your first role in data, click the link in the description. All right, so let's get started. All right, so here we are in Claude. Says, for your toughest challenges, Fable is included in your plan limits until June 22nd. And after that, basically you'll have to switch to credit-based usage to actually continue to use it. All right, so what we're going to do is we're going to build a data analyst project end to end. Let's source the data. Let's have it create the project description and everything from visualization to cleaning to the end result. So what we're going to do is say I want to create A data analytics portfolio project. Actually, you to help me to create a data analytics portfolio project, a FIFA World Cup prediction project in honor of the 2026 World Cup. I want you to source The raw data, create a project plan with a business problem. So we're going to always try to be like a business problem. We're going to frame it like a sports analytics project, like a sports data analyst that's working for the World Cup. Let's say that we're in Atlanta, for example, creating a project plan with a business problem, visualization of the tables, and Start from there. I don't want anything from Kaggle. Real data only. Do not start cleaning or analyzing until I say so. It's thinking. Strategize sourcing real datasets. This is perfect timing. World Cup kicks off June 11th. So this project rides a massive cultural moment. Let me verify the current tournament details and lock down real data sources. Just like what I love With a managed, you can click on Claude each step and see exactly where it's getting its sources from. So I said no Kaggle, and I can verify ain't no Kaggle to be found. So great. Got a full dataset of nearly 50,000 matches based off of historical data from 1872. I don't know about that. I mean, for the NBA title, NBA Finals, the Knicks are. In the finals right now, and I don't see how a team probability of winning in the 2026 World Cup like what they did 30 years ago or something like that. I don't see how that would have any effect. All right, everything is sourced. Here's a full picture. So we have a results table, 49,000 international matches from 1800. It already contains the 2026 group stage fixtures with empty scores. Okay, shootout CSV 600. 77 penalty shootouts where draws don't exist. Goal scorers, 47,000 individual goals with minutes. A World Cup database. So here's this visual that I really like. This is cool. It says something about ELO ratings. You'll compute your own ELO. Before it goes any further, I'm like, okay, sounds great, but what do you mean by ELO? I should say, explain it to me like I'm 5. You darn right. If you can't explain it, you can't defend it in an interview. That's right, Claude. Elo is a rating system originally built for chess players, now used everywhere in sports analytics. Every team gets a single number representing its strength. Say Argentina at 2100 and Panama at 1600. The system runs on 2 simple rules. Rule number one, the rating gap predicts the outcome before any match. The difference between 2 teams' ratings converts directly into an expected result. A 500-point gap means the stronger team is expected to win something like 95% of the time, and it's an equal rating, 50/50. So the rating isn't just a leaderboard, it is a probability machine. Rule number 2, ratings update based on surprise. So after a match, points move from the loser to the winner, but how many points depend on how surprising the win was. So if Argentina beats Panama, almost nothing changes. That was expected. So Argentina gains maybe 1 or 2 points. But if Panama, the underdog, beats Argentina, that's a shocker. So Panama takes a big chunk, so maybe 30 points. Okay, Argentina's ratings drop. Beating up on weak teams doesn't inflate your rating, beating strong teams does. Okay, so now here's why we're building it ourselves instead of downloading it. We start every team at a baseline in 1872 and replay all 49,000 matches since then in chronological order, updating ratings match by match. And by the time they reach June 2026, which Which is right now, every team has a strength score earned from over 154 years of actual results. Okay, now this is making sense. So again, we see something that was like, what the heck is this? And then we ask and we get an answer and it's breaking it down in such simple terms. So again, so by the time we reach June 2026, every team has a strength score earned from 154 years of actual results. And we get to make real analytical decisions along the way. World Cup matches should move ratings more than friendlies, which is a K-factor. Home teams need an adjustment, and a 3-host tournament takes home advantage. So the payoff: Elo becomes a backbone feature of our prediction model, and we can directly test it against the official FIFA ranking. In phase 4, spoiler, FIFA's ranking is famously bad at predicting matches. So showing our own rating system that outperforms FIFA's official one? Okay. Can Fable 5, help us outpredict FIFA's predictions. So let's look at the project plan that Claude Fable created for us. Project code name, Road to the 19 July Tournament Window. 48 teams, 12 groups, 104 matches. Okay. Business problem. You are a data analyst at a sports media company preparing its editorial, advertising, and sponsorship strategy for the FIFA World Cup, the largest in history. But leadership has a problem with 48 teams. In 104 matches, they cannot cover everything. Ad inventory pricing, content production schedules, and sponsorship pitches all depend on one question. Which teams are most likely to go deep into this tournament? And how confident are we in each match outcome? So we can allocate coverage, budget, and inventory where the audience will actually be. Our stakeholder is going to be head of content strategy. Our secondary is going to be VP of ads. Decisions that this analysis drives. Which 10 to 12 teams get dedicated pre-tournament content packages. So this is a big thing, right? You don't want to spend our ad dollars and stuff like that on like the teams that are not going to get, not expected to go very far, for example, right? Anytime there's like some sort of tournament, any sports folks, like the NCAA basketball tournament every year, the NBA playoffs, for example, NFL playoffs, like, you know, you always see the players getting interviews, the teams getting the most, you know, in the commercials, really the top ones that are expected to go far. So that's pretty smart, right? Which group stage matches are priced as premium ad inventory. True. Which knockout path scenarios to pre-produce content for. A published falsified prediction bracket. Content that gets graded in public as the real tournament unfolds. So that's pretty cool engagement goal right there. Sort of like back when like the presidents used to predict the NCAA tournament, right? When ESPN used to go to like Barack Obama's, you know, in the White House and he would literally, they literally have the whole episode of him predicting it. So that's pretty cool. That's an engagement thing, right? So project phases, phase Zero sourcing and verification done. Identify the primary sources. No Kaggle. It's coming up with all the different stuff. This is really good. Okay. Let's go to the next step. Notice that discrepancy in the spelling. It realizes it's the same country. So, all right. Let's see what we got. All right. So we can look at what the data looks like. These are groups, whether they're the host or not. Then we have FIFA ranking pre-tournament top 50. So this is the ranking top 50. Argentina is number 1, Spain 2, France 3, England, Portugal. Okay. So these are the rankings. Okay. Let's go to the data cleaning step. But first analyze the data and flag all data cleaning issues before actually fixing. So we don't want it to just start fixing things. Let's have it analyze and have it tell us what it sees and then We can decide as well what to do, what not to do, what they recommend. We want Claude to do an audit, tell us what it sees first, and have it give us recommendations. But we don't want it to like, oh hey, just go clean the dataset first. Not yet. Again, we're managing the AI. You have to remember, the more capable the AI is, the more QA and the more management you have to do really, right? So AI agents or AI, it's very helpful. It's very effective. You can definitely leverage them to 10x your productivity and your income as a data analyst, but with great great power comes great responsibility. If Claude went out and messed something up, Claude ain't getting fired, right? You're getting fired. And again, we can always click on there and read exactly what it's doing. Going to create an actual data quality report, which is great. Let's look at our audit report from Claude Fable. All right, it created different keys, right? Critical, something that can potentially break or corrupt the model. Because remember, we're building a predictive model here. High, wrong analytical conclusions if unhandled. Medium, limited scope, handle with a documented rule, verified. Okay. Check. No action needed. All right. Critical stuff that it found. Team name chaos across sources. The historical FIFA rankings file uses 36 team names with no exact match in our results CSV. For our 48 World Cup teams alone, 7 break on at least one join. Dang. South Korea, Korea Republic, United States. USA. Okay, well, United States equals USA. Carousel, Iran. So it looks like it is variant in spelling that I'm seeing. Okay, there's different— all right, so there's different spelling, 4 spellings in one file. Proposed fix: build one name crosswalk table and map every variant. I think that's a good idea because it's just a naming thing. I think that's a great idea. All right, next one: error split name, same country, 2 identities over time within the ranking. Files countries change names mid-history and splitting their rankings into two. Turkey to this one, Czech Republic to that one, Cape Verde Islands to that one, Switzerland to that. FYR Macedonia to North Macedonia. The risk here is point-in-time ranking joins silently returns nulls for the other era. Part of me wonders how far because this goes back to what 1800s? I don't think we got to go back to 1800s. To be honest with you, we can— I feel like we can like limit the scope, shrink the scope a bit. Let's say the past like 4 World Cups or something. What happened in '18-whatever is not going to affect what's happening now. I'm a basketball fan and the New York Knicks, they're in the finals right now. I don't see how like having like a scoring system from the 1970s— I just don't. Just in terms of just because of like differences of I mean, I just think it's ridiculous just off the top of my head. So let's just go back to 30 years instead of the 1800s, especially with all the issues with spelling and, you know, stuff in history. So let's just do 30 years. We're doing the Women's World Cup inclusion. Oh, I didn't realize we're doing both. I don't recall them mentioning anything about the Women's World Cup. Data alignment, FIFA rankings begin 1992. 26 releases already exist before our window opens. So every match in scope has a point in time. Statistical sufficiency, 28,000 scored matches active national teams average. Pre-1990s international football differs structurally. Fewer fixtures, no Nations League, different qualification formats. Old signal is a weak signal 2026. You dang right. Seems like there's still a lot of names that are, um, let's just focus on the men's tournament. And let's do your D2 recommendation. Yep. We're going to filter match. So just the men's tournament. So perfect. We're on the same page there. Just the men's tournament. FIFA members only. Nice. All right. So that was good stuff there. Yeah. So deciding on limiting to 30-year cutoff definitely helped a whole lot. And now we have to just standardize or basically like United States equals USA and things like that. Those are 2 different countries. If we go back to the teams that are like number one or because ideally we want to do a prediction of the winner. If it was like Portugal or whatever that was in a lot of these like issues or data quality issues, that'd be one thing. But like a lot of these data quality issues are with countries that are not expected to win. Okay. So phase 2 is done. Data is clean, validated, and split. So what we got so far, we got 29,000 scored training matches, 72 prediction target fixtures, every team a FIFA member with a complete ranking history, zero duplicates, all 48 cup teams joined cleanly across every file because we pretty much matched the different naming conventions. 2 things worth bragging about, right? The entity filter caught over 100 non-FIFA teams, right? And we don't, we don't want that. And every transformation is logged. So nice. Carry forward, right? So we have— let's see, we got our log here. Yep. So this is basically everything that we did. This is nice. It's good to have this. Matches is our training data. Okay. Fixtures. All right. Feature engineering. We're going to build our Elo engine from scratch. All right. So let's go. All right. Our Elo model is performing well above baseline with 76% accuracy, already outperforming FIFA's ranking system by 3.7%. points in our head-to-head comparison. Okay, now I'm checking the data quality. We got 99% coverage. Our model's already performing better than the FIFA's, so that's nice. Okay, so they replay all 26,000 matches in chronological order from 30 years ago, every team starting at 1500. And as you recall, though, the— how the numbering system works, so your Scratchbuilt Elo beats FIFA's official ranking. Right, on decisive matches since 2000, the team with the higher pre-match Elo score won 76% of the time. The team with the better FIFA rank, only 73% of the time. It's a 3.7-point edge over the official system before we even trained a single model. That's good. All right, so let's do some exploratory data analysis. Yeah, let's do some of that. All right, so the most important thing here is the prediction, but let's see what this EDA is looking like when our Elo and the FIFA Ranking pick different favorites. How often does the team, better team actually win? Home advantage is real. Finding 1, home advantage is worth. Okay. Home teams win 50% of non-neutral matches versus 41% of neutral matches. Finding 2, the upset curve is smooth. Favorite win rate climbs steadily with an ELO gap of 39%. Upsets fall from 32% to 2%. When our Elo and FIFA's rankings disagree, Elo wins 60-40. All right, so when our 2 systems pick 2 different favorites to win in about 17% of the decisive matches, our model beats FIFA's. Nice. Okay, next let's see the prediction model. We are gonna pretty much simulate the World Cup, see who's gonna win, predict who's gonna win. All right, 2022 was one of the biggest upsets, Saudi Arabia beating Argentina. Morocco. Okay, our prediction is saying that Mexico will have a 76% chance to beat South Africa. USA only has 40% against Paraguay despite being on the home soil. All right, so we're gonna simulate all 104 matches. So this right here is just— we just came out with, um, this just built— what we have here is just the, like, their probability of the home team winning. So Mexico 76% for this match, South Korea versus Czech Republic. South Africa has a 46% chance to win, and then there's a 26% chance of a draw. Okay, let's keep going and let's simulate and see what we're actually going to predict. Claude Fable is going to run our model 10,000 times and we are going to finally see— oh, token constraints. Okay. All right. It's doing a mapping of the bracket structure. You don't want the model to predict matches that, you know, that just will not actually actually occur logically. So that's smart. One thing I've noticed, it is going through different website articles and actually reading through them, doing the research, and you can just see its logic per se. All right, I'm noticing something off with the United States reach probability at 70%. That seems too low given their group composition and the fact that 32 of 48 teams advance. Uruguay's at 87%, which Makes the gap seem suspicious. Yeah, especially since the U.S. only has a 40% win rate. The numbers are in and they're spicy. Let me chart the title odds and write the forecast. Okay, so looks like Claude Fable has finally finished. Our prediction is Spain winning. Our title odds is Spain winning, basically. Spain and Argentina top two title odds. Spain, Argentina, charts, paths. Want me to drop a Tableau-ready export? Um, no, I want it to— dang, 90% of the session limit. Okay, finish off with creating a one-pager portfolio. Make the visuals consulting style. Think Boston Consulting Group, so BCG. And McKinsey. Include the visual of the table schema, a visual of the data pipeline, and a final dashboard. All right, let's see. Can Claude Fable do this for us all in one swoop since we, we hit 90% of our session limit? What? 5-hour limit? Oh my gosh, our Xiaowu Fable is expensive. That's number one. As we can see, I saved $50, but I paid $200. No, I'm not doing auto. Come on. Set monthly limit to $2,000? What? No. And the nerve to even suggest $2,000. All right, here's our one-pager. It's an HTML. See, I'm gonna publish this artifact and anyone will be able to see it. Official ranking system built from predicts of FIFA. The only thing is like, it should say it predicted Spain up here, but down here is fine. This is very cool. I'm going to link this in the description. I will say when I did the, the one-pager, tested this in Gemini Spark. It felt like I was going back and forth with it for like 20 minutes to try and build like a one-pager in like a public website. And it would not be able to do it, which is crazy because Gemini has Canvas. And for whatever reason, Spark wasn't able to use Canvas for a reason. But in terms of publishing an artifact or a website, now I can link to my resume. This is good. This is cool. So I'm going to link this. This is going to be an artifact that I'm going to link in the description. I, you did just see me pay $200 to get more credits. I had to rank, you know, the AI models of the Fable, the new Gemini Spark, and Manus. I did like Fable's reasoning, you know, its thinking and things like that. I still like Manus off the top because Manus, you can, you can actually talk to, send prompts mid-prompt. But this is one of the best outputs in terms of like when I say, hey, create me a one-pager. And I just said the, you know, consulting style. This is actually really, really good, but expensive. I don't, I wouldn't say it's worth what I just paid for it. Like, that's kind of crazy spending $200. We used AI to do a, you know, really nice data analytics portfolio project. As you saw though, anytime there were questions or things brought up, like Claude said, hey, we're going to do this. We're going to use the ELO, whatever. Step in and say, what the heck are you talking about? I don't know what that means. Explain it to me like I'm 5. So that while you are utilizing AI to build high value projects, you're not just having it just do things. You're asking questions, you're, you're looking at the data, you are having it, you know, perform audits. You have Claude or AI provide you recommendations, but you are still coming up with the actual solutions on what to do. Okay. So another one in the books. Again, if you enjoyed this content, please comment below, please like and subscribe. And if you want more of these, let me know. And again, if you ever want to work with me to land your first role in data analytics, click the link in the description. I'd love to be your coach. I'd love to have a discussion. Other than that, I'll see you in the next one.
More from Kedeisha

Data Analyst Portfolio Project with AI | NBA Championship Prediction Model (End-to-End Project)









