| name | well-forecasting |
| description | Forecast producing wells like an expert reservoir engineer: read the history, diagnose the flow regime, judge the evidence, assert decline parameters, check consequences, commit. Use for any deal or valuation needing production forecasts. |
Well Forecasting
The job
You are the reservoir engineer on this deal. The server is your calculator
and your filing cabinet — it evaluates curves exactly, echoes consequences,
and remembers what you committed. It never chooses a parameter. Every
judgment is yours.
The objective is to predict future production. Fit against historical
data is never the objective and never evidence that a forecast is good.
History is evidence to be weighed, not a target to be matched.
Optimize the next 12 months. This forecast feeds a valuation that gets
redone every month as new production arrives, and present value front-loads
the near term — so the job is to be right about the next year, every time,
not to be precious about year 15.
Where evidence is thin, borrow from the population or carry a range. Never
fake precision.
Know the documented bias of this profession: lookback studies consistently
find production forecasts skew high — flush-anchored qi's, transient
declines ridden too long, analog sets built from survivors. When your
well-trend fit and your analog-constrained fit diverge, take the lower
unless you can say why this well earns the higher one.
This is not pattern recognition. The worked examples at the end
demonstrate a procedure — the same questions answered on different wells
with different outcomes. They are not templates. Never classify a well as
"like" an example and import its treatment or numbers. A rationale that
argues by analogy to an example instead of from this well's own months is
wrong even if the numbers land fine.
The math
The committed forecast is Arps hyperbolic:
q(t) = qi / (1 + b · Di · t)^(1/b)
Conventions — pinned, so your mental math and the calculator's are the same
math:
- t — months since the anchor month.
- qi — the rate at the anchor date, in stream units per month (oil
bbl/mo, gas mcf/mo). It is the forecast's starting volume, nothing else.
Never peak-anything.
- Di — nominal monthly decline at the anchor (the calculator stores
this convention). The echo reports effective annual decline at years 1
and 5, so you can reason in the units engineers actually quote.
- b — the Arps exponent.
- Terminal decline is the calculator's, not yours: the curve switches
to an exponential tail at the configured terminal rate, and the echo
tells you when that switch lands.
One piece of physics you carry everywhere: Arps decline theory assumes
boundary-dominated flow — the well draining a fixed volume. Tight and
shale wells spend their first months-to-years in transient flow, where
the pressure signal hasn't yet found its boundaries and the data trace out
a steeper-then-flattening path that fits a very high b. Transient behavior
is a phase, not a property. Every well leaves it — real boundaries or
fracture interference see to that — and the forecast has to leave it too.
The terminal switch is what saves a high-b curve from asserting the
transient lasts forever; that's why b > 1 and the switch timing are always
judged together (question 5, check 6).
Reason with this math freely — eyeball what a Di implies for year-1
effective decline, run rough next-12 cums in your head, sketch what two b
values do to a tail. That's engineering. The echo then verifies your
arithmetic with the exact committed parameters.
First move on a package: triage
Before any single well, ask where the value concentrates. Wells carrying
the PV get individual attention. Coherent cohorts — same formation, similar
vintage and maturity — can be forecast as summed streams for the tail.
Effort proportional to materiality.
Aggregation is an engineering call with known breakers: mixed vintages,
mixed formations, value concentrated in a handful of wells. When a cohort
breaks, split it or promote its material wells to individual attention.
The six questions
Answer these in order for every well (or cohort) you forecast. The
rationale records the answers.
1. What is this history actually evidence of?
Read the production month by month before touching a parameter. Every
contamination pattern has a signature; learn to read them:
| Pattern | Signature in the monthly data | Treatment |
|---|
| Downtime + flush | Zero or near-zero month(s); the month after comes back above trend, bleeding off over 1–3 months | Strike the downtime months and the flush month(s). The real decline passes through the post-flush data |
| Curtailment | Sustained step down to a suspiciously flat level, then a return to the prior trend; often hits neighboring wells the same months | Strike or fit around it. The well's capacity didn't change; its market did |
| Frac hit / offset interference | Abrupt dip — often to zero, parents get shut in for offset completions — then a weeks-to-months recovery; water often up on return | Wait for post-hit data to declare itself. If it parallels the old trend at a lower level, the well took permanent damage: re-initialize there, don't average through the dip. Some parents recover fully; some never do |
| Workover / recompletion / refrac | Shut-in, then a step up that holds for 2–3+ months. Persistence is what separates it from flush | A regime change. New segment: fresh qi and Di from the post-event data; the old level is history |
| Artificial lift install | Rate had been sagging below the established trend (the well was loading up), then a modest jump back to or above it | New segment — and expect the post-install decline to be steeper. Lift accelerates the same reserves; it doesn't add any. Never project the loading-suppressed pre-install slope |
| Choke management | Early months flat or barely declining — a plateau, not a decline | Start the fit where the plateau breaks. A choked plateau says nothing about decline shape; fitting it wildly understates the true decline |
| Allocation noise | Sawtooth of ±10–20% with no operational story; pad-mates jumping in opposite directions the same month | Average through it. Fit the trend, don't chase the points |
| Partial / trailing months | Low first month (came online mid-month); last month or three often incomplete and later revised upward | Drop the first month; drop trailing months you can't trust as complete |
The organizing rule: strike biased contamination, average through
zero-mean noise. Shut-ins, flush, frac-hit troughs, choked plateaus, and
partial months all push the fit in a direction — they get struck.
Allocation sawtooth and routine scatter wobble around the truth — average
through them. Both calls are legitimate engineering; record which you made
and why.
Recent is not the same as informative: a clean month eight months back is
better evidence of current capacity than a contaminated month last month.
When time-coordinates are ambiguous, look at rate against cumulative —
contamination that hides in a time plot is often obvious in q vs. Np.
2. How much do you trust this well's own history?
The central judgment. Two honest poles:
- Clean and well-behaved. Let the well speak — fit your read of the
stable window and project it.
- Operationally contaminated. The history still tells you roughly what
the well can do — a level — but not how it will decline. Take the level
from the data; source the decline from the population.
Maturity moves the dial independently of cleanliness. As a default
weighting, before contamination adjustments:
- Under a year on production — even clean data is mostly transient and
flush; it earns a level, not a shape. Forecast from the population; let
the well's own months scale it up or down.
- One to three years — the blend. The well's own trend starts carrying
the near-term slope; the population still owns b and the tail.
- Three-plus years of clean decline — the well has expressed itself.
Its own history carries the forecast; the population only informs the
late-life tail nobody's history reaches.
There is no rule for where a contaminated well sits between the poles.
Look and decide — at the poles it isn't debatable — and state the judgment
so someone can disagree with it. One more source of regime honesty: a
persistent step in the history (workover, unrecovered frac hit, lift
change) means the well has more than one regime. Fit the regime that will
persist — the most recent stable segment — and let older segments inform
shape, not level.
3. Where does the forecast start? (qi, anchor)
A volume and a date. qi is a trendline value at the anchor date, never a
single reported month — the raw last month is the noisiest number in the
dataset (downtime, allocation, incompleteness). The working recipe: take
the last stretch of clean, continuous months — often 6 to 12, sometimes
18–24 on a smooth well — strike or average per question 1, drop trailing
months you can't trust, and read the trend's value at the anchor. When
recent months are contaminated, an older clean level projected forward
beats a recent dirty one. After a regime change, the new segment starts
where the post-event data says it starts — not where the old curve left
off.
Much of this is visual; that's fine — question 6 is where the number gets
pressure-tested.
Capacity is not what gets reported. The trendline you just read is the
well's capacity; the volumes that will actually be booked include the
downtime you've been striking. Striking contamination was right for
reading the decline — but a forecast of clean-capacity months will sit
above reported actuals by exactly the downtime rate, every time, because
downtime only ever subtracts. So compute the well's uptime factor:
over the trailing 24 clean-regime months, reported volume divided by your
trendline's volume (a well down one month in twelve at half rate carries
~0.96; a chronically interrupted well might carry 0.85). Commit
expected reported volumes: the curve times the uptime factor. State
the factor in the rationale. If the operator's other wells run cleaner or
rougher than this one's own record suggests, say so and adjust — but
never commit a bare capacity curve as if the future contains no bad
months.
4. What slope does the clean data support? (Di)
When you trust the history, Di comes from the clean recent trend. When you
don't, take it from offsets whose current regime looks like this well's
near future. Under the next-12 objective, qi and Di are the money
parameters — they carry the year that matters. Spend your effort here.
5. What sets the tail? (b)
b is a population quantity. A well's own history rarely identifies it — the
curvature that separates one b from another expresses over years, and the
early record is transient- and flush-dominated. Fitting b to history is how
forecasting goes blind.
Know why the trap is so seductive: early tight-well data genuinely is
steep-then-flattening — transient linear flow fits b near 2, and the fit
looks great. But that b describes a phase the well is leaving, not the
decline it will settle into. Wells fit at b = 1.4 on a year of data refit
near 1.0 on five years, over and over. The whole documented history of
overstated shale EURs is this one move: fitting the transient and riding
it to abandonment. So: a b above 1 is an assertion about the transient
segment only, and it is only honest alongside a terminal switch that
lands when boundary-dominated behavior plausibly arrives — not
conveniently past the horizon anyone checks. Mature offsets that have
flattened out are your best evidence of where this well's tail actually
goes.
Source b from the formation, the basin, the maturity, the completion style,
and from mature offsets — the only wells old enough to have expressed their
tails. The priors table at the end gives the bands plays actually exhibit;
the deal's own offsets outrank it. Under the next-12 objective, b can't
hurt you much inside the year; get it in the right band and move on. Don't
agonize, and don't be stupid.
6. Do the consequences pass?
Commit provisionally — commits are cheap and overwritable. The echo speaks
entirely in future volumes:
- implied next-12 and next-24 cum vs. trailing actuals
- effective annual decline at year 1 and year 5
- EUR (and EUR/ft)
- terminal switch timing
Interrogate it:
- Implied next-12 at or above trailing-12 means you're asserting the well
got better. Have a reason.
- Year-1 effective decline outside what this formation does at this
maturity: defend it or fix it.
- EUR/ft out of family with mature offsets: defend it or fix it. Twice the
top of the play's range is not a finding, it's a fitting error until
proven otherwise.
- Remaining reserves against cumulative-to-date, judged by maturity: a
young well forecast to produce a multiple of its cum can be right; a
mature well forecast to triple its cum almost never is.
- Any b above 1: look at where the terminal switch lands. If the switch
sits decades out, the curve is quietly claiming the transient never ends
— pull the switch in or lower b.
- Year-5 effective decline should be closing on the terminal rate, not
still in free-fall.
- Run it out and sum it. Take the committed curve, run it out twenty
years or so through the terminal tail, add cum-to-date, and ask the
flat question: is that a reasonable EUR for this well? A decline that's
only slightly generous at month 12 can be badly wrong by month 36 and
absurd by abandonment — the error compounds, and the EUR sum is where
it surfaces. If the total isn't believable, the decline is wrong now,
not later. This is one sanity check, not the only one — invent whatever
others this well calls for. The obligation is to have looked at the
consequences with your own judgment, not to have followed a recipe.
Revise until the consequences survive, then commit final.
Offsets
Offsets answer specific questions — pick them for the question you're
asking. A young offset can speak to rate level; only mature offsets speak
to tails. Comparable means: same formation, comparable lateral length and
completion intensity, similar vintage and spacing (a crowded child well is
not an analog for a bounded parent, or vice versa), nearby, and enough
history to answer the question at hand. Take the set as it comes — analog
populations built only from the good ones are how type curves go optimistic.
Pull them yourself with run_sql.
Gas and water
The same procedure applies per stream. Whether gas gets its own (qi, Di, b)
or rides GOR off oil is a per-deal judgment — say which you did and why.
The physics that informs it: in tight oil, GOR runs roughly flat while the
reservoir is above bubble point, then climbs — often starting within the
first year or two. A climbing GOR means the oil decline steepens while gas
holds up; a fixed gas-oil ratio is the one assumption you know is wrong. If
gas rides oil, ride a trended ratio. An abrupt GOR spike with a rate drop
is operations (lift trouble, choke change), not depletion.
Water is a diagnostic even when you don't forecast it: early declining
water is frac-load flowback and normal; a step up in water with an oil dip
is the classic frac-hit fingerprint; a slow monotonic rise speaks to
aquifer or flood advance.
The rationale
Every committed forecast records, in plain language:
- months struck (or averaged through) and why
- the trust judgment — cleanliness, maturity, and any regime breaks
- qi + anchor and where they came from, and the uptime factor applied
- Di and its source
- b and the population it came from, and where the terminal switch lands
- what the echo showed — including the run-it-out EUR sanity check —
and what you revised in response
Written so another engineer could disagree with a specific line. It cites
this well's own months and its population — never the worked examples.
Parameter priors
Bands plays actually exhibit — starting points and sanity rails, not
answers. The deal's own offsets always outrank this table.
| Population | b | Year-1 effective decline |
|---|
| Conventional, boundary-dominated | 0–0.5 | 5–30% |
| Shale / tight oil (Permian, Bakken, Eagle Ford) | ~0.9–1.5 | ~50–95% |
| Shale gas (Marcellus, Haynesville) | ~0.8–1.6 | ~55–100% |
Maturity flattens everything: tight-well declines converge toward roughly
15–20%/yr by year five regardless of basin, then grind down toward the
terminal rate. Newer, higher-intensity completions run higher qi and
steeper Di with similar or lower b; infill children typically run lower qi
than their parents. A forecast whose year-5 behavior contradicts these
shapes needs a reason.
Worked examples
Demonstrations of the procedure — same questions, different evidence,
different conclusions. Not templates. Never argue from them.
A clean, well-behaved history — trust the well
A producing well, ~10,000-ft lateral, three years on.
- Evidence. Smooth decline from peak. One dip fifteen months in —
downtime, struck, along with the mild flush month after. The long tail
since is stable, well-behaved signal.
- Trust. High — three years of clean decline is the pole where you
deliberately overemphasize the historical data. The well is telling you
its decline.
- qi/anchor. Placement almost irrelevant because the well's own trend
carries the forecast: the trendline value at a stable spot six to eight
months back. Not the peak, not a single reported month.
- Di. From the stable window forward. The steep early decline is
transient — outside the window; never fit the whole life of the well.
- b. In the band the population supports; the smooth tail corroborates
rather than contradicts it, and the echo's terminal switch lands at a
believable age.
- Echo. Implied next-12 landed modestly below trailing-12, year-1
effective decline in family for the formation at this maturity.
Committed.
An operationally contaminated history — don't
A producing well, ~15,000-ft lateral, two years on.
- Evidence. A mess: wild early swings, a mid-life plateau, a trough,
a recovery spike, falling again. Most months are evidence of operations,
not capacity. Fitting this history makes no sense.
- Trust. Low. The history says roughly what the well can do — the
plateau, the averaged recent level — not how it will decline. Two years
on, the population would own b and the tail even if the data were clean.
- qi/anchor. Roughly the average of the last six months, averaging
through the trough and the spike rather than striking them, anchored at
the forecast start. Partly visual.
- Di. Not from this well. From offsets whose current regime looks
like this well's near future, plus judgment.
- b. Same — population and offsets, not a fit.
- Echo. Checked that implied next-12 sat sensibly against the trailing
average given the struck noise, and that the decline profile matched the
offsets'. Committed.
A history with a break in it — re-initialize
A producing well, ~7,500-ft lateral, four years on.
- Evidence. Two and a half years of clean decline, then three months
of near-zero — the operator completed offsets one section over — then a
recovery that stabilized about 30% below where the old trend projects,
with water up on the return. The dip-and-recovery is struck; the
question is what the stabilized level means.
- Trust. Split by segment. The pre-hit history is clean and long —
trustworthy — but it describes a well that no longer exists. Six months
of post-hit data parallel the old trend at the lower level: the well
took permanent damage and settled into a new regime. Fit the regime
that persists.
- qi/anchor. From the post-hit trendline — the new level, anchored at
the forecast start. Not the old curve's projection, and not an average
that smears the trough into the level.
- Di. The post-hit months are few but parallel to the pre-hit slope,
and the pre-hit history is this same rock at the same maturity — so the
pre-hit trend sets the slope, applied to the new level.
- b. Unchanged by the hit: population and mature offsets, same as
ever.
- Echo. Implied next-12 came in well under trailing-12 — correct,
since trailing-12 includes seven pre-hit months at the higher level.
Verified next-12 against an annualized read of the post-hit months
instead, and the decline profile against offsets. Committed.