Overlapping Perspective Stored Procedure

create procedure dbo.USR_USP_REPORT_PLANSTAGEDURATIONSOVERLAPPING (@PROSPECTPLANTYPECODEID uniqueidentifier)
as
with [STEPS]
as (
	select i.[PROSPECTPLANSTATUSCODEID],
		i.[ACTUALENDDATETIME],
		min(i.[ACTUALSTARTDATETIME]) over (
			partition by i.[PROSPECTPLANID],
			i.[PROSPECTPLANSTATUSCODEID]
			) as [FIRSTSTEPINSTAGEDATETIME],
		max(i.[ACTUALENDDATETIME]) over (
			partition by i.[PROSPECTPLANID],
			i.[PROSPECTPLANSTATUSCODEID]
			) as [LASTSTEPINSTAGEDATETIME]
	from [INTERACTION] as i
	inner join [PROSPECTPLAN] pl on i.[PROSPECTPLANID] = pl.[ID]
	where i.[COMPLETED] = 1
		and pl.[PROSPECTPLANTYPECODEID] = @PROSPECTPLANTYPECODEID
	)
select p.[DESCRIPTION] as [STAGENAME],
	avg(cast((s.[LASTSTEPINSTAGEDATETIME] - s.[FIRSTSTEPINSTAGEDATETIME]) as float)) as [AVGSTAGEDURATION],
	min(cast((s.[LASTSTEPINSTAGEDATETIME] - s.[FIRSTSTEPINSTAGEDATETIME]) as float)) as [MINSTAGEDURATION],
	max(cast((s.[LASTSTEPINSTAGEDATETIME] - s.[FIRSTSTEPINSTAGEDATETIME]) as float)) as [MAXSTAGEDURATION]
from [STEPS] as s
inner join [PROSPECTPLANSTATUSCODE] as p on s.[PROSPECTPLANSTATUSCODEID] = p.[ID]
where (s.[ACTUALENDDATETIME] = s.[LASTSTEPINSTAGEDATETIME])
group by p.[DESCRIPTION]