@Oshani Walawege - I have extracted & pasted below the basic logics from the document. I hope this would help.
Due(%)
Due(%) is updated on the next generatable line (calendar) and next generatable line without a generation value (condition)
Basic logic
Due(%) is based on last performed date if the next planned date a future date
Due(%) is based on interval if the next planned date a past date
50% - halfway from when it was last performed to its due date.
100% - should be on the day when it falls due.
200% - overdue with one interval.
Due(%) is a positive value or set to zero if the calculated value is negative
-
If not all work tasks from this PM are finished in any one of the work orders
percent_ := (( ( site_date_ - min_planned_date_ )/interval_ )*100)
-
If all work tasks from this PM is finished in at least one work order
a. If next planned date > site date (future date)
percent_ := (site_date_ - performed_date_)/(planned_date_- performed_date_) * 100
b. If next planned date =< site date (past date or today)
percent_ := 100 + (site_date_ - planned_date_)/interval_ *100
Interval
If calendar – no of days according to the interval unit (eg. If unit is WEEK interval = 7)
If condition – date difference of the last two planned dates of the maintenance plan
Min_planned_date = planned_date – interval
Performed_date = Last ‘last work task completion date’ of the PM.
Recalculate and update Due(%)
Due(%) is not automatically updated in PMs even though it is dependent on site date. It is required either to regenerate the PM maintenance plan or run the provided batch schedule method,
Remaining to due
Calculating the ‘remaining to due’ reveals how many days are left until the planned date from today (calendar) or the measurement to be recorded to get to the planned value from last measurement(condition).
Calendar –> remaining to due = planned date – site date
Condition –> remaining to due = Planned value – last measurement