CamPetro

Rxo and Sxo

On this page

Summary

The flushed-zone water saturation Flushed-zone water saturation is the water saturation next to the borehole after mud filtrate has displaced the original fluids. It comes from the same Archie relation as Sw, with the flushed-zone resistivity Flushed-zone resistivity and the mud filtrate resistivity Mud filtrate resistivity. Comparing it with Sw shows how much hydrocarbon the invasion moved, through the Movable hydrocarbon index.

Inputs and outputs

Item Units
Input Flushed-zone resistivity ohm·m
Input Mud filtrate resistivity ohm·m
Input True formation resistivity ohm·m
Input Formation water resistivity ohm·m
Input Effective porosity v/v
Input Tortuosity factor dimensionless
Input Cementation exponent dimensionless
Input Saturation exponent dimensionless
Output Flushed-zone water saturation v/v
Output Water saturation v/v
Output Movable hydrocarbon index dimensionless

Equations

In the flushed zone the pore water is mud filtrate of resistivity \(\Rmf\), so Archie's equation gives:

\[ \Sxo = \left(\frac{\aTort\,\Rmf}{\phie^{\,m}\,\Rxo}\right)^{1/n} \]

limited to the interval 0 to 1, with the same \(a\), \(m\) and \(n\) as for \(\Sw\). The ratio of the two saturations removes the porosity and the tortuosity:

\[ \left(\frac{\Sw}{\Sxo}\right)^{n} = \frac{\Rxo/\Rt}{\Rmf/\Rw} \]

so the movable hydrocarbon index is:

\[ \mathrm{MHI} = \frac{\Sw}{\Sxo} = \left[\frac{\Rxo\,\Rw}{\Rt\,\Rmf}\right]^{1/n} \]

The residual hydrocarbon saturation is \(1 - \Sxo\). For shaly sand, use the same shaly-sand model for \(\Sxo\) as for \(\Sw\), with \(\Rmf\) in place of \(\Rw\) and \(\Rxo\) in place of \(\Rt\).

Symbol Variable Units Typical range
\(R_{xo}\) Flushed-zone resistivity ohm·m 0.2 to 500
\(R_{mf}\) Mud filtrate resistivity ohm·m 0.02 to 2
\(R_t\) True formation resistivity ohm·m 0.2 to 2000
\(R_w\) Formation water resistivity ohm·m 0.02 to 2
\(\phi_e\) Effective porosity v/v 0 to 0.35
\(a\) Tortuosity factor dimensionless 0.6 to 1.0
\(m\) Cementation exponent dimensionless 1.6 to 2.5
\(n\) Saturation exponent dimensionless 1.6 to 2.5
\(S_{xo}\) Flushed-zone water saturation v/v 0.2 to 1
\(S_w\) Water saturation v/v 0 to 1

Single-value calculator

Behavior

Flushed-zone saturation falls as the flushed-zone resistivity rises, and rises with the filtrate resistivity. At 20% porosity, \(R_{mf}\) = 0.06 ohm·m and \(a = 1\), \(m = n = 2\), an \(R_{xo}\) of 1, 2, 4, 10 and 30 ohm·m gives \(S_{xo}\) of 1.0 (limited), 0.866, 0.612, 0.387 and 0.224. At \(R_{xo}\) = 4 ohm·m, \(R_{mf}\) of 0.03, 0.06 and 0.12 ohm·m gives 0.433, 0.612 and 0.866. The dashed line is the true-zone \(S_w\) of 0.25 (20 ohm·m, \(R_w\) = 0.05): where \(S_{xo}\) is well above it, the flushing has replaced hydrocarbon with filtrate, and where the two lines touch, nothing has moved.

Parameter guidance

Rxo is read from a shallow-investigation log: a microresistivity device (micro-spherically focused, microlaterolog or proximity) with a mudcake correction, or a shallow laterolog corrected for invasion. Rmf is measured on a mud filtrate sample at a known temperature and moved to formation temperature with the Arps relation (see Rw Determination). It is as important to \(S_{xo}\) as Rw is to \(S_w\). Porosity, a, m and n are the same as in the \(S_w\) calculation: use the same ones, so that the ratio is meaningful. Interpretation. A common rule of thumb reads \(S_w/S_{xo}\) below about 0.7 as movable hydrocarbon and above about 0.7 as hydrocarbon that did not move (a water-bearing zone, or hydrocarbon that is tight). Treat the 0.7 as a guide, not a cutoff. Another rule of thumb estimates \(S_{xo}\) as \(S_w^{1/5}\) when no filtrate-saturation log is available; with \(S_w\) = 0.25 this gives 0.76. See the step page (Water Saturation) for how it fits the workflow.

Worked example

A hydrocarbon sand with \(R_t\) = 20 ohm·m, \(R_{xo}\) = 4 ohm·m, \(R_w\) = 0.05 ohm·m, \(R_{mf}\) = 0.06 ohm·m and 20% porosity:

a, m, n = 1.0, 2.0, 2.0
rt, rxo, rw, rmf, phie = 20.0, 4.0, 0.05, 0.06, 0.20

sw = min(1.0, (a * rw / (phie ** m * rt)) ** (1.0 / n))
sxo = min(1.0, (a * rmf / (phie ** m * rxo)) ** (1.0 / n))
ratio = ((rxo / rt) / (rmf / rw)) ** (1.0 / n)
print(f"Sw  = {sw:.3f}")
print(f"Sxo = {sxo:.3f}")
print(f"MHI = Sw / Sxo = {sw / sxo:.3f}   (from the resistivity ratio: {ratio:.3f})")
print(f"hydrocarbon in the true zone  = {1 - sw:.3f}")
print(f"residual hydrocarbon in flushed zone = {1 - sxo:.3f}")
print(f"movable fraction of the hydrocarbon = {(sxo - sw) / (1 - sw):.2f}")
print(f"Sw^(1/5) rule of thumb = {sw ** 0.2:.3f}")

# a water zone: both resistivities scale with the water, so Rxo/Rt = Rmf/Rw and MHI = 1
rt_w = a * rw / phie ** m
rxo_w = a * rmf / phie ** m
print(f"water zone: Rt = {rt_w:.2f}, Rxo = {rxo_w:.2f}, Rxo/Rt = {rxo_w / rt_w:.2f}, Rmf/Rw = {rmf / rw:.2f}")

Output

Sw  = 0.250
Sxo = 0.612
MHI = Sw / Sxo = 0.408   (from the resistivity ratio: 0.408)
hydrocarbon in the true zone  = 0.750
residual hydrocarbon in flushed zone = 0.388
movable fraction of the hydrocarbon = 0.48
Sw^(1/5) rule of thumb = 0.758
water zone: Rt = 1.25, Rxo = 1.50, Rxo/Rt = 1.20, Rmf/Rw = 1.20

Assumptions and limitations

  • The flushed zone is fully flushed and the filtrate and the original water are not mixed. In low-permeability rock or short invasion times, the zone is only partly flushed and Sxo is overestimated.
  • The measurement is of the flushed zone: a microresistivity log with a mudcake correction, or a shallow log with invasion correction. A log that reads partly mudcake or partly true zone gives a wrong Sxo.
  • Rmf is known at formation temperature. An error in Rmf maps into Sxo as the 1/n power.
  • The same Archie constants hold in the flushed zone and the true zone. In shaly sand, the same shaly model is used.
  • The Sw/Sxo ratio rule assumes the porosity is the same in both zones and the exponents are constant.

QC checks

  • In a water zone Rxo/Rt equals Rmf/Rw, so MHI is 1. If it is not, Rmf, Rw or a log reading is wrong.
  • Sxo is not below Sw. Where it is, the Rxo or Rt log is poor, the invasion profile is not a simple step, or an annulus is present.
  • In a water zone Rxo is above Rt only when Rmf is above Rw (fresh mud, salty formation water). The crossover of the logs in a water zone follows from the filtrate and water resistivities.
  • Rxo is corrected for mudcake and the caliper shows no large washouts where the micro-device was run.
  • Sxo is below 1 where hydrocarbon is present. Sxo of 1 in a hydrocarbon sand points to a bad Rxo, bad Rmf or no invasion data.

Going Deeper

Sxo matters for two reasons. It is a second, independent saturation estimate with different depth of investigation, so the pair of Sw and Sxo gives a first indication of hydrocarbon mobility without a test. And it is the quantity that tools such as the dielectric and NMR logs respond to in the invaded zone, so it ties the resistivity result to the other measurements. Invasion is a dynamic process: the profile depends on mud properties, overbalance, time and permeability. The step-profile assumption used here is the simplest picture, and the radial profile is only fully handled by inverting the array resistivity data. The rules of thumb for mobility belong to the older chart-based practice and are not a substitute for formation testing.

References

References will be added once verified.

Python reference implementation

Python reference implementation

The Python reference implementation is available to registered users with a verified email address. Register or sign in to view it.