A Dilution Risk Scorecard

I tried to replicate A Dilution Risk Scorecard from @rtelford:

formula:
Eval(OperCashFlTTM > 0, 1, 0) +
Eval(OperCashFlTTM > 0, 1, Eval((CashEquivQ / Max(0.001, Abs(OperCashFlTTM / 12))) >= 12, 1, 0)) +
Eval(SharesGr%TTM < 3, 1, 0) +
Eval(((IsNA(SharesFDQ, SharesQ) - SharesQ) / Max(0.001, SharesQ)) < 0.05, 1, 0) +
Eval(IsNA(CurRatioQ, 0) > 1.5, 1, 0)

or this simpler one:
(OperCashFlTTM > 0) +
(Eval(FCFTTM >= 0, 1, CashEquivQ / Abs(FCFTTM) > 1)) +
(SharesQ / SharesPYQ < 1.03) +
((SharesFDQ - SharesQ) / SharesQ < 0.05) +
(CurRatioQ > 1.5)

Works quite well especially for shorting (or filtering out) stocks.
Let me know if you spot any issue with the formula.

Source:
https://microcapclub.com/how-to-avoid-dilution-in-microcaps-a-dilution-risk-scorecard/

5 Likes

This is pretty close Piotr, a few minor differences, but it’s more or less it.

It does seem to work well to filter out a lot of junk, and stocks at higher risk of diluting.

https://microcapclub.com/how-to-avoid-dilution-in-microcaps-a-dilution-risk-scorecard/

Thanks for sharing the link with the forum!

Cheers,

Ryan

2 Likes

Thank you!!!

Thanks for your insights.

However when i apply this factor to ranking i get opposite results than what we expect on R3000 stocks (bucket 10 indicate factor =1, bucket 1 indicate factor =0). Can anyone replicate this result?

I used 5 buckets, R3000, and added tiny random noise to sort stocks with same score.

isna((OperCashFlTTM > 0) + (Eval(FCFTTM >= 0, 1, CashEquivQ / Abs(FCFTTM) > 1)) + (SharesQ / SharesPYQ < 1.03) + ((SharesFDQ - SharesQ) / SharesQ < 0.05) + (CurRatioQ > 1.5), 0) * (random/1000)

I'm not sure about the 'Cash Runway' factor (the second one). Maybe @rtelford or @yuvaltaylor will revise it.

3 Likes