anchor.diff:        id:'hit-count',
         class:'traffic-light-count'
       }).text(counts.hit);
  -    const hoverTip = 'correct predictions';
  +    const hoverTip = 'count of correct predictions';
       cd.setTip($hitCount, () => cd.showHoverTip($hitCount, hoverTip));
       return $('<div>', {id:'hit-box'}).append($hitImg).append($hitCount);
     };
  
positive.code:   };
  
    const prediction = (light) => {
      // Don't count pulling/timed_out/faulty as incorrect predictions.
      return light.predicted != undefined &&
               light.predicted != 'none' &&
                 isRag(light.colour);
    };
  
    const isRag = (s) => ['red','amber','green'].includes(s);
  
negative.code:       id:'miss-count',
        class:'traffic-light-count'
      }).text(counts.miss);
      const hoverTip = 'count of incorrect predictions';
      cd.setTip($missCount, () => cd.showHoverTip($missCount, hoverTip));
      return $('<div>', {id:'miss-box'}).append($missImg).append($missCount);
    };
  