TTD recursive reduce