Summary
Investing effectively is largely a game of information access and analysis. This can involve a substantial amount of research and time spent on finding, validating, and acquiring different information sources. In order to reduce the barrier to entry and provide a powerful framework for amateur and professional investors alike Didier Rodrigues Lopes created the OpenBB Terminal. In this episode he explains how a pandemic project that started as an experiment has led to him founding a new company and dedicating his time to growing and improving the project and its community.
Announcements
- Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science.
- When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
- Your host as usual is Tobias Macey and today I’m interviewing Didier Rodrigues Lopes about the OpenBB Terminal, a modern Python-based integrated environment for investment research
Interview
- Introductions
- How did you get introduced to Python?
- Can you describe what OpenBB is and the story behind it?
- What is the problem that you are trying to address by creating the OpenBB project and providing it as open source?
- What are some of the use cases where someone might need to use this project?
- The elephant in the room for financial data research is the Bloomberg Terminal. What are the other tools or services available for that purpose?
- What are the differentiating features of the OpenBB Terminal?
- Can you describe how the OpenBB Terminal is implemented?
- How have the design and goals/scope of the project changed since you started working on it?
- Can you describe a typical workflow for someone who is using the OpenBB Terminal?
- How have you approached the user experience design, and what are you optimizing for?
- What kinds of utilities do you offer beyond raw data access?
- What are some examples of data sources that you rely on?
- What is involved in integrating a new data source?
- What are the extension points and integration capabilities for expanding the functionality of the tool?
- What are the most interesting, innovative, or unexpected ways that you have seen OpenBB Terminal used?
- What are the most interesting, unexpected, or challenging lessons that you have learned while working on OpenBB Terminal?
- When is OpenBB Terminal the wrong choice?
- What do you have planned for the future of OpenBB Terminal?
Keep In Touch
- DidierRLopes on GitHub
- @didier_lopes on Twitter
Picks
- Tobias
- Vikings: Valhalla show on Netflix
Closing Announcements
- Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
- Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
- If you’ve learned something or tried out a project from the show then tell us about it! Email hosts@podcastinit.com) with your story.
- To help other people find the show please leave a review on iTunes and tell your friends and co-workers
Links
The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
Hello, and welcome to podcast dot in it, the podcast about Python and the people who make it great. When you're ready to launch your next app or want to try a project you hear about on the show, you'll need somewhere to deploy it. So take a look at our friends over at Linode. With the launch of their managed Kubernetes platform, it's easy to get started with the next generation of deployment and scaling powered by the battle tested Linode platform, including simple pricing, node balancers, 40 gigabit networking, dedicated CPU and GPU instances, and worldwide data centers.
Go to python podcast.com/linode, that's l I n o d e, today and get a $100 credit to try out a Kubernetes cluster of your own. And don't forget to thank them for their continued support of this show. Your host, as usual, is Tobias Macy. And today, I'm interviewing Didier Rodig Loebch about the OpenBB Terminal, a modern Python based integrated environment for investment research. So, Didier, can you start by introducing yourself?
[00:01:10] Unknown:
Yes. Hi, Tobias. Thank you for having me. My name is, Didier Rudixlops, and I started GameStorm Terminal, 1 1 year and a half ago, and now it's called OpenBV terminal. I'm originally from Portugal. I was born in Switzerland, but I'm Portuguese. I'm currently living in London and working on the OpenBV terminal full time. And do you remember how you first got introduced to Python? I'm a bachelor in electrical and computer engineer from Portugal, and then I went to do a master in control systems at Imperial. And at the time, we used a lot of MATLAB. When I left Imperial to join the software engineer world on my spare time, I wanted to get into data science and machine learning, and Python was the best tool to play with the data and machine learning. So that's what I started learning on my spare time. And coming from a MATLAB background, it was very, very easy and intuitive to learn Python. And after I fell in love with the language and how fast I was able to achieve things with it.
[00:02:01] Unknown:
In terms of the OpenBB terminal, can you give a bit of an overview about what it is and some of the story behind how it came to be and what your overall goals are with it?
[00:02:11] Unknown:
Yeah. So OpenVPN is an investment research, platform for everyone, anywhere. And it all started because I wasn't happy with any of the investment research platforms, although They were either too expensive or too limiting in terms of features and data. And being myself like a software engineer, enjoying 2 code, I really like something that I could customize in my own way, and there was nothing like that out there. I was learning about investment at the time. Right? I was spending a lot of time on Reddit, looking into these due diligence posts. And I felt like the person writing this post about, like, let's say, a Tesla or Apple, they would have, like, a lot of time put into that. And that post would be, like, meaningless the week after because the things change. And if we're looking at the different stuff, you know, the same happens is the post is no longer relevant. And coming from an engineer background, I was like, like, you know, there's no way this cannot be automated.
And, you know, that's a bit where I wanted to go because I I had a full time job. So I just wanted to save the most time I have on my spare time to just focus on what I was investing and not having, like, 13 browsers open to check for something. Right? So, basically, I started working on the terminal on the COVID break because I couldn't visit my family because of COVID. I just started leveraging, like, free API, tires, and I started building the terminal, which was basically, like, a gateway to have access to all this data. And when we talk about, like, 50 plus data sources, the amount of free data that you can get is actually quite insane because they don't correlate with each other. So provider x may give you news, provider y may give you historical data, providers that may give you, like, options. And this is just for stocks. Right? But then there's ETFs. The same goes for forex, for bonds. That's how it started. And at the beginning, I started with it closed source because my idea was to set up a strong architecture so that then people could come and build on top. And after 2 months of working it on my spare time, like, 4, 6 hours a day on top of full time job, I put it live, and I've been doing, like, open source projects for a while. But this was the first 1 that I actually put on Reddit because I just thought, you know what? I learned so much from Reddit. I think that, you know, people may find it interesting. And in, like, 24 hours, he got over 4, 000 stars, which was, like, crazy, like, a top and Hacker News. We got, like, a post on VICE Magazine the the week after, I believe. Yeah. The rest is history. And fun fact is actually that the name of the terminal was was something different at the time. But because I was involved on the whole, GME thing, and I love Elon Musk, and he he put something about he put, like, Gamestonk on the tweet. You know? I just thought, you know, Gamestunk terminal actually sounds pretty neat.
[00:04:38] Unknown:
As far as the use cases that somebody might have for it, you mentioned that there were these due diligence posts that kind of inspired you to go down this path, but what are some of the different applications that people have for doing this type of financial research and some of the limitations in the different systems that exist? You mentioned that some are too expensive, some are limited, but what were some of those limitations that you're looking to overcome and the specific audience that you're trying to reach through this project?
[00:05:08] Unknown:
Yeah. So there's a couple of things out there. So there are very, very good platforms out there. But I feel like, first of all, none of them is really customizable. So so they can give you some layers of freedom. But you end up seeing that a lot of people that are known in in the retail workforces have really customizable tools like Excel spreadsheets and things like that. And then then if we go into institutions, what happens is that, they have, like, these investments research reports that they create, but the data belongs to the hedge fund or the bank or whatever entity they are attached with. And we're trying to do is kind of being, like, this 1 stop shop for invest investment research where people can just rely on our platform and and the the data they can reach within it and create their own, like, research reports. Right? There are other tools out there that has, you know, trading view, like, a refund of icon and a couple of more. But they are very good at what they do and very focused. So there's this, like, a straight off where they are very, very expensive, and they and they provide, like, a big coverage, or they are, like, much cheaper, but they are very focused on 1 topic. And what we're trying to do is, you know, everything in 1 place. So not just focus on stocks or crypto, but actually at both because, like, you know, the Bitcoin soaring prices may have an impact on the price of Apple. You know? Or, for instance, something that we allow our users to see is that if you look into the Google search interest for the word quarantine, you'll see that that interest goes up. The per the stock price of an airline goes down, you know, and that's type of, like, a correlation and analysis that our platform allows you to do.
[00:06:36] Unknown:
And the obvious elephant in the room and what I'm assuming the name is inspired by is the Bloomberg terminal, which I've heard a lot about in various contexts. And I'm wondering what you see as the differentiating features that the open b b terminal has and some of the cases where the Bloomberg terminal might still have the advantage or some of the ways that you're looking to not necessarily compete with, but at least provide an alternative to that for people who don't necessarily have the capital available to be able to invest in what I understand is a quite substantial subscription cost.
[00:07:12] Unknown:
I think from marketing standpoint, I gotta say that I love people comparing us to Bloomberg terminal because I think that, you know, that helps us a lot. But, honestly, I don't see us as a, you know, a Bloomberg competitor. I think we are after a different type of market. And even, like, our name is actually not related with the Bloomberg. So the BB actually stands for because me and James, 1 of the other founders, we were investing in Blackberry at the time, and we were losing quite some money on it. And to kind of keep the tradition of, you know, losing money on GME, so calling the terminal GameStop and then losing money on on Blackberry and, you know, calling it it, like, open BB and because of the defect. So that's, you know, where the name comes from. Yeah. Going back to your question. So I think that 1 thing that Bloomberg is very, very good, is is that they really have, like, a very strong ecosystem. And people that are currently using Bloomberg, they won't shift for any platform, like, anytime soon, and, you know, that is completely fine. But I can tell you, for instance, that none of my friends can afford the Bloomberg terminal. Right? And then another thing that you can't do is stand I've talked with people on the industry is that they can't really build, proprietary features on top of the platform. Right? So where is it? Our leading investor, JJ, he always says, like, okay. Open b b terminal is not the open source of Bloomberg terminal. Bloomberg terminal is actually the proprietary version of an open BP terminal.
You know what I mean? So the the the idea is that people should be able to fork, like, our project and build their own terminals from it. And that's something that no other, like, tools out there can do because we are open source and also Python based. Right? The the choice of the terminal being Python is not just, you know, random. It's actually because it's really, really easy to build on Python. And we're talking about all these kind of science degrees, economics degrees, maths, data science. Everyone is learning Python these days in university, and and we want to leverage that. We want the people, the community to help us build this tool because that's the only way we can actually achieve, like, you know, a full, like, asset coverage and all the markets.
[00:09:05] Unknown:
And so in terms of the actual project, can you talk through some of the implementation
[00:09:10] Unknown:
and the architecture and user experience design that goes into it? So the terminal is 100% in Python end to end, as I said. So the idea was that we really wanted to be able to ship features faster, and we are currently using, like, a standard model view controller design. So, basically, we have the model to handle the data API sides. We have the views to display the data on the terminal or other as I'm gonna speak in a second. And then we have the the controller, which basically ends the user parameters arguments when they call the commands. And the idea about this convention is that the model can be reused for all the front end apps. So 1 day, someone may want to port our terminal and build their own, like, dashboard or application from it, and they can just rely on the model and create their own controller and view, for that specific use case. In terms of, like, the design, so I think that 1 thing that changed, like, a lot was at the beginning. There was, like, no color. There was no style. There was, like, just the idea was to be able to achieve features faster. But as we started growing the community, we understood that, you know, we need to really have, like, a strong branding because that's very important when it comes to having that good community around you. So we put a lot of focus on the coloring, the logo, everything from the design perspective. And now if you see our term our charts out there, you will probably know that they come from the OpenGrid terminal because they are very distinguished shipped than others. The architecture is in terms of how you access commands. It's actually very straightforward. So we have this kind of high level, like, context where you have, like, for instance, ETFs, crypto, stocks. You have, alternative data economy, and I foresee 1 day having, like, real estate and things like that. Then you go in and you have these multiple menus. So for instance, on stocks, we have, like, due diligence, technical analysis, like, screeners, a bunch of other options. And then when you go inside that, that's when you start adding comments that those particular things. So that can be, like, that full data that can be, like, inside the trading that can be, like, price targets from company that can be news. You know, that's 1 thing that we wanted to make sure is that it's really easy to understand how you go from, you know, the big layer to a command in specific. And because we come from this engineering background, we wanted to allow someone to automate this process. So not only you starting to play with the terminal and then to do this every time, but you being able to remember the the path to that command and copy it to a file. And then 1 day, you wake up in the morning and and you go grab a coffee. You run this file, and it just does the same commands that you would do otherwise, but a couple of seconds without you having to type everything.
[00:11:39] Unknown:
And as far as the interfaces that it provides, looking at it, it seems that it's primarily terminal based, like, from an actual terminal initially, but that it also has Python APIs available so that you can just write wrappers around it, and then it also has some integration with the Jupyter ecosystem. I'm wondering if you could just talk to some of the different ways that people might want to interact with it across those different interfaces.
[00:12:04] Unknown:
Yeah. As you said, like, mostly is the terminal, then we have a back end API. And we use that actually for the these terminal reports that we are very bullish about, where we allow someone to create, like, their own reports, not only in terms of the image that they display on these notebook templates where we run them through paper mill, but also from the fact that they can actually produce a more set of rules where, for instance, instead of just having a customized a lot of, like, report that shows charts and tables and raw data, they can actually say, you know, oh, if there is not being, like, any cell in terms of insider trading for the past 1 month and if the stock price has been going up and if, I don't know, the keep up stars of the project has been going up, something like that, you know, you can say that at the top, you can say, okay. It means that my confidence is at least, like, 60%, and I probably should have a more in-depth look into this report. You know? So we really want to automate the way to do investment research reports. So that's why we put a lot of emphasis on the API. And on the back end side, 1 of the things we realized when the terminal went viral last year, a lot of people started mentioning that the best thing about Bloomberg terminal was the shot. Right? Was the shot because you can speak with people about Apple, Tesla, or whatever. I started realizing that, you know, that's actually true. At the time, I was I'm still learning about investment research. And I was talking to my friends about what I was investing, if it was a good idea or not. But then I started, like, thinking further about this, and I was like, okay. Imagine that I actually have access to a platform like that. What would happen is that, me and my friends, we would be on a shopping platform such as Discord or Slack or Telecom, and we would have to move to that platform in order to shut the bottom investment. I was thinking, like, you know, the data flow is wrong. Like, if the data should come to us, if we are already interacting on a shopping platform, like, it would the user shouldn't have to pop onto another platform. So this is something that we are working, like, behind the scenes on this kind of, shutting bot. And the team was already able to create this attraction layer that, will work on the Discord, Slack, GroupMe, and Telegram so far. And, basically, we just bring the data from the terminal into the shutting platform where you already have conversations with your peers. This is why the back end data is is super important for us. In terms of the actual workflow of somebody who's maybe iteratively exploring some analysis, trying to figure out what are the correlations that I'm interested in, what are the different stocks that might be related to a particular
[00:14:21] Unknown:
asset category. I'm wondering if you can talk through that type of workflow. And then from saying, okay. These are the pieces of information that I'm interested in. I wanna be able to monitor this over the long term or build some sort of regression model to understand, you know, the potential future trajectory of this asset class, just that overall workflow from, you know, initial idea through exploration to automation and, you know, turning it into a kind of repeatable workflow?
[00:14:48] Unknown:
That you put it exactly correct. That's exactly the idea. What typically happens is a user starts using the platform and starts understanding that, you know, we have access to a lot a lot of data, and they can also build their own proprietary features on top of it. Right? So they start first playing with the data and understanding what we offer, mean, you know, what type of command we have available or to interact with them, and they learn about that. Right? Then the second step is they start building their own, like, routines where they put, like, a queue of commands And, basically, what used to be research for 1 equity, they basically put that on the file so that they can use this for other equities. And then they can they iterate this document and improve it over time towards what makes sense. So for instance, let's say you are interested on looking into, I don't know, a simple moving average of the stock price, and you realize that, you know, this actually is not that interesting for me. So 1 thing that you can do on the platform is, like, you can remove that from the file, and you no longer have to have that noise, like, let's say, being output. Right? And this is kind of the first step. And 1 of the things that we are working now to make even easier is from these routines are actually be able create an investment research report. So not just splitting the data of the terminal, but actually putting it into a nice, like, PDF or HTML even with, like, your personal logo brand and being able to use our platform to distribute this to our audience. Right? Because at the end of the day, we are a lot of community. So we already allow a lot of things, like, for instance, screeners that are set up by people in the community. And we already allow people to create their investment research reports and merge it into the platform so that other users can use. Right? So these are things that we want to leverage in the long run. And as you say, you know, this is just like a part of it, but then because we also have a lot of emphasis on machine learning and AI, we already have that capability where you can use not only the historical, like, for instance for Apple, but you can actually use multiple different time series to predict, like, a stock price or a movement up and down. And these are things that data scientists, for instance, can use in order to put on their personal reports. And as far as I know, you know, there is no other platform that allows for putting as much data as an input of, like, a machine learning AI model and then, you know, put it into, like, a report along with, like, raw data or, like, price targets from different analysts from institutions.
[00:16:59] Unknown:
As you're discussing the sort of different use cases and being able to access some of the historical reports of stock tickers. I know that there are whole businesses where that's their entire purpose is to be able to provide access to those different data assets so that you can do some, you know, model training to be able to say based on historical data, you know, I'm going to train on data from, you know, 2, 000 through 2010, build a regression model on the Apple stock, and now I want to play that against, you know, the period from 20 to 2020 to see how well my model performs so that I can determine whether or not I actually want to employ this for making, you know, purchase decisions for forward looking investments. I'm wondering how you see yourself comparing to those types of businesses as well beyond just the kind of financial research ecosystem that we discussed with the Bloomberg terminal, but also in terms of things like other companies that are operating in that space as well?
[00:17:57] Unknown:
So I know a couple of people that are doing something like that, but I don't think they allow a big level of freedom towards what you can do. So for instance, I can give you an example. So when you look into, like, financial courses that are related with the data science and allow people to use, like, for instance, Yahoo Finance data, right, to build, like, some AI machine learning model. Most of the times, what happens is someone spins a notebook, and they just import, like, Yahoo Finance. But that's what they do, you know, just Yahoo Finance. But there's so much more data out there. So we're talking about you can put, like, for instance, the tweets of Elon Musk, you know, when you are trying to predict the stock price of Tesla, you can put, like, price targets from other analysts on your model. You can put, like, Google search words for, like, a model 3 of Tesla. You know? Like, there's so much data out there that we really all want to allow data scientists and developers, people to gather around the platform and build these machine learning models with much more and more data than what currently is available. And that's 1 of the reasons also the platform is Python. Right? It's because these people are like, they are used to Python. They believe in this Python and notebook environments, and that that's what our platform is all about. Right? So at the end of the day, 1 of the reasons we are not focused on the web based interface is because we want to optimize for this, you know, speed of creating investment research and also creating, like, these machine learning and AI models and actually playing with the data. Right?
[00:19:15] Unknown:
And then going back to the due diligence example that you mentioned in some of those Reddit posts, what are some of the ways that somebody might use the OpenBb terminal to be able to actually make that a, you know, richer and living evaluation to say, I'm making these determinations based on stock data at this point in time, be able to kind of provide a snapshot of the data as it existed. But then, you know, here is the current state of affairs and maybe some initial forecasting so that it can be something that is more long lived and so that people can invest roughly equal amount of energy in putting together that due diligence, but it has a longer lifespan where it's actually providing utility and value beyond just that, you know, single snapshot in time?
[00:20:00] Unknown:
So what we are using for this is basically notebooks and then leveraging, like, paper mills for it. So, basically, we create a template and people are able to rerun it. And when it reruns, it basically just uses a new fresh data. Right? So for instance, what we don't have is, like, live reports that basically if I refresh the browser, like, all the data is updated. Now what happens is, like, you run 1 of these reports, and at the time, the data that you get is the data that is reported that appears on the report and that you can be able to write, like, for some are down sell with your comments in the end. Right? And so 1 of our ideas in the future is because I personally love Reddit, but I I don't feel like Reddit is the place where investment research should happen. I just don't think that, you know, it's the ideal tool. So 1 of the things that we will want to do is actually build this community page of OpenBP where people can share their reports, and people can discuss about it. So we're talking about, like, the distribution of this investment research.
And another very interesting thing, which is, like, people can be held accountable for what they said. Right? So for instance, if I'm saying today that, you know, you should buy Apple because, you know, the price is gonna shoot up, like, 20% or something in the next month. Right? In the next month, we're gonna be able to keep the track of what these users said and kind of, in a way, gamify the game and then making sure the person that is actually doing financial advice, you know, is held accountable for what they forecasted using their data. Right? Because 1 of the things is and I think that's, again, this is to say that the OpenBV terminal can bring a lot of value to these type of people is that when I was reading these reports, right, when you look into the charts that they use, we're not talking about just charts from 1 source. Right? We're talking about charts from, like, 3, 4, 5 different sources. And, you know, adding the different platforms where they get this data, it just shows, like, how much effort and how much time spent onto this research. Right? But if you can build an automated way to just get this data from the same platform and then just being able to switch it bigger and that we just rerun the same template, like, that's a massive value, not only for retail, but also for institutions where they don't really care about the infrastructure because we provide that, and they can just customize
[00:22:05] Unknown:
the report as they want in terms of organization, what matters, what doesn't matter for them, and just use our platform to run on top of it. In terms of the data sources, you mentioned that in the initial iteration, you were looking at various APIs that had different free tiers, so you're aggregating across those. And I'm wondering what your evaluation process looks like for determining what data sources to include in the out of the box project for somebody who just does a, you know, PIP install, open b b terminal, and, you know, they just wanna get up and running versus data sources that might need to be explicitly configured with an API token to be able to access it or helping people understand what are the thresholds as far as what the free tier incorporates and when you have to move into a paid plan. And then as far as productizing it, some of the additional data sources that you might want to offer as a service for people who are using your managed product version of it. Yeah. So I think that how it started is basically
[00:23:07] Unknown:
I started building it for myself. Right? So I started looking for data sources, understand what they offer, surprises. If I had the same type of data, I would look for the data source that would allow me to do more API requests per day. Right? API calls per day. Right? So that's how it started. When the terminal went live, then it was no longer only about myself, but we started inquiring about the community and then trying to understand what type of features they wanted. So what started to happen is that people actually would message me and say, oh, can we integrate this data provider? Because I really want to have a look at this data. Right? So that's, like, how things have evolved. Right? But now then what happened is that some people, for instance, for the the same type of the stock price. Some people ask from different data sources to give the same type of data. So we started implementing that where, basically, you can draw a flag on the platform, select the source of where the data comes from. So we are actually giving you a choice in terms of, you know, what data source you want. Right? So this is the current state, and we started growing on there. And 1 thing that we want to make sure is that there aren't duplicates of commands. So, basically, commands that's, you know, have a different kind of name, but they are, like, in essence, the same. So what we would rather is just have a source flag that basically may display the same concept based on what source the user is selecting. Right? And now the next step is, like, we put a lot of emphasis into making sure that the platform was completely free. Right? Because that's how I started and what my pinpoint was. Now that we are on the stage where we have 50 plus date data providers and we are only leveraging the free API tiers, what can happen is that we cannot start integrating paid API keys. Right? Because this allows for, more advanced user or a more serious, like, equity analyst to leverage, like, faster data, be able to do more API calls, having more reliable data. We want this to happen, but we just didn't want to start there because we want more people to use our platform. And, currently, the only price you pay is actually having to register with these data providers and get the free API key from them.
[00:25:02] Unknown:
Then for somebody who wants to add an additional data source to be able to incorporate it in their analysis, what's the process for actually being able to plug that into the OpenBB terminal and say, you know, I've got this, you know, stock ticker data, and now I actually want to pull in the CNN news feed to be able to understand, you know, what are the world events that might impact the stock that I'm analyzing?
[00:25:25] Unknown:
Yeah. I think so. The first thing is usually to register for the API key, right, with this data source and get familiar with their API documentation. So how are they gonna call the these? Then the second step is understanding, like, our terminal structure and where that common fits. Right? And then once that's out of the way, it's actually fairly straightforward to add to our platform. We spent a lot of time on having a strong contribution guidelines. And we have linters. We have by test. So we make sure that there's a lot of, like, processes and tests running at the time of a pull request just to make sure that when we are actually reviewing, we're just mostly reviewing the code and what's, is gonna be merged onto our code base. And all these kind of linting, the checks, and silly mistakes are all checked, like, in advance, even formatting so that we have standard, formatting across the platform.
[00:26:10] Unknown:
Beyond just the data sources, what are some of the other extension points and integration hooks for people who want to expand on the functionality of the OpenBb terminal. You mentioned that it's a MVC architecture for people who want to fork it and add in their own customizations, but I'm I'm also interested in understanding what are the different hooks for being able to plug into the package as it exists out of the box.
[00:26:34] Unknown:
Yeah. I think another interesting 1 is the our API. So, Boris, as you know, if you just start the notebook and you import, like, our API, you're already able to access the raw data, but also display data. And that's actually very, very nice for people such as, like, data scientists or mathematicians or even economists that want to understand, like, a broader p picture of what the economy is doing and correlates with the stock or basically creating, like, financial content. Right? But then there's the whole, like, back end API where it allows, for instance, to generate things. Like, for instance, 1 thing that we have right on the terminal is the Vola dashboard. We have some proof of concepts there, but the idea is that we want the users to be able to create these kind of widgets to interact with data for certain features. So, basically, they just spin up a Voila, and they are able to play with, like, a slider and play with the data. Right? So this is something that they can also do. And then I think, finally, another nice thing is that we started realizing that Excel is is, you know, super important in the finance world. Like, 1 thing that we have is an Excel integration in certain areas. So for instance, we have a command that is called, like, discounted cash flow. And and when you run it, it just creates, like, an Excel spreadsheet with the with the discounted cash flow. And, actually, just this week, someone told me that, they had a friend that's, passed, like, a course using the data from the terminal. And in particular, they they really enjoyed, but that's discounted cash flow command.
[00:27:54] Unknown:
In terms of the actual project itself, you mentioned that it started as a hobby project, and then you released it as open source. And now you are working on it full time, and you have some investment. I'm curious if you can talk to some of the overarching product strategy that you have for turning this into sustainable business and how you view the governance aspect of the open source component and what that dividing line will be between what is open source and what you're actually looking to turn into a business strategy?
[00:28:21] Unknown:
Yeah. So that's actually a very, very good question. So 1 of the things 1 of the reasons we're not going for a dashboard yet is actually because of that. Because we really want to leverage the community aspect of it. So we want to build partnership with academia, with the community because we want people to develop on top of the platform. That I mean, that's the only way we can achieve and, like, asset coverage and all the markets. Right? And once we are on that stage, what's gonna happen is we will build partnerships with, you know, data providers. And we're not talking about just raw data. This can be processed rating. So so it can be, for instance, the sentiment of Twitter on Apple, sorry, from a company x, but it can also be just the tweets on Apple, and then you created the machine learning model. And the idea here is that, basically, that we want to have this infrastructure, like platform that connects data to users, where, basically, we'll attract more users. We attract more data. We attract more users. We attract more data. Right? And the idea here is that we actually don't charge the users directly for the data, but we create, like, a share revenue model with these data providers because we are giving them access to a bigger pool of users. And the users don't need to go to other platforms because they will have have more and more data through our platform. Right? So that's a bit like where we're gonna start, and the ultimate goal is to achieve this kind of place for investment research. I mean, as it stands, you know, more people are wanting to to stay at home and work from home. They want to work on their own terms. They want to be able to, you know, work independently. And this is something that we will be able to provide because people will be able to create, like, investment research reports from our platform. Right? And then there's the other side if we talk about, like, institutions where we can, you know, basically, their analysts just focus on actually creating the reports and not not focus on the infrastructure or on the data because we can gather all that data through API keys, and they can select what type of data they want and then then just rely on our infrastructure and architecture to create these reports. Right? And then there's another section, which I think is important to mention. So for instance, currently, this is a bit of a pain point for asset managers, which is that they have to spend a lot of money on professional investment research platforms to, for instance, do portfolio optimization.
And this is something that they pay a a very, very big price tag for just using, like, 5% of the capabilities of that platform. Right? But from our terminal side, you can actually just use what you want. Right? So let's say I'm just interested in stocks and crypto. I can I can fork the project, and I can get rid of all the rest and build from there? And then when there are updates on the project, I can just pull the updates that matter to me, and I leave the rest out because it's not important for me. So this level of, like, customization where people can select what they want and build proprietary features on top of it, I think that, you know, it will be, like, a very, very big, like, marketplace where people can, for instance, develop features for other users and then feed it back to the terminal and the audience of users that feel that those features are worth their money. They can pay for it. And at the same time, the terminal remains free for people who don't want to have access to this data. Right? So that's a bit how we are trying to, you know, be in this game where we at the same time, we want to keep everything, like, open source, and we want to together the open source community around the platform. But at the same time, we can be self sustainable, and we can create, like, a marketplace and, you know, benefit from, I think, like, all this pool of talent and users and analysts around our platform.
[00:31:35] Unknown:
Yeah. And I could definitely also see the opportunity for being able to amortize the costs of some of the paid data sources across multiple users who don't necessarily hit the threshold in their individual uses where it makes sense to pay for that. But in aggregate, they can all benefit from being able to gain access to those different systems.
[00:31:55] Unknown:
Yeah. Yeah.
[00:31:57] Unknown:
And then another piece that I wanted to circle back on and dig into is you mentioned that it's an MVC architecture, and you want to provide the option for people to be able to fork the project and add in their own view and controller layer. And in that regard, I'm interested in digging a bit deeper on the architectural and design decisions where in MVC, there's always been a bit of a debate as to, you know, do you have fat models and keep the controllers very lean, or do you put a lot of your business logic in the controller so that the model is purely representative of the state storage? And I'm wondering how you're approaching that kind of balance of how much of the business logic to put into the model so that it is there and people can just strip out and replace component the view and controller piece, or how much of the business logic you're putting in the controller because that's the piece that people actually wanna customize?
[00:32:47] Unknown:
Yeah. So that's actually an interesting perspective. I think that that's as being 1 of the kind of more challenging stuff to make sure that everyone complies because, like, you know, it's a lot of pull requests every week. There's a lot of things going into the code, and the way we perceive what the model and view and controller should be is a bit different. But overall, for the majority of part, what happens is, like, the model usually just is where we get the data from is basically the gateway that brings the data. And if there is a few processing of data, it happens on the model. Then the view, what happens is usually either just prints that data into the platform or processes it a bit further just to display it on a Sharp. And sometimes that view code has a bit too much processing, and sometimes it has a bit too less. So that area sometimes is a bit tricky because and this you can realize this more when you're actually playing with the API on the notebook, and you want to have access to the raw data and these are already too much processed and you wish, you know, you add, like, those missing gaps for instance. So, you know, that view, model area is for me is where it's more hard to put, like, the level of, like, threshold of, like, you know, should be the model, should be view. But then in the controller side, I think that I actually really like what we have. We basically just use the controller to process using our parts and Python, process the command and the arguments of the user. That's basically it. So, basically, the controller gets the command that the user sets. If, for instance, there are, like, flags on choices, we make sure that when we call the view from the controller, everything is correct from the user's perspective in terms of what they input. So the controller just handles that input and make sure that when we call the view, everything is correct and it isn't. We output the correct error to the user.
[00:34:26] Unknown:
And then in terms of the actual community contribution aspect of it and this question of the design sense that goes into the project, I'm wondering how you have approached the kind of design goals of the system to be able to help guide people who are interested in adding different functionality to say, you know, okay. Based on what you're trying to do, these are the places where you wanna put the logic. You wanna just put this minimal aspect of the model in here and just helping to provide some of that direction for people who are new to the project, just wanna maybe be a drive by contributor, but helping to guide them in terms of making the contributions in a way that is in keeping with the overall philosophy of the project?
[00:35:06] Unknown:
Yeah. So that's 1 thing that's very early on we put a lot of focus on. So very early on, we spend kind of some time writing these contributing guidelines, and it has been like a living document where we interact. And what we basically were trying to achieve is basically to have this very, very, very clear notion where we actually in terms of that architecture that I was telling you, we actually describe it as, you know, a context, then you have a menu, and then a submenu, and then you have a command so that, you know, it understands, like, the flow. And then we give an example. So for instance, in the stocks, you have due diligence. And, you know, what is the due diligence for a stock is gonna be different than what is the due diligence for a a crypto. Right? Because we are using different data source. But then at the same time, we have, like, a common library where we are able to put, like, common common things. So for instance, here, this is where it leaves, for instance, or machine learning and AI models. They leave on a common folder. And the reason is because these models, they can be used on multiple different data source. Right? So 1 thing that we allow on the platform is you can predict a stock price, but you can also predict, like, you know, the level of unemployment in America. Or you can predict a creep or you can predict, like, a an ETF. So we need to kind of abstract this for the level because this will be reused in multiple different, like, sources and context, let's say. And that's very, very clear when it comes to, like, our contributions guideline because you can really understand what we are trying to do, and we are trying to keep it very straightforward for someone that is new to platform to understand where each of the things they want to achieve is located. You know, that's 1 thing that we wanted to make sure that was very trivial because, you know, there's a lot of investors coming into the market because of tools like Robinhood and Coinbase. And we want to make sure that, you know, not only, like, experts are aware of how to navigate on the platform, but also people that have started to invest, like, recently.
[00:36:52] Unknown:
In terms of the
[00:36:54] Unknown:
ways that you have seen the OpenBB terminal used, what are some of the most interesting or innovative or unexpected projects that you've seen built with it? I've seen people using it for day trading. I think that's a very, very interesting use case. I personally don't really think that the terminal is in in a state that, you know, you can you should use it for day trading just because, as we mentioned, the data is mostly for free currently, which means that it's often like, it has a couple of minutes of delays. If you are doing day trading, you know, those couple of minutes, like, matter. And, also, for instance, we don't have yet a way to have, like, a live screener. So if you want to to look for a certain pattern or signal, you actually have to request to check if it it had happened. But it's interesting to see that, you know, people have actually started using it because of the data that it has all on the same place. The other 1 that I find surprising is something that I mentioned before, which is, like, people actually have been doing homeworks using the platform using the data on the platform, discounted cash flow for for building these, you know, models. And another surprising thing is we've had actually contributor working on on a graphical user interface for the platform because they want a a better, like, user interface.
And, you know, that is not, like, yet a thing, but it's interesting to see that, you know, people are wanting to exploit the capabilities of the terminal and just build, like, a better front end to interact with it.
[00:38:08] Unknown:
And in your own experience of building the OpenDB terminal and now moving it into your full time endeavor, what are some of the most interesting or unexpected or challenging lessons that you've learned in the process?
[00:38:21] Unknown:
I'll say that the biggest 1 is, like, market data is a huge, huge pain. It's very expensive that the licenses to be able to display data for a big pool of of users when they are it's running through your servers and you're actually, you know, displaying it from your service. That's like a massive, massive pain. And we've been on this journey for with the shutting bot where we actually want to allow people to have access to these options flow and that this has been, like, a long process of understanding how to be able to do this. The other area is because our product is, like, open source and we have an MIT license. Sometimes it's tricky to use certain projects out there, some certain packages because they don't have, such a permissive license as ours. So for instance, even when we talk about building, like, a front end using, like, a package like or something. They don't have, like, an MIT license like ours. So, you know, there's a whole, like, different game here because they are not as open source as we are. And then how do we handle that?
And the last 1 that I would say is in terms of, like, convention or in terms of naming, because we are dealing with multiple data providers for, like, multiple assets. What happens often is that the way, for instance, CoinGecko's, calls, like, for instance, bitcoin is different than the way Binance does or Coinbase does. You know? And being able to say that, you know, these data is for Bitcoin and this becomes from these 3 or different data providers is sometimes not easy to do. You know? It's a it's a very complex challenge. We've been so far, you know, been able to do this, use kind of some models to do this automatically and then just review and make sure it's working well. But, yeah, it's something that we spend some time on.
[00:39:56] Unknown:
And for people who are interested in being able to explore the finance ecosystem and do some sort of analysis or try to do some individual research for potential investments, what are the cases where the investments? What are the cases where the OpenBb terminal is the wrong choice?
[00:40:11] Unknown:
I'd say it's the wrong choice if you want to use it as a trading platform. Although we have, like, brokers integration, such as Dejiro, Binance, and whatnot. I don't think that the platform should be a place for trading. The other 1 is for people looking for financial advice. As much as this is investment research, like, you shouldn't, you know, use this for making, like, decisions for you. You should still put in the time to build these investment report pieces that then you can leverage to make a decision, but you shouldn't, like, rely on the data feed from from some paid that data source and then buy if they said that you should buy or,
[00:40:46] Unknown:
As you continue to build and evolve the project and the community around it and the business on top of it, what are some of the things you have planned for the near to medium term?
[00:40:56] Unknown:
Short term, I think that these investment research reports, like, where people, and we're talking about from the, like, retail, but, actually, people from institutions can create their own reports and then distribute it from our platform. I think that's, like, gonna be a big thing. And in order to achieve that, 1 of the things that we already discussed is that we want to start to integrate, like, paid data sources. And that will bring, like, more users to the platform, which can bring more data partnerships, which we're gonna bring more users, more developers, allowing us to integrate more data. And then more data means that equity analyst or financial advisers on the platform can build better investment research reports. So this is 1 of the things that, yeah, we are really, really betting on and we are and then we're talking about not only, like, building investment research reports. Right? But we are talking about also building, like, state of the art machine learning models using, like, different, like, data feeds and then selling these to our platform. And 1 of the good things is that we are not here advertising that, you know, we have a proprietary, like, super AI that, you know, tells you what's the stock price is gonna be tomorrow. No. Everything is open source. So it's like, everyone can actually see what this consists of, and they and they can, you know, just tune it in their own way and use the data sources that they want. And then they can, you know, either sell these to other people, so creating effectively an a marketplace, or they can use it for their own investments and even put in their own feeds of data. Right? And I think that 1 of the things that I'm also super, super excited about, but I wouldn't say this is a medium term because because of the complexity of the task, is currently, I think that for me and for all the investors out there, there isn't any platform where you can add all your investments. Right? So if you invest in stocks, you have your broker or something else. Then if you have crypto, you have, you know, Kraken or Binance. And then if you have, like, real estate, you have another platform. Or what happens is people end up using an Excel spreadsheet to keep track of all the investments. Right? But if we start building all these different asset classes and all the markets, all of these in on the platform would just make it like it would just add so so much value to everyone because they wouldn't leave need to leave our platform, and we could track that all from your platform. And then imagine that instead of having, like, a data source partnering with us to provide data to the platform, having, like, a tax integration company where they build on top of our platform, and they recognize these portfolio holdings, and they can just, you know, do the your tax breakdown for Portugal, for instance. You know, that would be just like a massive, massive amount of value that would bring. And that's, like, more of a long term, like, dream of mine, but, like, I really think that this is something that we will be able to do someday.
[00:43:26] Unknown:
And are there any particular areas of contribution or help that you're looking for that people who are listening might be able to dig into?
[00:43:35] Unknown:
Oh, everything. That's I'm so excited about, like, having the opportunity to be working on this because, like, it's just so exciting, the amount of things that we have to do. There's, like, there's, like, so much to work on and so much to bring. He's, like, 3, 4 people ask for 4 x data, then you have, like, 10, 20 plus for crypto data, and then someone else wants something, a machine learning AI model to to be able to process it. There's, like, many things that can be done on our platform. So, like, if if people want to be part of this, like, we have space in any area, whether it is, like, developing a proprietary feature even or or a feature that they want to display, whether it is creating a screener or other people to have access to, whether it is building what it's gonna be, like, or report full customization. There's just, like, so much opportunities in the space. And, I mean, we are hiring. So if people want to join us, we are, like we'll be super happy about that.
[00:44:24] Unknown:
Alright. Well, for anybody who wants to get in touch with you and follow along with the work that you're doing, I'll have you add your preferred contact information to the show notes. And with that, I'll move us into the picks. This week, I'm going to choose a show that I started watching recently called the Vikings Valhalla on Netflix. Guess it's a follow-up series to another show called Vikings that I have not watched yet, but that's focused on the exploits of Leif Erikson and that whole time period. So just a fun kind of historical drama, pretty well done. So I've been enjoying that. And with that, I'll pass it to you, Didier. Do you have any picks this week?
[00:44:56] Unknown:
I would like just to probably tell the story of the terminal. Oh, it started quickly. I think it is kind of funny. I was working on a full time job, right, like, 8 hours a day, and and I started this on Christmas. And I I was spending, like, between 4 to 6 hours, sometimes 8, like, every day. And then the weekends, I was having no weekends. And what happened is that my girlfriend's not to say that, you know, we don't do things anymore because, like, you are always working. I was like, oh, yeah. You know? Like, I sorry. I'm just, like, you know, super focused on this. It's like I was adding, like, features every day. I was seeing the terminal go really, really fast because it was so easy to add features. And then when I released it, I remember we were watching a movie, and I said, okay. I just put the terminal on open source, and now I'm gonna kind of slow down on it because, you know, I'm happy with this MVP version, and I'm gonna slow down on it. And I just I put it on Reddit, and, we went to watch a movie. Right? And the phone wouldn't stop with notifications, and that ended up not watching the movie. I ended up not sleeping that night. And what I told her that, you know, would be me slowing down from the platform was actually me working on it even more than before if that was possible. And that's actually what you know, that's, like, super interesting. And, you know, I appreciate a lot, like, my my girlfriend for being with me on this since the beginning, and my dogs as well. They've been a huge company of me coding in the night in the sofa.
Yeah.
[00:46:09] Unknown:
Alright. Well, thank you very much for taking the time today to join me and share the work that you're doing on the open b b terminal. It's definitely a very interesting project and very ambitious, so it's always great to see people building fun and interesting things in the community. So appreciate all the time and energy that you've put into that, and I hope you enjoy the rest of your day. Thank you so much, Tobias. It will be my pleasure. Thank you. Thank you for listening. Don't forget to check out our other show, the Data Engineering Podcast at dataengineeringpodcast.com for the latest on modern data management.
And visit the site at pythonpodcast.com to subscribe to the show, sign up for the mailing list, and read the show notes. And if you've learned something or tried out a project from the show, then tell us about it. Email host at podcastinit.com with your story. To help other people find the show, please leave a review on Itunes and tell your friends and coworkers.
Introduction and Guest Introduction
Didier's Background and Introduction to Python
Overview of OpenBB Terminal
Use Cases and Limitations of Financial Research Platforms
Comparison with Bloomberg Terminal
Implementation and Architecture of OpenBB Terminal
User Interfaces and Interaction Methods
Workflow for Financial Analysis
Comparison with Other Financial Data Businesses
Automating Due Diligence Reports
Data Sources and Integration
Adding New Data Sources
Extension Points and Integration Hooks
Product Strategy and Governance
MVC Architecture and Design Decisions
Community Contributions and Guidelines
Interesting Use Cases and Projects
Challenges and Lessons Learned
When OpenBB Terminal is Not the Right Choice
Future Plans and Contributions
Contact Information and Picks