Ordinal classification with xgboost
You can run 2 xgboost binary classifiers 


1 classifier  classifies if sample is (good or very good)
2 classifier classfies if sample is very good
if both true on unseen data classify as very good
if only 1st one true, second false  classify as good
 both false=> classify as bad