Results

Energy Well Performance Projection

Analyze individual oil and gas wells production data in real-time and predict production of individual and group of wells

BUSINESS GOALS:

  • Determine the economic feasibility of a well by identifying their Estimated Ultimate Recovery (EUR) as well as the rate of production over time in realtime.
  • Understand the relationship between critical variables that determine well production such as Initial Production (IP), decline rate (the rate at which production declines over time), and total well lifetime production (EUR).
  • Train, test, and execute the model based on type curve analysis that incorporates changes in environmental conditions at the well during the lifetime of the well instead of “turn on and stay on” mode, where the well has produced at same capacity over its entire life which is unlikely to be true.
  • Provide performance projections not only at the Well level but also at geographic attributes such as Basin, Formation, and rollup to higher levels such as Company or Operator level.

CHALLENGES:

  • Identify proper curve models such as Exponential, Harmonic, and Hyperbolic decline curves to train and test the data.
  • Plot over half a dozen different types of curves such as Normalized, Cumulative, Native, Cumulative Native, and Vintage Native type curves on EUR over 30, 40, and 50 years.
  • Real-time analysis of EUR across 10 US states and over quarter million Wells.
  • Convert complex Excel-based algorithms into runtime executable code and run at scale.
  • Create an interactive UI that will allow users to choose multiple permutations and combinations of parameters such as Basin, Formation, Company, Operator, Lease, type of Well, and others.

THE SOLUTION:

  • Treselle engineering team chose R for type curve analysis modelling by querying both Master and Transaction data, integrating with backend API service using RServe bridge, converting the response to JSON, and handing it over to Highcharts and AngularJS to plot the curves.
  • Found minimized error sum by implementing a custom algorithm using Optim package and using Broyden Fletcher Goldfarb Shanno algorithm.
  • Found the decline and cumulative curve values using decline curve analysis by implementing custom algorithm and identified the trapezoid area.
  • Wrote custom algorithm over least square fit of an exponential decline by grouping wells and applied linear model equation to identify the slope and coefficients.
  • Built custom query engine to interact with Master and Transaction data stores.
  • Implemented over dozen performance improvements to run R in parallel environment to overcome single-thread limitation.
  • Developed a separate UI based on Shiny framework for curators to experiment the model.
  • Designed a highly responsive web UI using AngularJS and Highchart that handles the request & response and plots the curve in real-time.

THE SOLUTION DIAGRAM:

energy_eur