diff --git a/saqc/funcs/generic.py b/saqc/funcs/generic.py
index 56c00bb2505ad27aa95adb4ed3688beb821eafcc..7f85016a0251d43a87191e3a2ef339c965439e20 100644
--- a/saqc/funcs/generic.py
+++ b/saqc/funcs/generic.py
@@ -251,7 +251,10 @@ class GenericMixin:
         dfilter = kwargs.get("dfilter", BAD)
 
         dchunk, fchunk = self._data[fields].copy(), self._flags[fields].copy()
+        trg_idx = dchunk[dchunk.columns[0]].index
         result = _execGeneric(fchunk, dchunk, func, dfilter=dfilter)
+        result = _inferBroadcast(result, (len(trg_idx), len(targets)))
+        result = _inferDF(result, cols=targets, index=trg_idx)
         result = _castResult(result)
 
         if len(result.columns) > 1 and len(targets) != len(result.columns):