def METHOD_NAME(self):
    self.out_time_lst, self.out_entries_lst = [], []
    print(
        f"Analyzing time-bin data for {len(self.outlier_corrected_paths)} video(s)..."
    )
    for file_cnt, file_path in enumerate(self.outlier_corrected_paths):
        video_timer = SimbaTimer(start=True)
        _, self.video_name, _ = get_fn_ext(filepath=file_path)
        _, _, fps = self.read_video_info(video_name=self.video_name)
        frames_per_bin = int(fps * self.bin_length)
        video_frms = list(
            range(0, len(read_df(file_path=file_path, file_type=self.file_type)))
        )
        frame_bins = [
            video_frms[i * frames_per_bin : (i + 1) * frames_per_bin]
            for i in range((len(video_frms) + frames_per_bin - 1) // frames_per_bin)
        ]
        self.video_data = self.entries_exits_df[
            self.entries_exits_df["VIDEO"] == self.video_name
        ]
        for animal_name, shape_name in list(
            itertools.product(self.animal_names, self.shape_names)
        ):
            results_entries = pd.DataFrame(
                columns=["VIDEO", "SHAPE", "ANIMAL", "TIME BIN", "ENTRY COUNT"]
            )
            results_time = pd.DataFrame(
                columns=[
                    "VIDEO",
                    "SHAPE",
                    "ANIMAL",
                    "TIME BIN",
                    "TIME INSIDE SHAPE (S)",
                ]
            )
            data_df = self.video_data.loc[
                (self.video_data["SHAPE"] == shape_name)
                & (self.video_data["ANIMAL"] == animal_name)
            ]
            entry_frms = list(data_df["ENTRY FRAMES"])
            inside_shape_frms = [
                list(range(x, y))
                for x, y in zip(
                    list(data_df["ENTRY FRAMES"].astype(int)),
                    list(data_df["EXIT FRAMES"].astype(int) + 1),
                )
            ]
            inside_shape_frms = [i for s in inside_shape_frms for i in s]
            for bin_cnt, bin_frms in enumerate(frame_bins):
                frms_inside_roi_in_timebin = [
                    x for x in inside_shape_frms if x in bin_frms
                ]
                entry_roi_in_timebin = [x for x in entry_frms if x in bin_frms]
                results_time.loc[len(results_time)] = [
                    self.video_name,
                    shape_name,
                    animal_name,
                    bin_cnt,
                    len(frms_inside_roi_in_timebin) / fps,
                ]
                results_entries.loc[len(results_entries)] = [
                    self.video_name,
                    shape_name,
                    animal_name,
                    bin_cnt,
                    len(entry_roi_in_timebin),
                ]
            self.out_time_lst.append(results_time)
            self.out_entries_lst.append(results_entries)
        video_timer.stop_timer()
        print(
            f"Video {self.video_name} complete (elapsed time {video_timer.elapsed_time_str}s)"
        )
    self.out_time = pd.concat(self.out_time_lst, axis=0).sort_values(
        by=["VIDEO", "SHAPE", "ANIMAL", "TIME BIN"]
    )
    self.out_entries = pd.concat(self.out_entries_lst, axis=0).sort_values(
        by=["VIDEO", "SHAPE", "ANIMAL", "TIME BIN"]
    )