Pressure Transient Analysis - Derivative Plot Interpretation, Reservoir Parameter Quantification, and Skin Calculation
Pressure transient analysis (PTA) is the only method that measures reservoir properties at the drainage scale of the well - typically 500-2,000 ft radius - rather than at the 1-inch scale of a core plug or the wellbore scale of a log. The permeability measured from core plugs represents the rock in a 1-inch cylinder. The permeability calculated from a pressure buildup test represents the effective average permeability over the entire area that the wellbore has drained during the test. These two values often differ by a factor of 2-10, and the reason for the difference: natural fractures, stratification, or compartmentalization - is itself diagnostic information about the reservoir architecture that cannot be obtained from any other source. This guide covers the complete PTA workflow: the pressure derivative calculation that reveals flow regimes, the Horner analysis that quantifies reservoir permeability and skin, and the diagnostic interpretation sequence that identifies the reservoir model from the characteristic derivative shapes.
1. Pressure Buildup Test Design
1.1 Shut-In Duration Requirements
A pressure buildup test requires the well to be shut in for sufficient time that the pressure transient propagates far enough into the reservoir to sample the drainage area and reach any boundaries. Insufficient shut-in time produces an incomplete buildup that cannot be analyzed for all reservoir parameters:
Radius of investigation at time t (hours):
ri (ft) = 0.0325 x sqrt(k x t / (phi x mu x ct))
Where k = permeability (md), t = time (hours), phi = porosity (fraction), mu = viscosity (cp), ct = total compressibility (1/psi)
Example: k = 45 md, phi = 0.18, mu = 1.8 cp, ct = 18 x 10^-6 psi^-1
Radius at t = 10 hours:
ri = 0.0325 x sqrt(45 x 10 / (0.18 x 1.8 x 18e-6)) = 0.0325 x sqrt(450 / 5.832e-3)
= 0.0325 x sqrt(77,160) = 0.0325 x 277.8 = 9.03 ft at 10 hours (too short)
Radius at t = 100 hours:
ri = 0.0325 x sqrt(45 x 100 / 5.832e-3) = 0.0325 x sqrt(771,605) = 0.0325 x 878.5 = 28.5 ft at 100 hours
Radius at t = 1,000 hours:
ri = 0.0325 x sqrt(4,500 / 5.832e-3) x sqrt(100) = 285 ft - wait:
ri = 0.0325 x sqrt(45 x 1,000 / 5.832e-3) = 0.0325 x sqrt(7,716,049) = 0.0325 x 2,778 = 90.3 ft at 1,000 hours
Correction - recalculate: phi x mu x ct = 0.18 x 1.8 x 18e-6 = 5.832e-6 (not 5.832e-3)
ri(10hr) = 0.0325 x sqrt(450/5.832e-6) = 0.0325 x sqrt(77,160,000) = 0.0325 x 8,784 = 285 ft at 10 hours
ri(100hr) = 0.0325 x sqrt(4,500,000,000/5.832e-6): recalculate more carefully:
ri = 0.0325 x sqrt(k x t / (phi x mu x ct))
= 0.0325 x sqrt(45 x 100 / (0.18 x 1.8 x 18 x 10^-6))
= 0.0325 x sqrt(4500 / 0.000005832)
= 0.0325 x sqrt(771,604,938)
= 0.0325 x 27,778 = 903 ft radius investigated at 100 hours
Minimum test duration to sample 500 ft drainage radius:
t_min = (ri/0.0325)^2 x (phi x mu x ct) / k = (500/0.0325)^2 x 5.832e-6 / 45
= (15,385)^2 x 5.832e-6 / 45 = 236,698,225 x 1.296e-7 = 30.7 hours minimum buildup duration
2. The Pressure Derivative - The Key Diagnostic Tool
2.1 Why the Derivative Reveals What Pressure Cannot
The pressure derivative (dp/d(ln t) or dp'/d(ln(tp+dt)/dt) for buildup) amplifies the subtle changes in pressure rate that indicate flow regime transitions. A log-log plot of both pressure change (delta_p) and the derivative (dp) reveals characteristic shapes that uniquely identify the reservoir model:
Pressure derivative calculation (Bourdet derivative):
p' = dp/d(ln t) = t x dp/dt
In practice, calculated numerically from pressure-time data using a smoothing algorithm:
p'(ti) = [p(ti+1) - p(ti-1)] / [ln(ti+1) - ln(ti-1)]
Flow regime signatures on the log-log derivative plot:
Wellbore storage: Unit slope line (slope = 1) on both delta_p and p'. Derivative rises as delta_p rises.
Infinite Acting Radial Flow (IARF): Derivative stabilizes at constant value (horizontal line). This is the most important diagnostic - must see this flat derivative to calculate k and S.
Linear flow (fracture or channel): Derivative follows half-slope line (slope = 0.5). Characteristic of hydraulically fractured wells or elongated reservoirs.
Bilinear flow: Derivative follows quarter-slope line (slope = 0.25). Characteristic of finite-conductivity hydraulic fractures.
Boundary effect (sealing fault): Derivative doubles from IARF level → slope of 1 again (single sealing fault behavior).
Closed circular boundary: Derivative rises steeply as pressure transient hits circular boundary (pseudo-steady state).
Dual porosity (natural fractures): S-shaped derivative with valley below IARF level. Transition from fracture depletion to matrix feeding fractures.
2.2 Flow Regime Identification Table
| Derivative Shape | Slope on Log-Log | Reservoir Model | Parameters Derivable |
|---|---|---|---|
| Unit slope (both curves) | m = 1 | Wellbore storage dominated. No reservoir information yet. | C (wellbore storage coefficient) |
| Flat derivative (horizontal) | m = 0 | IARF - Infinite Acting Radial Flow. Homogeneous reservoir behavior. | k (permeability), S (skin factor) |
| Half-slope | m = 0.5 | Linear flow - hydraulic fracture (infinite conductivity) or channel reservoir | Fracture half-length (Xf) or channel width |
| Quarter-slope | m = 0.25 | Bilinear flow - finite conductivity hydraulic fracture | Fracture conductivity (kf x w) |
| Derivative doubles (2x IARF level) | Doubles then flat | Single sealing fault - distance to fault calculable from time derivative doubles | Distance to fault (L_fault) |
| S-shaped valley below IARF | Valley then recovery | Dual porosity - naturally fractured reservoir | omega (storativity ratio), lambda (interporosity coefficient) |
| Steep late-time rise | m → ∞ | Closed boundary - pseudo-steady state | Drainage area (A) |
3. Horner Analysis - Calculating Permeability and Skin
3.1 The Horner Plot Method
Horner time ratio (HTR):
HTR = (tp + delta_t) / delta_t
Where tp = producing time before shut-in (hours), delta_t = shut-in time (hours)
Plot: Shut-in pressure (Pws) on Y-axis vs log(HTR) on X-axis
During IARF: data falls on straight line with slope m (psi/log cycle)
Permeability from Horner slope:
k (md) = 162.6 x q x mu x Bo / (m x h)
Where q = flow rate (STB/day), m = Horner slope (psi/log cycle), h = net pay (ft)
Example buildup test:
Well produced at q = 850 STB/day for tp = 72 hours before shut-in
Oil properties: mu = 1.8 cp, Bo = 1.285 RB/STB
Net pay: h = 38 ft
Horner plot IARF slope: m = 42.5 psi/log cycle (from straight line through IARF data points)
k = 162.6 x 850 x 1.8 x 1.285 / (42.5 x 38)
= 162.6 x 1,962.225 / 1,615
= 319,078 / 1,615 = 197.6 md from buildup analysis
Compare to core average: k_core = 85 md → k_welltest/k_core = 197.6/85 = 2.32x
Welltest permeability 2.3x higher than core → natural fractures present but not captured in core plugs
3.2 Skin Factor Calculation from Horner Analysis
Skin factor from Horner analysis:
S = 1.151 x [(P*-Pwf) / m - log(k / (phi x mu x ct x rw^2)) + 3.2275]
Where:
P* = pressure at HTR = 1 (extrapolated Horner straight line to infinite shut-in)
Pwf = flowing bottomhole pressure just before shut-in
rw = wellbore radius (ft)
Example continued:
P* = 4,285 psi (extrapolated)
Pwf = 3,142 psi (measured just before shut-in)
phi = 0.18, mu = 1.8 cp, ct = 18 x 10^-6 psi^-1, rw = 0.35 ft
log(k/(phi x mu x ct x rw^2)) = log(197.6 / (0.18 x 1.8 x 18e-6 x 0.35^2))
= log(197.6 / (0.18 x 1.8 x 18e-6 x 0.1225))
= log(197.6 / 7.144e-7)
= log(276,600,000) = 8.442
S = 1.151 x [(4,285 - 3,142)/42.5 - 8.442 + 3.2275]
= 1.151 x [26.89 - 8.442 + 3.2275]
= 1.151 x [21.675]
= S = +24.9 → Very high positive skin → severe near-wellbore damage
Production impact of S = +24.9:
Rate with skin: q = kh x dP / (141.2 x mu x Bo x (ln(re/rw) - 0.75 + S))
= 197.6 x 38 x (4,285-2,000) / (141.2 x 1.8 x 1.285 x (7.96 + 24.9))
= 16,994,160 / (141.2 x 1.8 x 1.285 x 32.86) = 16,994,160 / 10,778 = 1,576 STB/day actual
Rate without skin (S = 0): 197.6 x 38 x 2,285 / (141.2 x 1.8 x 1.285 x 7.96) = 17,154,608 / 2,607 = 6,579 STB/day potential
Skin is costing 5,003 STB/day = $109M/year at $60/bbl. Matrix acidizing to remove skin: $150,000. ROI: 726:1.
4. Fault Distance Calculation from Derivative
4.1 Single Sealing Fault - Image Well Method
Distance to a sealing fault from buildup test:
When derivative doubles to 2x IARF level, the pressure transient has reached a sealing fault. The time at which doubling occurs (t_fault) determines fault distance:
L_fault (ft) = 0.0325 x sqrt(k x t_fault / (phi x mu x ct))
Actually: L_fault = sqrt(k x t_fault / (948.1 x phi x mu x ct))
Example: Derivative doubles at t_fault = 85 hours after shut-in:
L_fault = sqrt(197.6 x 85 / (948.1 x 0.18 x 1.8 x 18e-6))
= sqrt(16,796 / (948.1 x 5.832e-6))
= sqrt(16,796 / 0.005530)
= sqrt(3,037,980) = 1,743 ft to the sealing fault
This confirms a sealing fault 1,743 ft from the wellbore. The geologist's structural map showed a fault approximately 1,800 ft away. The 3.1% agreement validates both the PTA interpretation and the structural model, and quantifies that the fault is sealing (not conductive) from the derivative doubling behavior.
5. Wellbore Storage Coefficient
5.1 Calculating C from the Unit Slope Period
Wellbore storage coefficient (C, bbl/psi):
During the unit slope period: delta_p / delta_t = q / (24 x C)
C = q x delta_t / (24 x delta_p) at any point on the unit slope line
Example: At delta_t = 0.5 hours, delta_p = 85 psi, q = 850 STB/day:
C = 850 x 0.5 / (24 x 85) = 425 / 2,040 = 0.208 bbl/psi wellbore storage coefficient
Theoretical C for a liquid-filled wellbore (wellbore compressibility):
C_theoretical = V_wb x c_wb
V_wb = pi/4 x ID^2 x depth = pi/4 x (0.6125 ft)^2 x 9,500 ft x (1/5.615 bbl/ft3) = 496 bbls
c_wb = 3 x 10^-6 psi^-1 (for oil at reservoir conditions)
C_theoretical = 496 x 3e-6 = 0.00149 bbl/psi
C_measured / C_theoretical = 0.208 / 0.00149 = 140x
C_measured is 140x higher than theoretical wellbore compressibility → Well is not liquid-filled. Gas or two-phase fluid in the wellbore. This indicates a mechanical problem (packer leak, gas in wellbore) that must be investigated before the PTA results are used for well decisions.
Conclusion
The skin calculation in this article - S = +24.9 costing 5,003 STB/day at $109M/year with a $150,000 acidize solution - demonstrates the most direct economic application of pressure transient analysis. The buildup test that reveals S = +24.9 is not a technical exercise: it is a business decision document. Without the test, the well produces at 1,576 STB/day and the operator has no quantitative evidence that the potential rate is 6,579 STB/day. With the test, the operator has a specific number, a specific cause (near-wellbore damage from drilling), and a specific intervention with a calculated 726:1 ROI. The $50,000-100,000 cost of running the buildup test and analysis is recovered in the first 4 hours of post-acidize production.
The wellbore storage diagnostic - measured C of 0.208 bbl/psi versus theoretical 0.00149 bbl/psi, a 140x discrepancy - illustrates why the first step in any PTA is to verify that the wellbore storage coefficient is physically reasonable. A C that is 100x higher than the liquid-filled theoretical value means gas or two-phase fluid exists in the wellbore. This not only distorts the early-time pressure data but indicates a well integrity problem (gas lift valve leaking, packer failure, or gas influx) that requires mechanical investigation before the well is returned to production at the acidized rate that the skin calculation suggests is available.
Want to access our PTA calculator with Horner analysis, derivative generation, skin calculation, fault distance, and wellbore storage diagnostic, or discuss pressure transient interpretation for a specific buildup test? Join our Telegram group for well testing and reservoir engineering discussions, or visit our YouTube channel for step-by-step tutorials on pressure buildup analysis and derivative interpretation.

0 Comments