diff --git a/activitysim/core/tracing.py b/activitysim/core/tracing.py index 44707c0aea..6bbc2854de 100644 --- a/activitysim/core/tracing.py +++ b/activitysim/core/tracing.py @@ -776,18 +776,27 @@ def interaction_trace_rows(interaction_df, choosers, sample_size=None): households_table_name.pop(), ) - if choosers.index.name == "person_id" and persons_table_name in traceable_table_ids: + if ( + choosers.index.name in ["person_id", "proto_person_id"] + ) and persons_table_name in traceable_table_ids: slicer_column_name = choosers.index.name - targets = traceable_table_ids["persons"] - elif choosers.index.name == "household_id" and "households" in traceable_table_ids: + targets = traceable_table_ids[persons_table_name] + elif ( + choosers.index.name in ["household_id", "proto_household_id"] + ) and households_table_name in traceable_table_ids: slicer_column_name = choosers.index.name - targets = traceable_table_ids["households"] + targets = traceable_table_ids[households_table_name] elif "household_id" in choosers.columns and "households" in traceable_table_ids: slicer_column_name = "household_id" targets = traceable_table_ids[households_table_name] elif "person_id" in choosers.columns and persons_table_name in traceable_table_ids: slicer_column_name = "person_id" targets = traceable_table_ids[persons_table_name] + elif ( + choosers.index.name == "proto_tour_id" and "proto_tours" in traceable_table_ids + ): + slicer_column_name = choosers.index.name + targets = traceable_table_ids["proto_tours"] else: print(choosers.columns) raise RuntimeError(