How to calculate average days late for all issues in time period

Hi,
I’m trying to create a report to show average of days late of issues in specific time period. And I’m trying to get percentage of issues closed on time.
Please help!

Thank you!
Valery

Here is one report example for several measures on due and overdue issues. Here is another report example for average issue age over time.

However, both reports do not offer a sample to show the average overdue time for open issues. Here I created a measure using a formula for Overdue issues in period as a basis:

-- formula will overdue time cumulatively for open issues
-- for each period if issue is not resolved comparing due date and end of period
case when DateCompare(Now(), [Time].CurrentHierarchyMember.StartDate ) >= 0 THEN
NonZero(Avg(
Filter(
  Descendants([Issue].CurrentMember,[Issue].[Issue]),
  -- filter by issue properties to get only open issues in period
    DateBeforePeriodEnd(
            [Issue].CurrentMember.get('Due date'),
            [Time].CurrentHierarchyMember)
   AND NOT DateBeforePeriodEnd(
            [Issue].CurrentMember.get('Resolved at'),
            [Time].CurrentHierarchyMember)
  ),
  CASE WHEN 
    ( [Measures].[Issues created],
      [Time].CurrentHierarchy.DefaultMember ) > 0
  THEN
    -- not current time period, till end of period is calculated
    CASE WHEN 
      DateCompare(
        [Time].CurrentHierarchyMember.NextStartDate, Now()) < 0
        AND
      DateCompare(
        [Issue].CurrentMember.get('Due date'),
        [Time].CurrentHierarchyMember.NextStartDate
      ) < 0 
    THEN
      DateDiffDays(
        [Issue].CurrentMember.get('Due date'),
        [Time].CurrentHierarchyMember.NextStartDate
      )
    WHEN 
       DateCompare(
        [Issue].CurrentMember.get('Due date'),
        Now()
      ) < 0 
    THEN
      DateDiffDays([Issue].CurrentMember.get('Due date'),
        Now()
      ) 
    END
  END
))
END

Daina / support@eazybi.com