optimal roster logic