Engineering lesson
Calculate cumulative production from a decline curve
Cumulative production is the time integral of rate. It is not the final rate multiplied by the entire forecast duration unless rate is constant.
By PetroCalcHub Team · Updated October 24, 2026 · Free to read and use
Integrate on the rate's time basis
For exponential decline, Np = qi(1 − exp(−Dt))/D. With qi in STB/day and D in 1/day, the result is STB.
The worked example uses qi = 1,000 STB/day and D = 0.001/day. The final daily rate is smaller than earlier rates, so endpoint rate times duration understates the area under the curve.
Handle the Arps endpoints deliberately
Hyperbolic cumulative has a separate b = 1 logarithmic limit and an exponential b = 0 limit. A formula containing division by b or 1 − b cannot be substituted blindly at those endpoints.
The linked workflow handles the supported branches. Keeping the endpoints explicit also provides useful independent numerical checks.
Choose the integration interval
A forecast cumulative from time zero differs from incremental production between two later dates. For an interval [t1,t2], subtract cumulative values or integrate directly over that interval.
Historical produced volume and future incremental production should appear as separate entries. Their sum can be a scenario total, but the forecast assumptions still need to be stated.
Explore the example
Original synthetic teaching calculation. Equations and fixed controls are stated here; these are not field measurements.
Select one of 5 recorded scenarios. Intermediate states are not interpolated.
Elapsed time (day) = 365. Analytical cumulative (STB): 305803.349; Endpoint rectangle (STB): 253381.778; Endpoint rate (STB/day): 694.196651.
- Analytical cumulative (STB)
- Endpoint rectangle (STB)
Worked example
Rate, integral and endpoint rectangle
Exponential qi = 1,000 STB/day, nominal D = 0.001/day. The finite elapsed duration varies.
Relation and unit basis
q = 1,000 exp(−0.001t); Np = 1,000[1 − exp(−0.001t)]/0.001
t in days gives rate in STB/day and cumulative in STB. Endpoint rectangle q(t)t is shown only as a deliberately approximate comparison.
1. Define the baseline
Elapsed time (day) = 365
Exponential qi = 1,000 STB/day, nominal D = 0.001/day. The finite elapsed duration varies.
2. Select the relation
q = 1,000 exp(−0.001t); Np = 1,000[1 − exp(−0.001t)]/0.001
t in days gives rate in STB/day and cumulative in STB. Endpoint rectangle q(t)t is shown only as a deliberately approximate comparison.
3. Substitute the values
Np(365) = 1,000[1 − exp(−0.365)]/0.001; endpoint rectangle = [1,000 exp(−0.365)] × 365
Retain intermediate precision. The displayed values are rounded only after evaluation.
4. Read the result
Analytical cumulative (STB) = 305803.349; Endpoint rectangle (STB) = 253381.778; Endpoint rate (STB/day) = 694.196651
The endpoint rectangle misses earlier higher rates. The analytical cumulative remains conditional on the finite horizon.
Result and interpretation
Analytical cumulative (STB) = 305803.349; Endpoint rectangle (STB) = 253381.778; Endpoint rate (STB/day) = 694.196651
The endpoint rectangle misses earlier higher rates. The analytical cumulative remains conditional on the finite horizon.
Elapsed time changes while initial rate and nominal decline stay fixed. Compare the integral with the endpoint rectangle.
Exact scenario data
Original synthetic teaching calculation. Equations and fixed controls are stated here; these are not field measurements.
| Elapsed time (day) | Analytical cumulative (STB) | Endpoint rectangle (STB) | Endpoint rate (STB/day) |
|---|---|---|---|
| 30 | 29,554.47 | 29,113.37 | 970.4455 |
| 90 | 86,068.81 | 82,253.81 | 913.9312 |
| 365 | 305,803.3 | 253,381.8 | 694.1967 |
| 730 | 518,091 | 351,793.6 | 481.909 |
| 1,825 | 838,782.4 | 294,222.2 | 161.2176 |
Scroll the table to see all columns. The highlighted row is the worked baseline. Downloads retain full numerical precision.
Test your understanding
Work through the question before revealing its answer. Use the stated assumptions and include units in every numerical step.
1. What is the exponential cumulative limit as D tends to zero?
Show the worked answer
qi × t, the constant-rate result. This limit is a useful check on the integral.
2. Reproduce the baseline Analytical cumulative (STB) without rounding intermediate values.
Show the worked answer
Np(365) = 1,000[1 − exp(−0.365)]/0.001; endpoint rectangle = [1,000 exp(−0.365)] × 365. Analytical cumulative (STB) = 305803.349. The endpoint rectangle misses earlier higher rates. The analytical cumulative remains conditional on the finite horizon.
3. Compare the first and last recorded scenarios. Which input changes?
Show the worked answer
Elapsed time (day) changes from 30 to 1825. Other controls remain as stated in the premise. Analytical cumulative (STB) changes from 29554.4665 to 838782.356.
4. What would be needed to apply this example to a different physical system?
Show the worked answer
Replace the synthetic controls with compatible documented inputs and check the relation's assumptions. t in days gives rate in STB/day and cumulative in STB. Endpoint rectangle q(t)t is shown only as a deliberately approximate comparison. The endpoint rectangle misses earlier higher rates. The analytical cumulative remains conditional on the finite horizon.
Before using the result
- Use the rate's time unit.
- Handle b = 0 and b = 1 correctly.
- Distinguish incremental and time-zero cumulative.
The endpoint rectangle misses earlier higher rates. The analytical cumulative remains conditional on the finite horizon.
Continue learning
Start with the broader workflow guide
Sources and method
The explanation and synthetic examples are original PetroCalcHub teaching material. The references below support the definitions and model context. They do not supply field validation for the synthetic scenarios.