We are excited to announce the official release of the Python mdodata package!

Along with our mdo.data package for R, the mdodata package for Python provides users with a powerful API for calling equity data into their R or Python environment. The mdo.data and mdodata packages use the same methods and share a common back-end, which makes it seamless to translate from one language to another.

What is MDO?

MDO provides common methods for retrieving data from equity research databases. MDO is a data extraction layer that enables access to databases like QA Direct from Refinitiv.

Key Points:


How does MDO save you time?

Shorter learning curve

In MDO, you only need to learn 3 primary functions in order to get up and running. These common data retrieval methods are used for all of the data items.

Smoother transition from research to production

You can use the same data retrieval calls for research and production. You only need to tweak a few function arguments to promote a research factor into production.

Less Code

Other data extraction methods require users to write complicated queries OR use many different functions. Extracting data from multiple vendors like Worldscope, I/B/E/S and Datastream in SQL could require 8-10 table joins and 50+ lines of code.

In MDO, you can call multiple data items from multiple vendors in 1 line of code. All adjustments, currency conversions, unit conversions, and date alignment are done on the backend.

As an example, in just 4-5 lines of code we can retrieve:

  1. Index Constituents for last 10 years for DJ STOXX Global 1800
  2. Price, Shares, and Security Info on each month end date from one or multiple sources
  3. EPS for last 4 quarters on each date from multiple sources (Worldscope, IBES V2, and Reuters Fundamentals)

MDO Maintains The Software

Regular enhancements, performance improvements, and bug fixes are passed on to the client via a monthly release cycle.

Vendor Data Nuances

Users do not need to spend time dealing with nuances of each vendor.

A “short list” of common issues we solve for:

  • Securities that change currency throughout time
  • Securities that change fiscal periods throughout time
  • Some currencies scaled in billions while others scaled in millions for the same vendor
  • ‘Parent’ vs. ‘Consolidated’ values – which to use?
  • Differentiating between restated and unrestated data
  • Differentiating between preliminary and final data
  • Returning data in a common currency
  • Properly uncumulating cash flow data
  • Converting currency values to a single scale (e.g. all in pounds in UK)
  • Adding appropriate start and end dates for historical time series mapping

Contact Us

Whether you use Python or R (or both), you can use these intuitive common methods to acccess data. We offer fast and efficient data retrieval for pricing, fundamental, and estimates data, as well as your own custom data.

Contact us today at for a product demo.