anchor.diff:      callApi(Future.wait([openPR, closedPR]).then((values) {
         int open = values[0];
         int closed = values[1];
  -      // TODO: Figure out better score measure
  -      int prScore = min((log(open + closed)).round(), 8);
  -      criterion.add(new ScoreCriteria('Pull Requests', '$open open, $closed closed', prScore, 8));
  +
  +      int ratioScore = closed > 0 ? getScore(open / closed, [0.05, 0.01], descending: true) : 0;
  +      int issueScore = getScore(open + closed, [1, 5, 10, 40, 90, 150]);
  +      int totalScore = ratioScore > 0 ? issueScore + ((issueScore / 4) * ratioScore).round() : issueScore;
  +
  +      criterion.add(new ScoreCriteria('Pull Requests', '$open open, $closed closed', totalScore, 8));
       }));
   
       callApi(getCount('$githubUrl/repos/$shortRepo/contributors?per_page=1').then((count) {
  
positive.code: 
      // Rank README file
      callApi(github.readme(repoSlug).then((file) {
        criterion.add(new ScoreCriteria.fromSteps('Readme', file.size, [1, 500, 1800], 3, visibleValue: (value) => '$value bytes'));
      })
      .catchError((e) {
        criterion.add(new ScoreCriteria('Readme', 0, 0, 3, visibleValue: (value) => 'None'));
      }, test: (e) => e is NotFound));
  
      var openPR = getCount('$githubUrl/repos/$shortRepo/pulls?state=open&per_page=1');
  
negative.code:     callApi(Future.wait([openIssues, closedIssues]).then((values) {
        int open = values[0];
        int closed = values[1];
  
        int ratioScore = closed > 0 ? getScore(open / closed, [0.3, 0.15], descending: true) : 0;
        int issueScore = getScore(open + closed, [1, 5, 15, 50]);
        int totalScore = ratioScore > 0 ? issueScore + ((issueScore / 4) * ratioScore).round() : issueScore;
  
        criterion.add(new ScoreCriteria('Issues', '$open open, $closed closed', totalScore, 6));
      }));
    }
  
    int getScore(num value, List steps, {bool descending: false}) {
      int score = 0;
  
      if(descending) {
        while(score < steps.length && value <= steps[score]) {
          score++;
        }
      } else {
        while(score < steps.length && value >= steps[score]) {
          score++;
        }
      }
  
      return score;
    }
  
    callApi(Future api) {
  