2020 Undefeated / Imperialism FRC Maps

Inspired by the Undefeated/Imperialism maps found on r/collegebasketball, I decided to replicate these maps but for FRC teams. This came with some challenges as there are only a couple hundred D1 college basketball teams, and thousands of FRC teams, but fortunately thanks to TBA’s API, I was able to automate most of the process.

After each week of competitions, each map will be updated and posted in a reply on this thread. An image will be posted on the thread, along with a link to each map of a version hosted on my website where you can hover over individual counties and get the county name, along with each team that owns that county (ownership rules described below).

2020 week 0 maps will be released 1-2 days before the start of week 1 competitions. If you’d like to add your team’s color as your background color for the maps, look at the bottom of this post (must be done before week 0 maps are released).

Undefeated Map (above is 2019 Undefeated Map up to April 14th) (click for version w/ hover labels)

The undefeated map shows the closest undefeated team for each U.S. County. The map will start off with every team marked on the map with their closest counties, and as each team records a loss in any match, they will be removed from the map, and the next closest undefeated team will take their land.

This season every single team will start on this map, and each week teams will drop off. There’s a large possibility the map goes blank by the end of championships.

Imperialism Map (above is 2019 Imperialism Map up to April 14th) (click for version w/ hover labels)

The imperialism map starts the season with each team owning their closest counties. As events are played, the captain of the winning alliance steals land from other teams at their event. Event winners steal all land from every other team at the event besides their 1st pick alliance partner.
Ex: 2019 Orange County Regional had winning alliance [330, 973, 597] - 330 will take ownership of every county a team at their event owns except for 973. 973 does not gain any land like 330 does, but they also don’t lose any. 597 loses their land to 330. This map is pretty brutal, if you do not win the event as captain or 1st pick, you will lose all of the land you own.

I will likely do a better job on adding team logos for this season than I did on the map above (the one above I generated as an example).

In r/collegebasketball, the map always ends up being owned by one single team at the end of the season because March Madness forces all of the good teams (teams who probably still have land) to play eachother and only one team who enters will leave without a loss, and therefore they will own the entire country. However, due to 2champs as well as the fact that you don’t lose land when you win as a non-captain, I’d expect to see 6-10 teams left at the end of the season, but 2-3 who own the majority of the land.

Custom Colors

Whenever your team is the only owner of a county on either map, you can have it be your custom team color by adding it’s R/G/B (0-255 each please) to this spreadsheet. Custom colors will not be added after week 0 maps are generated (a day or two before the first week 1 competitions start). After the season finishes, I’ll be creating a GIF of each weeks progress, and so the colors must remain constant week by week.

Disclaimer: this thread is not meant to be a source of bragging rights (ex:“my team is better than your team”) or hyper competitiveness, it’s just a cool data visualization project I wanted to work on. Also, due to data issues it’ll likely be hard to expand this map outside of the USA.


Great idea! Will there be any support for Canadian teams though?


Looks like probably not

Oh wow, guess I missed that. Thanks for pointing it out!

Looking forward to seeing how this works with FRC. In the map linked above, when hovering over certain counties, some of them have multiple teams listed. What is the reason for that?


It’d be really cool to add Canada to the map, but as of now I’m unsure how to. Would anyone from Canada be able to explain the best sub-region of provinces to use (ex: counties for USA)?

For the USA map I was able to split up state into counties, and I used this workflow to place teams:
Team Number -> (TBA API) Zip Code -> (ZIP -> County Dataset I found online) County Code

Then I found a .svg file on Wikipedia where each county’s <path> tag id attribute was the county code, which allowed me to actually place teams on the map. I also had to find a (County Code -> Latitude/Longitude) dataset to allow for calculating distances between counties.

I would need to find a similar workflow for Canadian teams, so if anyone has any suggestions please let me know.

Another challenge of these maps vs the maps in r/collegebasketball is that there can be multiple FRC teams in a single county. In fact, here is a USA county map showing the number of FRC teams per county:

Here is a version where you can hover and view teams in each county
(I last updated this density map 2 months ago, I can re-run it on latest TBA data tonight and update it when I get home from work)

The maps handle this by allowing multiple teams to have ownership of a single county, as there’d be no fair way to give a county to one team over another, or split up the county even further. Also note that since I used zip codes to generate what county teams are in, and some zip codes span over multiple counties, some teams will start with ‘ownership’ of multiple counties (which is why they’d be listed multiple times in the density map, however they could be listed multiple times in the undefeated/imperialism maps because those operate on the rule that any empty counties are owned by the next closest team).


For Canada you may want to check out how their census is conducted. In my field we typically use zip county and census block in the US, unsure how that works elsewhere :confused:

Oof, looks like it isn’t very consistent.


Great group of maps - I know I’ll be bookmarking this for later.

One thing - looking around my home state (MA), Team 23 is listed twice, in both Barnstable county and Plymouth county. Team 88 is also listed twice, in Plymouth and Bristol counties.

You missed this part.


So if a team beats a team that is in a county with multiple teams, the others being teams who weren’t at the event, the winning team would just be added to that list of teams in the county? Also if I am in a county with multiple teams, and I beat the teams in my county, do I gain sole ownership of the county?

I would give this my shot the closest geographic division that would get somewhat close to what you did would be either the provincial or federal ridings (provincial will give you more zones than federal)

And you can probably still distinguish using the postal codes system they seam to be accurate enough for what you are doing.

Maps of zones

Postal code map (example greater Toronto area)

Provincial ridings map (example Ontario)
Federal ridings map.

One major difference between what you would see in the Canadian map versus your map of the states would be very large difference in zone sizes (if this is a good thing or a bad thing I do not know).

Hope this helps and I would love to see this come to Canada.

1 Like

Yeah, that’s us. 1551 is definitely just Ontario County, but we’re listed in Ontario, Yates, Steuben, and Wayne counties, likely because of the Naples, NY zip code.

Neat project, by the way–looks fun!

What happens when a shared region is both lost and gained? For example Teams A and B share region X. A competes at regional1 and loses to team C. But B competes at regional2 and wins. Do B and C now own region X?

What if there are 5 teams who co own a regionX: A,B,C,D,E. Alliance captain A picks B and they win. Does A now own 4/5 regionX and B 1/5 regionX? Does the future defeat of B only grant 1/5 regionX?

If as above, Team A doesn’t play at any more events would they own their regions for the rest of the season? (Say, cant afford a trip to Champs)

Lastly, can a team who owns no regions, upon winning still take regions?

I really like the imperial map thing, please save snapshots through the weeks.


I’m a bit confused how this progresses… 254 has ownership of Orange County, CA as well? Yet they did not win an event against at OC team as far as I can tell.

1 Like

Love it, for the folks wanting to expand this to other countries - There’s some approaches that could be used:

https://www.naturalearthdata.com/downloads/110m-cultural-vectors/110m-populated-places/ is a collection of populated places, a voronoi diagram on the map with these as points and then declaring population centers as owned would scale fairly well.

The other option would be use the Admin Level 2 boundaries - OSM has this data but it’s kind a hassle to get.

Shouldn’t alliance partners also take land? This weights towards robots who play for RP instead of wins.
At the very least I would argue the 1st pick of the winning alliance should take something, as they typically represent the best or second best robot at the event.


but they might have won against a team that won against an OC team?


Kinda feel like Michigan needs its own separate map…


Region specific maps with using towns instead of counties would definitely be cool.


Hello Wayne County