Skip to content
Basin Thread

Volume correction

GOV to VCF to GSV to NSV for oil and condensate, why water is handled differently, and a worked example you can check.

Oil and condensate are corrected for temperature and gravity. Water is not. The difference is real and the platform does not blur it.

Oil and condensate

The chain, in order. Every intermediate value is retained rather than collapsed into a final number.

GOV = strap(gauge)                        gross observed volume, at observed temperature
VCF = f(observedTemperature, apiGravity)  volume correction factor to 60 °F
GSV = GOV × VCF                           gross standard volume
NSV = GSV × (1 − BS&W / 100)              net standard volume
  • GOV — gross observed volume. The strapping table applied to the gauge, at whatever temperature the liquid actually was.
  • VCF — volume correction factor. Derived from observed temperature and API gravity, correcting the volume to a 60 °F basis.
  • GSV — gross standard volume. GOV corrected to 60 °F.
  • BS&W — basic sediment and water, deducted as a percentage.
  • NSV — net standard volume. What actually gets counted.

Production over an interval uses corrected volumes at both ends:

oilProduced = (NSV_current − NSV_prior) + Σ hauledNetVolume(interval)

A worked example

Values from one gauge on one tank:

Step Value Where it came from
Gauge 14 ft 7 3/8 in, innage pumper at the tank
GOV 412.66 BBL strapping table v3, interpolated
Observed temperature 78.4 °F recorded with this gauge
API gravity 41.2 °API current lab result on file
VCF 0.9884 from temperature and gravity
GSV 407.87 BBL 412.66 × 0.9884
BS&W 0.6 % shakeout taken with this gauge
NSV 405.42 BBL 407.87 × (1 − 0.006)

With a prior NSV of 372.56 BBL and a hauled net volume of 182.04 BBL:

(405.42 − 372.56) + 182.04 = 214.90 BBL produced since the last gauge

Note that three different input sources appear in one calculation: temperature from this gauge, gravity from a lab result on file, BS&W from a shakeout. The platform records which source supplied each one. See measurement sources.

Why intermediates are stored

Storing GOV, VCF, GSV and NSV separately is not redundancy. It is what lets the platform answer “why is this number what it is” for any single volume, which is the whole product thesis applied to one barrel.

Water

No thermal or gravity correction. Water volume is the strapped volume, and production over an interval is the volume change plus what left on a truck:

waterProduced = (V_current − V_prior) + Σ hauledVolume(interval)

There is no VCF for water anywhere in the platform, and no interface implies there is one.

Missing inputs

If no source supplies a required input, the volume is not computed with an assumed value. The reading is stored, the derived volume is reported as unavailable with the missing input named, and the interval is marked incomplete.

This is the same null-versus-zero discipline the rest of the platform runs on: an absent input produces an absent answer, not a plausible one.

Measurement standards

The platform uses this vocabulary because it is what the work is called and the people doing it know these terms.

It does not claim conformance to a named measurement standard. «TODO: confirm» which correction-factor table family the implementation uses, and whether those tables are carried in the product or supplied by the operator. Until that is settled, no standard is named here — using the vocabulary is a capability claim, naming the standard is a compliance claim, and they are not the same thing.