LVS run clean in hier mode, errors in flat mode.
For example, lets say that in your Source side, you have 3 devices, each with a different hardcoded value for NF:
(in cell1) c0 Vx VSS w=5 l=3 nf=150
(in cell2) c0 Vx VSS w=5 l=3 nf=2500
(in topcell) c0 Vx VSS w=5 l=3 nf=5000
And, in your rules file you have this:
LVS REDUCE C PARALLEL [ TOLERANCE L 0 W 0 NF 0 ...
The TOLERANCE argument for LVS REDUCE says that if a property value is beyond a certain tolerance of difference, do not allow reduction of that device with others. Since these three values are greater than 0% different, they are not reduced together.
This is not an issue in -hier because the caps nf value in each cell matches.
In -flat, they are all basically in the same cell, but cannot be reduced because of the 0 tolerance.
Changing it as follows:
LVS REDUCE C PARALLEL [ TOLERANCE L 0 W 0 // NF 0 ..., commented out here, or changed to some suitable value for NF
Enables a CORRECT flat run.