Models systematically underestimate values on the test set, why?
Welcome to data science SO. It seems your model has a bias towards a lower estimate of the true values. This can happen for a variety of reasons. Say you are trying to fit a straight line on data that was generated by a second degree polynomial. The straight line fit will have a bias. Typically bias happens because the model you are trying to build is insufficient able to capture the dynamics of the data you are trying to fit it on. I understand this is very generic but without more info about what model you used or any plot of the test set it is hard to help you more.