Thanks for the question.
Your understanding and conclusions are correct.
See
here for even more details.
QR puts the reader into a mode where it returns tag reads, and their signal strength, as frequently as possible.
Each antenna generates a series of tuples consisting of [tagID, timestamp, signalStrength].
CrossMgrImpinj first chooses the antenna with the highest signalStrength in its series for further analysis.
It then does outlier detection to eliminate values that are "likely" outside a reasonable range.
Outliers have many causes. Reflections are most common.
Imagine a piece of flat metal (eg. car door), that the tag return bounces off.
If the distance of the tag-metal-antenna reflection is in phase with the wavelength, it could theoretically cause a return that is 2x the normal signal strength.
If perfectly out of phase, it could cancel the signal strength entirely.
It is critical to eliminate these outliers because the Quadratic Regression formula is very sensitive to them. This can lead to wonky results.
Quadratic Regression uses the signalStrength to compute a best-fit quadratic, then returns the time at the apex
The calculation is not limited by the time resolution of the reader (usually about 1/200 of a second).
Sometimes the data is too "squirrelly" and outlier detection fails.
The system then falls back to choosing the time at the highest signal strength.
This behavior can also be forced by choosing the "Strongest Read" option in CrossMgrImpinj, however, QR is usually a better option.
And, Strongest Read times are limited to the reader's read frequency
I really liked your diagram. Itt shows "First Read" logic, which is also supported by CrossMgrImpinj.
As you point out, First Read is useless for bunch finishes (better for TTs with a narrow finish line, but there are many problems here too).
Unfortunately, some cheap readers do not support the mode required for QR and first-read is the only option.
Some really cheap Chinese readers don;t return signal strength at all.
It is frustrating that I get requests for this a few times a month.
After years of experience with Criterium bunch finishes, we feel QR has a resolution of 100-200mm, that is, if riders are separated by more than 100-200mm, they will be recorded in the correct order.
It's not perfect, and in a bunch sprint we might have to swap a few finishers based on the camera (which we take with cell phones).
This saves a lot of time as you don't even have to look at riders more than 200mm apart.
This is competitive with active chip technology, and within the error of bike mounting variability.
Of course, you also get chip timing benefits like real-time results and identification beyond the bib numbers.
In CX and MTB, corrections are rare.