Inspiration

We built MatchLens because sports predictions are often presented as simple guesses: one team wins, the other loses, or maybe it ends in a draw. That misses the part fans, analysts, and coaches actually care about: why a result is likely, how confident the model is, and what could change the outcome.

We started with football because it is World Cup season, and football has a rich mix of tactical, statistical, and emotional context. But the bigger idea behind MatchLens can work across sports. The same core approach — combining historical performance, team strength, player availability, simulation, and explainable AI — could be adapted for basketball, cricket, tennis, esports, and more.

Our goal was to build a practical analytics platform that makes prediction models more transparent, interactive, and useful.

What it does

MatchLens is an AI-powered sports analytics platform, starting with football match prediction.

Users can choose two teams and generate win/draw/loss probabilities, expected goals, likely scorelines, confidence levels, and the key factors behind the prediction. Instead of only showing a final answer, MatchLens explains the reasoning behind it.

The app also includes:

  • A Prediction Lab for adjusting model weights and seeing probabilities update
  • Team comparison across attacking, defensive, passing, pressing, possession, and xG metrics
  • What-if scenarios for injuries, red cards, weather, and tactical changes
  • Match timeline simulation
  • Player and squad views
  • Model analytics dashboards
  • AI-style explanations that translate model outputs into readable insights

How we built it

We built MatchLens as a full-stack monorepo with a Next.js frontend, a FastAPI backend, and a custom Python prediction engine.

The frontend uses Next.js, TypeScript, Tailwind CSS, React Query, Recharts, and Framer Motion to create an interactive analytics experience. The backend exposes REST API endpoints through FastAPI and connects to the prediction engine.

The prediction engine combines several modelling techniques:

  • Elo-style team strength ratings
  • Poisson goal modelling
  • Monte Carlo simulation
  • Recent form analysis
  • Home advantage
  • Player and squad factors
  • Weighted feature contributions

We used Kiro’s spec-driven workflow to guide the build. We defined requirements, design decisions, and implementation tasks before building, then worked against those specs throughout the project. This helped us keep the app coherent even though it spans frontend UI, backend APIs, statistical modelling, data handling, and deployment.

What we learned

We learned that building a useful prediction product is not just about generating probabilities. The hard part is making those probabilities understandable and actionable.

A number like “62% home win” is much more useful when users can see the factors behind it: recent form, attacking strength, defensive stability, home advantage, player availability, and tactical matchups.

We also learned how important clean data structures are. Sports data comes in many formats, and small inconsistencies can affect the whole prediction pipeline. Building reliable team, player, match, and roster models was just as important as the modelling itself.

Kiro also helped us work more systematically as a team. The spec-driven process gave us a shared plan, made tradeoffs clearer, and helped us connect requirements to actual code.

Challenges

One major challenge was balancing ambition with practicality. We wanted MatchLens to feel like a real analytics platform, not just a single prediction form, but we also needed a working end-to-end demo within the BuildFest timeline.

Another challenge was performance. Monte Carlo simulations and Python scientific libraries can be heavy, especially when deployed on free or lightweight hosting. We had to tune the app so the prediction experience remained usable.

We also had to think carefully about explainability. Raw model output is not enough for most users. We needed to present probabilities, scorelines, confidence, and feature impact in a way that feels clear to both technical users and football fans.

What we are proud of

We are proud that MatchLens is more than a mock-up. It has a working frontend, backend API, prediction engine, interactive dashboards, and deployment path.

We are also proud of the scope we reached: statistical modelling, simulation, explainability, team comparison, what-if analysis, and user-facing visualisation all working together in one coherent product.

Most importantly, MatchLens shows how sports prediction can move beyond black-box guesses. It gives users a way to explore the “why” behind a result, test alternative scenarios, and understand the factors that shape a match.

What is next

Football is our starting point, but MatchLens could grow into a broader sports intelligence platform.

Next, we would like to:

  • Add more live data sources
  • Improve player availability and injury modelling
  • Support more leagues and competitions
  • Add real-time match updates
  • Expand the prediction engine to other sports
  • Build stronger AI explanations using live model context
  • Add user accounts for saved predictions and historical tracking

Our long-term vision is a platform where fans, analysts, and teams can explore sports outcomes through transparent, explainable, and interactive predictions.

Built With

Share this project:

Updates

Submission history