Partition the rows into n_folds folds. Tile them into K/b non-overlapping evaluation blocks of size b = n_folds - n_nuisance_folds. For each block: fit ALL nuisances (reward model, contextual policy, best single arm, and – when is_rct = FALSE – the propensity p(a|x)) on the other m = n_nuisance_folds folds, then evaluate the AIPW influence on the block. Each sample is evaluated exactly once per shuffle. Default n_nuisance_folds = n_folds - 1 gives leave-one-fold-out.