Greetings. It's that time again — time for a little corporate update. I was planning on doing these on Youtube but AJ says I "look like a robot on camera". So I guess Mr Roboto here will be doing the updates on Substack.
13G Parsing
So in February I decided to finally tackle a task AJ and I have been wanting to do for a long time. We are now parsing and tracking fund ownership across all 13G and 13G/As. Before I go into the details of how we can use this data, let's do a quick recap on the mechanics of these filings. In the simplest terms, when a fund first buys more than 5% ownership of a particular stock, the fund is required (by Rule 13d-1(b) or Rule 13d-1(c)) to file a 13G documenting how much of the stock they own. If the ownership changes (ie, the fund buys more or sells), the fund should file a 13G/A. That /A means it's an amendment.
Let's run through a real example.
Here is Rock Springs Capital's first buy into XLO: https://www.sec.gov/Archives/edgar/data/1595725/000117266124001213/rocksprings-xlo123123.htm. This 13G documents their purchase of 1.4m shares. And here's their followup 13G/A showing they now own 3m shares: https://www.sec.gov/Archives/edgar/data/1840233/000117266124001733/0001172661-24-001733-index.htm
Now… I don't know what lawyer or government genius thought it would be cool to have just the current share ownership in the 13G/A and not current ownership and previous ownership numbers… but someone did. And it's super frustrating because every time you see a 13G/A from a fund you don't know if they bought or sold. You have to go find the previous 13G or the previous 13G/A, find their previous ownership, and compare to the latest filing.
To make matters worse, there's not really a consistent 13G filing format so parsing is an enormous challenge. If you're super lucky, sometimes it's in XML (ie structured) form. But most of the time it's some HTML file generated by Microsoft Word and usually the HTML generated is complete shit. However with quite a bit of preprocessing of the documents and some help from ChatGPT we're now able to parse the share ownerships.
Once they're all parsed in our system, with a little bit of code we are able to link each filing back to the previous filing and determine how much the ownership changed:
We found some really interesting uhhh… "mistakes"... in EDGAR. Take KROS for example.
That green dot in February is a 13G. Good right? Someone is buying… right? Wrong.
Here's the 13G https://www.sec.gov/Archives/edgar/data/1230239/000090266425001043/xslSCHEDULE_13G_X01/primary_doc.xml. It _appears_ that Aikeon Capital bought 1.1m shares. After all, a 13G is supposed to be the first filing. Every subsequent filing of their ownership should be a 13G/A. However Aikeon's first buy was recorded in this 13G: https://www.sec.gov/Archives/edgar/data/1664710/000093583624000149/0000935836-24-000149-index.htm. So that first document should have been a 13G. Even funnier, the second document was filed as a 13G/A in EDGAR:
but the actual document says it's a 13G.
OOPS. We've actually seen this before – a 13G that should be a 13G/A. Probably just a misclick… surely.
Anyway, what are we doing with the data? Well if you've followed us for any period of time you'll most likely know our theory is that stocks move on liquidity changes and nothing else. Feel free to debate AJ on Twitter if you feel otherwise. The first thing we've done with the data is enhance the graphs. Now any 13G or 13G/A that shows an increase in ownership will be denoted on the graph as a green triangle. Any sells are now red triangles. Bigger triangles mean bigger buys or bigger sells.
For instance:
We're now using this data to improve our 90 day Liquidity Metric.
This metric is a combination of 13G increases/decreases and other liquidity indicators like our Delta Liquidity indicator (the purple and yellow lines in the volume section of the charts).
I also wrote a new alert that uses this data that uses the R/S compliance data plus a square wave drop in share price plus the 13G liquidity changes. This week it found 2 stocks:
BTAI ran ~40% and ENVB ran 400%. We bought BTAI but not ENVB (I guess because we're idiots?). In fact, we bought BTAI the _DAY BEFORE_ it ran 40%. Easiest money we've made in a while. And you know we're all about "shut up and prove it". Here's the tweet https://x.com/GravityAnalyti1/status/1895149650920763780
Anyway, if you're a chat subscriber, be on the lookout for this alert in the alerts channel. If there's any interest we could make this 13G data available on the website (maybe some kind of 13G/fund explorer? Who knows). Let us know. If you're NOT a chat subscriber, we offer a 7-day free trial.
Kickstarter
So for the last 6 weeks or so I've been forcing my wife to watch the greatest scifi tv show ever… Stargate SG-1. It's on Amazon Prime Video and I'm too damn cheap to pay $3 more a month for the Ad-less videos. Bezos has enough money right? Anyway, holy shit there are a LOT of commercials. And they're not even funny. Remember the commercials from the 90s? Beef it's what's for dinner.. or the sheep that were in prison for "tearing a man to pieces"
Now those were great. But this garbage nowadays is like "watch us dance and sing while we talk about this great new drug that's gonna cure your psoriasis but could possibly, potentially, probably cause you to shit your pants in public". Or my favorite "don't take this drug if you're allergic to this drug". To add insult to injury, every fucking commercial is like 10dB louder.
So I was thinking… someone needs to make a small device with a mic and a camera that watches/listens for the commercials and automagically mutes the TV.
For you coders out there, you could probably glue together the code pretty quickly. https://github.com/jcarbaugh/python-roku Here's some code to control your Roku device. https://beepscore.com/website/2019/04/21/automatically-detecting-television-commercials.html and https://vasanthkalingeri.github.io/CommercialDetection/ talk about how to detect the commercials.
Some of us should get together and make a Kickstarter for this device. Seems pretty simple. Raspberry Pi, camera module, and some Python code. Sounds simple. Who wants to do it? Who's in?
Anyway, that's all for Feb 2025. More to come. See you in chat.
-Shaun
Disclaimer: We own all the stocks mentioned in this post.
We can be found on Twitter.
Or in Chat.
Our charting tools and risk-engine are available via subscription.
DISCLAIMER: DO NOT BASE ANY INVESTMENT DECISION UPON ANY MATERIALS FOUND ON THIS WEBSITE. We are not registered as a securities broker-dealer or an investment adviser either with the U.S. Securities and Exchange Commission (the “SEC”) or with any state securities regulatory authority. We are neither licensed nor qualified to provide investment advice. Our website has been prepared for informational purposes only and is not intended to be used as a complete source of information on any particular company. Past performance is not indicative of future results. The material contained on this page is intended for informational purposes only. GravityAnalytica.com is wholly-owned by Gravity Analytica, LLC. Our website is not an offer nor recommendation to buy or sell any security. We hold no investment licenses and are thus neither licensed nor qualified to provide investment advice. The content of our website and/or newsletter is not provided to any individual with a view toward their individual circumstances. While all information is believed to be reliable, it is not guaranteed by us to be accurate. Individuals should assume that all information contained on our website is not trustworthy unless verified by their own independent research. Also, because events and circumstances frequently do not occur as expected, there will likely be differences between the any predictions and actual results. Always consult a licensed investment professional before making any investment decision. Be extremely careful, investing in securities carries a high degree of risk; you may likely lose some or all of the investment. We reserve the right to buy or sell shares of any company mentioned on our website or in our newsletter at any time. We encourage you to invest carefully and read investment information available at the websites of the SEC at
http://www.sec.gov
and FINRA at
http://www.finra.org
.
The company or individuals affiliated may hold positions or may enter into, or exit, positions on any equities at any time. This website and materials found on this website, or in any communication, are meant for individuals of eighteen (18) years of age or older and are not suitable for younger audiences. Materials and information provided on this website and in any communications with or from Gravity Analytica LLC, it's employees or affiliates, are for personal education use by subscribers and may be not be used in any regard in competition with this website or any other product or service offered by Gravity Analytica LLC. Past results do not predict future returns. IF YOU DO NOT AGREE WITH THE TERMS OF THIS DISCLAIMER, PLEASE EXIT THIS SITE IMMEDIATELY. PLEASE BE ADVISED THAT YOUR CONTINUED USE OF THIS SITE OR THE INFORMATION PROVIDED HEREIN SHALL INDICATE YOUR CONSENT AND AGREEMENT TO THESE TERMS.