getDataSummary method

Map<String, dynamic> getDataSummary(
  1. CompanyFinancials financials
)

Get a summary of available data for a company.

Implementation

Map<String, dynamic> getDataSummary(CompanyFinancials financials) {
  final metricCoverage = <String, Map<String, dynamic>>{};

  for (final entry in financials.metrics.entries) {
    final metric = entry.key;
    final history = entry.value;

    final annualYears =
        history.annualValues.map((v) => v.fiscalPeriod.year).toSet();
    final quarterlyCount = history.quarterlyValues.length;

    metricCoverage[metric.name] = {
      'displayName': metric.displayName,
      'annualYears': annualYears.toList()..sort(),
      'quarterlyDataPoints': quarterlyCount,
      'latestValue': history.latest?.value,
      'latestPeriod': history.latest?.fiscalPeriod.toString(),
    };
  }

  return {
    'ticker': financials.ticker,
    'companyName': financials.companyName,
    'yearRange': financials.yearRange,
    'metricsAvailable': financials.metrics.length,
    'metrics': metricCoverage,
  };
}