evaluateAllMetrics(siteIndexWithComputed, baselineData) {
    const entries = this.combineBaselineAndComputedDatasets(siteIndexWithComputed, baselineData);
    /** @param {keyof TargetMetrics} metric @param {keyof LanternMetrics} lanternMetric */
    const evaluate = (metric, lanternMetric) => {
      const result = this.evaluateAccuracy(entries, metric, lanternMetric);
      delete result.evaluations;
      return result;
    };

    return {
      roughEstimateOfFCP: evaluate('firstContentfulPaint', 'roughEstimateOfFCP'),
      roughEstimateOfSI: evaluate('speedIndex', 'roughEstimateOfSI'),
      roughEstimateOfTTI: evaluate('timeToConsistentlyInteractive', 'roughEstimateOfTTI'),
      roughEstimateOfLCP: evaluate('largestContentfulPaint', 'roughEstimateOfLCP'),
      // TODO: enable when new traces are collected.
      // roughEstimateOfTTFB: evaluate('timeToFirstByte', 'roughEstimateOfTTFB'),
      // roughEstimateOfLCPLoadStart: evaluate('largestContentfulPaintLoadStart', 'roughEstimateOfLCPLoadStart'),
      // roughEstimateOfLCPLoadEnd: evaluate('largestContentfulPaintLoadEnd', 'roughEstimateOfLCPLoadEnd'),
    };
  }
@param {{sites: Array<LanternSiteDefinition>}} siteIndexWithComputed
@param {{sites: Array<LanternMetrics & {url: string}>}} baselineData