I can't agree to anything that isn't backed by data, and that includes efficiency.
For average velocity, 20 is probably fine, judging by the data.
For standard deviation in velocity, 20 does not appear to be fine when the possible error in the standard deviation resulting from a sampling of 20 shots is potentially on the same scale as the trend that you were trying to indicate.
I ran some numbers with my own data, I will plug yours in once I figure out which data of yours you're willing to accept. Like I said originally, I looked at the last 100 of your first 500 because the previous shots were probably going crazy. Sure, you'll get an errant shot every now and then. That's what a larger sample is supposed to smooth over. Errant shots, and the probability of hitting a particularly bad run which is not reflective of the overall deviation, either on the + or - side. Shorter runs have a higher probability of showing up.
I did a run of 100 shots, same paint, same barrel, two different guns. (My testing was actually targeting efficiency.) I also generated random numbers with a similar FPS variance. Here's what it looks like:
Automag:
Window size 10, stdev variance 8.871928-2.936362=5.935566, mean variance 8.400000
Window size 20, stdev variance 6.990783-4.148240=2.842543, mean variance 5.700000
Window size 30, stdev variance 7.515195-4.657092=2.858103, mean variance 2.666667
Window size 40, stdev variance 6.978171-5.118844=1.859327, mean variance 1.750000
Window size 50, stdev variance 6.476457-5.346599=1.129857, mean variance 1.460000
100 shot (mean, stdev) = (284.24, 6.171161343153523)
Spyder:
Window size 10, stdev variance 8.875059-3.335000=5.540059, mean variance 9.800000
Window size 20, stdev variance 8.041177-4.073018=3.968159, mean variance 6.250000
Window size 30, stdev variance 7.793381-4.508485=3.284896, mean variance 5.600000
Window size 40, stdev variance 7.330302-5.196399=2.133903, mean variance 3.600000
Window size 50, stdev variance 6.867136-5.502838=1.364298, mean variance 2.400000
100 shot (mean, stdev) = (291.15, 6.189556208695906)
Random (100):
Window size 10, stdev variance 7.241854-3.326660=3.915194, mean variance 9.000000
Window size 20, stdev variance 6.863327-5.369505=1.493823, mean variance 4.600000
Window size 30, stdev variance 6.662987-5.476806=1.186182, mean variance 2.933333
Window size 40, stdev variance 6.587478-5.858098=0.729381, mean variance 2.475000
Window size 50, stdev variance 6.610320-5.842979=0.767340, mean variance 1.840000
100 shot (mean, stdev) = (285.48, 6.179928409902099)
Full data set is here:
https://docs.google.com/spreadsheet/...kE&usp=sharing
And the python script I used for the calcs I can make public too; it's pretty trivial though.
The upshot is kind of obvious: the larger a window you take, the better the variance in the resulting standard deviation is.
How large a sampling is large enough? It's a matter of scale between the possible error in standard deviation, and how big the trend that you're trying to spot is.
If the possible swing in your results is larger than your trend, it's hard to say your results are conclusive.