code: def get_last_data_per_qtr(self,
                                assets_with_data,
                                columns,
                                dates,
                                data_query_cutoff_times):
          last_per_qtr = last_in_date_group(
              self.estimates,
              data_query_cutoff_times,
              assets_with_data,
              reindex=True,
              extra_groupers=[NORMALIZED_QUARTERS],
          )
          last_per_qtr.index = dates
          ffill_across_cols(last_per_qtr, columns, self.name_map)
          stacked_last_per_qtr = last_per_qtr.stack(
              [SID_FIELD_NAME, NORMALIZED_QUARTERS],
          )
          stacked_last_per_qtr.index.set_names(
              SIMULATION_DATES,
              level=0,
              inplace=True,
          )
          stacked_last_per_qtr = stacked_last_per_qtr.sort_values(
              EVENT_DATE_FIELD_NAME,
          )
          stacked_last_per_qtr[EVENT_DATE_FIELD_NAME] = pd.to_datetime(
              stacked_last_per_qtr[EVENT_DATE_FIELD_NAME]
          )
          return last_per_qtr, stacked_last_per_qtr