You are here

Misreported Earnings

We have found an interesting and predictable method of producing returns based on incorrect company data reported by online media, or stored in trading platforms. This involves finding companies with incorrect earnings dates stored in these systems and then finding trades performed by individuals who are making decisions based off these incorrect assumptions.


In 2014, we stumbled upon DTE Energy Company, and noticed a discrepancy in earnings reporting date between two finance sites. In this case, it was Yahoo's Finance API and Bloomberg Business. We ended up emailing the investor relations email address found on the company website and determined that Yahoo Finance actually had the correct date, and Bloomberg business was incorrect by two weeks. We asked a friend to check on a hunch that the Bloomberg Terminal information would be the same as the information displayed on the Bloomberg Business website and our friend confirmed the suspicion. This meant that every trader using a Bloomberg Terminal and trading options on the company would be doing so with the incorrect assumption that the earnings would be released before the actual date.

There are several trades to capitalize on incorrect earnings. We chose to implement our trades based on whether the true earnings date was before or after the date seen on the Bloomberg. If the true earnings were to be released earlier, we traded long staddles, with an expiry date between the two dates. This call and put would be sold after the first date. If the earnings are being reported late then we would bet that the price would move before others anticipated and would either use short straddles, or long iron condors if the stock in question was had a history of massive swings in price, in an effort to minimize risk. Another method we are actively pursuing is trading on the stock's volume. Since a stock's volume increases heavily due to earnings release, we can bet that the volume will be different than anticipated. The issue we have had with trading on volume is that all methods we investigated required more capital than we could invest giving our company's risk tolerances.


We started out with a list of companies that have allow options to be traded on them. From this list, we use Yahoo's finance API to merge each company symbol with its next earnings date. We programmatically scrape the Bloomberg company data profile for the earnings date. Afterwards, we do some basic formatting to get the data in a comparable format. The data is then compared and any discrepancies are saved to a external feed. It gets a little tricky since earnings releases are often given in date ranges rather than a single date of the estimated release. We have experimented with automating some sort of email generation script to confirm the date with investor relations teams, however, emails do not get enough of a response rate to worry about the necessary work going into parsing the human generated responses. Calling the companies works, but is time intensive and is not the type of work we would like to focus on. This method has a lot of false positives so we need to either farm out the work, using, for example, Amazon's Mechanical Turk, otherwise we only find a handful of companies to work with each earnings season.

The amount of data we are dealing with is not substantial when compared with other data sets we have worked with. We run the scrapers and API calls with server side JavaScript and store the results in a MongoDB server. After merging the data, we are emailed with any possible companies that fit the bill, along with any text that was not parsed correctly, which happens fairly often. The only bottleneck is that after feeding the initial list of every company traded on the main US exchanges to our scripts, the Yahoo servers do throttle our connections after we hit them for information tens of thousands of times.

After paring down the list, we message associates that have access to a Bloomberg terminal and determine which companies have the desired discrepancies and can be traded on. Since the terminals can run up to $40K per subscription, we don't yet have the capital to operate entirely independently.

© 2016 MVS Financial. All rights reserved.