public static float ratePromotion(Background next, Actor actor) {
    float rating = 1 ;
    //
    //  Check for similar skills.
    for (Skill s : next.baseSkills.keySet()) {
      rating += rateSimilarity(s, next, actor) ;
    }
    final Batch <Skill> skills = actor.traits.skillSet() ;
    for (Skill s : actor.traits.skillSet()) {
      rating += rateSimilarity(s, next, actor) ;
    }
    rating /= 1 + next.baseSkills.size() + skills.size() ;
    //
    //  Favour transition to more prestigious vocations-
    if (actor instanceof Human) {
      final Background prior = ((Human) actor).career().topBackground() ;
      if (next.standing < prior.standing) return rating / 10f ;
    }
    return rating ;
  }