CamPetro

Water Saturation

On this page

Purpose

Water saturation, Water saturation, answers what fraction of the pore space holds water, and so how much holds hydrocarbon. It is the number that turns a porosity into a hydrocarbon pore volume, and it is the step where resistivity, the oldest and most direct hydrocarbon indicator, is turned into a quantity that can be used in reserves and in net pay.

It is also the least certain step of the petrophysical workflow. Water saturation is computed from a resistivity, a porosity, a water resistivity and two or three empirical exponents, and a modest error in any of them moves the answer by more than most users expect. In shaly rock the clay adds its own conduction, so the choice of model, and not just the inputs, can decide whether an interval is pay or not.

Position in the workflow

Upstream. Water saturation needs true resistivity (True formation resistivity) that has been corrected for borehole, invasion and bed-thickness effects, an Effective porosity or Total porosity from the Porosity step, a Clay volume from the Clay Volume step, a formation temperature, and a formation water resistivity Formation water resistivity. Errors in any of those come straight through. A resistivity log that reads too low because of a washout, or a porosity that is high because of kerogen or gas, gives a wrong saturation that looks quite reasonable.

Downstream. Water saturation feeds:

  • the cutoffs analysis, where a saturation limit is one of the conditions for net pay,
  • hydrocarbon pore volume and the volumetrics, which multiply porosity by one minus saturation,
  • permeability transforms that use saturation as an input, and the comparison with irreducible saturation to decide whether a zone will flow water,
  • saturation-height modelling, which uses the resistivity saturation as the calibration data, and
  • the comparison of flushed-zone and true-zone saturation, which gives a first view of hydrocarbon mobility.

Error propagation. Saturation depends on the inputs through powers, and a porosity error acts twice, once in the saturation and once in the pore volume that it multiplies. The block below changes one input at a time in a clean sand with \(a = 1\), \(m = n = 2\), \(R_w\) = 0.05 ohm·m, 20% porosity and \(R_t\) = 20 ohm·m, and reports the effect on saturation and on hydrocarbon pore volume. The exponent \(m\) moves \(S_w\) most per unit change, an error of 20% in Rw moves it by about 10%, and a 10% error in porosity changes the hydrocarbon pore volume by more than any other single change:

a, m, n = 1.0, 2.0, 2.0
rw, phi, rt = 0.05, 0.20, 20.0

def sw(rt=rt, rw=rw, phi=phi, m=m, n=n):
    return min(1.0, (a * rw / (phi ** m * rt)) ** (1.0 / n))

base = sw()
hpv0 = phi * (1 - base)
print(f"base: Sw = {base:.3f}   hydrocarbon pore volume = {hpv0:.4f}")
cases = [
    ("Rw +20%", dict(rw=rw * 1.2)),
    ("porosity -10% (relative)", dict(phi=phi * 0.9)),
    ("Rt -20%", dict(rt=rt * 0.8)),
    ("m +0.2", dict(m=m + 0.2)),
    ("n +0.2", dict(n=n + 0.2)),
]
print(f"{'change':26s} {'Sw':>6s} {'dSw':>7s} {'HPV change':>11s}")
for label, kw in cases:
    p = dict(phi=phi)
    p.update(kw)
    s = sw(**kw)
    hpv = p["phi"] * (1 - s)
    print(f"{label:26s} {s:6.3f} {100 * (s / base - 1):+6.1f}% {100 * (hpv / hpv0 - 1):+10.1f}%")

Output

base: Sw = 0.250   hydrocarbon pore volume = 0.1500
change                         Sw     dSw  HPV change
Rw +20%                     0.274   +9.5%       -3.2%
porosity -10% (relative)    0.278  +11.1%      -13.3%
Rt -20%                     0.280  +11.8%       -3.9%
m +0.2                      0.294  +17.5%       -5.8%
n +0.2                      0.284  +13.4%       -4.5%

Key concepts

The Archie backbone. Every resistivity-based model on this site is a variation on the Archie equation, which says that a clean rock conducts only through the formation water in its pores. The Archie page gives the equation. A clean rock's resistivity is a formation factor times the water resistivity, and the resistivity rises as hydrocarbon replaces water. The shaly-sand models keep that idea and add a path for the clay.

Why clay matters. Clay conducts, through the water bound to its surfaces and through exchangeable cations. In a clean rock all of the measured conductivity is from the formation water, so a high resistivity means hydrocarbon. In a shaly rock some of the conductivity is from the clay, so the same resistivity means more hydrocarbon than Archie reports, because Archie assigns all of the conductivity to water. Archie therefore overstates \(S_w\) in shaly rock. How much depends on the clay volume, the clay's resistivity, and the formation water: the more saline the water, the less the clay matters.

Total and effective saturation. Clay holds water that is not part of the producible pore system. Total saturation (Total water saturation) counts it as part of the pore volume and effective saturation (Effective water saturation) does not. Each model returns one of them, and each use needs one. See Total vs Effective Sw.

Shared inputs. Four things are common to every model and often matter more than the model: the water resistivity (Rw Determination), the exponents \(m\) and \(n\) (Cementation and Saturation Exponents), the same pair of resistivities for the flushed zone (Rxo and Sxo) and the clay endpoint resistivity (Clay resistivity).

Carbonates. In carbonates the problem is pore geometry, not clay. A single \(m\) and \(n\) do not describe both interparticle and vuggy pore systems, and the electrical response varies with pore type. Archie with a calibrated exponent is the starting point, and Lucia's rock-fabric approach gives a saturation that does not depend on resistivity.

Resistivity versus capillarity. A resistivity saturation is a measurement of the water as it is now. A saturation-height function is a prediction from the rock's pore system and the height above the free water level. Their agreement is the best single check on a saturation model.

Method selection guide

Method Porosity basis and inputs beyond Rt, Rw Use when Strengths Weaknesses and bias
Archie Effective. a, m, n The rock is clean, or clay is small compared with the conduction of the water Few inputs, the reference for every other model Overstates Sw (understates hydrocarbon) in shaly rock, most in fresh water
Simandoux Effective. Clay volume, clay resistivity. n fixed at 2 Moderate clay, a clay resistivity can be picked, and n is close to 2 Closed form, no iteration Optimistic (low Sw) at high clay volume in fresh or moderately fresh water. Cannot take n
Modified Simandoux Effective. Clay volume, clay resistivity. n fixed at 2 As Simandoux, if the clay-free weighting suits the data Closed form The lowest Sw of the closed-form shaly models, so the most optimistic. Cannot take n
Indonesian Effective. Clay volume, clay resistivity, any n Shaly sand, no core calibration of clay properties. The recommended default Closed form for any n. Less optimistic than the Simandoux forms in fresh water Empirical. In very high clay it saturates, and may understate hydrocarbon where clay really is conducting less
Dual Water Total. Clay volume, shale porosity, bound-water resistivity Clay-bound water is a significant volume and the workflow carries total and effective porosity together Physically based, links directly to effective porosity Rwb and shale porosity are not observed. Calculator form is a simplification
Waxman-Smits Total. Qv, B, m, n Core CEC or Qv and m* are available The best-founded model when it is calibrated Needs core. Without core Qv it is an empirical clay model with extra inputs. Needs iteration
Lucia Porosity of the rock fabric. Rock fabric number, height above the free water level Carbonates with a known free water level and a rock fabric classification Does not depend on Rt, so it is an independent check Needs a free water level and a class. Not a measurement of the current saturation

Shared inputs are covered in Rw Determination, Cementation and Saturation Exponents, Rxo and Sxo and Total vs Effective Sw.

How much the choice matters. The block compares the closed-form models at the same inputs, in saline water (Rw = 0.05 ohm·m, Rt = 10 ohm·m) and in fresh water (Rw = 0.5 ohm·m, Rt = 30 ohm·m), with 18% effective porosity and a clay resistivity of 3 ohm·m:

import math

def archie(rt, rw, phi, a=1.0, m=2.0, n=2.0):
    return min(1.0, (a * rw / (phi ** m * rt)) ** (1.0 / n))

def sim(rt, rw, phi, vcl, rcl, a=1.0, m=2.0, scale=False):
    c = phi ** m / (a * rw * ((1.0 - vcl) if scale else 1.0))
    b = vcl / rcl
    return min(1.0, (math.sqrt(b * b + 4.0 * c / rt) - b) / (2.0 * c))

def indo(rt, rw, phi, vcl, rcl, a=1.0, m=2.0, n=2.0):
    t = vcl ** (1.0 - vcl / 2.0) / math.sqrt(rcl) + phi ** (m / 2.0) / math.sqrt(a * rw)
    return min(1.0, ((1.0 / math.sqrt(rt)) / t) ** (2.0 / n))

phi, rcl = 0.18, 3.0
for label, rw, rt in (("saline: Rw 0.05, Rt 10", 0.05, 10.0), ("fresh: Rw 0.5, Rt 30", 0.5, 30.0)):
    print(label)
    print(f"  {'Vcl':>5} {'Archie':>7} {'Simandoux':>10} {'Modified':>9} {'Indonesian':>11}")
    for vcl in (0.0, 0.1, 0.3, 0.5):
        print(f"  {vcl:5.2f} {archie(rt, rw, phi):7.3f} {sim(rt, rw, phi, vcl, rcl):10.3f} "
              f"{sim(rt, rw, phi, vcl, rcl, scale=True):9.3f} {indo(rt, rw, phi, vcl, rcl):11.3f}")
    s = indo(rt, rw, phi, 0.3, rcl)
    print(f"  hydrocarbon saturation at Vcl 0.3: Archie {1 - archie(rt, rw, phi):.2f}, "
          f"Indonesian {1 - s:.2f}, modified Simandoux {1 - sim(rt, rw, phi, 0.3, rcl, scale=True):.2f}")

Output

saline: Rw 0.05, Rt 10
    Vcl  Archie  Simandoux  Modified  Indonesian
   0.00   0.393      0.393     0.393       0.393
   0.10   0.393      0.368     0.350       0.364
   0.30   0.393      0.323     0.279       0.312
   0.50   0.393      0.285     0.221       0.275
  hydrocarbon saturation at Vcl 0.3: Archie 0.61, Indonesian 0.69, modified Simandoux 0.72
fresh: Rw 0.5, Rt 30
    Vcl  Archie  Simandoux  Modified  Indonesian
   0.00   0.717      0.717     0.717       0.717
   0.10   0.717      0.505     0.487       0.572
   0.30   0.717      0.282     0.267       0.395
   0.50   0.717      0.186     0.176       0.305
  hydrocarbon saturation at Vcl 0.3: Archie 0.28, Indonesian 0.60, modified Simandoux 0.73

In saline water the three shaly models agree to within about 0.04 in saturation at 30% clay, and all are below Archie. In fresh water at the same clay volume Archie reports 0.72 and the shaly models report between 0.27 and 0.40: the question of whether the zone is a hydrocarbon zone is answered differently by the model. In fresh water the ordering from lowest to highest saturation is modified Simandoux, Simandoux, Indonesian, Archie. In saline water modified Simandoux is still the lowest, Archie the highest, and Simandoux and Indonesian are within about 0.01 of each other. Those numbers depend on the clay resistivity and the other inputs, so run the comparison on your own data.

Decision guidance

  • Is the rock clean? Compute Archie and a shaly model side by side. If the saturation differs by less than about 0.03 over the interval, clay does not matter and Archie is enough. As a guide, clay volumes below about 5 to 10% in saline water (Rw below about 0.1 ohm·m at formation temperature) are in this class.
  • Water salinity sets how much the clay matters. In saline water the formation water conducts so well that moderate clay adds little, and the models agree. In fresh water (Rw above about 0.3 to 0.5 ohm·m) the clay conduction is comparable to the water conduction, Archie fails, and the shaly models disagree with each other. Spend the effort on the clay resistivity and on a core check there.
  • Choose the model for the error you can accept. Archie in shaly rock overstates \(S_w\) and so tends to miss pay. The Simandoux forms, especially in fresh water and at high clay volume, tend to overstate hydrocarbon. In fresh water the Indonesian equation sits between Archie and the Simandoux forms, and it is the safest default. Report a range if the models differ and the decision depends on the answer.
  • Do you have core? With CEC or Qv and shaly-core exponents, calibrate Waxman-Smits (or dual water, if the porosity workflow is total-porosity based) and use it to check the empirical models. A model supported by core is better than one chosen by preference.
  • Carbonates. Do not use a shaly-sand model for a non-clay problem. Use Archie with an \(m\) from core or from a Pickett plot, check it against Lucia's saturation-height relation where a free water level and rock fabric are known, and expect the exponents to vary with pore type.
  • High clay and laminations. Above a clay volume of about 40 to 50%, or where the clay is in thin laminations, none of these models is reliable. Resistivity is then a mixture of sand and shale layers, and a laminated sand analysis is the right tool.
  • Organic shales. Kerogen, pyrite and non-Archie pore systems make resistivity saturation unreliable. Treat results as indicative.

Shared parameter picking

Formation water resistivity. Formation water resistivity at formation temperature is the largest single influence on the result. Pick it once per zone from a water analysis, the SP, or the lowest apparent resistivity in a clean wet zone, and cross-check by at least two methods. See Rw Determination. Use the same temperature, from one geothermal gradient, for the water, the mud filtrate and the temperature-dependent terms of the models.

Exponents. \(a\), \(m\) and \(n\) come from core, a Pickett plot or regional practice. Keep them the same for every model in a comparison, so that the difference between models is the difference in the clay treatment. See Cementation and Saturation Exponents.

Clay endpoint resistivity. Clay resistivity, used by the Simandoux and Indonesian models, is the deep resistivity in a thick, clean shale in or near the zone. Pick it per zone. A very low value increases the correction; check that the pick is a shale and not a conductive, wet or salty interval.

Clay volume and porosity. Take Clay volume and the porosity from the Clay Volume and Porosity steps. Use the porosity the model expects: effective for Archie, Simandoux, modified Simandoux and Indonesian, and total for dual water and Waxman-Smits. Use the same clay volume in the porosity correction and in the saturation model, or the volumes do not balance.

Bound-water and cation-exchange inputs. Dual water needs the shale total porosity (Shale total porosity) and the bound-water resistivity (Bound-water resistivity). Waxman-Smits needs Cation exchange capacity per unit pore volume and Shaly-sand cementation exponent, and a temperature for B. Both should be tied to core where it exists.

Flushed zone. Flushed-zone resistivity and Mud filtrate resistivity are used with the same exponents and model to compute Flushed-zone water saturation. See Rxo and Sxo.

Basis. State on every curve whether it is a total or effective saturation. Conversion is covered in Total vs Effective Sw.

Absent other information, a careful generalist would:

  1. Check the inputs before computing anything: resistivity corrected for borehole and invasion, porosity and clay volume from their own steps, and a formation temperature curve.
  2. Pick Rw per zone from the water leg or a water analysis, confirm it with the apparent Rw and a Pickett plot, and correct it to formation temperature.
  3. Take \(m\) and \(n\) from core if it exists. Otherwise use \(a = 1\), \(m = 2\) and \(n = 2\) for clean sandstones, and a Pickett-plot \(m\) for carbonates.
  4. Compute Archie everywhere, as the reference, whatever else is used.
  5. In clastics with clay volume above about 10%, use the Indonesian equation over the whole well. All the shaly models reduce to Archie at zero clay, so no clay cutoff is needed to switch between them and no step appears in the curve.
  6. Compute the Simandoux result as a comparison. If it is far below the Indonesian result, check the clay resistivity and the clay volume before believing the extra hydrocarbon.
  7. Where core Qv or CEC and shaly-core exponents exist, calibrate Waxman-Smits or dual water and use it to adjust the empirical choice.
  8. In carbonates, use Archie with a calibrated \(m\), and compare with Lucia's relation where a free water level and a rock fabric are known.
  9. Compute the flushed-zone saturation with the same model and look at \(S_w/S_{xo}\) as a mobility check.
  10. Convert to the basis the next step needs, label it, and calibrate the result to core water saturation.

Combining methods

Saturation methods are not usually averaged, because they are not independent estimates: they share the same resistivity, porosity and water resistivity, and differ only in the clay or pore-system treatment. Three practices are common.

One model for the whole well. Because every shaly model reduces to Archie in clean rock, one shaly model can be run through clean and shaly intervals without a switch. That avoids the step in the curve that a clay-volume cutoff between Archie and a shaly equation produces.

Different models by lithology. A shaly model in clastics and Archie with a carbonate \(m\) in carbonates is normal. Switch at the lithology boundary, and keep the same Rw and temperature across it.

A range from the models. Where the models disagree and the decision depends on it, report the range between the highest and lowest saturation, for example Indonesian as the base case and the Simandoux forms as the low-saturation limit. Do not average saturations that are on different bases (total and effective), and convert first. See Total vs Effective Sw.

QC of results

A good result:

  • is close to 1 in a known water leg, with the same Rw and clay picks as in the hydrocarbon zone,
  • has an apparent Rw that is flat in the water leg and equal to the Rw that was used,
  • agrees with core water saturation (Dean-Stark, retort or capillary pressure) at the same depths, after allowing for the height above the free water level,
  • falls with height above the free water level, and agrees in trend with a saturation-height function,
  • is not below the irreducible water saturation expected for the rock quality, except where the logs are wrong,
  • has \(S_{xo}\) at or above \(S_w\) and a sensible mobility ratio, and
  • is the same in shape on every model in clean rock and differs between models only where there is clay.

Signs of a bad result: saturation tracking the clay volume curve, saturation of 1 in the middle of a hydrocarbon zone, saturation of 0 anywhere, a step at a model switch, and hydrocarbon saturation in a clean shale. A quick check on the sensitivity is to change Rw by 20%, \(m\) and \(n\) by 0.2 each and the clay resistivity by 30%, and see whether net pay and hydrocarbon volume survive.

Common pitfalls

  • Using one Rw for a whole field, or an Rw at surface temperature in a hot reservoir.
  • Picking Rw from a Rwa that is hydrocarbon-affected, or from a zone with fresher water.
  • Using total porosity in a model that needs effective porosity, which counts clay water twice, or the other way round.
  • Passing a shale volume where a model needs a clay volume.
  • Picking the clay resistivity in a non-shale: a coal, a tight limestone or a wet sand.
  • Using default exponents of 2 in carbonates, oil-wet rock or very tight rock without a check.
  • Using the Simandoux forms in fresh water at high clay volume and trusting the extra hydrocarbon.
  • Using a shaly-sand model in a carbonate or a laminated sand.
  • Using a resistivity that has not been corrected for borehole, invasion or shoulder-bed effects.
  • Switching between models at a clay cutoff and leaving a step in the result.
  • Comparing saturations, cutoffs and volumes that are on different bases.
  • Applying a Waxman-Smits Qv from one formation to another, or using an inconsistent temperature for B.
  • Trusting resistivity saturation in organic shales and pyritic rock.

Going Deeper

Archie published his relations in 1942 for clean sandstones, and for a decade they were the whole of quantitative log interpretation. Shaly sands were the first thing they could not handle. Simandoux's 1963 laboratory work put a clay conduction term in parallel with the water term, and that shape, an Archie water term plus a clay term, has been the template for most empirical models since: they differ in how the clay term is written and weighted. The Waxman-Smits model of 1968 gave the clay conduction a physical basis in the exchangeable cations on the clay surface. Poupon and Leveaux's Indonesian equation of 1971 was fitted to fresh-water, high-clay fields where the earlier models read too much hydrocarbon. The dual-water model of the 1980s described the same physics through a layer of bound water. These dates and attributions are from memory and should be checked against the sources.

Resistivity has since been joined by other saturation measurements: dielectric logs, NMR, and the saturation-height approach, which brings the capillary physics of the rock into the answer. Their main use is in the cases where the resistivity models are weakest: fresh water, low-resistivity pay, laminated sands, and rocks whose exponents are not constant. The oldest unresolved difficulty remains the same as in the first shaly-sand equation: the resistivity of a rock is a combination of the water, the clay and the pore geometry, and the log alone does not separate the three. The clay terms and the exponents are the place where calibration to core pays off most.

Methods in this step