Skip to main content
Reading viewAll insights →
RESEARCH9 min read · 27 Aug 2026

Anatomy of the Deliverable We Were Hired to Disrupt: Inside a Vendor-Grade Borehole-Image Interpretation Report

Before we could automate borehole-image interpretation, we had to read the thing we were replacing: one paid service-company FMI report for a single vertical well in Oman. It is 42 pages of specialist work, and reading it closely settles two questions at once. It fixes the quality bar, because the report is not a pile of picks but a structured interpretation: 910 bedding dips across three formations, a 406-fracture census sorted into four resistivity classes, 19 faults across three types, an 11-category dip nomenclature, Kalman-filtered speed correction, and a Luthi-Souhaite aperture the interpreter honestly flags as unreliable. And it exposes the economic headroom, because a specialist logged roughly 1728 m of borehole but the operator paid to interpret only 428.9 m of it, two carbonate windows totalling about a quarter of the logged image. The un-billed three-quarters is not a gap in the data; it is a gap in what a per-interval pricing model makes it worth reading. That is the exact space a near-zero-marginal-cost automated picker moves into. This piece dissects the report as an artifact and reads its structure as both the standard to clear and the opportunity to take.

borehole-image-logsfmifracture-interpretationcarbonate-reservoirhuman-baselineinterpretation-economicsdip-pickingomanwell-loggingsubsurface-ai

Abstract

An automated interpreter is only ever as credible as its understanding of the human work it stands in for, so before we built one we read a paid one carefully. The artifact is a 42-page service-company Formation MicroImager interpretation report for a single vertical well in a fractured carbonate reservoir in Oman, logged in late 2021 over an 8.5-inch section drilled with a KCL polymer mud. Read as an object rather than a summary, the report answers two separate questions. First, it fixes the quality bar. The deliverable is a structured interpretation, not a bag of picks: 910 bedding dips split 164/248/498 across three formations, a structural dip of 4.2 degrees toward 288.2, a census of 406 fractures sorted into four resistivity classes, 19 faults across three types, all logged against an 11-category dip nomenclature the operator itself mandated, with speed correction, static and dynamic normalization, and an aperture calculation the interpreter flags as unreliable where the physics stops supporting it. Second, it exposes the headroom. The specialist logged roughly 1728 m of borehole across the processed interval 1201 to 2929 m MD, but the operator paid to interpret only 428.9 m, two carbonate windows of 178.3 m and 250.6 m, about a quarter of what was imaged. The other three-quarters was logged and never read, not because it held nothing but because per-interval interpretation pricing made it not worth reading. That un-billed remainder is the space an automated picker with a near-zero marginal cost per metre moves into. This is a reading of one real deliverable; the numbers are sourced from the report, and the only projection is the interactive sweep of the paid fraction above its actual 25 percent.

Why the report, not the pipeline, is the honest starting point

It is tempting to begin an automation project with the model. We began with the invoice-shaped object the model was supposed to replace, because that object is the only place the real specification lives. A request for proposals will tell you the operator wants dips and fractures. It will not tell you that dips arrive sorted into an operator-specific 11-category taxonomy, that fractures are split by whether they are conductive or resistive and continuous or broken, or that the interpreter will decline to report an aperture where the tool physics no longer justifies one. Those decisions make an interpretation trustworthy, and none of them are visible until you read a finished report line by line.

So we read one. It covers a single vertical well, logged over an 8.5-inch section with a KCL polymer mud, with a maximum borehole deviation of 76.34 degrees near the base. The processed interval runs from 1201 to 2929 m measured depth, about 1728 m of imaged borehole. This is one deliverable for one well, and its specificity is the point. Everything that follows is a fact from that document.

What the paid slice actually contains

The interpreted output is dense. Across three formations the report logs 910 bedding dips, distributed 164, 248, and 498, and from them derives a single structural dip of 4.2 degrees toward 288.2, roughly west-northwest. The fracture census is where the interpreter's judgment is most exposed, because a fracture is not just picked, it is classified. The report sorts 406 fractures into four resistivity-and-continuity classes: 335 discontinuous conductive, 67 discontinuous resistive, 3 continuous resistive, and a single continuous conductive fracture. On top of that sit 19 faults, themselves split into 9 conductive, 7 resistive, and 3 possible, each carried with a mean orientation. The verdict language is cautious and human: overall high to moderately fractured, mostly partial conductive fractures.

The distribution matters as much as the total. A census that is 335 of one class and 1 of another is a heavily imbalanced label set, and any model trained to reproduce this interpretation inherits that imbalance as a fact of the domain, not a nuisance to be sampled away. The bar is not "find fractures." It is "reproduce this specific, skewed, four-way classification, and the fault types on top of it, well enough that a geologist recognises their own reasoning in the output."

The methods are the quality bar, not the pipeline steps

Underneath the counts sits a chain of processing choices that a credible automated interpreter has to respect rather than skip. Depth is speed-corrected two ways at once, a Kalman-filtered double integration of the tool accelerometer combined with an image-based button-correlation correction, because a tool that sticks and jumps in the hole will otherwise smear every sinusoid. The image is equalized in a 1 m window. Two normalizations run in parallel: a static one, an equal-count resistivity histogram over the whole interval sorted into 64 classes, which stabilises the large-scale view at the cost of masking fine features, and a dynamic one, a sliding-window equalization tuned by rock type, which recovers them. The fracture classification follows the operator's mandated 11-category dip nomenclature, from bedding and deformed bedding through the four fracture classes to breakout and induced fractures, rendered as color-coded tadpoles.

The most instructive line in the whole report is a limitation the interpreter volunteers. Fracture aperture is computed from the Luthi-Souhaite relation, which ties aperture to the excess conductivity a fracture adds against the mud and flushed-zone resistivities:

Luthi-Souhaite fracture aperture
W=cARmbRxo(1b)W = c \cdot A \cdot R_m^{\,b} \cdot R_{xo}^{\,(1-b)}

with tool-specific constants c and b. The report flags this number as unreliable in zones of high resistivity contrast. That single caveat is worth more to a model-builder than any headline count, because it marks the boundary of what image-derived interpretation can honestly claim. An automated picker that reports a confident aperture everywhere is not more capable than the human baseline; it is less honest than it.

The un-billed three-quarters

Now the second fact, and the one the instrument is built to argue. A specialist logged about 1728 m of this borehole. The operator paid to interpret 428.9 m of it, two carbonate formation windows of 178.3 m and 250.6 m. Roughly three-quarters of the logged image was never interpreted.

This is not a data gap. The borehole was imaged end to end; the tool ran, the pads read, the DLIS was written. What was withheld was interpretation, because interpretation is priced per interval and the operator chose to buy only the reservoir sections it needed for the decision in front of it. The economics of a specialist team, expert hours against a per-metre rate, make it entirely rational to leave 1300 m of logged carbonate unread. The image exists; reading it simply is not worth the marginal expert hour under that pricing.

That gap between what is logged and what is worth reading is the whole opportunity, and it is what the dossier below makes legible.

ONE PAID FMI INTERPRETATION REPORT · THE BAR AND THE HEADROOM25%of the logged image the operator paid to interpretA specialist logged 1728 m. The operator paid to read a quarter of it.The paid slice sets the quality bar; the un-billed metres are the headroom an automated picker closes.LOGGED INTERVAL 1201-2929 m MD12012929429 m paidinterpreted image1299 m loggedbut not billed to readREQUESTED WINDOWS178.3 m + 250.6 mtwo carbonate formations = 428.9 mWELL / MUDvertical, max dev 76.34°, KCL polymerWHAT THE PAID SLICE PRODUCED · THE BAR TO MATCH910bedding dips164 / 248 / 498, three formations4.2° @ 288.2structural dipFRACTURE CENSUS · 406 IN FOUR CLASSESDCFdiscontinuous conductive335DRFdiscontinuous resistive67CRFcontinuous resistive3CCFcontinuous conductive119 FAULTS · THREE TYPES9CFconductive7RFresistive3PFpossible64-class static histogram; Luthi-Souhaite aperture flagged unreliablePAID-FRACTION LEVERdrag the paid share; un-billed metres are the headroom25%50%75%100%paid to read429 mheadroom left1299 mas logged1728 m
One paid service-company borehole-image interpretation report for a single vertical well, read as two facts at once. Left: a specialist logged the full processed interval, 1201 to 2929 m MD (about 1728 m), but the operator requested interpretation of only 428.9 m, two carbonate windows of 178.3 m and 250.6 m, roughly a quarter of the logged image; the orange band is the paid slice and the bare column below it is the un-billed metres. Right: the human output that paid slice produced, the quality bar an automated picker must clear, namely 910 bedding dips across three formations (164/248/498) with a 4.2 degree structural dip toward 288.2, a 406-fracture census across four classes (335 DCF, 67 DRF, 3 CRF, 1 CCF), and 19 faults across three types (9 conductive, 7 resistive, 3 possible), under a 64-class static histogram normalization with Luthi-Souhaite aperture flagged unreliable. The lever sweeps the paid fraction from the sourced 25 percent toward full coverage and the un-billed metres fall as it climbs: that gap is the economic headroom a near-zero-marginal-cost picker monetises. Every plotted number is sourced from the vendor interpretation report; only the paid-fraction sweep above 25 percent is an interactive projection.

The left column is the coverage argument. The orange band is the 428.9 m the operator paid to interpret; the bare column beneath it is the roughly 1300 m that was logged and left unread. Drag the paid fraction up from its actual 25 percent and watch the un-billed metres fall. Under the human cost model, moving that lever toward full coverage means buying more expert hours per well, which is exactly why nobody does it. Under an automated model the calculus inverts. Once one model is trained, the marginal cost of interpreting the next metre is compute, not an expert hour, and we have set out that unit economics in detail elsewhere, in the economic case for automating borehole-image interpretation; the point here is only that the lever which is prohibitively expensive for a human team is nearly free for a trained picker. The un-billed three-quarters stops being uneconomic to read.

The right panel is the other half of the same report, the quality bar. The 910 dips, the four-class fracture census, the 19 faults: this is the standard an automated interpreter has to clear on the paid metres before anyone will trust it on the un-billed ones. The two halves are not separate arguments. Nobody extends interpretation to the full logged interval on the strength of a picker they do not yet believe on the quarter a human already read. The bar has to be cleared first; the headroom is the reward for clearing it.

Reading the report as a specification

Set the two facts side by side and the report stops being a deliverable and becomes a specification for the thing meant to replace it. The census, the class taxonomy, the fault types, and the honest aperture caveat are the acceptance criteria. Match the human interpretation on the 428.9 m it covers, including its skew and its stated uncertainty, and you have earned the right to the argument the coverage column makes: that the same interpreter, at near-zero marginal cost, can now read the 1300 m the operator never paid a human to read.

This reframes what "as good as a service company" means. It is not a single accuracy number. It is reproducing a structured, imbalanced, uncertainty-flagged interpretation faithfully enough that the un-billed remainder becomes worth reading. The report is the bar and the headroom in one document, which is why we started the whole programme by reading it rather than by writing code.

Limitations

This is a close reading of a single deliverable, and its boundaries follow from that. One report for one vertical well is a specification, not a distribution; the exact class balance, the 335-to-1 spread across fracture types, and the 25 percent paid fraction are properties of this well and this operator's decision, and another well or another commercial arrangement would move all three. We treat the report as the human baseline, but a service-company interpretation is itself an interpretation, subject to inter-interpreter variance that a single document cannot show; the counts are what one team reported, not ground truth in any absolute sense. The paid-fraction sweep in the instrument is a projection above the one sourced anchor of 25 percent and is meant to make the coverage economics legible, not to assert that any specific operator would extend interpretation to any specific level. The claim that automated interpretation carries a near-zero marginal cost per additional metre is an economics argument developed in the whitepaper linked above and is only pointed to here, not re-derived. Finally, the aperture caveat we lean on is the interpreter's own, and it bounds what image-derived aperture can claim on this well; it is not a general statement about the Luthi-Souhaite relation in every setting.

References

[1] From 3-4 Weeks to 2 Hours per Well: The Economic Case for Automating Borehole-Image Interpretation. EarthScan whitepapers, 2025-04-08. https://www.earthscan.io/whitepapers/economic-case-automating-borehole-image-interpretation

Tannistha MaitiNarendra Patwardhanby Tannistha Maiti and Narendra Patwardhan
More from EarthScan

Related research

All insights →
GeoBFDT: A Transformer for Automated Bedding and Fracture Detection in Borehole Image Logs
Research

GeoBFDT: A Transformer for Automated Bedding and Fracture Detection in Borehole Image Logs

From Picks to Permeability: What Automated Fracture Detection Is Actually For
Research

From Picks to Permeability: What Automated Fracture Detection Is Actually For

Disclosing Physics to Reviewers Privately: How to Answer Technical Questions Without Publishing Client Data
Insight

Disclosing Physics to Reviewers Privately: How to Answer Technical Questions Without Publishing Client Data

Stay ahead

EarthScan insights, in your inbox.

Field-tested research on subsurface and energy-transition AI. About twice a month. No noise.

We use your email only for this newsletter. Unsubscribe anytime Privacy.