You can handle this using a by just using a 3 summary counts. NOt sure if you are grouping so you will have to adjust where you put the summaries if you are.
create a formula to get your ontime records:
if {WOL_WorkOrderHistoryHeader.ClosedDate} <= {WOL_WorkOrderHistoryHeader.WODueDate} then 1 else 0
Create a summary SUM of this to get the ontime total.
create a formula to get your late records:
if {WOL_WorkOrderHistoryHeader.ClosedDate} > {WOL_WorkOrderHistoryHeader.WODueDate} then 1 else 0
Create a summary SUM of this to get the ontime total.
Create a summary COUNT of all your records.
Create a formula to get your ontime percentage using the SUM of ontime % count of all.
SUM(@ontime)%COUNT(Allrecordfield)
Create a formula to get your late percentage
SUM(@ontime)%COUNT(Allrecordfield)
Place these on your report or group footer according to your set up