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.