How the added vs unchanged is handled is per BO and a lot of time per call. Some calls esp in the Job area take two records a changed and unchanged record. Other time that is not the case and you just have the changed. It’s seemingly random and likely due to two different camps in Epicor development at different points of time in how dirty rows should be handled. Ever try to use a data directive with “where field changed” and it doesn’t work? That’s one of those cases it needs the old and dirty record and both were not supplied. That can happen with custom code and sometimes even Epicor native doesn’t pass the clean and dirty.