top of page
Data integrity
Notes on the data-integrity work: the leakage screen, the release gate, public audits, and what I sent to standards bodies. Longer and more technical than the lab notes.


Shuffle test
A small idea that I like. If arrival order carries information, then a signal computed on an incomplete cross section should be correlated with the arrival order. If it does not carry information, shuffling the arrival order inside the same period should give me about the same number. So the test is this. Compute the correlation between arrival rank and the signal, then shuffle the arrival order 200 times and see where the noise floor is. If the real number sits far above the
maxwellapex
Apr 141 min read
Â
Â
Â


Point-in-time is not enough
Update on the timing problem. The standard answer is point-in-time data, or an as-of join in a feature store. For every row, only use what was available at that time. I did that. It is necessary, but it does not solve the thing I wrote about in December. An as-of join fixes each row. It does not tell you whether the cross section is complete. If 40% of the companies have reported and the other 60% are late because their news is bad, every single row is point-in-time correct a
maxwellapex
Feb 101 min read
Â
Â
Â


Late filers
So the financial report project went to a strange place. I was building a panel of company fundamentals from SEC filings, and I kept the filing date of every report, because I wanted to know what was known at what time. Then I noticed something simple. Companies with bad numbers file late. Not always, but often enough. So if I take a snapshot in the middle of a quarter, the companies that already reported are the ones with good news, and the "average" I calculate is not the a
maxwellapex
Dec 5, 20251 min read
Â
Â
Â
bottom of page