| Well (UWI) | 15-135-25402-00-00 |
| Log date | Tue Jul 31 09-25-21 2012 |
| Service company | Log Tech |
| Acquisition date (header) | Tue Jul 31 09-25-21 2012 |
| PLSS location | Sec 19 T19S R21W (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.
The pay estimate for well 15-135-25402-00-00 must be read as a bracketed range rather than a firm number, spanning 1.2 m at P10 to 16.9 m at P90 around a P50 of 5.6 m within a 180.0 m gross interval — a net-to-gross of only 0.012 that points to thin, sparse reservoir. Where pay is present the rock looks reasonable, carrying effective porosity of 0.152, water saturation of 0.391, and a modest shale volume of 0.132, but these averages should be treated as indicative given the very limited net thickness. The dominant control on this outcome is the cementation exponent m, which here is a regional DEFAULT with no core calibration and drives a swing of 3.5 m in net pay, making it the single largest source of uncertainty. One validator objection remains unresolved and the interpretation did not fully converge, so the wide P10–P90 spread is the honest expression of the pay potential until m can be locally constrained.
Net pay P10 / P50 / P90 = 1.2 / 5.6 / 16.9 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 186 |
| hard_range_mask | RMED | count 24 |
| hard_range_mask | RHOB | count 1 |
| hard_range_mask | DRHO | count 4 |
| hard_range_mask | PHID_SVC | count 5 |
| range_warn | RHOB | count 4 |
| range_warn | NPHI | count 29 |
| spike_removal | — | 162 edits |
| degradation | — | 3 edits |
Raw mnemonics mapped to canonical curve names:
| Canonical | Raw mnemonic |
|---|---|
| DCAL | DCAL |
| DRHO | RHOC |
| GR | GR |
| NPHI | CNLS |
| NPHI_DOL | CNDL |
| NPHI_SS | CNSS |
| 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: 3, hard_range_mask: 6, range_warn: 2, spike_removal: 162, 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 | Archie 1942 | sw_archie 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.58, n_flagged=806, intervals=[[237.4, 237.7], [282.2, 284.4], [288.3, 288.3], [289.0, 290.3], [293.1, 346.3], [351.1, 354.3], [357.2, 358.3], [367.9, 369.3], [372.6, 374.0], [406.6, 407.1]].
Invasion profile (multi-depth resistivities, 8055 samples): fraction with shallow reading above deep (Rxo/RT > 1.2, invaded/permeable indication): 0.775; reversed (< 0.8): 0.050; median Rxo/RT 1.555; median Rmed/RT 0.993. Raw-curve facts; naming moveable hydrocarbon is the analyst's judgement.
Matrix point-shares (fraction of points near each matrix line): sandstone: 0.102, limestone: 0.243, dolomite: 0.119. 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 1172 samples into 4 electrofacies (sample counts: facies 0: 157, facies 1: 251, facies 2: 276, facies 3: 488). Descriptive only — no core labels.
| 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, NPHI_DOL←CNDL, NPHI_SS←CNSS, PHID_SVC←DPOR, RHOB←RHOB, RMED←RILM, RT←RILD, RXO←RLL3, SP←SP.
QC edits applied before compute — degradation: 3, hard_range_mask: 6, range_warn: 2, spike_removal: 162, unit_conversion: 1.
| Validator | Type | Detail |
|---|---|---|
| vsh_phie_anticorrelation | support | Vsh-PHIE Pearson 0.87 > 0.3 (dirty rock + high porosity) |
flowchart TD
dec_1["decision: step: depth_quality"]
act_1["tool_call: depth_quality"]
dec_2["decision: step: review_attempts"]
act_2["tool_call: review_attempts"]
dec_3["decision: step: low_res_scan"]
act_3["tool_call: low_res_scan"]
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: crossplot"]
act_6["tool_call: crossplot"]
dec_7["decision: step: lithology"]
act_7["tool_call: lithology"]
dec_8["decision: step: validate_choice"]
act_8["tool_call: validate_choice"]
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: derived_parameters"]
act_11["tool_call: derived_parameters"]
dec_13["decision: step: electrofacies"]
act_12["tool_call: electrofacies"]
dec_14["decision: wasted no-op: lithology"]
dec_15["decision: wasted no-op: permeability"]
dec_16["decision: wasted no-op: lithology"]
dec_17["decision: wasted no-op: permeability"]
dec_18["decision: wasted no-op: lithology"]
dec_19["decision: wasted no-op: permeability"]
dec_20["decision: wasted no-op: lithology"]
dec_21["decision: wasted no-op: permeability"]
dec_22["decision: wasted no-op: lithology"]
dec_23["decision: step: rw_evidence"]
act_13["tool_call: rw_evidence"]
dec_24["decision: wasted no-op: lithology"]
dec_25["decision: wasted no-op: permeability"]
dec_26["decision: wasted no-op: lithology"]
dec_27["decision: wasted no-op: permeability"]
dec_28["decision: wasted no-op: lithology"]
dec_29["decision: wasted no-op: permeability"]
dec_30["decision: step: mhi_scan"]
act_14["tool_call: mhi_scan"]
dec_31["decision: wasted no-op: permeability"]
This is a LAS-only study. Data that would calibrate the interpretation is absent:
This interpretation is bracketed, not firm, and should be carried forward as a range. Net pay is most likely near the P50 of 5.6 m but could be as low as 1.2 m (P10) or as high as 16.9 m (P90) across the 180.0 m gross interval, with a net-to-gross of only 0.012 indicating a thin and sparse reservoir. The averages where pay is present — PHIE 0.152, Sw 0.391, and Vsh 0.132 — are consistent with a viable but volumetrically minor target and should be read as indicative given the limited net thickness. The width of the range is driven principally by the cementation exponent m, which is an uncalibrated regional default responsible for a 3.5 m swing in net pay; this is the single largest lever on the result. With one validator objection unresolved and the run flagged DID_NOT_CONVERGE, no point estimate should be treated as confident. The most effective next step is to constrain m locally — through core or a defensible offset calibration — which would meaningfully narrow the bracket before any volumetric or economic decision is taken on this well.
{
"net_pay_total_m": 2.1336000000000013,
"net_pay_p10_p50_p90": [
1.2192000000000007,
5.638800000000003,
16.931640000000012
],
"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 | ✓ |