Add a column to your query, to convert the Unix Epoch to a Date / Time:
= Table.AddColumn(#"Changed Type", "Timestamp", each #datetime(1970,1,1,0,0,0) + #duration(0,0,0,[Unix Epoch Timestamp]), type datetime)
If you don't already have a Customer dimension table, then create one:
Customers = SUMMARIZECOLUMNS ( Actions[Customer ID] )
Create a relationship on Customer ID
between [Actions]
and [Customers]
Now you can create the measures you want:
Seconds Until Stage 2 =
VAR TimeStart =
MIN ( Actions[Timestamp] )
VAR TimeStage2 =
CALCULATE (
MIN ( Actions[Timestamp] ),
Actions[Action] = "Moved to Stage 2"
)
RETURN
IF (
HASONEVALUE ( Customers[Customer ID] ),
DATEDIFF (
TimeStart,
TimeStage2,
SECOND
),
BLANK()
)
Avg Seconds Until Stage 2 =
AVERAGEX (
Customers,
[Seconds Until Stage 2]
)
Seconds Stage 2 to Stage 3 =
VAR TimeStage2 =
CALCULATE (
MIN ( Actions[Timestamp] ),
Actions[Action] = "Moved to Stage 2"
)
VAR TimeStage3 =
CALCULATE (
MIN ( Actions[Timestamp] ),
Actions[Action] = "Moved to Stage 3"
)
RETURN
IF (
HASONEVALUE ( Customers[Customer ID] ),
DATEDIFF (
TimeStage2,
TimeStage3,
SECOND
),
BLANK()
)
Avg Seconds Stage 2 to Stage 3 =
AVERAGEX (
Customers,
[Seconds Stage 2 to Stage 3]
)
Seconds Stage 3 to Stage 4 =
VAR TimeStage3 =
CALCULATE (
MIN ( Actions[Timestamp] ),
Actions[Action] = "Moved to Stage 3"
)
VAR TimeStage4 =
CALCULATE (
MIN ( Actions[Timestamp] ),
Actions[Action] = "Moved to Stage 4"
)
RETURN
IF (
HASONEVALUE ( Customers[Customer ID] ),
DATEDIFF (
TimeStage3,
TimeStage4,
SECOND
),
BLANK()
)
Avg Seconds Stage 3 to Stage 4 =
AVERAGEX (
Customers,
[Seconds Stage 3 to Stage 4]
)
Here's a worked example PBIX file: https://excel.solutions/so_54639352/