DCI's Longest Tour in 2023

We counted the miles, here's how far they went.

Congratulations to the Mandarins, who traveled 7,491 miles during the 2023 tour, the furthest distance of any corps. Here’s the list of the Top 10 longest tours in 2023:

Corps Total Show to Show Miles
1. Mandarins 7,491
2. Gold 7,320
3. Boston Crusaders 7,240
4. Blue Devils 7,193
5. The Academy 6,786
6. Phantom Regiment 6,470
7. Pacific Crest 6,353
8. Troopers 6,319
9. Colts 6,287
10. Blue Stars 6,108

Wait, wait, wait! Wouldn’t more shows just equal more distance? Who had the most shows? What about the average distance per show?

We’ve got you covered.

For these rankings we required that a corps have at least 10 shows in order to be included.

Corps Total Show to Show Miles Tour Stops Average Distance
1. Boston Crusaders 7,240 18 425.87
2. Gold 7,320 19 406.65
3. Bluecoats 5,416 15 386.83
4. Blue Devils 7,193 20 378.57
5. Mandarins 7,491 21 374.55
6. Music City 5,132 16 342.13
7. Phantom Regiment 6,470 20 340.51
8. The Academy 6,786 21 339.31
9. Southwind 4,037 13 336.45
10. Pacific Crest 6,353 20 334.36

We found it a little surprising to see Gold so high on the average list so we dug a little deeper and added one more analysis. This time we took at look at the longest legs between two consecutive shows. Once we had this view, there was yet another mystery…

Corps From To Distance
1. Gold Bellflower, CA Fairfield, CT 2,845
2. Guardians San Antonio, TX Orrville, OH 1,420
3. Boston Crusaders Atlanta, GA Lawrence, MA 1,092
4. Bluecoats San Antonio, TX Atlanta, GA 989
5. Crossmen Rockford, IL Denton, TX 958
6. Spartans Quincy, MA Lexington, SC 946
7. The Cadets Quincy, MA Lexington, SC 946
8. The Cavaliers San Antonio, TX Trussville, AL 880
9. The Battalion Fort Collins, CO Apple Valley, MN 878
10. Boston Crusaders Quincy, MA Mason, OH 870

Gold travelled 2,845 miles between their show in Bellflower, CA and their next show in Fairfield, CT. Quite the trip. How did they manage to travel so far? They departed from Long Beach Airport on July 19th and flew over to the east coast. I say it still counts. :grinning_face:

The calculation for total tour distance that we used is not perfect by any means, but it’s a good approximation. We started with the first show for each corps in the season and then calculated the distance to each successive show. The distance between each show was calculated using the Google Maps Route API, which takes into account the actual roads that a corps might travel. And no, we didn’t account for the flight from California to Connecticut for Gold, so they get the benefit of having flown but granted the mileage as if they drove. Lastly, our rankings certainly aren’t perfect. We don’t account for how far a corp traveled from their spring training site, to their first show. We also aren’t taking into account free day trips, stopping at the local Walmart, laundromat, or any other side trips that a corps might take.

What’s that? You’re a programmer and you want to double check the work? Here’s the code we used to calculate the distances. This is implemented in python using the Google Maps API.

import json
import requests

# This script calculates the distance between tour stops for each organization in the 2023 season.
# It uses the Google Maps Directions API to calculate the distance between each pair of consecutive stops.

# The API requires a key which you can obtain through your google cloud account
api_key = "SUPER_SECRET_KEY"
url = 'https://routes.googleapis.com/directions/v2:computeRoutes'

# the headers include our API Key as well as the requested information, here limited to distance in meters
headers = {
    'Content-Type': 'application/json',
    'X-Goog-Api-Key': api_key,
    'X-Goog-FieldMask': 'routes.distanceMeters'
}

# boring database stuff removed here where we get the tour stops for each organization
# ...
# ...

# in the data we'll specify the origin and destination for the route, as well as the travel mode
data = {
    'origin': {
        'location': {
            'latLng': {
                'latitude': tour_stop[0].latitude,
                'longitude': tour_stop[0].longitude
            }
        }
    },
    'destination': {
        'location': {
            'latLng': {
                'latitude': tour_stop[1].latitude,
                'longitude': tour_stop[1].longitude
            }
        }
    },
    'travelMode': 'DRIVE',
    'computeAlternativeRoutes': False,
    'routeModifiers': {
        'avoidTolls': False,
        'avoidHighways': False,
        'avoidFerries': True
    },
    'languageCode': 'en-US',
    'units': 'IMPERIAL'
}

# with the headers and data prepared we can call the API
response = requests.post(url, headers=headers, json=data)

# the response is in JSON format, so we'll parse it and extract the distance
route_result = json.loads(response.text)
route = route_result['routes'][0]
leg_distance_meters = route['distanceMeters']

# convert the distance to miles
leg_distance_miles = leg_distance_meters / 1609.344

# then we save that information
# and loop around and do it again, for each organization and all stops
# ...
# ...

It would be interesting to run a traveling salesman algorithm on the tour stops for each corps to see if we could find a shorter route. Of course that would require rescheduling some shows perhaps, and we couldn’t optimize for just one corps, but find the optimal solution for everyone, which makes the combinatorics of the problem much more difficult. Still, it would be interesting to see what the results would be and how that might impact the cost of the tour. Gas is expensive after all.

Do you have feedback? Ideas for improvement?
Stats you want to see?
Please let us know!

Email Us Here