Skip to main content

Case Study

What Three Letters of Intent Taught Us About Product Fit

Before VeerNet was a product, it was a digitiser with three signed letters of intent from buyers who could not have been more different: a small exploration group, a private-equity holder of producing assets, and a national oil company. The three letters disagreed on almost everything except a short list of capabilities, and that overlap is what we built toward. This is the first-person account of letting early commitments, rather than our own roadmap instincts, decide which features were table stakes and which were theatre.

The EarthScan Teamby The EarthScan Team
Case study

We had built a model that could read curves off a scanned paper well-log, and we were about to make the most common mistake a technical team makes with a working model: assume we knew what to build next. What stopped us was not discipline. It was three letters of intent, signed by three buyers who wanted the same model wrapped in three almost incompatible products. Reading those letters side by side, instead of reading our own roadmap, is the closest thing to a turning point this engagement had. This is the account of what the three letters agreed on, what they did not, and how that disagreement told us exactly where to spend.

Three signatures, three different companies

A letter of intent is a strange artifact. It is not a contract and it is not a sale, but it is more honest than either, because the person signing it is describing the product they would actually pay for rather than the product a survey says they admire. We had three of them for the digitiser, and the only thing the signers shared was a wall of scanned logs they could not query.

The first came from a small exploration group: a handful of geoscientists who wanted to turn their own filing cabinet of scanned logs into something a laptop could read. The second came from a private-equity firm that held a portfolio of producing assets and wanted to digitise across every operator it owned, with the audit trail a financial holder needs to trust a number it did not generate. The third came from a national oil company, which wanted the same curve-reading model but behind its own firewall, in its own theme, wired into a stack it would never expose to us. Same model at the core. Three different companies around it.

The question we set out to answer

The constraint we were under was the ordinary one for a small team: we could build a few things well or many things badly. The accelerated programme behind the model was already running six engineers hard, and every capability we added to the product wrapper was an engineer not spent on the curve extraction itself. So the question was not what the buyers wanted in the abstract. It was narrower and more useful: which capabilities did enough of these letters demand that building them was buying revenue, and which did a single letter want so specifically that building them was building bespoke software for one customer and calling it a roadmap.

We had a price to reason against. The plan put the product at 1,200 USD per seat per year, a number that only works at volume, which meant the capabilities worth building were the ones that widened the seat count rather than deepening a single account. Koroteev and Tekic, in their survey of AI across the upstream, make the point that an upstream tool's value is gated less by its sophistication than by whether it reaches the workflow it is meant to serve.1 For a per-seat product that translates directly: a capability is worth building in proportion to how many seats it unlocks, not how clever it is.

How we actually read the letters

We did the unglamorous thing. We listed every capability any letter asked for, then marked which of the three letters named each one, and we refused to weight a capability by how strongly any single buyer argued for it. A national oil company will argue very persuasively for on-prem deployment and a white-labelled interface, because for that buyer those are non-negotiable. But persuasiveness is not market signal. The market signal is the count of independent buyers who arrived at the same demand without coordinating, and on that measure the letters sorted themselves into three tiers almost immediately.

At the top sat the capabilities all three signed for: curve-to-CSV export, batch runs across an archive, and a confidence-and-QC review step so a human could trust the output. Every one of the three buyers, with nothing in common but the problem, independently asked for those. That is as clear a table-stakes signal as a young product gets. In the middle sat capabilities two of three wanted, like per-seat self-serve access and an API into the buyer's own stack, real but not universal. At the bottom sat the demands a single letter made: on-prem deployment, an audit-and-lineage trail strong enough for a financial holder, and a white-label theme. Each of those was a hard requirement for exactly one buyer and a non-event for the other two.

The temptation in that bottom tier is enormous, because the buyers asking for it are the largest and the loudest. The national oil company's letter was the most prestigious of the three, and it was the one asking for the most product we did not have. Saying yes to all of it would have meant pointing most of the team at the needs of a single account whose seat count, however impressive the logo, was capped by definition.

What the grid showed us

We built the mapping into a single exhibit so we could argue from it rather than from memory. Each capability is a row, each signed letter a column, and a cell lights when that buyer's letter named that capability. The brighter a row, the more of the three asked for it. The footer re-weights every lit capability by the per-seat price, discounted to the serviceable slice of the market, so the bar reads in the only currency that matters for a per-seat product: how much addressable seat-value a capability actually unlocks.

THREE LETTERS OF INTENT · WHAT EACH BUYER DEMANDED100%of weighted build signal · all three signed letters1,200 USD / seat · TAM 134B → SAM 6.7B USDPick a buyer to light the capabilities its letter asked forBrighter cells were demanded by more of the three. The shared column is table stakes; the lone column is theatre.All 3 LOIsExplorersPE holderNational OCExplorersPE holderNational OCsignedCurve to CSV exportaskedaskedasked3/3STAKESBatch run on archiveaskedaskedasked3/3STAKESConfidence + QC reviewaskedaskedasked3/3STAKESPer-seat self-serveaskedasked2/3API into their stackaskedasked2/3Audit trail + lineageaskedasked2/3On-prem deploymentasked1/3THEATREWhite-label themeasked1/3THEATREteal cell = capability named in that letter · brighter = more of the three asked · per-cell demands schematicServiceable build signal in view100%340 USD/seat · SAM3 capabilities all three demanded are table stakes · 2 wanted by one are theatre3 LOIs, 1,200 USD per-seat price & the 134B → 6.7B USD market framing are the deck's own · capability demands per letter are schematic
Three signed letters of intent mapped onto eight product capabilities. Select a buyer (a small exploration group, a private-equity asset holder, a national oil company) and the grid lights the capabilities that buyer's letter asked for, brighter where more of the three demanded the same thing. The footer re-sums a weighted build signal scaled by the 1,200 USD per-seat price, so the capabilities all three demanded read as table stakes and the ones only one buyer wanted read as theatre. The three LOIs, the per-seat price and the 134B / 6.7B USD market framing are the pitch deck's own; the per-letter capability demands are a schematic reconstruction consistent with what the three buyers asked for.

The grid made the tiering impossible to argue with. Filter to the national oil company alone and the bottom-tier rows light up, the on-prem and white-label and lineage demands that look, in isolation, like the most serious requirements in the building. Switch to all three letters and those same rows go dim relative to the three rows every buyer shares, because the weighting rewards demands that recur across independent buyers and discounts demands that live inside one account. The capabilities that survive the switch to all-three are the ones worth pointing the team at. The shared three rows are the product. The lone rows are options.

There is a market reason the weighting is built the way it is. The whole oil and gas transactions market the plan addressed was framed at roughly 134B USD, of which the serviceable software slice was about 6.7B USD, a small fraction of the headline.2 A capability that only one buyer wants is, almost by construction, a capability scoped to a sliver of an already-thin serviceable market. Weighting demands by how broadly the letters shared them is just the product-level expression of building toward the serviceable market rather than the addressable fantasy.

What changed when we stopped reading the letters one at a time

Before

Read each letter on its own terms

The national oil company's letter is the most prestigious and asks for the most product we lack: on-prem, white-label, deep lineage. Build to it and most of the team serves one capped-seat account.

After

Read the three letters as one signal

Only curve-to-CSV, batch runs and confidence QC recur across all three independent buyers. Build those first and every seat the product can ever sell is served by the same core.

The overlap, not the loudest letter, is the roadmap

What the three signatures rearranged

The lasting effect of those three letters was not a feature list. It was a rule for spending attention. We shipped the shared three first, curve-to-CSV, batch, and confidence-gated review, because those three rows were the product every buyer had independently described, and a seat sold to any of the three would land on the same core. Per-seat self-serve and the API came next, in the middle tier where two of three letters agreed. The single-buyer demands did not get dropped, but they got reclassified honestly: not roadmap, but the scope of a specific deal with the specific buyer who needed them, priced and staffed as such rather than smuggled into the product under the cover of a prestigious logo.

What the letters really corrected was a bias we did not know we had. Left to our own instincts, we would have built toward the most sophisticated buyer, because the most sophisticated buyer asks the most interesting questions, and interesting questions are seductive to engineers. The three signatures, read together, told us that the interesting questions were the narrow ones and the boring questions were the broad ones. A product young enough to be deciding what it is should build the boring overlap first and treat the interesting edges as deals, not destiny. We learned that from buyers who never met each other and who, without meaning to, voted three times for the same short list.

What the three letters of intent settled

  1. Three independent buyers (a small exploration group, a private-equity asset holder, a national oil company) signed letters of intent for the same curve-reading model wrapped in three almost incompatible products. The only honest market signal was the count of letters that named a capability without coordinating, not how forcefully any single buyer argued for it.
  2. Exactly three capabilities recurred across all three letters: curve-to-CSV export, batch runs across an archive, and a confidence-and-QC review step. Those are table stakes and we shipped them first. Per-seat self-serve and an API split the middle (two of three). On-prem, deep lineage and white-label were each a single buyer's hard requirement and got reclassified as deal scope, not roadmap.
  3. At 1,200 USD per seat against a roughly 134B USD market whose serviceable slice was about 6.7B USD, a per-seat product earns by widening seat count, so a capability is worth building in proportion to how broadly the letters shared it. The most prestigious buyer asked for the most product we lacked and the least transferable seat value, which is exactly the trap reading the letters together let us avoid.

References

Footnotes

  1. Koroteev, D. and Tekic, Z. Artificial intelligence in oil and gas upstream: Trends, challenges, and scenarios for the future. Energy and AI, 2021. The framing that an upstream tool's value is gated by whether it reaches the workflow it serves, which for a per-seat product means a capability earns in proportion to the seats it unlocks, draws on this survey. https://www.sciencedirect.com/journal/energy-and-ai

  2. The three letters of intent, the 1,200 USD per-seat annual price, and the market framing (roughly 134B USD total addressable, about 6.7B USD serviceable) are the engagement's own pitch and planning records. The buyer identities, the client, and personnel are anonymised under operator confidentiality, and the per-letter capability demands are reconstructed in the exhibit as a schematic consistent with what the three letters asked for. The underlying digitisation corpus drew on the public Texas Railroad Commission (Texas RRC) well-log dataset. https://www.rrc.texas.gov/

Go to Top

© 2026 Copyright. Earthscan