paint-brush
OpenBB Podcast Transcript: Empowering Finance for All With Didier Lopesby@flagsmith
185 reads

OpenBB Podcast Transcript: Empowering Finance for All With Didier Lopes

by FlagsmithNovember 29th, 2023
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Craft of Open Source podcast interview with Didier Lopes, CEO and Founder of OpenBB. He talks all about building OpenBB, hiring from open-source contributions, and the high cost of data in the financial industry.

People Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - OpenBB Podcast Transcript: Empowering Finance for All With Didier Lopes
Flagsmith HackerNoon profile picture

Listen to the OpenBB Podcast

Listen in here


About OpenBB and This Podcast Episode

OpenBB stands at the crossroads of innovation, uniting open-source spirit with financial prowess to empower every individual. In this episode of our podcast, Didier Lopes discusses OpenBB, a revolutionary platform aiming to democratize access to financial data. From its inception to its evolution into a versatile financial data hub, Didier shows how OpenBB thrives as a bridge connecting financial data for everyone. Join us as we explore the potential future directions for OpenBB, envisioning an ecosystem where financial data is seamlessly accessible, customized, and affordable for all types of users. Tune in now!

OpenBB Podcast Transcript

I have a super interesting guest with me, Didier Lopes, who is one of the creators of OpenBB. Welcome, Didier.

Thank you for having me. It's a pleasure to be here.


This is one of the chats that I have been looking forward to. For those that don't know, I have got a little bit of experience here. To give everyone and you a bit of background, my brother has run a small asset management business in London for many years. They have been paying the Bloomberg tax ever since they started their company. I have seen someone who knows how to work at Bloomberg Terminal and wield it and it's quite an impressive thing to see. Coming from that angle, do you want to give us a bit of a background about yourself and the business and product?

I was born in Switzerland, so I have a French name, but I'm Portuguese. I have a Bachelor's from Portugal, and then I ended up going to London to do a Master's at Imperial College. After that, this was all engineering control systems, and then after that, I went for the typical software engineering route. At the time, I was excited about the field of AI and machine learning. I started learning Python because Python was the best tool out there to do AI stuff.


I started open-sourcing the projects because I was like, “Why not?” I might as well get feedback and get people who might be interested in these tiny projects that I'm doing. One day, I got reached out to by my previous Math teacher from my university in Portugal, and he was working on his thesis, which was modeling and forecasting of financial series. He wanted to use recurrent neural networks, long short-term memory models, and whatnot.


He reached out to me because he didn't know how to code. He had the experience of having me as a student and he saw all my projects online. He challenged me to help him write the code for his PhD thesis. I was like, “That sounds a lot of fun.” That was my first experience with finance. I was like, “This is cool.” We were looking at historical data. That's a small fraction of what goes on in the investing world. When I finished that project, I had one year of savings for the startup I started working on. I was like, “I need to start learning about investing.”

COS 57 | OpenBB

OpenBB: Looking at historical data is just a small fraction of what goes on in the investing world.

Also, you read books Rich Dad Poor Dad, and things that, and you understand that you need to learn how to invest money. That was my first contact with finance. I started learning about investing. I started learning about the fundamentals. I started learning that you could sell the shares of your company and trade. I started learning about how the sentiment on Reddit can impact a stock price. The government can trade. You start learning more every week by talking with people. What took me 30 minutes to do research on at the beginning started taking a full weekend because there were no automated processes.


It is when you open all of these different websites that are good at a specific thing. You take a screenshot and you put it on a Word document. If you are looking at the different assets, you need to go into all of these dashboards. Change the asset you are looking for. Some of them will not support it, which is annoying. It's so labor intensive and I felt the ROI wasn't there for me because I was trading small quantities. The time I was losing for me was like, “Is this worth my time? Am I not learning new technologies to make me a more complete developer?”


I grew that pain. I started having my notebook where I wrote down what my investment research process was. This was during COVID, when my flight got canceled to visit my parents in Switzerland. I had one week on my hands and I didn't have anything to do. I was like, “I'm going to start building this tool.” I was thinking from an engineering perspective, all of this could be automated because it's pure simple data API calls. I can render it on my side and do anything I want. Even if I want to apply AI machine learning to it, it should be easy. The first thing I did was look in GitHub for something that I could build on top, and I didn't find anything.


I was like, “I'm going to have to start from scratch. That's fine.” The next problem was the data. I was like, “Now I understand why Bloomberg is so expensive because the data is expensive.” The one thing that I realized after going to multiple data vendors is that their go-to-market motion is very similar. What they tend to do is they have a free API tier that you register on the website with your email and your name, even if you work in the industry or not. They give you an API key. That API key gives you access to a free tier. That free tier may be fundamentals for up to five years. It may be historical only the US stocks or only a small subset. It can be anything.


The interesting thing is all the data vendors have this free API tier, and the data within that free API tier is not the same. I was like, “This is perfect,” because I can start integrating all of these free API tiers into one platform. I can start having multiple data sources for the same command, and then it's down to the user to select which data source they want to go to.


The interesting thing is from an API or data perspective if I like the data vendor that I'm utilizing to get, for instance, fundamentals, and the free tier only gives me up to 5 years, then I can subscribe to the paid version for $20 a month that allows me to get 30 years. The thing is, all the code is the same. Nothing changes. The only difference is that the API key now has access to the remaining 25 years. I was like, “This is perfect for me because it allows me to assess how good the data is and the quality.” If I know what I'm doing, I go to the data vendor and then open reaches focus on the technology side. I saw that I was like, “This is where I'm going to start.”

I started building this for a week, just equity data at the time, bringing in data. I had an API key and then you would display the data. I built this for a week, and I was happy with its direction, so I kept building. I had a full-time job and then I kept spending my entire evenings working on these, and then two months later, I made it open source. I posted it on Reddit. The name of the terminal at the time was Gamestonk Terminal.


That's a frozen-in-time project name right there.

I believe that this has a lot of impact on how fast we grew at the beginning. I was a GameStop investor and I was on Reddit a lot. I had a placeholder name for my project and I didn't like it. I was like, “I need to find a better name.” Elon Musk tweeted gamestonk. I was like, “Gamestonk Terminal, that sounds cool. I'm going to call it that.” When I made it live, I made it live on Reddit and it went viral. People were super excited about it, but this was the same crowd that was investing in GameStop, so the name resonated with them.



What happened is that I then put it on ACRO News, and then, for instance, even Vice Magazine picked up on it and did a post on it. In the post, they mentioned that it is a terminal to research GME. It wasn't. It was generic. You could research anything, but it shows that the naming made it more relatable to people. When we made it live, we got 4,000 stars in 24 hours. It's crazy. Before the launch, I told my wife, “If this project had twenty stars, that would be so cool.”

It went 4,000. It was crazy because you went viral on Reddit, and then someone there said, “Put this on ACRO News. People are going to love it there.” I was like, “Let me try,” and we went viral on ACRO News too, on that day. A few weeks after, people started asking me to create a Discord group so that we could chat because people were adding features. The number of stars and the people messaging me was insane. At that point, I was already thinking that this was not something that just me was looking for but that there were more people in the same position that I was.


The other interesting part is that someday I wake up and someone adds the full Forex menu, and I have never traded Forex in my life. I was like, “This shows that my decision to make it open source is the right one because I don't have a finance background.” Having people more experienced and technical than me is amazing. You can benefit from all that power of the community. We kept growing and then we got reached out by OSS Capital by the lead partner Joseph Jacks. We ended up raising a seed round of $8.8 million.


That was a few years ago now and now we are a team of twenty people. We have multiple products. The Gamestonk Terminal is now called OpenBB Terminal. It's not just a terminal. It's a platform now where you can access the data using Python, but we will also support the web APIs. We also have a bot where you can have access to financial data through Discord or Telegram chat. We have the Terminal Pro, which is coming very soon. It’s our first paid enterprise product.


Interestingly, you mentioned the whole GameStop thing because of my experience in this industry. Several years ago, I was working at the London Clearinghouse, which is where many futures and options got settled around the world. I learned a lot about the industry. It's crazy how deep it is. You can carry on going down in a particular area. It's terrifying, but it's interesting the ethos back before Bloomberg there was Reuters. Bloomberg came along and upset and became the dominant standard. Bloomberg terminal, they are about £23,000 a year or something.


Bloomberg has this amazing pricing policy. Everyone pays £23,000 a year. If I want to buy it for £23,000 a year, if it wants to sit on the desk of the CEO of Goldman Sachs, it's £23,000 a year and there are no discounts. They don't give any discounts to anybody. That's the pricing. The sales guys in that company had to get bored because they couldn't do anything. What I'm saying is that that's an enormous behemoth enterprise with a product. This means in a good way. Quite a punk attitude to GameStop and to what you started because you don't need that necessarily to be able to compete with that business.

I'm sure that in most of the Bloomberg terminals in the world, each desk is probably using 2% of its platform. The price is £23,000 a year and there are no discounts. Can you talk a little bit more about how because the data side is the thing that's what you are buying with Bloomberg? You are buying an interface, but what people are buying is the data.


I was under the impression. Whenever I saw OpenBB, I could see it was growing. I thought that's all well and good, but if you want to know the option price of mozzarella cheese in Armenia, Bloomberg has that data, but it's not free. There are free sources of data. Some data is free and some isn't. As you are saying, some you can unlock for small amounts of money. Is that generally the case across the board or how does it settle out?

Data in the financial industry is expensive. What you said is right. When you pay for a Bloomberg, you pay for the data. Business is done. They built an impressive business and product. You can call someone to make a big investment decision with them. You can talk with famous people in there, the big investors and whatnot. They have all the basic data that you will want. What I tend to find is people have a Bloomberg and then they need to buy some alternative data sets to gain an edge, but Bloomberg will have most of that data.


Data in the financial industry is really expensive.


The thing is that very few people leverage more than 2% of the data of Bloomberg. It is way too much. What Bloomberg does is that it doesn't matter if the data is that they won't buy by them or if they buy it from another data vendor. Then they clean it in-house, and then it becomes Bloomberg data. You pay for this universe of data and that's why you don't see products out there being given data from Bloomberg to build another product on top. They don't do that.


What we do is different. Let's talk about the terminal use case. The terminal use case, how it works is when you install the terminal, you install it into your machine. What happens is that you have these API keys that you set up. Those API keys go directly to each endpoint of the data vendors. Let's say you may install the OpenBB Terminal and you want access to fundamentals.

You may go onto Intrinio, Polygon, FMP, or any that we support. You go to them and you get a free API key, which allows you access to up to a certain amount of data or even requests per minute. Once you get that, you put it onto the OpenBB Terminal, and then you are ready to pull that data. When you do a command, for instance, if you do a stocks-fa-income, what happens is that we, behind the scenes, it's the endpoint of the data provider that you selected with your API key, and we return the data as is.


If you go onto the data provider website on your settings, you will see that there has been one request being made. There's no OpenBB server relationship, so we are not liable for any of the data. At the end of the day, we standardize and aggregate a ton of data without it ever going through our servers. This is, again, because the terminal is running on your machine, so it's not running on the server. That's why, for us, we can't make a SaaS play, for instance, where we would host all the data just because of the amount of data that the terminal supports. For us, it would not be worth all the cache that we would have on the data.


You'd be creating Bloomberg, pretty much.

Yes and no. The thing is, because we support data vendors that support the same type of data, it means that, for instance, to get income, we would probably need to pay 5 or 6 different data vendors for the same data that we already have. That defeats what we are doing because, in a way, we enable data vendors to have access to our users through OpenBB. What ends up happening is data vendors reach out to us and they ask us to integrate them onto our platform because they get the flux of new users that come.


Quite a few of our users, when there's a new command or support of the new data source, go directly into that data vendor to get their API keys. Some of them have so much data that they provide that they pay for the paid subscriptions straight. It enables them with a new go-to-market, which is where we want to be. If we talk about other products, the issue is not having access to the data, it's then what can you do with that data?


On the Discord bot or Telegram bot, what happens is I can message and I can write a command that says, “I want to see how is Apple doing today or the IT map.” As we are displaying this on the server and this is eating or passing through OpenBB, we need to have display rights. We are paying a fee to the data vendor, which is responsible for having a clean API that we can use.

If we do historical data with a couple of minutes delay or a couple of seconds delay, you need to pay the exchange and a fee for the display rights. This is not cheap because we have 100 different commands that we allow on Discord or Telegram and these are not cheap costs. In this case, we take on cost because the Discord and Telegram bot is a marketing expense for us. After all, these servers are very big and there are a lot of people. They see the branding and then it redirects them into our product. For us, it's a funnel, but those are not cheap.


If we talk about the Terminal Pro, which we are building now, we have not just display rights but also allow people to export data. You need redistribution rights, which is even more expensive because people can access all the raw data. Technically, they could download all the data and build something right on the side, but they are not allowed to, so that's why you have terms of service to comply with the use of the data. It's very tricky.


If I download OpenBB, compile it, install it, and put in an API key, it is a pure client-server thing. You are not in the middle of breaking any information. You had the perfect model when you launched because you couldn't have done it the other way around. You wouldn't have had the money. That's interesting because that's what I was like, “

How are they doing this? This data is expensive.”


I know my brothers wanted to get it because they trade in more unusual bond markets to access non-standard country gilts and stuff is expensive. That's interesting. You have to tread a path through the licensing arrangement of those data vendors, and it so happened that the origination of the project was free and then you are giving all these vendors a big stream of potential new customers.

That is correct. At the core, we are a tech product in the financial space, so we don't own any data. If you look into all of the blog posts, we never mention it as OpenBB data. You always see the wording of the data that you can access through OpenBB and we want to have that very clear, but for the good and the bad. Sometimes, these data may have issues. We say like, “We don't own what the data comes out.” We can tell you this exactly. You use this API key, and we did these requests in the backend. Here. Take it and go to the data vendor.

COS 57 | OpenBB

OpenBB: You always see the world awarding the data that you can access through OpenBB, but it is for the good and the bad.

Now we have good relationships with them. Sometimes we pick them directly like, “You have this issue.” The good case is that people love the data vendor and they go subscribe to a paid API key. The bad use case is the bad experiences when they don't like all they see. A bad quality or they have issues that the data is not correct because they are using a Bloomberg on the side and they compared it and it is not correct. In such a case, we also say, “This is the data vendor you are using. We don't do processing.”


When you started, were the people hacking around with the terminal and putting API keys in? Were they fairly technically proficient and understood conceptually that it wasn't your data or were they raising issues in your GitHub?

They understood because I have always put upfront that the API keys and management are important in OpenBB. The thing is that Yahoo Finance doesn't require API keys. With a lot of commands, you can have access to data using Yahoo Finance because there's an open-source project called Yahoo Finance that pulls in all the data.


We are using that but for the same commands. You have data from other data vendors that require an API key. It tends to happen because a lot of users use Yahoo Finance because it's the default option and you don't require an API key. That's because there's an open-source project that does all of that management, and because that's not an official source, that means that this project could be dropped any day because the project is not part of your finance team.


In a project like this, if you were to sit down and design it back then what you know now, you can do it nicely with pluggable modules and different providers that have a common interface and all this stuff. Is that what it looked like when you first started hacking on it? Did you have that in your head?

I didn't. I saw a couple that I liked, and then I started building the terminal to recreate what my workflow was. Instead of organization, you have stocks and then you have the fundamental analysis group. I had a dark pool and a short data group. I had a technical analysis group where I did some processing because if you have historical data, then you can do technical analysis easily. I started creating a few funnels. Based on that workflow and the funnel that I was doing, I would look out for what data vendors are in the space and I would pick a couple.


In the beginning, the selection of data vendors was ingrained into the code, so it wasn't easy for you to select which one you wanted. As a user, if you wanted to add more data, you had to add the full commands and then say, “In this case, I'm using this new data vendor.” That was hard code in with ifs and elses.


What people started to find interesting was the SDK. People liked the terminal, but they were like, “I want to have access to these in a notebook to tinker and build something on my own. What we did was as we were using a model view controller approach, we cut at the models and said, “Here is an SDK,” and it worked.


The problem is that for people adding, as you were saying, putting the Lego pieces together, it wasn't built that way. It was built with a terminal approach. We have been refactoring the core to build this platform, and now it all works as an extension framework where, let's say, you find a new data vendor, you can create an OpenBB data vendor connector. That will work seamlessly with the data that we already have, and then it's down to the user to select both at the API level or on the terminal which data they want to use. To reply to your question, no, I didn't envision it to be that easy at the beginning, but then it became clear after a few months of talking with users.


Did you get an avalanche of pull requests because with that amount of activity and it was you working on it in terms of your projects? Is that right?

That is correct.


You can imagine now contributing to that platform with that modular architecture. This has been a common pattern with people that I have interviewed on the show, such as projects like OpenBB, where there are two things. Firstly, it's pluggable and modular, and then secondly, people would have an individual need to do something and add a module.

Those two things, if you have a project and you have got it set up in that way, you can get very rapid adoption of open contributions because it's like, “I want to know about mozzarella options in Armenia. I will write a module to do that.” How did you manage with that? Did you not manage with that in its early days?

That was hard. Even when we started, we didn't have the MVC approach. What happened to a director of a workday who used to work in the financial industry? I liked the project because they were doing some research on their own. They started refactoring the core of the code into that MVC approach and also brought limiters and things that so the project much more mature.

That allowed a lot of people to have a much better experience to contribute. In the beginning, there were a lot of pull requests, but it was hard from a reviewing perspective on maintenance because I was trying to have the code. All the code looked the same, but because there wasn't good architecture in place. It wasn't the best experience.


With the new platform that we are revamping, I think that we are going to be in that position. As you were saying, if you can have something very easy for people to contribute, it is good for adoption. I completely agree with that. In the beginning, it was hard. Even when that person added the full Forex menu, which was crazy, I was like, “This is amazing, but I also spent quite a few hours reviewing the code to make sure.”


OpenBB: If you can have something very easy for people to contribute, it's really good for adoption.

Some way of doing things was a bit different than how I had implemented it on the stocks. That's a problem in the open-source space that even though there are multiple contributors and you benefit from all of these, like inbound pool requests and the community ideas and stuff, you still want the code base to look one. You still want the code to be similar. It doesn't matter where you look for otherwise. It's going to come back to you later down the stage.


I'm curious to know if the community has evolved. Not that there's anything wrong with people from Reddit. I'm using Reddit but has it evolved from the Gamestonk subreddits to people at workday and finance? How has that changed?

I thought this was B2C play when I started because I was a retail investor. What I realized is that most retail investors, I would say 90%-ish, don't spend time doing research. They trade using Robinhood and stuff. They trade. There's money there, but doing research, they don't do it. Most of them take it almost as a gamble or invest because they hear a friend or they are on stock tweets and see fifteen messages consecutive saying that bullish Tesla or something that, and they will invest because they saw that. I realized that after a few months.


One interesting thing as well is we started adding support on the terminal. You could create the tickets directly from the terminal with support. You'd have to provide your email so that we could reach out to you to ask more questions or tell you when the issue was fixed. The one thing that we realized is that the type of people reaching out to us were from JP Morgan and Goldman Sachs, who were analysts at home after work, and they didn't have access to a Bloomberg or similar. They were using us for a few use cases, some of them even to improve their Python skills. Tinkering about what you could do with OpenBB. That's when we realized this is more of a B2B play than a B2C one.


You have got a rapid adoption of users, contributors, and things that. This is while the world stopped from COVID, is that right?

I don't remember. COVID was still a thing. At the tail end.


What was your thought process in terms of whether you were still working evenings and weekends? How did you get from 4,000 stars to a fairly chunky seed round?

I never thought about building a business before OpenBB. I had a full-time job. I was doing something that I liked in the space that was not related to finance. I was doing sensor fusion engineer. Algorithms for the estimated altitude of people running all that fun stuff. All my evenings were spent on OpenBB all my weekends. It started to come to a point where it was hard to be able to conciliate everything. That's when I invited one of the most active contributors to become a maintainer of the project without knowing anything about this person.

I wasn't thinking about the business. I was thinking that I wanted these projects for myself. I wanted to build the best product out there because this is a lot of room to grow. One of the most active contributors was not just doing the back fixing but was also adding features that he thought would be cool.


I was like, “I see this person is excited. He was also taking on feedback well. I enjoy talking through data issues and pull requests. I emailed him and I said, “Do you want to become a maintainer?” It turns out that this guy is a PhD in Quantum Physics. He's a smart dude who was stuck at home because of COVID because his labs were shut down.


He started working with me on this. We kept working together on the weekends and evenings. We started creating the Discord group. Although the Discord gave us a lot of work to be able to talk with everyone. It also brought quite a few people who started contributing actively, and that's what OSS capital is. We got reached out to from OSS Capital about raising around. It was a no-brainer for me because I enjoyed what I was doing with OpenBB. I was being paid to do this full-time. This is a once-in-a-lifetime opportunity and I don't think anyone can give as much work and effort into this process as me. Yeah. Let's do it.


At that point in time, you weren't generating any revenue at all, is that right?

That is correct. There was not even. There was no monetary idea that I had. I wanted to build. I didn't think about this as a business. After some time, I started thinking about how it would be good if we could grow a business because, ultimately, what that allows us to do is to grow a team to make a product better. You are not making money for the sake of making money. You are building a team and all the best products out there. They usually have big teams behind them, so that's what the business would allow us to do.


Growing as a business allows us to grow as a team to make a product better.


How did you go about strategizing what a revenue stream and what a model might look like? It feels like there are loads of different directions you could potentially go.

This is where we are going now with the Terminal Pro. All of our products pretty much out there now are open source. We don't, we don't charge. The only one that we charge is if you are running a bot on your server if you want to do specific things, but that's because of scaling costs on our end, but it is negligible. We don't take that into account. The Terminal Pro is where we are going to charge, and what that allows you to do is because the terminal is a common line interface, as you mentioned at the beginning, is fairly technical. People either do it or don't they either. They either like the interface or do they dislike the interface.


There is one or other, but even people that don't like it, when they spend a bit of time with it 30 minutes or 40, and they get to know the commands, they are like, “This is easy to use,” but it's still not the most intuitive. The Terminal Pro, for us, is the same terminal built on the same data, but it has a very sleek user interface.


You have all of these enterprise features, like admin roles and single sign-on. We allow you to connect widgets. Everything works as widgets. Instead of having a command that gives you particular data, you have widgets. Widgets are connected with some of them with the data vendors, and then you can select which data vendor you want to use.


You have all of these built-in AI features, for instance. For instance, you can talk with the widget to summarize whatever this earnings transcript is saying, or how does this impact my Tesla investment? We allow you to bring any data because all of the firms, regardless of the firm that you talk to now, what tends to happen is everyone has a Bloomberg or Affinity. Everyone has a custom solution on the side, and the reason for that is that you can't add any data onto a Bloomberg or Affinity. Everyone looks for that edge and so they go find alternative data sets.


By definition, you have got the same as everyone else, right?

Exactly. That is correct. The price tag, people don't get one for everyone, as you mentioned. Everyone builds complementary solutions. We were brought up with a small firm. They usually stream lead. They do something custom in Python and they spin up a dashboard in stream lead. If they are a bit bigger, they start using C# or C++ to build something, it ends up that they spend millions on that custom solution because the tech stack is new. There's training when people join and when people leave, it‘s a big chunk of knowledge that goes out. OpenBB Terminal comes in as that custom solution on the side where we want to create an open ecosystem where you can leverage all of the platform API endpoints.


You can bring any data that you may have on your Snowflake account, Supabase, Clickhouse, anything. You can bring it right to OpenBB and access the financial data on that platform. There's the Excel adding as well. All of the data that you pay and you have access to, you can have access to the Excel adding. This is our package for teams of quantum analysts and enterprises. This is where we are going to start monetizing soon.


I can imagine all these relatively small prop trading firms, hedge funds, and things that all have their own probably quite messy, hacked-together things. Maybe some of them are running in Excel, and that's the space that you are in. That's where you are playing.

At the start, yes. They are the ones that have the most need for something like that. Everyone goes through the same problems of standardizing and aggregating financial data. It’s hard when you are trying to keep a low budget for that. It's not just that. Bloomberg or Affinity is a bit closed. If you want to bring the data out to build something on top is not easy. They rate limit you. For instance, Bloomberg has this amazing solution called BQuant, and I'm surprised that not many people use it because it's amazing. It's you have access to BQL to Bloomberg data into a notebook, and you can use it internally.


If you want to bring the data out to build something on top, it's not easy.


The thing is that, as far as I talked with people who have the product, they said that it's not as good as it seems because they don't allow all of the Python installs out there to be used. You have some usage of bands and stuff, but if you want to use TensorFlow, they don't allow you.

It is very limited in terms of what you can bring, so it's blocking what the user can do. A lot of users want to use something that they like. They don't want to be constrained, and so we go in that different direction where we say like, “We are trying to build an ecosystem where everything ties together and you can do anything. We are not going to be restrictive on what you can do.”


In terms of storage of data, do you ever do that? If I run the platform myself and grab five years of Tesla data from Yahoo, does that five-year data get stored locally on my machine at any point or no?

We have discussed doing some caching for the same APR request, but the reason we didn't do it is because, in our thinking, this would go against what the data vendor would like.


Maybe you are trampling over the legal agreement that you have accepted with them.

That's another thing because the problem is data vendors want you to do more requests to their endpoint because that means that data is more valuable. If I'm like caching what you are doing, if I'm cashing your call and then showing that to other users using their requests, that's bad because now the other person, for instance, is not doing any requests, but now is a bit in the gray areas. If it's for you, you just did this API call.


You could argue that I did this API call earlier, so I could have stored this myself on my own, and it's the same. There is a bit of a gray area. If we were to implement something, we would implement it on a personal use case, but it's not something that we have prioritized because we need to talk with the vendors to understand how they feel about that.


In my experience with my brother and a couple of my friends who no longer work in finance, it is quite common for people to do things with Bloomberg data that they don't realize that without realizing it, they might maybe be doing right. It's one of those things that happens. It is interesting in your case because there's potential you could make things faster. Do you hit that problem where you would be able to do something or provide a view of something, but there'd be some cumulative API calls that mean that it's not possible or, where caching or persisting that data might have made that possible or does that not happen too much?

That doesn't happen too much, but one thing that I'm going to say is that we don't focus on high-frequency trading, for instance. If you need data to be updated at every millisecond, I tell you, that's not us. This is also Phyton. If you want to build a system that's fast, you don't do Python. That's why we haven't run into that problem, to be honest with you.


In terms of the community now, what you are ending up building now is a general-purpose Swiss Army knife for data for the financial services industry. I was looking at your repository and you have 2,500 folks. How does that work in terms of your licensing as well? If someone at JP Morgan is grabbing and using that SDK in a commercial environment every minute of the day, how does your licensing deal with that? What's the opinion of you and the business about that?

We don't control that. They control the license because it's their API key. They are legally bound. When you sign up for that API key, what you do is give your email. You give your username and sometimes you have to reply if you work in the industry or not. One other thing that you have to do is that you have to comply. You have to check the terms of service. Those terms of service tell you what you can and cannot do with that free API key. With the free API key, what you cannot do is to use it in a commercial setting.


For instance, when we launched the SDK, we got quite a few messages from people, “Now I can build a Bloomberg front end on the web as a SaaS.” I was like, “Sure, if you pay for all the data,” but that's why you can use us as a way to have access to the data, but what you cannot do is use the data in any way, shape, or form. You need to talk with the data vendors about what you can do with that API key that you are using. I can tell you that from the OpenBB side, I don't have any problems with that, but you are aware that the API key comes with some rules attached to it.


It's interesting because we built a fantasy football app several years ago, and the business failed. The reason it failed was that the data fee was too expensive. There are two vendors of the data, but because of the product, it needed all of the data from the football matches that were going on. It was like, “Didier passes to Ben.” We needed the most expensive data feed. The prime data vendor would sell and it was expensive. It was well into the five digits every year, and there was no way that you couldn’t get out of paying for that.


You liked the product and wouldn’t work without it. It’s fortunate because the design of the products means that you, as a business, sidestep all those delegating agreements as soon as you start persisting price data or something. It's interesting that the legal agreements of the data vendors that you are talking to have prescribed the products to a large degree. Is that fair to say? Some parts are the design of the products.

The thing also to think about is the terminal, the people that usually use it mostly on personal use cases on their own, a lot of students in academia because there's no other platform that allows you access to financial data when you are at home, for instance, on an evening and you want to do something. We are talking about people that don't make money. It's very different. It's a personal use case, pretty much.


For Terminal Pro, this is a different story. For Terminal Pro, we will come out with a basic OpenBB tier where we pay for the data providers for the license to display and the redistribution. The reason for it is for the very basic data. We want to make the experience seamless for these firms and family offices that we are working with.


After that, we want to enable the same type of style that we did on the open-source project, where if they want a certain data vendor, then it is fine. We can even manage the API keys for them. Where I want to go in terms of experience is to give you the same experience as when you buy something on Amazon. You buy something on Amazon, but it doesn't all come from Amazon. That comes from third-party vendors, but you don't see that. As far as you know, it's seamless. It just comes to your home.


You bought a keyboard and you don't know where it came from, but it doesn't matter. For you, it came from Amazon, and that experience is seamless. We want to be able to do that but with data. You say, “You register with our platform. You have historical equity data. You have got fundamentals and all that basic stuff, but then you say, “I'm into Forex data and crypto. I'd like to get it from Forex. I would like to get access to my codes from crypto. I’d like to access the total value blockchain or anything else.” You select what you want and we tell you, “This is the best package that we can do.” When you subscribe to it, we deal with the data vendors ourselves. You are using the terminal platform, the tech side, and we abstract all that data.


That means that you don't need to pay. We don't need to have everyone paying $30,000 a year, but what you do is you can pay as low as you'd like. If you are like, “I want this data, but then the cost is going to be $2,000 a month. This is a bit steep. What if I remove these data sets? That's $1,500. That's better. I will go with this for now.” We can create something that scales better and keep costs low for small to medium firms.


It's unusual to find a project, a platform, and a GitHub repository. It feels like you have got quite a nice equilibrium between the Gamestonk and the quant firms. It is an interesting combination because it feels like the ship sails off into another island and you have to leave that community behind. If you are building a business, you sell to where the money is. It feels like the project has this nice potential of being able to say yes to both of those groups of people, which is unusual.

The way we did that is the Terminal Pro and the terminal are both based on the platform. This is what we are in the process of refactoring the code to be like OpenBB, what you get on the open-source project is the platform. This standardization and aggregation of all of these data vendors. You have the other terminal, the open-source version, which is a common line interface that allows you access to all of this data and you need to manage your API keys. If you are a professional, you want a better user experience, you want more features, you want the admin roles, and you want to know what people are doing within your company even, so we are like, “This is our paid product.”


That one is a closed source for now, at least. We say like, “If you don't want to pay anything, then just go with the open-source.” What I tell people as well is, “If you want, you can build your own Terminal Pro because you have access to the same we do. It's just that our team now knows the code base and we can build faster and better than anyone in the space for our size. If you want, by all means.”


That's the great thing about open-source is that there are probably a handful of projects out there that you don't know about that are doing that already. There are probably people who have implemented the terminal product that works for them, and that's the beauty of it.

That's exactly right. We now have this series called OpenBB Champions of people who are using OpenBB as an enterprise use case mostly. I was talking with someone at the fund. He was telling me that before we announced the SDK where you could bring that with API, he forked the project and built his own SDK because he was like, “I love the amount of data I have access to here, but I need it in to do a Python call to build something on top. I want to create my dashboards.” He said that he forked the project and built his own SDK before we launched because he wanted that. He said that when we came with SDK, it was funny because he was like, I built SDK before the team built the SDK.


Thanks so much for your time. That's been super fascinating. I look forward to seeing where the business is going because it feels like you have a bunch of opportunities and you are in control of your destiny. It's great to see a project like this.

Thank you. I appreciate your time. This was fun.

Important Links

Didier Lopes, Founder and CEO of OpenBB

About Didier Lopes

Didier Rodrigues Lopes is the founder and CEO of OpenBB, a company that specializes in sensor fusion technology. Prior to founding OpenBB, Lopes worked as a sensor fusion engineer at NURVV from March 2020 to October 2021. While at NURVV, Lopes made significant contributions to improving the time-to-first-fix of the GNSS receiver, re-designing the concept of altitude estimation using Kalman Filter, and adding a GPS filtering algorithm for outliers, which increased the accuracy of the product. In addition to their work on the product itself, Lopes also developed a python data analyzer that processes the data from a running session and produces a html report, which allows the development team to assess the state of the product and make sure it is behaving as expected.


Didier Rodrigues Lopes has a MSc. in Control Systems from Imperial College London with a distinction, a MSc. in Electrical and Computer Engineering from Delft University of Technology with a focus on Control Systems, and a BSc in Electrical and Computer Engineering from NOVA School of Science and Technology with a 17.4/20 (Top 1/96). Didier also has high school certification in Science and Technology from Colégio de São Miguel. In addition, they have various Coursera certifications in Kinematics, Motion Planning, Self-Driving Cars, Visual Perception, State Estimation, Localization, and Machine Learning. Finally, they have a Board of European Students of Technology certification in 2nd place - European Best Engineering Competition Nacional - Case Study.



Illustration Letter


Flagsmith Logo


Also published here.