Hmm so I guess I will also have to take in to account Vdrop and incorrect error reporting by software when doing this?
Also, what would be the benefit of the first reading (setting BCLK to stock and then stressing the CPU)? Shouldn't I be getting the lowest voltage by setting the desired BCLK with x12 multi and letting it idle, then getting highest voltage by seting x24 multi and working the CPU, then working out the difference? Maybe I'm mistaken on what the base voltage is (i.e. is it not idle voltage?).
EDIT: Ah I think maybe it's because I'm overclocking differently - I'm enabling all C-states so that it lowers the multiplier when I want, not keeping a fixed multiplier. Knowing this, would my method of calculating Vnormal and offset be correct?
None of that should make a difference as long as you go by what CPU-Z is showing, just make sure to run something like Prime95 then you'll get the max voltage for stock versus your overclocked settings, then you can simply input the difference between the two in the offset.
The offset will up the voltage for all multipliers, but the only way to know where to start is to set it to stock and then check the voltage loaded.
A more safe way is also just set the BCLK to 133mhz and slowly bump up the offset until it matches your manual voltage settings in CPU-Z, then up the BCLK until you are at 4.2ghz.
Be aware that sometimes using the offset will need more voltage than a static setting to be stable.