How well does a simple decline curve forecast Canadian wells?

November 2026Illustrative, not for reserves or investment decisions

We took public production data from Alberta, Saskatchewan and British Columbia and tested the most common decline curve (Arps, with a bounded b-factor) the hard way: fit it on a well's early months, predict the next 12 months, and compare to what was reported. Then we asked three follow-up questions: does the extra b-factor help, how much history do you need, and why does the curve run low?

What we did

1. The headline result

GroupWells testedTypical missWithin ±25%Within ±50%Average bias
Alberta oil46017%65%89%−10%
Saskatchewan oil46917%66%90%−9%
Saskatchewan gas47116%65%85%−12%
BC gas48313%75%92%−8%

"Typical miss" is the median absolute error of the 12-month cumulative volume. Negative bias means the forecast was a bit low on average.

Alberta oil (460 wells)40%60%80%100%012243648months since Jan 2022Saskatchewan oil (469 wells)40%60%80%100%012243648months since Jan 2022Saskatchewan gas (471 wells)40%60%80%100%012243648months since Jan 2022BC gas (483 wells)40%60%80%100%012243648months since Jan 2022━ median reported━ median forecast (dashed = predicted 12 months)shaded = test window
Figure 1. Median reported rate and median forecast for each group, with every well scaled to its own peak in the first 45 months. The forecast was fitted on months 0 to 45 only; the dashed part is the 12-month prediction. The forecast ends up below the reported curve in all four groups. Real data from the wells tested above.

About two thirds of wells landed within a quarter of the actual volume, and almost 90% within half. BC gas did best and Saskatchewan gas worst, but the groups are close. That is useful for a quick look, not for reserves.

2. Does the b-factor earn its keep?

The hyperbolic curve has an extra parameter (b) that lets the decline slow down over time. We compared it with a plain exponential curve (b fixed at 0) on the same wells.

GroupHyperbolic (b up to 2): typical missExponential only: typical missHyperbolic within ±25%Exponential within ±25%
Alberta oil17%18%65%61%
Saskatchewan oil17%21%66%59%
Saskatchewan gas16%18%65%62%
BC gas13%16%75%68%

The hyperbolic curve was better in every group, but not by a lot: one to four points on the typical miss. The bigger point is that b itself is not well determined. In every group the median fitted b sat at the upper limit of 2, and 83 to 90% of fits carried a warning (b at its bound, or many b values fitting about equally well). So the benefit comes from letting the curve flatten, not from any single well's b, and we would not read meaning into one well's b.

3. How much history do you need?

We refit each well on shorter training windows and predicted the same last 12 months.

Group24 months of history36 months45 months
Alberta oil36%23%17%
Saskatchewan oil34%24%17%
Saskatchewan gas29%21%16%
BC gas24%19%13%
0%10%20%30%40%24 months36 months45 monthshistory used to fit the curvetypical miss on 12-month volumeAlberta oil · 17%Saskatchewan oil · 17%Saskatchewan gas · 16%BC gas · 13%36% at 24 months, Alberta oil
Figure 2. Typical miss on the 12-month volume when the curve is fitted on 24, 36 or 45 months of history. More history cuts the miss in every group (values from the table above).

This was the largest effect we measured. Going from 24 to 45 months of history roughly halved the typical miss. With two years of data the curve missed by 24 to 36% on a typical well, and fewer than half the wells landed within 25% in three of four groups. A forecast on a young well deserves much wider error bars than one on a well with four years behind it. Note that shorter windows also need the well to have a clear peak and decline within them, and some wells could not be fitted at all, so the tested counts are a little lower at 24 months.

4. Why does the curve run low?

Every group under-forecast on average, by 8 to 12%. A natural suspicion is wells whose rate recovers after the training window: a restart after a shut-in, a workover, a new completion, a pressure change, or seasonal operations. We cannot see the reasons in this data, but we can see whether the rate went back up. We flagged a well as "recovered" if its average rate in the 12 test months was higher than its average over the last three training months.

GroupShare of wells whose rate recoveredMedian error: recoveredMedian error: kept declining
Alberta oil41%−24%0%
Saskatchewan oil35%−25%−2%
Saskatchewan gas50%−17%0%
BC gas39%−21%−2%

Between 35 and 50% of wells recovered, and nearly all of the bias sits in that group, where the forecast ran 17 to 25% low on a typical well. Wells that simply kept declining had almost no bias (0 to −2%). In other words, the curve forecasts a declining well about right, and the miss comes from wells that do something a decline curve cannot know about. This is a description, not a proof: a rate increase is not always a restart, and this split uses information that was not available at forecast time.

5. Does bitumen change the Alberta oil result?

After publishing we found that Alberta "oil" in the public volumetrics includes crude bitumen from wells licensed for it (see the inventory post). So we reran the Alberta oil test separately for wells whose licence substance is crude bitumen and for all other Alberta oil wells, with the same sampling and method.

GroupWells testedTypical missWithin ±25%Within ±50%Average bias
Alberta crude oil (no bitumen−licensed wells)47118%62%90%−9%
Alberta bitumen−licensed wells46819%62%85%−11%
Typical miss by history used24 months36 months45 months
Alberta crude oil34%23%18%
Alberta bitumen-licensed40%30%19%

The conclusions hold. Conventional crude-oil wells have a typical miss of 18% and bitumen-licensed wells 19%, close to the 17% in the pooled table above. Both under-forecast on average (-9% and -11%), and 39% of each group's wells recovered after the training window. More history helps in both. The pooled Alberta oil row is therefore a fair summary of either group, although bitumen-licensed wells are a little less accurate at the ±50% level (85% against 90%).

What this means in practice

Limits

Reproduce it

Code: github.com/Jay-Kimani/TidyWells, posts/backtest.py (run it with extra for sections 2 to 4) and src/tidywells/decline.py. Download the files yourself from Petrinex and the BC Energy Regulator; we do not host the data.

Illustrative only. Not for reserves reporting or investment decisions.

Contains information licensed from Petrinex public data (Alberta, Saskatchewan) and the BC Energy Regulator; Crown copyright of the provinces is acknowledged. Tidywells is not affiliated with any regulator.

Want the data behind these posts?Tidywells Pro: tidy monthly CSVs and companion tables. CAD $4.99 a month, 3-day free trial.
See Pro