Production Data Analyst
What this skill does
Reads production test reports and time-series production data, computes initial production rates, runs Arps decline curve analysis, checks production allocation, identifies anomalous behavior, and generates production performance summaries. Supports single-well and multi-well pad analysis.
When to use
- User uploads production test reports or production history files
- User asks to analyze production performance or run decline curves
- User wants to compare production against type curve or forecast
- User needs allocation checks across stages or wells
- User is diagnosing liquid loading, anomalous decline, or well interference
Trigger phrases
- "Analyze production data for this well"
- "Run decline curve analysis on this production history"
- "What are the IP30, IP90, and IP180 rates?"
- "Check the production allocation for this pad"
- "Is this well loading up with water?"
- "Compare production against the type curve"
- "Summarize production test results"
- "Flag anomalous production behavior"
- "What is the EUR estimate for this well?"
Inputs
- Production test reports (PDF, DOCX)
- Monthly or daily production time series (CSV, XLSX)
- Pressure and rate data (CSV, XLSX)
- Optional: type curve for benchmarking
- Optional: offset well production for comparison
- Optional: allocation factors per zone or stage
Outputs
- Production test summary with rates and pressures
- IP rates: IP30, IP60, IP90, IP180, IP365
- Peak rate and date of peak
- Decline curve fit parameters (qi, Di, b)
- EUR estimate with confidence range
- GOR and water cut trend
- Allocation table if multi-zone or multi-well
- Anomaly flags (rate spikes, loading indicators, interference signals)
- Structured JSON output
Production metrics computed
Rate metrics
| Metric |
Definition |
| Initial rate (IP) |
First production rate or average of first 24 hours |
| IP30 |
Average daily rate over first 30 producing days |
| IP60 |
Average daily rate over first 60 producing days |
| IP90 |
Average daily rate over first 90 producing days |
| IP180 |
Average daily rate over first 180 producing days |
| IP365 |
Average daily rate over first 365 producing days |
| Peak rate |
Maximum recorded daily rate |
| Current rate |
Most recent 30-day average |
Decline curve analysis (Arps)
| Parameter |
Symbol |
Description |
| Initial rate |
qi |
Rate at time zero (bbl/d or MSCF/d) |
| Nominal decline rate |
Di |
Fractional decline per time unit |
| Hyperbolic exponent |
b |
0 = exponential, 1 = harmonic, 0–1 = hyperbolic |
| EUR |
EUR |
Estimated Ultimate Recovery from decline fit |
| Remaining life |
— |
Years to reach economic limit |
Standard Arps hyperbolic: q(t) = qi / (1 + b × Di × t)^(1/b)
Pressure analysis (when available)
- Tubing head pressure trend
- Casing head pressure trend
- Drawdown = reservoir pressure - flowing BHP
- Buildup analysis if shut-in periods exist
GOR and water cut
| Metric |
Definition |
Flag condition |
| GOR |
Gas-oil ratio (SCF/STB) |
Rapid increase may indicate gas breakthrough |
| Water cut |
Water fraction of liquid production |
Rising WC suggests water encroachment |
| Liquid loading |
Velocity < critical velocity for gas wells |
Declining rate with increasing backpressure |
Allocation logic
When multiple zones or wells share a separator or test line:
- Extract allocation factors from test data or design documents
- Apply factors to gross production to compute per-well or per-zone volumes
- Flag allocations that sum to > 102% or < 98% of gross
- Report unallocated volume
Anomaly detection flags
| Flag |
Condition |
| RATE_SPIKE |
Single-day rate > 3× 30-day average |
| LOADING |
Rate declining while wellhead pressure increasing |
| GOR_BREAKTHROUGH |
GOR increase > 50% over 90 days |
| WATER_BREAKTHROUGH |
Water cut increase > 20 percentage points in 30 days |
| INTERFERENCE |
Rate decline correlates with offset well startup |
| NEGATIVE_DECLINE |
Rate increasing anomalously without workover |
| MISSING_DATA |
Gaps > 7 days in production history |
| ALLOCATION_ERROR |
Allocated sum deviates > 2% from gross |
Output schema
{
"well_info": {
"well_name": "string",
"api": "string",
"field": "string",
"first_production_date": "string"
},
"ip_rates": {
"ip30_bopd": 0.0,
"ip60_bopd": 0.0,
"ip90_bopd": 0.0,
"ip180_bopd": 0.0,
"ip365_bopd": 0.0,
"peak_rate_bopd": 0.0,
"peak_date": "string",
"current_rate_bopd": 0.0
},
"decline_curve": {
"model": "hyperbolic | exponential | harmonic",
"qi_bopd": 0.0,
"di_per_year": 0.0,
"b_factor": 0.0,
"eur_mbo": 0.0,
"eur_p10_mbo": 0.0,
"eur_p90_mbo": 0.0,
"r_squared": 0.0
},
"production_tests": [
{
"test_date": "string",
"oil_rate_bopd": 0.0,
"gas_rate_mcfd": 0.0,
"water_rate_bwpd": 0.0,
"gor_scf_stb": 0.0,
"water_cut_pct": 0.0,
"choke_size_in": "string",
"tubing_pressure_psi": 0.0,
"casing_pressure_psi": 0.0,
"test_duration_hrs": 0.0
}
],
"cumulative_production": {
"cum_oil_mbo": 0.0,
"cum_gas_mmscf": 0.0,
"cum_water_mbw": 0.0,
"producing_months": 0
},
"anomaly_flags": ["string"],
"quality_flags": ["string"]
}
Decline curve fitting notes
- Require minimum 6 months of production data for reliable Arps fit
- Flag b > 2.0 as physically unlikely (may indicate transient flow still dominating)
- Apply terminal decline rate (typically 8–10% per year) for EUR calculation
- Report P10/P50/P90 EUR range using Monte Carlo or sensitivity on Di ± 20%
- Prefer hyperbolic fit for unconventional wells during boundary-dominated flow
Example response
PRODUCTION PERFORMANCE — Wolfcamp B 3H
════════════════════════════════════════
First production: June 1, 2024
Producing months: 9
Peak rate: 1,240 BOPD (June 28, 2024)
IP RATES
─────────
IP30: 1,085 BOPD
IP60: 892 BOPD
IP90: 741 BOPD
IP180: 498 BOPD
DECLINE CURVE FIT (Hyperbolic)
──────────────────────────────
qi: 1,240 BOPD
Di: 68% / year
b: 1.4
EUR: 380 MBOE (P50) | P10: 490 MBOE P90: 285 MBOE
R²: 0.94
ANOMALY FLAGS
──────────────
⚠ GOR_BREAKTHROUGH: GOR increased from 850 to 1,420 SCF/STB between months 6–9
⚠ MISSING_DATA: 12-day gap in September (shut-in, reason unknown)
1---2name: production-data-analyst3description: Production Data Analyst4---5# Production Data Analyst67## What this skill does89Reads production test reports and time-series production data, computes initial production rates, runs Arps decline curve analysis, checks production allocation, identifies anomalous behavior, and generates production performance summaries. Supports single-well and multi-well pad analysis.1011## When to use1213- User uploads production test reports or production history files14- User asks to analyze production performance or run decline curves15- User wants to compare production against type curve or forecast16- User needs allocation checks across stages or wells17- User is diagnosing liquid loading, anomalous decline, or well interference1819## Trigger phrases2021- "Analyze production data for this well"22- "Run decline curve analysis on this production history"23- "What are the IP30, IP90, and IP180 rates?"24- "Check the production allocation for this pad"25- "Is this well loading up with water?"26- "Compare production against the type curve"27- "Summarize production test results"28- "Flag anomalous production behavior"29- "What is the EUR estimate for this well?"3031## Inputs3233- Production test reports (PDF, DOCX)34- Monthly or daily production time series (CSV, XLSX)35- Pressure and rate data (CSV, XLSX)36- Optional: type curve for benchmarking37- Optional: offset well production for comparison38- Optional: allocation factors per zone or stage3940## Outputs4142- Production test summary with rates and pressures43- IP rates: IP30, IP60, IP90, IP180, IP36544- Peak rate and date of peak45- Decline curve fit parameters (qi, Di, b)46- EUR estimate with confidence range47- GOR and water cut trend48- Allocation table if multi-zone or multi-well49- Anomaly flags (rate spikes, loading indicators, interference signals)50- Structured JSON output5152## Production metrics computed5354### Rate metrics55| Metric | Definition |56|---|---|57| Initial rate (IP) | First production rate or average of first 24 hours |58| IP30 | Average daily rate over first 30 producing days |59| IP60 | Average daily rate over first 60 producing days |60| IP90 | Average daily rate over first 90 producing days |61| IP180 | Average daily rate over first 180 producing days |62| IP365 | Average daily rate over first 365 producing days |63| Peak rate | Maximum recorded daily rate |64| Current rate | Most recent 30-day average |6566### Decline curve analysis (Arps)67| Parameter | Symbol | Description |68|---|---|---|69| Initial rate | qi | Rate at time zero (bbl/d or MSCF/d) |70| Nominal decline rate | Di | Fractional decline per time unit |71| Hyperbolic exponent | b | 0 = exponential, 1 = harmonic, 0–1 = hyperbolic |72| EUR | EUR | Estimated Ultimate Recovery from decline fit |73| Remaining life | — | Years to reach economic limit |7475Standard Arps hyperbolic: `q(t) = qi / (1 + b × Di × t)^(1/b)`7677### Pressure analysis (when available)78- Tubing head pressure trend79- Casing head pressure trend80- Drawdown = reservoir pressure - flowing BHP81- Buildup analysis if shut-in periods exist8283### GOR and water cut84| Metric | Definition | Flag condition |85|---|---|---|86| GOR | Gas-oil ratio (SCF/STB) | Rapid increase may indicate gas breakthrough |87| Water cut | Water fraction of liquid production | Rising WC suggests water encroachment |88| Liquid loading | Velocity < critical velocity for gas wells | Declining rate with increasing backpressure |8990## Allocation logic9192When multiple zones or wells share a separator or test line:931. Extract allocation factors from test data or design documents942. Apply factors to gross production to compute per-well or per-zone volumes953. Flag allocations that sum to > 102% or < 98% of gross964. Report unallocated volume9798## Anomaly detection flags99100| Flag | Condition |101|---|---|102| RATE_SPIKE | Single-day rate > 3× 30-day average |103| LOADING | Rate declining while wellhead pressure increasing |104| GOR_BREAKTHROUGH | GOR increase > 50% over 90 days |105| WATER_BREAKTHROUGH | Water cut increase > 20 percentage points in 30 days |106| INTERFERENCE | Rate decline correlates with offset well startup |107| NEGATIVE_DECLINE | Rate increasing anomalously without workover |108| MISSING_DATA | Gaps > 7 days in production history |109| ALLOCATION_ERROR | Allocated sum deviates > 2% from gross |110111## Output schema112113```json114{115 "well_info": {116 "well_name": "string",117 "api": "string",118 "field": "string",119 "first_production_date": "string"120 },121 "ip_rates": {122 "ip30_bopd": 0.0,123 "ip60_bopd": 0.0,124 "ip90_bopd": 0.0,125 "ip180_bopd": 0.0,126 "ip365_bopd": 0.0,127 "peak_rate_bopd": 0.0,128 "peak_date": "string",129 "current_rate_bopd": 0.0130 },131 "decline_curve": {132 "model": "hyperbolic | exponential | harmonic",133 "qi_bopd": 0.0,134 "di_per_year": 0.0,135 "b_factor": 0.0,136 "eur_mbo": 0.0,137 "eur_p10_mbo": 0.0,138 "eur_p90_mbo": 0.0,139 "r_squared": 0.0140 },141 "production_tests": [142 {143 "test_date": "string",144 "oil_rate_bopd": 0.0,145 "gas_rate_mcfd": 0.0,146 "water_rate_bwpd": 0.0,147 "gor_scf_stb": 0.0,148 "water_cut_pct": 0.0,149 "choke_size_in": "string",150 "tubing_pressure_psi": 0.0,151 "casing_pressure_psi": 0.0,152 "test_duration_hrs": 0.0153 }154 ],155 "cumulative_production": {156 "cum_oil_mbo": 0.0,157 "cum_gas_mmscf": 0.0,158 "cum_water_mbw": 0.0,159 "producing_months": 0160 },161 "anomaly_flags": ["string"],162 "quality_flags": ["string"]163}164```165166## Decline curve fitting notes167168- Require minimum 6 months of production data for reliable Arps fit169- Flag b > 2.0 as physically unlikely (may indicate transient flow still dominating)170- Apply terminal decline rate (typically 8–10% per year) for EUR calculation171- Report P10/P50/P90 EUR range using Monte Carlo or sensitivity on Di ± 20%172- Prefer hyperbolic fit for unconventional wells during boundary-dominated flow173174## Example response175176```177PRODUCTION PERFORMANCE — Wolfcamp B 3H178════════════════════════════════════════179First production: June 1, 2024180Producing months: 9181Peak rate: 1,240 BOPD (June 28, 2024)182183IP RATES184─────────185IP30: 1,085 BOPD186IP60: 892 BOPD187IP90: 741 BOPD188IP180: 498 BOPD189190DECLINE CURVE FIT (Hyperbolic)191──────────────────────────────192qi: 1,240 BOPD193Di: 68% / year194b: 1.4195EUR: 380 MBOE (P50) | P10: 490 MBOE P90: 285 MBOE196R²: 0.94197198ANOMALY FLAGS199──────────────200⚠ GOR_BREAKTHROUGH: GOR increased from 850 to 1,420 SCF/STB between months 6–9201⚠ MISSING_DATA: 12-day gap in September (shut-in, reason unknown)202```