Amazing outcome of a very important research
Because of the absence of new things to do in pokemon go, i started this very important research.
My research was about the weight of Rattata's, below is my evidence regarding the subject. It shows that the maximum weight of a Rattata has to be 2.62 kilograms in order to be registered as "xs".
I will now spend my time on the other big issue in pokemon go, finding the minimum weight of a "big" Magikarp.
Following your footstep, I have pinpointed the exact criteria for XL height for rattatas, which has to be equal to or greater than 0.38m
The other two threshold is not totally clear yet, I have narrowed it down to the following range:
XS height: either 0.22 or 0.23m, since I found a 0.22m xs rattata and a 0.24m normal one.
XL weight: this is a big range, I found a 4.29kg normal rattata and a 4.42kg XL rattata, so the threshold should be between 4.30 and 4.42kg.
I checked GameMaster and there are two relevant values for Rattata:
It seems that the threshold for XS and XL is (pokedex_weight_kg +- 2 * weight_std_dev). For XS, we get 2.625 kg and for XL we get 4.375 kg. Both of these seem to fit with your data and the data provided by OP.
Same goes for height, these values can be found in GameMaster:
Using the above formula we get 0.225 m for XS and 0.375 m for XL. Again, this seems to fit your data. More data would be needed to verify this though.