I would suggest using Epic Link dimension in a report to represent Epics. Epic link dimension will give you count of issues in Epic, except Epic itself and Sub-tasks. This is a typical Sprint scope.
Default measures Issues created and Issues resolved should represent all issues in epic and resolved ones at the report execution time.
You can define new calculated member in Measures with this formula to represent the current progress:
CASE WHEN
[Measures].[Issues created]>0
THEN
CoalesceEmpty([Measures].[Issues resolved],0)/
[Measures].[Issues created]
END
The measures at the current Sprint start requires some additional calculations.
I would suggest defining a new calculated member in Measures for Current Sprint start date with this formula:
Cache(Tail(Order(
Filter(
[Sprint].[Sprint].Members,
NOT [Sprint].CurrentMember.GetBoolean("Closed")
AND
NOT isEmpty([Sprint].CurrentMember.Get("Start date"))
AND
([Measures].[Story Points created],
[Time].CurrentHierarchy.DefaultMember) > 0),
[Sprint].CurrentMember.Get("Start date"),BASC)
).Item(0).Get("Start date"))
You would like to set formatting as Time for this calculated measure.
Then you can define new calculated members in Measures for Issues created at current sprint start and Issues resolved at the current sprint start with the formula example:
CASE WHEN not isEmpty([Measures].[Current Sprint start date])
THEN
Sum(
PreviousPeriods(
[Time].CurrentHierarchy.Levels("Day").DateMember([Measures].[Current Sprint start date])
),
[Measures].[Issues created]
)
END
This formula example is for Issues created at current Sprint start date, you can define a similar one for Issues resolved at Sprint start date using measure Issues resolved instead of Issues created.
Then you can define progress at current sprint start date with the similar formula as the first on of current progress using newly defined formulas for created and resolved issues at current sprint start date instead of default measures for created and resolved issues.
Daina / support@eazybi.com