I had the same issue, I created a new Formula property with the following formula
(prop("Sub-project").map(current.prop("Completion")+1).sum() - length(prop("Sub-project")))/length(prop("Sub-project"))
The plus 1 in the map is needed because the map will otherwise return an Empty
as list item if the subproject has no tasks assigned yet.