Formula for change to Days Sales Outstanding

Hi,
I had read that an indicator of a company’s potential future trouble could be a large change in their DSO (Days Sales Outstanding).
I am trying to create formulas to see if their DSO is changing on a Q-PQ and TTM-PTM basis.
I would take the difference and then the absolute value for either movements increasing or decreasing.
I would then say lower is better (the difference being closer to zero is the best)
I have come up with the following.

abs((RecvblQ/ SalesQ)-(RecvblPQ/ SalesPQ))

abs((RecvblTTM/ SalesTTM)-(RecvblPTM/ SalesPTM))

When I used this, my sim results got noticeably worse so I am thinking I am doing something wrong.

  • Maybe just looking at decrease instead of just a net zero?

Any inputs are appreciated.
David

I wouldn’t try to test these sorts of factors using simulations/screens, because the effect is likely to be too small to be picked up. I suggest putting into a ranking system and doing a rank performance test.

I had a go, you can see it here:

https://www.portfolio123.com/app/ranking-system/221126

I have attached a screenshot of the rank performance run - russell 3000 is used as an “investable” universe. This is likely to be a mild factor, so I used 10 buckets. As you can see, it does have an effect. You won’t be able to build a trading system out of it, but it could be a useful “ingredient” in a ranking.

I was not sure about the use of abs() so I did another test without it, but the results are inferior. I am still thinking why this might be the case. A declining ratio might be due to declining sales, as the receivables are paid in from previous sales, they may fall at a faster rate.

As a related issue you might also look at the ratio of cashflows to earnings.


Yes, this is only one of about a dozen factors in the rank and is used as one sanity check for quality of earnings.
I am trying to see if the DSO is expanding recently which might indicate that the company’s sales figures are not reliable or they have end customers who are in trouble with paying. I agree that receivables should expand and contract in relation to sales so I was looking for a gross variance that might indicate trouble.
Just lower DSO might be the answer instead of looking at a variance from period to period. It might be that a company has continual issues with revenue recognition and just looking at the variance would not pick this up. In general, less DSO is always better.
The other thing is that I am not even sure if DSO applies uniformly to all sectors. For instance, not sure the effect in the Financial Sector. I am going to exclude it and see what happens.

On cash flow to earnings, I have used that as well. It helps sometimes too. I use OCFPSTTM/EPSXclXORTTM (higher is better).

The other is for less intangible assets as a proportion of total assets. Companies that have acquired too many others may have too much goodwill that is really not productive and bloating their book value. AstInTanQ/ AstTotQ (lower better)

I have also looked at inventory levels to sales but that can get very tricky in terms of timing a company’s anticipated sales ramp up plus where the costs are (raw material, FGI, etc). Also, like DSO, inventory levels are for non-financial companies. I would like to keep the model Sector-agnostic.

I can’t read the footnotes of a 10-K at 3AM on Monday to figure out if I want to buy a model’s recommended stock or not for that week.

I need to use the factors that P123 has for me and go with that.

David,

Some of these ratios are very different from industry to industry. You may find better results if you compare them to their industry instead of globally. That way you won’t be weighting certain industries over others at the expense of excellent better stocks in other industries.

Denny :sunglasses:

David,

I have been working on a lot of ‘bottom up’, quant focused financial analysis of late. In addition to Denny’s point about significant potential differences across industries (whereby a single ‘simple’ rule, could end up having industry and sector overweighting impacts that we didn’t intend), I would add that we have to be careful in using ‘simple’ ratio’s like this:

abs((RecvblQ/ SalesQ)-(RecvblPQ/ SalesPQ))

With this single factor included in a stock system…a stock that has had a 100% increase in the level of receivables to sales (say, by going from Accounts receivable of 1% of sales to 2% of sales), will rank much lower than a stock that had a 10% increase (going from AR/Sales of 200% to 220%). But…clearly, this is not really capturing the ‘quality’ dimension we want. And we would not likely manually rank them that way.

So…yes, many performance rules are talked about and written up, and simpler can be better…but we also have to do our best to be disciplined in defining, testing and understanding what’s happening as we convert concepts into factors and real world trading systems.

And…above and beyond this, lumping together a lot of factors can lead to real issues in terms of what’s ultimately being done. So…We have to try to get more nuanced and look at what they are actually doing and how they interact. It’s fairly time consuming. Which is why quant firms often have teams of many (sometimes 100’s) of full time people.

Best,
Tom

In terms of comparing it to its Industry brethren, my idea was more to compare the company to its own performance over time to see if its own DSO was stretching out. It was not to find those companies with the shortest in its Industry but find those where it is either being more liberal in recognizing revenue or having a harder time collecting from customers, on a quarter to quarter and year to year basis. So it is a quality measurement for that one company, not really comparing it against others. The book ‘What’s Behind the Number’s’ has good examples of where this is an advanced indicator of a company that could tank.
Concerning how I wrote my equation, I was trying to create one that would give a higher rank to a company that had the smallest variance between the factors. So was taking the difference and then trying to minimize the difference (by lower is better) . I also wanted the difference between being negative and positive to give the same result, hence I used absolute value. I could try and use a Boolean with something=something but it would only work if they are exactly the same.

Tom, your point is a good one. That was why I was looking for feedback on how my equation was structured.

Does anyone use a standard format for a formula where you are looking for no/small changes from time period to time period? I am not sure how to write that formula to give me that result. Does this make sense?

Another example of the use of this type of formula is to rank a stock highly which has neither issued more stock nor bought any back. Just kept about the same from period to period. This generic formula format would be used for that as well.

Right. That’s a good thing to be doing.

I found this are ripe for custom formulas or setvar. For example, I had $_DSO_0_Qtr equal to (Recvbl(0,qtr)/Sales(0,qtr))*91.25. I compute a bunch of other quarterly DSO items the same way. Then comes the fun. Compute a bunch of year-to-year DSO-change ratios, such as setvar(@DSO_PYQoff0,$DSO_0_QTR/$DSO_4_QTR); setvar(@DSO_PYQoff1,$DSO_1_QTR/$DSO_5_QTR), etc. Look, then, for situations where @DSO_PYQoff0 is out of whack relative to the company’s own trend. I suggest using the Screen Factors report to download and then eyeball to @DSO_PYOffx items to see what looks troublesome and how you might express trouble in p123 language.

It’s cumbersome, but you need to expect that. Shady CFO are far too smart to do things in ways that make manipulation easy to detect. But it’s definitely do-able.

Thanks Marc. That is what I was looking for. I am not sure if this will lead to better returns but I am learning something new as I try so it is worth the effort.

The type of modelling I did here actually produced worse returns (as it should; I looked for companies with unappealing DSO trends).

One way to use this would be for a short model or the short portion of a long-short strategy. Another, more conventional approach, would be to filter out potential dogs from a larger universe, so you might wind up modelling against something like a Prussell3000quanlity universe instead of Prussll3000. And, of course, we could just append an earnings-quality routine such as something based on DSO to another model (perhaps by using p123’s Screen() function as a final cleanup to a primary screen or set of buy rules.

The main value of this sort of thing, IMO, is not so much to hunt for winners as to weed out potential dogs. We’re all very much attuned to looking for things we believe likely to provide positive alpha. But sometimes, I think we can underestimate the benefits of aiming to eliminate potential dumpster fires.