I looked at Showvar(@spread,spread(0)) for the first 10 holdings of GARP $1M versus the closing (16:00:00 bar) BID/ASK as shown by Fidelity. They were exactly the same for all ten.
So the ICE data are 100% accurate (or it agrees 100% with the Fidelity data).
I am not sure if the closing cross is narrowing the BID/ASK at the end of the day or if this narrowing of the spread is not related to the closing cross (see below). It may be that higher volumes at the end of the day are narrowing the spreads (probably). But Spread(0) was less than or equal to the spread at 10:30 AM in every case.
Spot check of first 10 holdings of GARP $1M
Ticker, Last, Spread(0), Spread at 10:30 Friday (Fidelity data)
AEL 35.81 0.01 0.02
ANTM 249.48 0.01 0.2 (not a decimal error)
DSW 26.81 0.01 0.02
ENSG 37.11 0.01 0.06 (wider spread during the day NOT FLAGGED by Spread(0))
PFBC 62.94 0.06 0.15 (wider spread during the day flagged by Spread(0))
RYAM 17.28 0.01 0.01
SC 19.39 0.01 0.01
TSG 25.60 0.05 0.10 (wider spread during the day flagged by Spread(0))
WCG 255.73 0.01 0.24 (not an error)
XCRA 14.29 0.01 0.01
Conclusions: for ANTM and for WCG the spreads during the day and at the close are markedly different. But these stocks have high prices 249.46 and 255.73 respectively. By taking spread(0)/close(0) the data is still useful for trading during the day as this does accurately reflect the general trend of the spread amount in percent for these stocks.
Spread(0)/Close(0) would not have detected the relatively wide spread for ENSG during the day but it would have flagged TSG and PFBC.
This does seem to be sensitive enough in identifying large spreads (for this small sample) to be helpful (sensitivity = 66%). But it may not identify every stock with a wide spread.
My small sample did not have any false positives (it was specific). I.E., it did not flag any stocks as having wide spreads that did not, if fact, have wide spreads during the day.
My sample is small and it did not look at the more thinly trades stocks.
Penultimate conclusion: Doubling Spread(0) (or a factor close to 2) would give a pretty good estimate of the spread during the day. Using 2 as a factor then 100 * (2*Spread(0))/(2 * Close(0)) or or 100 * Spread(0)/Close(0) might give a good estimate of the slippage in percent. The factor could be (should be) refined.
Specifically for this study the slippage would have been 0.0337% or 3 basis points for the end of the day spread and 0.0637% or 6 basis points for trades at 10:30 AM based on the BID/ASK at that time on Friday. This assumes that the average buys were at the ASK or sells at the BID. I think this is an excellent conservative estimate. Most people at P123 can do this well (or better) with each individual trade. Price impact with multiple trades is a whole different thing.
Final Conclusion: LIKELY TO BE VERY ACCURATE FOR PREDICTING SLIPPAGE (in aggregate for a port/sim). Especially after a little more work (more trials, bigger samples and different universes) than I have done here. I do not think it would be necessary to calculate the slippage for every transaction in a sim. Going back a month, a few months or whatever is possible with the computing power at P123 should be very accurate. The data seems to go back many years.
Slippage before penny pricing of stocks is useless information. Also, inflation makes your universe today a little different (in practice) than the distant past. So the use of extensive historical data is probably not necessary (or even helpful) on this. Going back a couple of years could be better than a couple of months for predicting slippage but I will take a couple of months if that is the best bang for the buck.
-Jim