Pore-Pressure Detection & Well Control, Jordan-Shirley (1966) d & Corrected dc Exponent
Jordan-Shirley Drilling d-Exponent & dc Overpressure
Calculate Bit Penetration per Revolution (ft/rev), Jordan-Shirley Raw d-Exponent, Rehm-McClendon Mud-Weight Corrected dc-Exponent, and Normal Compaction Trend Ratio (%).
Cheering a sudden drilling break from 48 to 135 ft/h in deep shale misses a 0.902 dc-exponent reversal—warning you just drilled into an under-compacted overpressured gas zone!
**J.R. Jordan and O.J. Shirley (`1966`)** normalized Bingham’s rock drillability equation (`R / (60 * N) = (12 * W / (1,000 * D))^d` in oilfield units: `ROP R` ft/h, `Rotary Speed N` RPM, `Weight on Bit W` klbf, `Bit Diameter D` in) into the dimensionless **Drilling `d`-Exponent `d = log10(R / (60 * N)) / log10((12 * W) / (1,000 * D))`** (`both arguments < 1`, so negative/negative yields positive `1.1–1.8` tightening steadily with normal shale compaction)! **W.A. Rehm and R. McClendon (`1971`)** added **Mud-Weight Normalization `d_c = d * (MW_{norm} / MW_{act})`** (`ppg / ppg`): whenever the bit penetrates an **disequilibrium-compaction overpressured shale seal**, elevated pore pressure slashes chip-hold-down differential `(ECD - P_p)`, making `ROP` jump and **`d_c` veer sharply LEFT (`< 75%` of the Normal Compaction Trend `d_{cn} ~= 1.45`)**—giving mud loggers early kick warning BEFORE formation gas enters the wellbore!
Build this Pore-Pressure Log Sheet in a cloud collaboration workbook—Drilling_`ROP` `R` = 48.0 ft/h (B2), Rotary_Speed `N` = 120 RPM (B3), Weight_on_Bit `W` = 28.0 klbf (B4), Bit_Diameter `D` = 8.50 in (B5), Normal_Pore_Gradient `MW_{norm}` = 8.65 ppg (B6), and Active_Mud_Weight `MW_{act}` = 9.20 ppg (B7): Penetration per Revolution equals `0.00667` ft/rev (E2), Raw `d`-Exponent equals `1.551` (E3), Corrected `d_c`-Exponent equals `1.458` (E4 = `100.6%` right on the `1.45` normal compaction trend in E5)! Note: if your well-site engineering team inspects cloud workbooks through the scoped OAuth **Arte Sheets ChatGPT `0.1.0` connector** (currently **`In review` / `Not published`**; `read_range` returns `<= 200` raw cells/formulas + base `revision` without recalculating, consuming `0` Arte AI credits under the `120` calls/min account burst limiter, whereas in-app Pro Assistant explanations use metered monthly Arte AI credits), always verify live recalculated `d_c` cells inside Arte Sheets before accepting mud-weight suggestions!
| Jordan-Shirley / Rehm-McClendon KPI (120 RPM, 28 klbf on 8.5 in bit, MW_norm=8.65 ppg) | Formula | Verified Output |
|---|---|---|
| Penetration per Revolution (ft/rev) | ROP_ft_hr / (60 * Rotary_RPM) | 0.00667 ft/rev (0.01875 drilling break!) |
| Raw Jordan-Shirley d-Exponent | LOG10(R / (60 * N)) / LOG10((12 * W_klbf) / (1000 * D_in)) | 1.551 (1.231 raw drop) |
| Corrected dc-Exponent | Raw_d_Exp * (Normal_Grad_ppg / Active_Mud_ppg) | 1.458 NORMAL (0.902 OVERPRESSURE!) |
| Normal Trend Ratio (% of 1.45) | (Corrected_dc / 1.45) * 100 | 100.6% on-trend (62.2% FLOW-CHECK NOW!) |
Jordan-Shirley (1966) d-Exponent & Rehm-McClendon (1971) dc Pore-Pressure Formula
Validate `ROP` in `[1, 600]` ft/h, `RPM` in `[20, 400]` (`with R / (60 * N) < 0.5` ft/rev), `WOB` in `[2, 95]` klbf (`with 12 * W / (1000 * D) < 0.8`), `Bit_Diameter` in `[3.5, 26]` in, `Normal_Pore_Grad` in `[8.0, 9.5]` ppg, and `Active_Mud_Weight` in `[8.0, 22.0]` ppg!
=LET(rp_f, B2, nr_p, B3, wb_k, B4, db_i, B5, gn_p, B6, mw_p, B7, pr_v, rp_f / (60 * nr_p), wn_d, (12 * wb_k) / (1000 * db_i), dc_x, (LOG10(pr_v) / LOG10(wn_d)) * (gn_p / mw_p), IF(OR(rp_f < 1, rp_f > 600, nr_p < 20, nr_p > 400, pr_v >= 0.5, wb_k < 2, wb_k > 95, db_i < 3.5, db_i > 26, wn_d >= 0.8, gn_p < 8, gn_p > 9.5, mw_p < 8, mw_p > 22), "Invalid d-Exp Input", ROUND((dc_x / 1.45) * 100, 1)))Transition-Zone Drilling Break (`ROP = 135` ft/h at `11.8` ppg Mud) Kick-Warning Check
Drill into a deep geopressured shale transition where `ROP` jumps to `B2 = 135` ft/h despite `B7 = 11.8` ppg weighted mud: Raw `d` E3 slips to `1.231` and **Corrected `d_c` E4 plunges left to `0.902`** (`62.2%` of normal trend in E5)—commanding an immediate **pumps-off flow check** before connection swabbing pulls a gas kick!
=IF(ISTEXT(E5), E5, LET(dx_r, LOG10(B2 / (60 * B3)) / LOG10((12 * B4) / (1000 * B5)), ROUND(dx_r * (B6 / B7), 3)))Try the example
Use the original values or change them to test your understanding.