Schedule Mechanics & Data
Activity ID Reuse
P6's internal activity ID (task_id) can differ between two exports of what a human would call the same schedule -- which is why schedule comparison tools match activities by their human-readable Activity ID (task_code) instead.
Definition
Every activity in a .xer file carries an internal database identifier (task_id) separate from its human-readable Activity ID (task_code, e.g. "A1010") shown on screen in P6. The internal identifier can change across a re-import, a project copy, or certain administrative operations, even when nothing about the activity itself changed in any way a person would recognize. A comparison tool matching activities by the internal ID alone can therefore report an unchanged activity as deleted-and-re-added purely because of an ID shift that has nothing to do with the schedule's real content -- the same underlying instability affects Work Breakdown Structure nodes matched by their own internal ID rather than name.
Example
The same activity, "A1010 -- Mobilization," carries task_id 128217353 in one export and task_id 130904821 in a later re-import -- identical in every way a scheduler would recognize, but a naive ID-based comparison would report it as two unrelated activities.