TOC from Passey ΔlogR
On this page
Summary
The Passey method finds organic-rich rock from the separation between the resistivity curve and a porosity curve that has been scaled to overlay it in organic-lean rock. That ΔlogR separation is converted to Total organic carbon with a factor that depends on the Level of organic maturity. Use it when a resistivity curve and one porosity log are available and the interval is not a hydrocarbon-bearing reservoir.
Inputs and outputs
| Item | Units | |
|---|---|---|
| Input | True formation resistivity | ohm·m |
| Input | Resistivity baseline | ohm·m |
| Input | Compressional slowness | µs/ft |
| Input | Sonic baseline | µs/ft |
| Input | Level of organic maturity | dimensionless |
| Output | ΔlogR separation | decades (dimensionless) |
| Output | Total organic carbon | wt% |
Equations
The separation is measured against a baseline picked in organic-lean shale, where the curves overlay one another. There is one form per porosity log:
The separation is converted to organic carbon with a maturity-dependent factor:
and the result is limited to the interval 0 to 100 wt%.
| Symbol | Variable | Units | Typical range |
|---|---|---|---|
| \(R_t\) | True formation resistivity | ohm·m | 0.2 to 2000 |
| \(R_{t,base}\) | Resistivity baseline | ohm·m | 1 to 20 |
| \(\Delta t\) | Compressional slowness | µs/ft | 40 to 140 |
| \(\Delta t_{base}\) | Sonic baseline | µs/ft | 60 to 110 |
| \(\rho_b\) | Bulk density | g/cm³ | 1.8 to 3.0 |
| \(\rho_{b,base}\) | Density baseline | g/cm³ | 2.4 to 2.8 |
| \(\phi_N\) | Neutron porosity | v/v | -0.02 to 0.60 |
| \(\phi_{N,base}\) | Neutron baseline | v/v | 0.05 to 0.35 |
| \(\Delta\!\log R\) | ΔlogR separation | decades (dimensionless) | 0 to 4 |
| \(\mathrm{LOM}\) | Level of organic maturity | dimensionless | 6 to 14 |
| \(\mathrm{TOC}\) | Total organic carbon | wt% | 0 to 15 |
Single-value calculator
Behavior
TOC rises with resistivity because a larger separation means more organic matter. The strongest control is maturity: the same separation gives nearly five times as much TOC at an LOM of 8 as at an LOM of 12, because mature organic matter has generated hydrocarbons that raise the resistivity, so less organic carbon is needed to produce the same separation. The plot holds the sonic term fixed and sweeps the resistivity.
Parameter guidance
The method has three groups of inputs.
Baselines. Pick Resistivity baseline and the porosity baseline (Sonic baseline, Density baseline or Neutron baseline) at the same depth, in a thick organic-lean shale where the scaled porosity curve and the resistivity curve overlay each other. The scaling that makes them overlay is 50 µs/ft per decade of resistivity for the sonic, which is the 0.02 above. The density and neutron coefficients, 2.5 and 4.0, are the equivalent scalings for those logs. Use a single baseline over an interval of similar compaction; if the baseline drifts with depth, use a separate baseline per zone.
Maturity. Level of organic maturity comes from measured vitrinite reflectance or from a regional maturity model. See Kerogen Volume and Maturity for the conversion.
Calibration. Compare with core TOC and apply a scaling factor (TOC scaling factor) and a shift (TOC shift) if the log values are systematically off. Calibration is covered on the TOC Analysis page under shared parameter picking.
Worked example
Resistivity of 12 ohm·m against a baseline of 4 ohm·m, with the three porosity logs and baselines below, at an LOM of 10:
import math
rt, rt_base, lom = 12.0, 4.0, 10.0
factor = 10 ** (2.297 - 0.1688 * lom)
variants = {
'sonic': 0.02 * (95.0 - 80.0), # dt 95, baseline 80 us/ft
'density': -2.5 * (2.45 - 2.65), # rhob 2.45, baseline 2.65 g/cm3
'neutron': 4.0 * (0.20 - 0.15), # nphi 0.20, baseline 0.15
}
print(f"resistivity term = log10({rt:g}/{rt_base:g}) = {math.log10(rt / rt_base):.3f}")
print(f"maturity factor at LOM {lom:g} = {factor:.2f}")
for name, porosity_term in variants.items():
dlogr = math.log10(rt / rt_base) + porosity_term
print(f"{name:8s} dlogR = {dlogr:.3f} TOC = {dlogr * factor:.2f} wt%")
Output
resistivity term = log10(12/4) = 0.477
maturity factor at LOM 10 = 4.06
sonic dlogR = 0.777 TOC = 3.16 wt%
density dlogR = 0.977 TOC = 3.97 wt%
neutron dlogR = 0.677 TOC = 2.75 wt%
Assumptions and limitations
- The baseline interval is organic-lean and the resistivity and scaled porosity curves overlay one another there. If the baseline is picked in an organic-rich interval, TOC is underestimated.
- The resistivity separation comes from organic matter, not from hydrocarbons in the pore space of a reservoir. In a porous, hydrocarbon-bearing interval the method overestimates TOC.
- In immature rock the resistivity does not respond to the organic matter, and only the porosity-curve term contributes. The factor for low LOM then overstates the result.
- Conductive minerals such as pyrite lower the resistivity and cause TOC to be underestimated. Washouts and gas affect the porosity curves.
- The baseline and the compaction state do not change over the interval being evaluated.
QC checks
- ΔlogR is close to zero in the baseline interval and non-negative in rock that is not a source.
- The resistivity and scaled porosity curves visibly overlay in organic-lean rock and separate in organic-rich rock.
- TOC compares with core TOC with no strong bias. A slope or offset on a cross-plot points to the baseline, the LOM or the calibration.
- Results are not driven by washouts, sonic cycle skips or hydrocarbon-bearing reservoir intervals.
- Sonic, density and neutron variants give similar results where all three logs are good.
Going Deeper
The method was published by Passey and co-authors in 1990. It is a graphical overlay technique first: a porosity curve is scaled so that it tracks the resistivity in organic-lean rock, and the separation in organic-rich rock is read as organic richness. The conversion to TOC added the maturity dependence. Practical variants replace the constant resistivity baseline with one calculated continuously from porosity, so that the baseline follows changes in compaction and porosity along the well. At very high maturity the response can weaken, because the organic matter becomes more conductive, so the resistivity term is a less reliable indicator in overmature rock.
References
- Passey, Q.R., Creaney, S., Kulla, J.B., Moretti, F.J. and Stroud, J.D., 1990. A practical model for organic richness from porosity and resistivity logs. AAPG Bulletin, 74(12), 1777–1794.
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.