def combine_final_scorer_results(
  modelResultsFromEachScorer: List[ModelResult],
  noteStatusHistory: pd.DataFrame,
) -> Tuple[pd.DataFrame, pd.DataFrame]:
  """
  Returns:
    Tuple[pd.DataFrame, pd.DataFrame]:
      scoredNotes pd.DataFrame: one row per note contained note scores and parameters.
      auxiliaryNoteInfo pd.DataFrame: one row per note containing supplemental values used in scoring.
  """
  # Initialize return data frames.
  scoredNotes = noteStatusHistory[[c.noteIdKey]].drop_duplicates()
  auxiliaryNoteInfo = noteStatusHistory[[c.noteIdKey]].drop_duplicates()

  # Merge the results
  for modelResult in modelResultsFromEachScorer:
    scoredNotes, auxiliaryNoteInfo = _merge_results(
      scoredNotes,
      auxiliaryNoteInfo,
      modelResult.scoredNotes,
      modelResult.auxiliaryNoteInfo,
    )
  scoredNotes = coalesce_group_model_scored_notes(scoredNotes)
  scoredNotes = coalesce_multi_group_model_scored_notes(scoredNotes)
  scoredNotes = coalesce_topic_models(scoredNotes)
  return scoredNotes, auxiliaryNoteInfo

  Returns:
    Tuple[pd.DataFrame, pd.DataFrame]:
      scoredNotes pd.DataFrame: one row per note contained note scores and parameters.
      auxiliaryNoteInfo pd.DataFrame: one row per note containing supplemental values used in scoring.
  
sourcecode/scoring/run_scoring.py