Is this the end of an Olympic ticket monopoly?

In recent years, Americans who want to attend the Olympic Games have been forced to buy tickets from CoSport, a small New Jersey company that rakes in millions.

David McBride was an Olympic fan his entire life. 

One of his friends coached Olympic volleyball teams, and another competed for the water polo team in the 1996 Atlanta Games. He always enjoyed stories about the Olympics representing a global community and spirit.    

When McBride heard Tokyo, his previous home, would be hosting the 2020 Summer Olympics, he decided this would be the perfect opportunity to buy tickets and see the Games in person.

That’s when McBride found out about the exclusive gatekeeper of Olympic ticket sales in America: CoSport.

After the Tokyo Games were canceled for foreign spectators and CoSport refused to refund ~$2k of the amount McBride had paid for his tickets, he lost sleep thinking about the company.  

“I kind of stewed on it a bit, feeling sort of like I’ve been taken [advantage of] by this big organization, this monopolistic entity,” McBride told The Hustle

Tickets for entry to the 2016 Rio Games (TASSO MARCELO/AFP via Getty Images)

You’ve probably never heard of CoSport or its parent company, Jet Set Sports. But every American who has purchased tickets to the Olympics for the past ~20 years has had to go through them. 

When the Olympics roll around, CoSport buys up almost every ticket available to Americans — and reserves thousands of hotel rooms and restaurant tables in the host city — then sells them back to the public at inflated prices.

The company has done so legally, with the blessing of Olympic host cities as an official “sponsor” and through a contract with the United States Olympic & Paralympic Committee (USOPC). 

Enjoying this article?

Get the Hustle’s 5-minute weekday roundup that keeps you hip to happenings in tech, business, and internet… things.

CoSport founder and co-CEO Sead Dizdarevic, has reportedly earned upwards of $30m in profit per Games from this relationship.

But after the uproar from Tokyo and years of complaints from customers, his reign as ticket king may be coming to an end.  

A bribery scandal and a huge payout

CoSport, then going only by Jet Set Sports, got its Olympic start in 1984, selling travel packages to the Sarajevo Winter Games to westerners.

Dizdarevic then paid for sponsorship roles at ensuing Olympics to manage lucrative hospitality programs for attendees, operating from a small office in New Jersey only for people in the know.

“We have an unlisted phone number… We don’t solicit anything. We don’t advertise,” Dizdarevic said in the late 1990s.

At the corruption-plagued Salt Lake City Olympics, Jet Set Sports got a big break, reaching an agreement with organizer Mitt Romney to be the official hospitality package sponsor for what The Salt Lake City Tribune reported was $20m.

Dizdarevic, who did not respond to an interview request made through his company, later testified as a cooperating witness in a bribery case that before he sealed the deal he and his sister-in-law paid $131k to 2 Salt Lake City Olympic organizers who were indicted on corruption charges. 

Sead Dizdarevic (Jet Set Sports)

The payoff for Jet Set Sports was immense.

Dizdarevic told The Wall Street Journal in 2002 the company made ~$80m in sales by:

  • Hosting 16k visitors
  • Booking and reselling 30% of Salt Lake City’s hotel rooms
  • Reserving 3 popular restaurants for 17 days in a row

And this was all before Jet Set Sports scored its best deal yet.  

Becoming the lone seller of US Olympic tickets

In the wake of the Salt Lake City Olympics and the bribery scandal, Dizdarevic notched an agreement with the USOPC to be the exclusive “authorized ticket reseller” for all US Olympic ticket buyers.

His company held this designation starting with the 2006 Torino Games and through last summer’s Tokyo Olympics. It has also been the authorized reseller for countries like Australia, Greece, Bulgaria, Sweden, and Canada.

Authorized ticket resellers are essentially designated scalpers. They exist because Olympic host cities, instead of directly selling tickets to consumers, sell them to sponsors (who pay tens of millions of dollars for the sponsorships) and to individual countries. 

Each country’s Olympic committee signs a lucrative contract with one designated reseller. The reseller finally sells the tickets to the public, at a maximum markup of 20% above face value.

The Hustle / Zachary Crockett

Attorney Jim Moriarty, who has filed lawsuits over Olympic ticket scams, says the convoluted process is likely more about optics than practicality.

“They don’t want to be caught being guilty of selling $10k tickets to the opening ceremony because if they did that, it would reflect adversely on the (International Olympic Committee [IOC]) and the local organizing committee,” Moriarty said. “But what they do, in effect, is exactly the same thing. They launder the tickets through the sponsors and through their various local committees.”

And Jet Set Sports had a way to make this arrangement even sweeter. It operated as the authorized ticket reseller under the name CoSport and continued to work with the IOC and host cities as a sponsor of hospitality programs as Jet Set Sports. 

So Jet Set Sports/CoSport had 2 avenues for profiting off the tickets: 

  • Selling them individually at the IOC-limited cap of 20% above face value. 
  • Combining the tickets into the hospitality packages, which it could sell for any amount (and often for $10k+).

As a seller of individual tickets, CoSport doesn’t operate much differently than Ticketmaster (which also faces monopoly accusations).

But CoSport’s ability to combine the tickets with the expensive packages gives it the power to reduce the number of regular-priced tickets available to the general public and push Americans, who have no other option for tickets, into paying for the premium packages.  

Exactly how many tickets end up in expensive packages at the Olympics is a mystery.

CoSport and the USOPC do not have to release any public data. But in 2006, CoSport said it had been allocated ~21k tickets for the Torino Games and sold ~55% individually, bundled another 25% into multiple event packages, and combined the remaining 20% into hotel packages.

The Hustle / Zachary Crockett

CoSport has won the equivalent of a gold medal as a ticket reseller and hospitality sponsor. Dizdarevic told The Seattle Times in 2009 he controlled ~8% of the world’s tickets at the 2010 Vancouver Games. At the 2008 Beijing Games, he said his company hosted 74k visitors through its luxury tours and made $20m-$30m in profit.

Host cities and the IOC have prospered, too. 

  • The cities want packed restaurants and hotels, and the packages ensure an influx of deep-pocketed foreign visitors. 
  • The IOC wants host cities to think they’re making money so it can convince other cities to host future Olympics.  

But there’s one group that has finished dead last at every Olympics: average people. 

“If I’m a consumer,” said Jim Reese, a sports management professor at American Public University and a former ticketing industry manager, “it doesn’t make it user-friendly.”

Making it hard to enjoy the Games

Denny Nivens remembers how Olympic ticketing worked before CoSport. 

He logged in through a lottery system of the previous official seller, Cartan Tours, and requested tickets. Weeks later, he would discover he got most of the tickets he wanted, including some of the best seats in the house. At the 1988 Seoul Games, Nivens sat one row behind Carl Lewis’s family for the sprinter’s gold medal run. 

Since CoSport took over, Nivens usually gets a fraction of the tickets he requests, often in the nosebleed sections.

He said CoSport has blamed the lack of availability on high demand. But Nivens and others suspect CoSport holds the good tickets for VIPs willing to buy hospitality packages and only releases them to average Americans after VIP buyers have passed.  

“It used to be just surprisingly easy to get the tickets to the events you wanted and get a hotel room and go to the Olympics and have a great time,” Nivens said. “And CoSport has just basically ruined all of that single-handedly.”

With nowhere else to go for tickets (other than scalpers on the street in the days before the Games), Americans have felt burned by customer service and confusing charges:

  • Ahead of the 2012 London Olympics, CoSport did not mail tickets many Americans had purchased, forcing people to wait in line for several hours to procure them at the start of the Games. Families who planned on sitting next to each other found their seats were scattered throughout the venues.
  • At the 2016 Rio Olympics when Americans ended up being charged 60%-80% more than face value for tickets after Brazil’s currency tumbled (a contract between the Rio organizing committee and CoSport prevented CoSport from changing prices to reflect the exchange rate more friendly to consumers).

“Their main concentration is on selling their very pricey tours,” said Allan O’Hare, who has attended 8 Summer Olympics. “So if you are buying tickets or the lower-level tours they’re not responsive at all. They’re not competent at all.”

The Hustle / Zachary Crockett

And then came Tokyo. 

In March 2021, the Japanese government and IOC announced they were banning international spectators from attending the Tokyo Olympics. Tickets that were sold to anybody outside of Japan were no longer valid.  

Shortly after the announcement, CoSport’s American customers received an email saying the company would refund 75% of their purchase (or 100% in credit). The company notified them it was keeping 25% — anywhere from ~$20 to thousands of dollars per client.

To be eligible for the 75% refund, customers had to fill out a survey discharging and releasing CoSport from all legal claims.

A class action lawsuit filed against CoSport may end up providing recompense but likely not for years. In a response to the lawsuit, CoSport claimed it didn’t have to issue any refunds based on its terms and conditions and was offering 75% “at great expense and at its own detriment.”

CoSport said in the lawsuit the Tokyo organizing committee had fully refunded it for the tickets it resold to the general public and that its monetary losses were from a lack of refunds for the hotels it had reserved. 

And yet the people who had purchased individual tickets — and not the expensive hotel packages — still were not getting full refunds from CoSport.     

Several customers told The Hustle they felt pressured to agree to the terms of the refund or risk not getting any money back.  

“As someone who grew up in the US and went to school in the US, they teach you about monopolies and that they shouldn’t exist. This monopoly exists,” said one buyer of Tokyo tickets who asked not to be identified because she fears getting blacklisted from buying future Olympic tickets by CoSport. “How is this possible? It just seems so wrong.”  

A new start, or another monopoly? 

This month’s Beijing Winter Olympics have been nearly empty. Tickets have been distributed to local fans only. 

Without the ticket sales and hospitality packages, CoSport has been sidelined. And it’s a feeling CoSport may have to get used to. 

The Hustle / Zachary Crockett

In the months after a furor erupted over CoSport’s handling of the Tokyo cancellation, CoSport received 2 doses of bad news.

  • OnLocation revealed in June it had paid at least $1.3B to be the IOC’s exclusive hospitality sponsor for the next 3 Olympic Games. The deal means OnLocation replaces Jet Set Sports as the United States’ official hospitality partner. 
  • In a statement to The Hustle, an IOC spokesperson said going forward the Olympics would have a “new, integrated” ticketing system in which the host cities would set global standardized prices. (The IOC did not respond to a question about whether CoSport’s handling of the Tokyo tickets impacted the change.)

“There’s no question that (CoSport’s) role will be significantly diminished,” says Ken Hanscom, COO of TicketManager.   

Whether a centralized system will actually mean better availability, better prices, and less hassle for average customers remains to be seen. Hanscom said the new system should be a past-due modernization, but could still leave people frustrated if algorithmic buyers cut the line.    

There are plenty of Olympic fans jilted by CoSport who will not bother to find out.

McBride, whose first in-person Olympic experience was supposed to be Tokyo, has no plans to buy tickets again. In fact, his experience with CoSport made him less interested in the Games than he’s ever been. 

He said, “I’m not planning to watch any of the Beijing Winter Olympics.”

Get the 5-minute roundup you’ll actually read in your inbox​

Business and tech news in 5 minutes or less​

Psst

How'd Bezos build a billion dollar empire?

In 1994, Jeff Bezos discovered a shocking stat: Internet usage grew 2,300% per year.

Data shows where markets are headed.

And that’s why we built Trends — to show you up-and-coming market opportunities about to explode. Interested?

[email-submission-form button-text="Join Free" include-trends-opt-in="true" success-url="https://thehustle.co/signup" default-source="thehustleco" default-medium="home-exit-popup" default-campaign="home-page" form-id="exit-popup-general" optinmonster-conversion="true"]
<script type="text/javascript"> var onloadCallback = function() { grecaptcha.render('verify-your-humanity', { 'sitekey' : '6LdddrcZAAAAALyttpvOqiwQGwq5BNhgDz4tMQGE' }); }; function getCookieValue(a) { var b = document.cookie.match('(^|[^;]+)\\s*' + a + '\\s*=\\s*([^;]+)'); return b ? atob(decodeURIComponent(b.pop())) : ''; } function getCookie(name) { var cookieArr = document.cookie.split(";"); for(var i = 0; i < cookieArr.length; i++) { var cookiePair = cookieArr[i].split("="); if(name == cookiePair[0].trim()) { return decodeURIComponent(cookiePair[1]); } } return null; } function setHiddenFieldValue(wrappingDiv, searchParams, className, utmName, cookieName, defaultValue) { var el = wrappingDiv.getElementsByClassName(className)[0]; var existingVal = el.getAttribute('value'); if (utmName == 'ref') { var newVal = searchParams.get(utmName) || getCookie(cookieName); } else { var newVal = searchParams.get(utmName) || getCookieValue(cookieName); } if ((existingVal == null || existingVal == '' || existingVal == defaultValue) && (newVal != null && newVal != '')) { el.setAttribute('value', newVal); } } function setHiddenFieldValueFromUtm( wrappingDiv, searchParams, className, utmName, defaultValue ) { var el = wrappingDiv.getElementsByClassName(className)[0]; if (el != null) { var existingVal = el.getAttribute("value"); var newVal = searchParams.get(utmName); if (newVal != null && newVal != "") { el.setAttribute("value", newVal); } } } function initForm() { var wrappingDivs = document.getElementsByClassName('email-submission'); wrappingDivs.forEach(wrappingDiv => { var sp = new URLSearchParams(window.location.search); setHiddenFieldValue(wrappingDiv, sp, 'funnel-source', 'utm_source', 'funnel_source', 'thehustleco'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-campaign', 'utm_campaign', 'funnel_campaign', 'home-page'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-medium', 'utm_medium', 'funnel_medium', 'home-exit-popup'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-referral', 'ref', 'funnel_referral', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-a', 'a', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-c', 'c', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-o', 'o', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-oc', 'oc', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-e', 'e', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-f', 'f', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-r', 'r', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-t', 't', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s1', 's1', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s2', 's2', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s3', 's3', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s4', 's4', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s5', 's5', ''); var error_message = getCookieValue('validate-email-message'); if (error_message && error_message.trim() != '') { var error = wrappingDiv.getElementsByClassName('funnel-error')[0]; var prev_email = getCookieValue('funnel_email'); error_message = prev_email + " is not valid. Please try again"; error.innerHTML = error_message; error.style = ''; } }); if (false) { initCaptchaFormV2(); } } function initCaptchaFormV2() { var v3RecaptchaResponseEl = document.getElementById('recaptcha-response-v3'); v3RecaptchaResponseEl.parentNode.removeChild(v3RecaptchaResponseEl); var wrappingDiv = document.getElementById('email-submission'); var subForm = wrappingDiv.getElementsByClassName('email-submission')[0]; var captchaVersion = document.createElement('input'); captchaVersion.class = 'g-recaptcha hidden-input'; captchaVersion.type = 'hidden'; captchaVersion.name = 'g-recaptcha-response-v2'; captchaVersion.value = 'true'; subForm.appendChild(captchaVersion); var captchaEl = document.createElement('div'); captchaEl.id = 'verify-your-humanity'; subForm.prepend(captchaEl); var captchaApiScriptEl = document.createElement('script'); captchaApiScriptEl.src = 'https://www.recaptcha.net/recaptcha/api.js?onload=onloadCallback&render=explicit'; captchaApiScriptEl.async = true; captchaApiScriptEl.defer = true; document.head.appendChild(captchaApiScriptEl); } function appendCheckboxes_email_submission() { var wrappingDiv = document.getElementById('email-submission'); var optInDivs = wrappingDiv.querySelectorAll('.trends-opt-in'); optInDivs.forEach(el => { el.style.display = null; if (el.getElementsByClassName('trends-opt-in-checkbox').length < 1) { var checkbox = document.createElement('input'); checkbox.setAttribute('id', 'trends_opt_in_email_submission'); checkbox.setAttribute('class', 'trends-opt-in-checkbox'); checkbox.setAttribute('type', 'checkbox'); checkbox.setAttribute('name', 'trends_opt_in'); var label = document.createElement('label'); label.setAttribute('for', 'trends_opt_in_email_submission'); label.setAttribute('class', 'trends-opt-in-text'); label.textContent = "Yes, I'd like to receive additional emails on hot business opportunities from Trends, by the Hustle"; el.appendChild(checkbox); el.appendChild(label); checkbox.click(); } }) } window.addEventListener('DOMContentLoaded', (event) => { initForm(); if (true) { appendCheckboxes_email_submission(); } }); </script> <div class="email-signup" id=email-submission> <div class="funnel-error" style="display:none;"></div> <form class="email-submission " id="exit-popup-general" action="https://cms.thehustle.co/api/v1/contacts/wordpress_create" method="post" autocomplete="email"> <div class="email-form-wrap"> <input class="funnel-source hidden-input" type="hidden" name="source" value="thehustleco"> <input class="funnel-campaign hidden-input" type="hidden" name="campaign" value="home-page"> <input class="funnel-medium hidden-input" type="hidden" name="medium" value="home-exit-popup"> <input class="funnel-form-id hidden-input" type="hidden" name="form-id" value="exit-popup-general"> <input class="funnel-referral hidden-input" type="hidden" name="referral_code"> <input class="funnel-fail-url hidden-input" type="hidden" name="fail_url" value=""> <input class="funnel-a hidden-input" type="hidden" name="a" value=""> <input class="funnel-c hidden-input" type="hidden" name="c" value=""> <input class="funnel-o hidden-input" type="hidden" name="o" value=""> <input class="funnel-oc hidden-input" type="hidden" name="oc" value=""> <input class="funnel-e hidden-input" type="hidden" name="e" value=""> <input class="funnel-f hidden-input" type="hidden" name="f" value=""> <input class="funnel-r hidden-input" type="hidden" name="r" value=""> <input class="funnel-t hidden-input" type="hidden" name="t" value=""> <input class="funnel-s1 hidden-input" type="hidden" name="s1" value=""> <input class="funnel-s2 hidden-input" type="hidden" name="s2" value=""> <input class="funnel-s3 hidden-input" type="hidden" name="s3" value=""> <input class="funnel-s4 hidden-input" type="hidden" name="s4" value=""> <input class="funnel-s5 hidden-input" type="hidden" name="s5" value=""> <input class="funnel-success-url hidden-input" type="hidden" name="success_url" value="https://thehustle.co/signup"> <input id="recaptcha-response-v3" class="g-recaptcha hidden-input" type="hidden" name="g-recaptcha-response" value=""> <div class="signup-icon" style="display:none;"> <svg width="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6Zm-2 0-8 5-8-5h16Zm0 12H4V8l8 5 8-5v10Z" fill="#848B92"></path></svg> </div> <input class="signup-email" type="email" name="email" placeholder="Your email address" required autocomplete="email"> <input class="email-submit om-trigger-conversion" type="submit" value="Join Free"> </div> <div class="validate-mistake-emails-message" style="display:none;"></div> <div class="trends-opt-in" style="display:none;"></div> <div submit-success> <template type="amp-mustache"> <p class="c-message c-message--success">Thank you for subscribing.</p> </template> </div> <div submit-error> <template type="amp-mustache"> <p class="c-message c-message--failed">Your submission failed. Please try again!</p> </template> </div> </form> </div>