Skip to main content

Production forecasting utilities and decline-curve analysis tools built around Arps models.

Project description

Production Forecasting for Oil & Gas Wells

Overview

This repository is designed to offer comprehensive production forecasting solutions for oil and gas wells. It includes tools for production data analysis, decline curve analysis, and time series analysis, enabling users to make informed predictions about future production trends.

Features

  • Graphical Templates – Industry-standard visualizations for production trend analysis and interpretation.

The prodpy.onepage module offers ready-to-use templates for generating compact, graphical summaries of multi-dimensional production data. These visualizations combine key metrics such as oil, gas, and water rates with operational details like active perforation intervals, shut-ins, and completion events - all in a single, easy-to-read figure. Designed for quick well reviews and communication between subsurface and operations teams, the OnePage layout enhances situational awareness and supports efficient decision-making.

Figure 1: A layout showing production rates alongside active intervals and well events.

  • Customizable Workflow – Modify or extend the tools to fit specific reservoir and well conditions.

The reservoir allocation function prodpy.Allocate provides a systematic method to distribute measured production volumes (oil, gas, and water) from commingled surface data back to individual reservoirs or layers. This is particularly useful in fields with multi-zone completions or shared infrastructure. The allocation algorithm uses layer properties such as permeability, thickness, pressure, or historical trends to estimate each zone's contribution to total production. The function supports customizable weighting schemes and can be integrated into full-field workflows for reservoir surveillance, history matching, or field development planning.

Figure 2: A typical workflow where surface production is decomposed and allocated to contributing reservoir zones using input data from well tests and petrophysical properties.

  • Decline Curve Analysis – Implement common decline models (Exponential, Harmonic, Hyperbolic).

The prodpy.decline module provides analytical tools for fitting and forecasting production using classical decline curve models, including exponential, hyperbolic, and harmonic equations. These models are implemented with a consistent interface and allow estimation of key parameters such as decline rate, cumulative production, and well life. The module is ideal for rapid screening, reserves estimation, and performance diagnostics in conventional reservoirs.

Table 1: The mathematical forms of the implemented decline models, highlighting their differences in rate behavior and cumulative production estimates.

  • Time Series Analysis – Utilize statistical methods and machine learning models for forecasting.

Installation

Clone the repository and install the required dependencies:

git clone https://github.com/jshiriyev/main-prodpy.git  
cd main-prodpy 
pip install -r requirements.txt  

Usage

Example usage of the decline curve analysis module:

from prodpy import dca

# Load production data (assumed to be a Pandas DataFrame)
dca = dca(production_data)

# Fit a hyperbolic decline model
dca.fit(model="hyperbolic")

# Plot the forecasted production trend
dca.plot_forecast()

Dependencies

The following libraries are required:

  • Python 3.x
  • pandas
  • numpy
  • matplotlib
  • scipy

Contributing

Contributions are welcome! If you find a bug or want to improve the tool, feel free to:

  1. Fork the repository
  2. Create a new branch (feature-branch)
  3. Submit a pull request

License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prodpy-0.0.29.tar.gz (38.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prodpy-0.0.29-py3-none-any.whl (50.0 kB view details)

Uploaded Python 3

File details

Details for the file prodpy-0.0.29.tar.gz.

File metadata

  • Download URL: prodpy-0.0.29.tar.gz
  • Upload date:
  • Size: 38.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for prodpy-0.0.29.tar.gz
Algorithm Hash digest
SHA256 588d03eac5c316b68abedf5168cead510351d8001ce1894a1d06097beb142558
MD5 36b8c97e3153e5af9c89d7c7bd42424a
BLAKE2b-256 d8cd4cedb05c58f4860b8529e2f5ab979a63ccf7f5af784a77f2bf140dc17ded

See more details on using hashes here.

File details

Details for the file prodpy-0.0.29-py3-none-any.whl.

File metadata

  • Download URL: prodpy-0.0.29-py3-none-any.whl
  • Upload date:
  • Size: 50.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for prodpy-0.0.29-py3-none-any.whl
Algorithm Hash digest
SHA256 65ced8552769f379038c8edf55a4f9530865e5cb850049e5f3b1bc2971c4ed7a
MD5 42e7824dafcc88050c4c98684ff9e207
BLAKE2b-256 47d455a8872b3a5435fe8bd514ae14a807b586c4aea944b65a377ec5f6bc6c98

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page