Announcing Drum Corona International!


Part 3

tl,dr: The inaugural season of Drum Corona International has begun! Each World Class corps, plus some corps from the past, are competing against each other in a simulated season. Each corps competes with one show from the past, and you can vote on what shows they will use!

In my previous two blog posts, I wrote about how the model I typically use to forecast DCI Finals Week can be modified to simulate a season, and how I can use R’s shiny package to host a constant sum vote. Now it’s time to put the pieces together and kick off the inaugural season of Drum Corona International!

In short, the 2020 DCI season will be simulated, but the simulations will be based on scores from past shows. The shows that compete will be determined by a fan vote, from now until June 28th 1. The vote for each corps is completely independent, so you can vote for your favorite shows from every corps!

Drum Corona International Rulebook

First, a note on terminology: I will be using Division I (1993 - 2007), World Class (2008 on), and “top division” (I think this is the most clear) interchangeably. This is important because I can only use data in the simulation from the top division, whatever the name is. I would love to include smaller corps that aren’t as well known, but unfortunately the data quality just isn’t there.


I only have enough caption-specific data to support including top division shows going back to 1993. This means, unfortunately, that two major types of shows and corps won’t be included:

  1. Older shows from the 70s and 80s aren’t eligible, nor are any corps that were prominent in their day but folded before 1993, like the Anaheim Kingsmen.

  2. This means Open Class (or Division II/III) corps won’t be allowed to compete either. As much as I’d love to include them, the data quality just isn’t good enough. Until very recently, these corps were judged on different sheets from the top division, and even in recent times, the judging community’s application of World Class sheets to Open Class corps is pretty inconsistent 2.

Within the top division, any corps which made World Class semifinals at least once, while being in the top division, between 1993 and 2019 is allowed to compete. In all, the list of eligible corps includes all active World Class corps and 13 corps which are now defunct.

Each corps gets one “representative show” in the competition. Their simulated scores will be based on the real-world scores that show got. All shows that a corps put on the field, while in the top division, since 1993 are eligible to be the representative show, even if those shows didn’t make Semifinals. There are two exceptions:

  1. One of the goals of this project is to highlight drum corps history and encourage current DCI fans to engage with shows they normally wouldn’t. Therefore, all Founder’s Trophy shows are ineligible.
  2. In order to make sure the simulation starts with a good basis of representative data, I need to have enough caption-specific data to fit “skill curves”. In general, that requires about 10 recaps.

The list of eligible corps starts with the 22 current World Class corps. From there, there were 13 corps from DCI’s past that are eligible. They are, In alphabetical order: Academie Musicale, Capital Regiment, Freelancers, Glassmen, Kiwanis Kavaliers, Les Etoiles, Magic of Orlando, Oregon Crusaders, Pioneer, Sky Ryders, Southwind, Star of Indiana, and Velvet Knights 3.

Between the 35 eligible corps, the list of eligible shows started at 567. Of those, 27 shows were removed because they won DCI and 6 more were removed due to sample size, leaving a total of 534 eligible shows on the ballot.

Show Selection

Each corps gets one “representative show” selected by a community vote. This show will serve as the real-world basis for the simulated scores. The ballot itself is quite long, consisting of all 534 eligible shows. However, each corps’ voting is completely independent of the others, and partial ballots are allowed. If you want to vote only for your 3 favourite corps, that’s fine, although I think engaging with the full ballot is a fun trip down memory lane and a good excuse to learn some more drum corps history!

Voters get 10 votes for each corps, which they can allocate among the eligible shows however they’d like. For example, my favorite Phantom Regiment show by far (that’s on the ballot) is On Air. I really want that one to be in the simulation, so I’m giving it all 10 of my votes. For Mandarins, however, I loved both Inside the Ink and Life Rite After, so I’ll give each of them 5 votes.

For each corps, the show with the most votes when voting closes on June 28th is the representative show. I will post regular updates with a leaderboard for each corps.

There are two automatic qualifiers. Sky Ryders folded after 1993, and at the same time Star of Indiana yeeted themselves from DCI after coming second to The Cadets of Bergen County. Therefore, both groups only have one eligible show, but I left them on the ballot for fun.

Drum Corona International 2020 Schedule

For the 22 active DCI corps, the Drum Corona International schedule will match the 2020 DCI schedule that was canceled due to COVID-19. To provide a good approximation of the regional nature of the DCI tour, the 13 inactive corps will have schedules identical to that of their closest active corps. For example, Capital Regiment is from Columbus, Ohio so they’ll have the same schedule as the Bluecoats.

In Drum Corona International, time is measured in reference to the first day of the competitive season. Day 1 is June 18th, so Finals day (August 8th) is Day 52. Scores for the representative shows will be evaluated on the same timeline, measuring backwards from DCI Finals. For DCI seasons that were longer than 52 days, this means the earliest scores will not be included. Essentially, historic scores are only included if they were 51 or fewer days before DCI Finals.

Real-world scores from Semifinals and Finals are not included in calculating skill curves, as not every corps in the competition may have made Semifinals or Finals.

How the Simulation Works

This section will only talk about the simulation at a high level. If you want to get into the weeds, check out my first blogpost about Drum Corona International. If you want to get even more into the weeds, you can find the code on Github.

My model works by fitting “skill curves” for each corps, which describe how good the corps was at the start of the season and how quickly they improved. My DCI forecast projects those skill curves to Finals Week, accounting for uncertainty in the curve fitting. It uses the results from 10,000 independent simulations to tabulate the odds of each corps winning, coming in second, and so on.

Drum Corona International will simulate each show in basically the same way. Rather than doing 10,000 simulation and taking the average, it will only do one simulation per show, as that’s more noisy and unpredictable.

Each corps’ initial skill curves come from their representative show. Then, the model performs the following steps every day:

  1. The simulator calculates each corps’ skill curves, which will need updated based on the previous night’s scores.
  2. The simulator removes all the real-world scores up to and including the current day. For example, July 2nd is Day 15 on the Drum Corona International calendar, so all real-world scores up to and including Day 15 in their own seasons are removed.
  3. The simulator does one simulation for each show that takes place to ensure that the results are independent, simulating different judging panels. For example, On July 2nd, there will be 3 shows, so the model will perform 3 simulations. The simulated scores for corps that performed in each show are recorded and used for the rest of the season.

As the season progresses, the simulated scores replace the real ones. This results in a fun feedback mechanism - a kind of random walk. If a corps has a randomly good show early in the season, it could result in the model giving them a better skill curve, which then results in better scores later in the season, and so on. This positive feedback loop means the outcome of the simulation will be really uncertain - almost any corps can win 4, and there should be some interesting story lines along the way!

Once voting is done, I will be posting nightly updates as the season progresses. You can follow them here, on Reddit, on Twitter, or you can bookmark The season will unfold similarly to how a real DCI season would, except there are no live performances to watch.

I think this will be a really fun way to get at least some of our drum corps fix as a community! If this gets enough support, I’d love to try getting in touch with individuals who marched in the shows that compete to tell stories and share their experience so that we have more than fake numbers to engage with!

Drum Corona International will become what we, as a community, make it. So share this with friends and go vote!


I hope you are enjoying Drum Corona International! People who do open-source projects like this often ask for donations to help cover expenses (like server costs) but luckily I’ve got that covered. Instead, if you’re enjoying any of my projects, please consider donating to the Michigan Drum Corps Scholarship Fund.

The Michigan Drum Corps Scholarship Fund is a 501(c)3 nonprofit that I cofounded to help support members of the Michigan band community who are interested in DCI. The organization offers scholarships to Michigan students marching or auditioning with any DCI drum corps. The economic implications of COVID-19 are broad, and I think scholarships programs like this are especially important for keeping drum corps accessible to everyone. Every dollar helps!

  1. I meant for this project to kick off sooner so that voting would close the first day of the season, on June 18th. But the pandemic and everything else going on has been wreaking havoc on my mental health, so I’m considerably behind schedule. Sorry.↩︎

  2. You can see this in action every year at DCI Prelims, where the Open Class corps all get scores that are 2-3 points lower than what they got while they were touring their own circuit starting in mid-July.↩︎

  3. Think I’m missing someone? Let me know ASAP!↩︎

  4. To get a sense for the uncertainty, I simulated the 2019 season 500 times using this process. The Cavaliers, who placed 5th in the real world, won some of them.↩︎