| Well (UWI) | 15-135-24,937-00-00 |
| Log date | Tue Aug 04 17-12-41 2009 |
| Service company | Log Tech |
| Acquisition date (header) | Tue Aug 04 17-12-41 2009 |
| PLSS location | Sec 23 T19 S R22 W (map precision ±1.6 km) |
| Larionov variant | old_rocks (degraded) |
| Convergence status | DID_NOT_CONVERGE |
| Confidence tier | ○ BRACKETED |
| Engine versions | calc_vsh 0.1.0 · calc_phie 0.1.0 · calc_sw 0.1.0 · formula_registry 0.1.0 |
| Config hash (SHA-256) | 2a9cb78728e386ab… |
| Git SHA | df574ffab7ee |
| Generated | autonomously, no human in the per-report loop |
Confidence legend. Each result is tagged by parameter provenance: ● FIRM (core-calibrated) · ◐ QUALIFIED (offset-derived) · ○ BRACKETED (regional/global default — read as a range, dominant uncertainty stated). The system does not claim *always correct*; it states how well-supported each number is.
⚠️ ABSTENTION — this is NOT a confident estimate. The run did not converge to a defensible result; the numbers below are an uncalibrated engineering estimate, reported for transparency only:
- 1 unresolved MECHANICAL objection(s)
⚠️ ABSTENTION — this is NOT a confident estimate. The run did not converge to a defensible result; the numbers below are an uncalibrated engineering estimate, reported for transparency only:
- 1 unresolved MECHANICAL objection(s)
This evaluation of well 15-135-24,937-00-00 should be read as a bracketed estimate rather than a firm result, given that key inputs remain uncalibrated and the run did not converge. Across the 295.0 m gross interval, pay develops as only a thin fraction of the section, with net-to-gross of 0.043 and net pay spanning a wide 4.1 to 38.4 m between the P10 and P90, against a P50 of 12.3 m — a spread that reflects genuine uncertainty rather than precision. Where pay is present, the rock looks reasonable, carrying effective porosity of about 0.198, water saturation near 0.299, and a modest shale volume of 0.193, consistent with a clean, porous, hydrocarbon-bearing reservoir if the interval is real. That said, the net-pay outcome is driven chiefly by the cementation exponent m, which here is a regional default with no core calibration; this dominant uncertainty (an 8.1 m swing), together with one unresolved mechanical objection, means the numbers above must be treated as a plausible range pending better-constrained parameters, not as a confident estimate.
Net pay P10 / P50 / P90 = 4.1 / 12.3 / 38.4 m.
Net pay is dominated by 'm', which is a regional DEFAULT (uncalibrated). This is the single largest uncertainty — the result is bracketed, not a confident point estimate.
Net pay P10 / P50 / P90 = 4.1 / 12.3 / 38.4 m.
Net pay is dominated by 'm', which is a regional DEFAULT (uncalibrated). This is the single largest uncertainty — the result is bracketed, not a confident point estimate.
| Edit type | Curve | Detail |
|---|---|---|
| unit_conversion | NPHI | factor 0.01 |
| hard_range_mask | RXO | count 1 |
| hard_range_mask | RT | count 150 |
| hard_range_mask | RMED | count 56 |
| hard_range_mask | RHOB | count 1 |
| range_warn | GR | count 2 |
| range_warn | NPHI | count 27 |
| spike_removal | — | 83 edits |
| degradation | — | 2 edits |
Raw mnemonics mapped to canonical curve names:
| Canonical | Raw mnemonic |
|---|---|
| DCAL | DCAL |
| DRHO | RHOC |
| GR | GR |
| NPHI | CNLS |
| PHID_SVC | DPOR |
| RHOB | RHOB |
| RMED | RILM |
| RT | RILD |
| RXO | RLL3 |
| SP | SP |
Unit conversions: NPHI×0.01.
Edits applied before compute (by type): degradation: 2, hard_range_mask: 4, range_warn: 2, spike_removal: 83, unit_conversion: 1.
All numbers are produced by the deterministic, golden-tested engine. The LLM only selects methods/parameters and writes prose — it never computes a number. Figures are deterministic renderings of these computed numbers for the human reader; the agent reasons over the numeric EDA digest, not images (the models have no vision).
| Step | Method (frozen) | Version |
|---|---|---|
| Vsh | Larionov 1969 (old rocks) | vsh_larionov_old 0.1.0 |
| PHIE | Density-neutron crossplot, shale-corrected | phie_density_neutron 0.1.0 |
| Sw | Simandoux 1963 (shaly sand) | sw_simandoux 0.1.0 |
| Net pay | Vsh/PHIE/Sw cutoffs → net sand → net reservoir → net pay | netpay 0.1.0 |
| Uncertainty | Monte Carlo P10/P50/P90 + parameter sensitivity | mc 0.1.0 |
Low-resistivity scan: rt_threshold=1.35, n_flagged=816, intervals=[[281.9, 284.1], [292.9, 294.4], [296.1, 307.1], [308.6, 316.5], [317.4, 345.9], [352.5, 353.7], [367.0, 367.9], [371.7, 373.2], [420.6, 421.1], [423.7, 425.3]].
Invasion profile (multi-depth resistivities, 8134 samples): fraction with shallow reading above deep (Rxo/RT > 1.2, invaded/permeable indication): 0.655; reversed (< 0.8): 0.074; median Rxo/RT 1.392; median Rmed/RT 0.989. Raw-curve facts; naming moveable hydrocarbon is the analyst's judgement.
Matrix point-shares (fraction of points near each matrix line): sandstone: 0.167, limestone: 0.264, dolomite: 0.165. Engine crossplot output; naming the dominant lithology is the analyst's judgement. Comparison with core/mud log: not available (LAS-only).
Composite log

Pickett plot

Neutron-density crossplot

Buckles plot

Hingle plot

Distributions

Sensitivity tornado

Net-pay Monte-Carlo distribution

_Uncalibrated screening estimate (no core); Sw used as the Swirr proxy._
_Built on the uncalibrated permeability; indicative only._
Unsupervised k-means on 1754 samples into 4 electrofacies (sample counts: facies 0: 610, facies 1: 216, facies 2: 338, facies 3: 590). Descriptive only — no core labels.
Mean Sw (Simandoux 1963 (shaly sand)) = 0.682 (a=1.00, m=2.00, n=2.00, Rw=0.0208 ohm-m). Electrical parameters are engine-sourced; alternative Sw models are optional sections.
Mean Sw by method (engine-computed comparison; the LLM authors no number):
| Method | Mean Sw | Selected |
|---|---|---|
| sw_archie | 0.868 | |
| sw_simandoux | 0.682 | ✓ |
| sw_indonesia | 0.721 |
Raw net-pay runs merged into 11 geological intervals (gap tolerance 1.5 m).
| Interval | Top (m) | Base (m) | Net pay (m) | Avg PHIE | Avg Sw | Avg Vsh |
|---|---|---|---|---|---|---|
| Z1 | 1035.1 | 1038.5 | 3.5 | 0.278 | 0.215 | 0.223 |
| Z2 | 1043.0 | 1043.6 | 0.8 | 0.210 | 0.467 | 0.100 |
| Z3 | 1065.7 | 1068.2 | 1.5 | 0.215 | 0.370 | 0.215 |
| Z4 | 1110.1 | 1111.1 | 1.2 | 0.191 | 0.447 | 0.103 |
| Z5 | 1203.7 | 1205.6 | 2.1 | 0.158 | 0.358 | 0.198 |
| Z6 | 1213.0 | 1214.2 | 1.4 | 0.147 | 0.198 | 0.109 |
| Z7 | 1221.8 | 1221.8 | 0.2 | 0.101 | 0.491 | 0.199 |
| Z8 | 1258.2 | 1258.5 | 0.5 | 0.143 | 0.257 | 0.295 |
| Z9 | 1306.5 | 1306.5 | 0.2 | 0.107 | 0.417 | 0.294 |
| Z10 | 1317.2 | 1318.1 | 1.1 | 0.130 | 0.188 | 0.281 |
| Z11 | 1329.8 | 1330.0 | 0.3 | 0.121 | 0.239 | 0.142 |
| Quantity | Value |
|---|---|
| Gross interval | 295.0 m |
| Net pay (P10/P50/P90) | 4.1 / 12.3 / 38.4 m |
| Net-to-gross | 0.043 |
| Avg PHIE (net pay) | 0.198 |
| Avg Sw (net pay) | 0.299 |
| Avg Vsh (net pay) | 0.193 |
Monte Carlo, 500 realizations (seed 42). Net pay swing per parameter (one-at-a-time):
| Parameter | Net-pay swing (m) |
|---|---|
| m | 8.1 |
| Rw | 7.0 |
| a | 3.7 |
| n | 2.3 |
Dominant uncertainty: m (swing 8.1 m).
Multi-seed robustness: P50 stable (spread 0.3 m across 4 seeds).
Net pay is dominated by 'm', which is a regional DEFAULT (uncalibrated). This is the single largest uncertainty — the result is bracketed, not a confident point estimate.
| Parameter | Value | Unit | Provenance | Source |
|---|---|---|---|---|
| gr_min | 20.000 | API | default | — |
| gr_max | 120.000 | API | default | — |
| rho_ma | 2.710 | g/cc | default | Schlumberger 1989 |
| rho_fl | 1.000 | g/cc | default | — |
| phie_max | 0.450 | v/v | default | — |
| phi_sh_d | 0.100 | v/v | default | — |
| phi_sh_n | 0.350 | v/v | default | — |
| a | 1.000 | - | default | Winsauer et al. 1952 |
| m | 2.000 | - | default | Archie, G.E. 1942 |
| n | 2.000 | - | default | Archie, G.E. 1942 |
| Rw | 0.040 | ohm-m | default | Kansas Geological Survey 2000 |
| rt_hydrocarbon_floor | 5.000 | ohm-m | default | — |
| vsh_cutoff | 0.350 | v/v | default | — |
| phie_cutoff | 0.100 | v/v | default | — |
| sw_cutoff | 0.500 | v/v | default | — |
| bit_size_config | 7.875 | in | default | — |
| qc_abort_threshold | 0.800 | - | default | — |
| circuit_breaker_n | 3.000 | - | default | — |
The citations table (not RAG) gives each cited parameter exactly one frozen source. Parameters tagged
defaultare regional/global — they drive the bracketed tier.
Boundary-inclusive criteria applied by the engine (netpay) to flag reservoir:
| Stage | Criterion | Cutoff | Provenance |
|---|---|---|---|
| Net sand | Vsh ≤ cutoff | 0.350 | default |
| Net reservoir | + PHIE ≥ cutoff | 0.100 | default |
| Net pay | + Sw ≤ cutoff | 0.500 | default |
Cutoff values are engine parameters (never LLM-authored); the dominant net-pay uncertainty is m — see Uncertainty for the swing.
Curve provenance (canonical ← raw mnemonic): DCAL←DCAL, DRHO←RHOC, GR←GR, NPHI←CNLS, PHID_SVC←DPOR, RHOB←RHOB, RMED←RILM, RT←RILD, RXO←RLL3, SP←SP.
QC edits applied before compute — degradation: 2, hard_range_mask: 4, range_warn: 2, spike_removal: 83, unit_conversion: 1.
| Validator | Type | Detail |
|---|---|---|
| vsh_phie_anticorrelation | support | Vsh-PHIE Pearson 0.67 > 0.3 (dirty rock + high porosity) |
| rt_sw_consistency | mechanical | 45 depths with Sw<0.4 but RT<5.0 ohm-m |
flowchart TD
dec_1["decision: step: depth_quality"]
act_1["tool_call: depth_quality"]
dec_2["decision: step: crossplot"]
act_2["tool_call: crossplot"]
dec_3["decision: step: review_attempts"]
act_3["tool_call: review_attempts"]
dec_4["decision: step: interval_stats"]
act_4["tool_call: interval_stats"]
dec_5["decision: step: set_zone_of_interest"]
act_5["tool_call: set_zone_of_interest"]
dec_6["decision: step: validate_choice"]
act_6["tool_call: validate_choice"]
dec_7["decision: step: derived_parameters"]
act_7["tool_call: derived_parameters"]
dec_8["decision: step: lithology"]
act_8["tool_call: lithology"]
dec_9["decision: step: permeability"]
act_9["tool_call: permeability"]
dec_10["decision: wasted no-op: permeability"]
dec_11["decision: step: rock_quality"]
act_10["tool_call: rock_quality"]
dec_12["decision: step: electrofacies"]
act_11["tool_call: electrofacies"]
dec_13["decision: wasted no-op: lithology"]
dec_14["decision: wasted no-op: permeability"]
dec_15["decision: step: compute_sw"]
act_12["tool_call: compute_sw"]
dec_16["decision: step: rw_evidence"]
act_13["tool_call: rw_evidence"]
dec_17["decision: step: apply_cutoffs"]
act_14["tool_call: apply_cutoffs"]
dec_18["decision: step: run_uncertainty"]
act_15["tool_call: run_uncertainty"]
dec_19["decision: wasted no-op: permeability"]
dec_20["decision: wasted no-op: rock_quality"]
dec_21["decision: wasted no-op: permeability"]
dec_22["decision: wasted no-op: rock_quality"]
dec_23["decision: wasted no-op: lithology"]
dec_24["decision: wasted no-op: permeability"]
dec_25["decision: wasted no-op: lithology"]
dec_26["decision: wasted no-op: permeability"]
dec_27["decision: wasted no-op: lithology"]
dec_28["decision: wasted no-op: permeability"]
dec_29["decision: wasted no-op: rock_quality"]
dec_30["decision: wasted no-op: permeability"]
dec_31["decision: wasted no-op: lithology"]
dec_32["decision: wasted no-op: permeability"]
This is a LAS-only study. Data that would calibrate the interpretation is absent:
The interpretation of well 15-135-24,937-00-00 did not converge, and the result carries a bracketed confidence tier; it should be used as a range for screening purposes only, not as a basis for a firm reserves or completion decision. Over the 295.0 m gross interval the net-to-gross is 0.043, and net pay is best expressed as the P10/P50/P90 range of 4.1 / 12.3 / 38.4 m — the width of that range is the headline result, not the P50 midpoint. The pay quality indicators, where pay is flagged, are internally consistent with a reservoir-quality rock: effective porosity of about 0.198, water saturation near 0.299, and shale volume of 0.193.
The single largest control on the net-pay answer is the cementation exponent m, which is a regional default with no core calibration and which alone drives an 8.1 m swing in net pay. This uncalibrated parameter, combined with two validator objections — one of them an unresolved mechanical objection that triggered abstention — is why the run is not a confident estimate. To move this well from bracketed toward a firmer footing, the priorities are core or offset calibration of m and Rw, and resolution of the outstanding mechanical objection. Until then, the figures reported here should be read as a plausible range that documents how well-supported the numbers are, and no confident point estimate should be inferred from them.
{
"net_pay_total_m": 12.649200000000008,
"net_pay_p10_p50_p90": [
4.1148000000000025,
12.268200000000007,
38.42004000000003
],
"driving_params": {
"a": 1.0,
"m": 2.0,
"n": 2.0,
"Rw": 0.04
},
"claim_verifier": {
"result": "PASS",
"flags": [],
"tone_flags": []
}
}
| Item | Present |
|---|---|
| QC edits recorded before compute | ✓ |
| Every number ledger-traced | ✓ |
| Confidence tier on the run | ✓ |
| Parameter citations frozen | ✓ |
| Validator objections listed, not hidden | ✓ |
| Uncertainty propagated (Monte Carlo) | ✓ |
| Claim verifier run on prose | ✓ |