FIRST Robotics FRC Scouting Analysis

Before We Begin

As mentioned previously on my Ethics page, I use Claude as a thinking partner, not as a replacement. In the interest of transparency, I want to explain how I used Claude in this project.

When working with Claude, I do all of the deliverables in separate programs. That means that I created each table and image was created myself, with Claude only providing assistance when I came across problems. In this project, that looks like having Claude make sure my writing makes sense, debating what criteria should be considered, and finding realistic solutions that I come across while working on this project.

This project is specifically being used as a tool to teach myself the necessary skills used in data analytics, and that means that I am not posting any work that I did not create myself.

FRC Scouting Analysis System

Project NameFRC Scouting Analysis System
AuthorCharity Eiland
Data SourceThe Blue Alliance API
Initial Dataset2025 FRC Arkansas Regional
Primary End UserFRC teams during alliance selection
Tools UsedPython, SQL (SQLite), Tableau

The Problem

Alliance selection is the most consequential decision a team makes at any FRC event. With strict rules around offer denials, seeding shifts, and a rapidly shrinking pool of available teams, decisions that take too long or rely on a static list can leave a team scrambling. The data analysis stage of scouting doesn’t end when the meeting does — it has to keep up with a competition that moves fast.

The Solution

This system automates the analysis stage of scouting using a gap-weight scoring system. Rather than just ranking teams, it identifies which available teams best fill the gaps your current alliance leaves. Data flows from Python for cleaning, into SQL for calculations, and out through Tableau dashboards for fast, readable outputs during the pressure of alliance selection.

Alliance Selection Criteria

The criteria that will be used when evaluating teams will be as follows:

This project is currently in progress. Check the blog for updates as development continues.