diff --git a/crates/fidc-core/src/platform_expr_strategy.rs b/crates/fidc-core/src/platform_expr_strategy.rs index 635cbab..1b7c78b 100644 --- a/crates/fidc-core/src/platform_expr_strategy.rs +++ b/crates/fidc-core/src/platform_expr_strategy.rs @@ -2149,12 +2149,15 @@ impl PlatformExprStrategy { lookback: usize, ) -> Option { let precomputed = precomputed_stock_rolling_mean(extra_factors, field, lookback); - let computed = ctx - .data - .market_decision_numeric_moving_average(date, symbol, field, lookback); if self.config.prefer_precomputed_rolling_factors { - precomputed.or(computed) + precomputed.or_else(|| { + ctx.data + .market_decision_numeric_moving_average(date, symbol, field, lookback) + }) } else { + let computed = ctx + .data + .market_decision_numeric_moving_average(date, symbol, field, lookback); computed.or(precomputed) } }