This code will fill out the missing dates and forward fill your missing status based on the objects being the same as the previous record.
data: load * Inline [ Object Date Status A 1/1/2021 Active A 1/3/2021 Inactive B 1/2/2021 Inactive B 1/6/2021 Active ](delimiter is '\t');
//Load a distinct list of objects so the to the master date table will duplicate with the number of objects Objects: Load distinct Object Resident data;
//Loop through from the minimum to maximum dates join(Objects) Load date(monthstart(MinDate, IterNo()-1)) as Date while monthstart(MinDate, IterNo()-1) <= MaxDate; load min(Date) as MinDate, max(Date) as MaxDate Resident data;
// Join back to the data using the object and date as a key Join(data) Load * Resident Objects;
// Create a new status field based on Status and forward fill missing values where appropriate. Output: Load *, if( Object <> peek('Object'), Status, if(not isnull(Status), Status, peek('NextStatus')) ) as NextStatus Resident data order by Object, Date;