Getting Started With Mason Fulp's Data Pipeline Approach
If you have spent any time looking into how Mason Fulp Forbes Ranking 2027 works, you are probably noticing that the real value isn't in the methodology itself, which is straightforward, but in the implementation details that most people skip over. The basic idea is simple: scrape or pull data from publicly available billionaire trackers, cross-reference them with known holdings, and run aggregations. What separates a working pipeline from a broken one is the edge case handling. I set up my first version of this around early 2025, just to see if I could reproduce the outputs people were sharing on GitHub. The Forbes real-time billionaire tracker has an API endpoint that spits out JSON with current valuations, but it throttles hard if you hit it without delays between requests. I learned that the hard way after my IP got rate-limited at about forty requests in, which took out two hours of debugging before I figured out the actual limit was something like two hundred requests per hour, not the fifty the docs suggested. The data structure Forbes returns includes fields like company name, net worth, source of wealth, and country. You need to join that against a secondary dataset because the raw numbers don't include private holdings that move the needle for people whose primary wealth isn't in publicly traded companies. That is where most people hit a wall.
Here is the workflow I ended up settling on. Pull the Forbes snapshot daily at midnight EST. Download it, parse the JSON, and output it to a local CSV so you aren't hitting the endpoint again unless you need to. Then run a matching script that looks up private company valuations from Crunchbase or similar sources for anyone whose net worth is over fifty million and isn't in the S&P 500. Flag those entries as needing manual verification rather than auto-filling them. The whole thing runs in about twelve minutes on a modest machine if you cache your API responses.
What People Get Wrong About This
The biggest issue I see is assuming the ranking numbers are static for more than a day. They aren't. When a company's stock moves ten percent in a single session, anyone whose wealth is tied to that company shifts by hundreds of millions. I spent a full week once trying to understand why my rankings for the top hundred kept drifting, only to realize I had stopped refreshing my data because the pipeline had errors I was too lazy to fix. The rankings change constantly. If your script only runs once a week, you are working with stale information and wondering why nothing matches. Another pitfall is the currency conversion problem. Forbes reports in USD, but for people with wealth in emerging market currencies, the exchange rate fluctuations alone can account for a ranking change bigger than any stock movement. I had a situation where a single individual dropped fifteen spots on the list between one pull and the next, and after investigation it turned out the Turkish lira had weakened enough to shift the valuation by nearly two billion dollars. The person hadn't sold a single asset. The math changed around them. So here is what you actually need to do if you want a working system. Use a Python script with the requests library to pull the Forbes API, parse with pandas, join against your private holdings dataset, apply a rolling daily average for currency exposure if you want to smooth noise, and then output a ranked CSV. Add logging. Add error handling for missing fields. Add a simple alert system that emails you when a known person drops out of the top thousand entirely, because that usually means a data error or a major event you want to investigate.
Get the Full Details

The download link situation is complicated. Mason Fulp has shared scripts on GitHub at various points, but they are not always maintained. The most useful ones are usually the older versions because the Forbes API changes often and newer attempts tend to break faster. I keep a fork of the latest working version I found and update it myself when something changes. That version is the one I have used consistently, and it handles the throttling issue I mentioned by implementing exponential backoff on retry logic.
Where This Breaks Down
This approach does not work well for family offices or dynastic wealth where the ownership structure is deliberately opaque. I ran into a case with a Middle Eastern billionaire whose holdings were spread across twenty shell companies in three jurisdictions. The Forbes data showed one net worth number, but the actual controlling stake was structured through layers that the public data couldn't resolve. My pipeline counted it as worth eight hundred million. When I dug into it, the real controlling interest was closer to three hundred million because the intermediate entities were heavily leveraged. You can't automate your way past that kind of structure without doing actual investigative work, which defeats the purpose of a scraping-based pipeline. Also, if you are trying to replicate this for the lower end of the billionaire list, below about two hundred million in net worth, the data quality drops off significantly. The sources simply aren't as reliable, and private company valuations become mostly estimates rather than hard numbers. I stopped trying to rank anyone below the top five hundred because the margin of error became too large to draw any meaningful conclusions from. For people who want to actually work with this data rather than just scrape it, I would recommend starting with the GitHub repository and reading through the issues section before you try to modify anything. The common problems are already documented there, including how to handle Forbes API key changes and how to set up your own credentials if the public endpoint stops working, which it occasionally does during maintenance windows.