| Well (UWI) | 15-135-25990-00-00 |
| Log date | 2/11/2018 |
| Service company | Pioneer Energy Services |
| Acquisition date (header) | 2/11/2018 |
| PLSS location | Sec 31 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 | 31c0f4a959a5 |
| 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)
- net-pay avg PHIE 0.36 > 0.25 — implausibly high for carbonate
⚠️ ABSTENTION — this is NOT a confident estimate. The validation loop did not converge (DID_NOT_CONVERGE) and three validator objections remain outstanding, including one unresolved MECHANICAL objection: net-pay average PHIE of 0.361 exceeds 0.25, which is implausibly high for carbonate and flags the result as an uncalibrated engineering estimate reported for transparency only.
Net pay across the 623.0 m gross evaluation window spans a P10–P90 range of 37.3 to 155.3 m (P50 109.9 m) at a net-to-gross of 0.193. Net-pay averages are PHIE 0.361, Sw 0.283, and Vsh 0.022. The dominant uncertainty is a 26.1 m swing in net pay driven by Rw, which is a regional default (uncalibrated) — the single largest uncertainty. Because Rw is bracketed and the run did not converge, the reported pay range should be treated as a scenario envelope, not a deterministic result.
Net pay P10 / P50 / P90 = 37.3 / 109.9 / 155.3 m. Net pay is dominated by 'Rw', a regional DEFAULT (uncalibrated). This is the single largest uncertainty — the result is bracketed, not a confident point estimate.
Net pay P10 / P50 / P90 = 37.3 / 109.9 / 155.3 m.
Net pay is dominated by 'Rw', 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 | PHID_SVC | count 4 |
| hard_range_mask | DRHO | count 4 |
| hard_range_mask | RT | count 151 |
| hard_range_mask | RMED | count 82 |
| range_warn | RHOB | count 4 |
| range_warn | NPHI | count 15 |
| spike_removal | — | 134 edits |
| degradation | — | 2 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: 2, hard_range_mask: 4, range_warn: 2, spike_removal: 134, 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 | Neutron-density separation (non-GR clay indicator) | vsh_neutron_density 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.33, n_flagged=836, intervals=[[292.0, 293.7], [300.7, 356.9], [361.6, 366.4], [418.9, 419.4], [435.1, 435.3], [438.0, 439.8], [478.1, 484.6], [495.3, 496.8], [501.9, 503.1], [508.1, 512.5]].
Invasion profile (multi-depth resistivities, 8346 samples): fraction with shallow reading above deep (Rxo/RT > 1.2, invaded/permeable indication): 0.931; reversed (< 0.8): 0.032; median Rxo/RT 2.380; median Rmed/RT 1.073. Raw-curve facts; naming moveable hydrocarbon is the analyst's judgement.
Matrix point-shares (fraction of points near each matrix line): sandstone: 0.099, limestone: 0.186, dolomite: 0.167. 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

Mean Vsh by method (selection is the agent's; the LLM authors no number):
| Method | Mean Vsh | Selected |
|---|---|---|
| vsh_larionov_old | 0.263 | |
| vsh_larionov_tertiary | 0.189 | |
| vsh_linear | 0.380 | |
| vsh_clavier | 0.248 | |
| vsh_steiber | 0.212 | |
| vsh_neutron_density | 0.204 | ✓ |
| vsh_multimineral | 0.187 |
Mean porosity by method (effective where shale-corrected; the LLM authors no number):
| Method | Mean porosity | Selected |
|---|---|---|
| phie_density_neutron | 0.148 | ✓ |
| phi_density | 0.179 | |
| phi_neutron | 0.195 |
Service-company porosity curves (cross-check evidence, full-column means): phid_svc: 0.303, nphi_dol: 0.210, nphi_ss: 0.301. Matrix assumptions differ per curve; agreement/disagreement is the analyst's reading.
Mean Sw (Simandoux 1963 (shaly sand)) = 0.649 (a=1.00, m=2.00, n=2.00, Rw=0.0314 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.750 | |
| sw_simandoux | 0.649 | ✓ |
| sw_indonesia | 0.655 |
Raw net-pay runs merged into 46 intervals (gap tolerance 1.5 m); showing the 15 thickest, depth-ordered. Full set traces in the ledger.
| Interval | Top (m) | Base (m) | Net pay (m) | Avg PHIE | Avg Sw | Avg Vsh |
|---|---|---|---|---|---|---|
| Z1 | 700.3 | 706.7 | 6.6 | 0.381 | 0.268 | 0.000 |
| Z2 | 727.4 | 730.9 | 3.7 | 0.399 | 0.243 | 0.000 |
| Z3 | 742.8 | 746.6 | 4.0 | 0.388 | 0.243 | 0.000 |
| Z4 | 761.1 | 766.3 | 5.3 | 0.437 | 0.292 | 0.000 |
| Z5 | 780.7 | 791.6 | 10.2 | 0.401 | 0.278 | 0.001 |
| Z6 | 809.9 | 830.1 | 20.4 | 0.424 | 0.221 | 0.000 |
| Z7 | 834.5 | 845.1 | 10.7 | 0.419 | 0.224 | 0.000 |
| Z8 | 881.9 | 888.5 | 6.7 | 0.361 | 0.303 | 0.002 |
| Z9 | 933.8 | 936.5 | 2.9 | 0.346 | 0.267 | 0.000 |
| Z10 | 940.6 | 950.8 | 8.5 | 0.349 | 0.309 | 0.000 |
| Z11 | 967.1 | 972.8 | 5.8 | 0.361 | 0.297 | 0.000 |
| Z12 | 990.6 | 993.6 | 3.2 | 0.419 | 0.278 | 0.016 |
| Z13 | 995.5 | 1000.5 | 5.2 | 0.314 | 0.289 | 0.007 |
| Z14 | 1002.5 | 1005.7 | 3.4 | 0.330 | 0.332 | 0.000 |
| Z15 | 1286.9 | 1289.9 | 2.7 | 0.253 | 0.318 | 0.201 |
| Quantity | Value |
|---|---|
| Gross interval | 623.0 m |
| Net pay (P10/P50/P90) | 37.3 / 109.9 / 155.3 m |
| Net-to-gross | 0.193 |
| Avg PHIE (net pay) | 0.361 |
| Avg Sw (net pay) | 0.283 |
| Avg Vsh (net pay) | 0.022 |
Monte Carlo, 500 realizations (seed 42). Net pay swing per parameter (one-at-a-time):
| Parameter | Net-pay swing (m) |
|---|---|
| Rw | 26.1 |
| m | 22.4 |
| a | 15.4 |
| n | 5.3 |
Dominant uncertainty: Rw (swing 26.1 m).
Multi-seed robustness: P50 stable (spread 2.1 m across 4 seeds).
Net pay is dominated by 'Rw', which is a regional DEFAULT (uncalibrated). This is the single largest uncertainty — the result is bracketed, not a confident point estimate.
_Uncalibrated screening estimate (no core); Sw used as the Swirr proxy._
| 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 Rw — 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: 2, hard_range_mask: 4, range_warn: 2, spike_removal: 134, unit_conversion: 1.
| Validator | Type | Detail |
|---|---|---|
| vsh_phie_anticorrelation | support | Vsh-PHIE Pearson 0.91 > 0.3 (dirty rock + high porosity) |
| rt_sw_consistency | mechanical | 621 depths with Sw<0.4 but RT<5.0 ohm-m |
| net_pay_plausibility | irreducible | net-pay avg PHIE 0.36 > 0.25 — implausibly high for carbonate |
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: wasted no-op: depth_quality"]
dec_4["decision: DETERMINISTIC DEFAULT (model empty): compute_vsh"]
act_3["tool_call: compute_vsh"]
dec_5["decision: step: compare_methods"]
act_4["tool_call: compare_methods"]
dec_6["decision: step: compute_phie"]
act_5["tool_call: compute_phie"]
dec_7["decision: step: compare_methods"]
act_6["tool_call: compare_methods"]
dec_8["decision: step: compute_sw"]
act_7["tool_call: compute_sw"]
dec_9["decision: step: interval_stats"]
act_8["tool_call: interval_stats"]
dec_10["decision: step: rw_evidence"]
act_9["tool_call: rw_evidence"]
dec_11["decision: step: compare_methods"]
act_10["tool_call: compare_methods"]
dec_12["decision: step: set_zone_of_interest"]
act_11["tool_call: set_zone_of_interest"]
dec_13["decision: step: validate_choice"]
act_12["tool_call: validate_choice"]
dec_14["decision: step: compute_sw"]
act_13["tool_call: compute_sw"]
dec_15["decision: step: compute_vsh"]
act_14["tool_call: compute_vsh"]
dec_16["decision: step: compute_phie"]
act_15["tool_call: compute_phie"]
dec_17["decision: step: compute_sw"]
act_16["tool_call: compute_sw"]
dec_18["decision: step: apply_cutoffs"]
act_17["tool_call: apply_cutoffs"]
dec_19["decision: wasted no-op: compute_phie"]
dec_20["decision: step: validate_choice"]
act_18["tool_call: validate_choice"]
dec_21["decision: step: run_uncertainty"]
act_19["tool_call: run_uncertainty"]
dec_22["decision: step: compute_sw"]
act_20["tool_call: compute_sw"]
dec_23["decision: step: apply_cutoffs"]
act_21["tool_call: apply_cutoffs"]
dec_24["decision: step: run_uncertainty"]
act_22["tool_call: run_uncertainty"]
dec_25["decision: wasted no-op: compute_sw"]
dec_26["decision: wasted no-op: compute_sw"]
dec_27["decision: step: lithology"]
act_23["tool_call: lithology"]
dec_28["decision: step: derived_parameters"]
act_24["tool_call: derived_parameters"]
dec_29["decision: step: permeability"]
act_25["tool_call: permeability"]
dec_30["decision: wasted no-op: compute_sw"]
dec_31["decision: wasted no-op: compute_sw"]
dec_32["decision: step: objection_profile"]
act_26["tool_call: objection_profile"]
This is a LAS-only study. Data that would calibrate the interpretation is absent:
The interpretation is BRACKETED throughout. All key parameters — Vsh, PHIE, Sw, and net pay — carry dominant uncertainty from uncalibrated regional defaults, principally Rw. The mechanical objection on PHIE (0.361 > 0.25 for carbonate) and the non-converged validation loop mean no number in this report should be used for reserves booking or field development decisions without independent calibration (core, production logs, or offset well control). The pay range 37.3–155.3 m (P10–P90) represents a scenario envelope only. Further work should prioritize acquiring a reliable Rw measurement and core-calibrated porosity endpoints before any re-evaluation.
{
"net_pay_total_m": 120.54840000000007,
"net_pay_p10_p50_p90": [
37.307520000000025,
109.88040000000007,
155.2956000000001
],
"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 | ✓ |