This method basically takes the advantages of the fact that OpenMC uses batch statistics.
Let us presume that
$$\bar{ \Phi_c}$$ = average flux in a cluster.
$$\Phi_c^b$$ = $b^{th}$ batch statistics of the $i^{th}$ voxel in the cluster
$v_i$ = volume of the $i_{th}$ voxel in the cluster.
$V$ = total volume of the cluster = $\sum_{i}^{N} v_i$
$N$ = number of voxels in the cluster.
$\gamma_i$ = volumetric weight of the voxel in a cluster.
Now
$b^{th}$ batch tally in the cluster should be the sum of the weighted flux of the voxels which we could write as
$$ \Phi_c^b = \sum_{i=1}^{N} \gamma_i \Phi_i^b $$
where, $\gamma_i = \frac{v_i}{ V}$. So, average flux in a cluster after $B$ independent active batch run will be,
$$ \bar{\Phi_c} = \frac{1} {B}\sum_{b =1 }^{B} \Phi_{c}^{b} = \frac{1} {B} \sum_{b=1}^{B}\sum_{i=1 }^{N} \gamma_i \Phi_{i}^{b} $$
and the variance of the cluster will be,
$$ \sigma_c^2 = \mathbb E [ ( \Phi_c^b - \bar{ \Phi_c})^2 ]$$
$$ = \mathbb E [ (\sum_{i=1 }^{N} \gamma_i \Phi_{i}^{b} - \frac{1} {B} \sum_{b=1}^{B}\sum_{i=1 }^{N} \gamma_i \Phi_{i}^{b} )^2]$$
We know about, $\gamma_i$ from the mesh and clustering and $B$ from Cardinal or OpenMC. But in order to fully use the variance equation we would have to know about the, $\Phi_i^b$ but OpenMC only reports $\bar \Phi_i = \frac{1}{B} \sum_b^B \Phi_i^b$ to cardinal. If we can figure out a way to know $\Phi_i^b$ it will be easy to implement.
We could simplify the variance equation further and can make it a function of $\bar \Phi_i$ but that would introduce co-variance in the function.
@gonuke @pshriwise