Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
Fundamentals data in research (notebook) does not remotely match company 10K/Qs available online

EDIT: Error was mine. Get_fundamentals was calling a date reference that should have been undefined, but was defined from previous iterations of my code. Thanks to Dan for picking the mistake.

I'm putting together a notebook to identify stocks where price < Ben Graham's 'net net working capital per share'. (Where NNWC = (cash + accounts receivable * 0.75 + inventory * 0.5 - total liabilities) / shares outstanding)

As a sanity check, I compared the notebook balance sheet output for the stocks I found against the 10Ks and 10Qs available online. I was distressed to find that the fundamentals data from the notebook bore no correspondence to the companies' SEC filings.

You can replicate this. Run the attached notebook. From the dataframe, take the first stock, $AVHI. The dataframe gives its cash as $217m, AR as $10m, inventory as $264m and liabilities as $150m, with 11m shares outstanding.

The company's most recent 10Q, however has cash of $16m, inventory of $630m, AR of $10m, total liabilities of $420m and 22m shares outstanding.

I have replicated this for a couple of the other stocks in the list. I've also checked that the pipeline is pulling the right stock code, in case there are multiple stocks with the same ticker.

Any ideas what is going on here? Makes me seriously question what is going on with the fundamentals data we all rely on!

5 responses

I should add: it's entirely possible I've done something stupid and the error is on my end. If so I'm sorry for the letting my frustration show through in my post.

Steve,

Hmm, maybe check the date for your query. You may have been looking at old fundamental data (or at least not the date you were expecting).

I tried running your notebook and I got an error first thing that 'date' in your fundamental query wasn't defined. I changed it to start date (which was set to 2016-05-26 in the previous cell) and everything ran. However, the query didn't return any data for 'buy' (probably none passed the criteria) but did for the 2xGraham. Anyway, I simply added a column to display cash_and_cash_equivalents in the 2x Graham query (so I could check some of the fundamental data). The first stock was ELRC and the numbers checked against the Edgar filings (for cash at least).

Dan

Yep that's the problem. Thanks Dan - 'date' should've come up as undefined, except it was defined in a previous iteration of the code.

Did you ever go further with this? I was/am looking to build a net-net screener myself.

and yeah, I realize your post is from two years ago lol.