Monotone-Constrained Diffusion Models for Long-Horizon Production Forecasting
Organizations: Department of Computer Science, I. K. Barber Faculty of Science University of British Columbia Kelowna, BC V1V 1V7, Canada
Abstract
Forecasting a long horizon from only the first observations of a sequence is ill-posed: many trajectories are consistent with the same short history. We study this problem in oil and gas production forecasting, where forecasts made after roughly the first fifth of a well's producing life drive development and abandonment decisions, and where a usable forecast must describe a monotone decline. We present Physics-SIMS-TS, a conditional diffusion forecaster that combines negative guidance against synthetic artifacts, decline-curve constraints and an isotonic projection applied during sampling, spatial training augmentation, and an ensembled stochastic sampler yielding a full predictive distribution. Across three jurisdictions and more than 35,000 wells, under a shared-space, validation-frozen protocol, Physics-SIMS-TS is the most accurate diffusion forecaster in the comparison and is competitive with, but not superior to, ensembled transformer forecasters. Its forecasts are monotone by construction at a cost of at most 0.5% in mean squared error, and its trajectory ensemble yields calibrated intervals after one dispersion factor is fitted per jurisdiction. On six standard benchmarks a reversible-instance-normalization variant of the backbone is the leading diffusion baseline. We also quantify four protocol choices on which the measured ranking depends. Code and evaluation artifacts are released.
Figures & tables
| Model | Method | 1.5 | 2 | 3 | 5 | 8 | 10 | 12 | 20 |
|---|---|---|---|---|---|---|---|---|---|
| RF | IDW | 0.0071 | 0.0067 | 0.0070 | 0.0065 | 0.0067 | 0.0068 | 0.0067 | 0.0066 |
| TimeGAN | 0.0066 | 0.0068 | 0.0070 | 0.0069 | 0.0075 | 0.0071 | 0.0077 | 0.0079 | |
| TimeVAE | 0.0069 | 0.0071 | 0.0069 | 0.0068 | 0.0075 | 0.0072 | 0.0077 | 0.0077 | |
| GB | IDW | 0.0080 | 0.0078 | 0.0073 | 0.0075 | 0.0072 | 0.0070 | 0.0074 | 0.0075 |
| TimeGAN | 0.0075 | 0.0074 | 0.0077 | 0.0075 | 0.0076 | 0.0077 | 0.0078 | 0.0077 | |
| TimeVAE | 0.0078 | 0.0078 | 0.0079 | 0.0077 | 0.0078 | 0.0078 | 0.0077 | 0.0080 |
| PatchTST | |||||||
|---|---|---|---|---|---|---|---|
| Formation | Wells | Test | IDW+RF | SIMS-TS | Physics-SIMS-TS | scratch | pretrained |
| Wilrich | 51 | 11 | 0.0098 | 0.0067 | 0.0066 | 0.0158 | 0.0075 |
| Golata | 53 | 11 | 0.0380 | 0.0271 | 0.0299 | 0.0404 | 0.0278 |
| Debolt | 188 | 36 | 0.0222 | 0.0230 | 0.0236 | 0.0246 | 0.0224 |
| Baldonnel | 293 | 58 | 0.0227 | 0.0209 | 0.0218 | 0.0237 | 0.0199 |
| Charlie Lake | 690 | 138 | 0.0205 | 0.0180 | 0.0181 | 0.0192 | 0.0168 |
| BC (16,216) | Alberta (6,747) | PA Marc. (12,360) | ||||
| Method | MSE | MAE | MSE | MAE | MSE | MAE |
| Five-instance ensembles at matched training budget: | ||||||
| Physics-SIMS-TS (ours) | 0.0171 | 0.0851 | 0.0172 | 0.0855 | 0.00916 | 0.0623 |
| IDW+RF | 0.0172 | 0.0879 | 0.0173 | 0.0885 | 0.00917 | 0.0633 |
| PatchTST | 0.0162 | 0.0847 | 0.0163 | 0.0856 | 0.00910 | 0.0630 |
| iTransformer | 0.0169 | 0.0860 | 0.0172 | 0.0878 | 0.00966 | 0.0650 |
| squared error | absolute error | ||||
|---|---|---|---|---|---|
| Baseline (5-instance) | win | win | |||
| BC | IDW+RF | 54.2% | 55.9% | ||
| PatchTST | 50.1% | 51.7% | |||
| iTransformer | 52.6% | 54.7% | |||
| Alberta | IDW+RF | 53.6% | 53.9% | ||
| PatchTST | 51.9% | 52.5% | |||
| Method | One instance | Five instances |
|---|---|---|
| Physics-SIMS-TS (ours) | 48.7 min | 243 min |
| IDW+RF | 8.7 min | 43.4 min |
| PatchTST | 4.1 min | 20.3 min |
| iTransformer | 2.3 min | 11.4 min |
| CSDI | 6.1 min | – |
| Diffusion-TS | 15.7 min | – |
| BC (3,244 test) | Alberta (1,350 test) | PA Marcellus (2,472 test) | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Method | MSE | MAE | win | MSE | MAE | win | MSE | MAE | win |
| Physics-SIMS-TS (one model) | 0.0181 | 0.0875 | – | 0.0177 | 0.0873 | – | 0.0096 | 0.0636 | – |
| CSDI | 0.0191 | 0.0912 | 59.9% | 0.0232 | 0.0989 | 69.1% | 0.0118 | 0.0709 | 66.6% |
| Diffusion-TS | 0.0280 | 0.1073 | 71.3% | 0.0254 | 0.1058 | 72.1% | 0.0152 | 0.0816 | 71.4% |
| TSDiff | 0.0280 | 0.1068 | 69.9% | 0.0301 | 0.1228 | 78.8% | 0.0188 | 0.1043 | 82.2% |
| TimeGrad | 0.0350 | 0.1200 | 75.0% | 0.0330 | 0.1191 | 76.3% | 0.0189 | 0.0907 | 76.1% |
| Model | Train / Test | BC | Alberta | PA Marc. |
|---|---|---|---|---|
| Physics-SIMS-TS | BC | 0.0171 | 0.0173 ( ) | 0.0099 ( ) |
| Alberta | 0.0179 ( ) | 0.0172 | 0.0100 ( ) | |
| PA Marcellus | 0.0180 ( ) | 0.0178 ( ) | 0.0092 | |
| PatchTST | BC | 0.0163 | 0.0163 ( ) | 0.0098 ( ) |
| Alberta | 0.0170 ( ) | 0.0164 | 0.0100 ( ) | |
| PA Marcellus | 0.0174 ( ) | 0.0172 ( ) | 0.0093 |
| Model | BC | Alberta | PA Marc. |
|---|---|---|---|
| (Alberta+PA) | (BC+PA) | (BC+Alberta) | |
| Physics-SIMS-TS | 0.0177 | 0.0172 | 0.0099 |
| iTransformer | 0.0175 | 0.0170 | 0.0097 |
| PatchTST | 0.0167 | 0.0163 | 0.0096 |
| Rank | Model | ETTh1 | ETTh2 | ETTm1 | ETTm2 | Exchange | Weather | Overall |
|---|---|---|---|---|---|---|---|---|
| 1 | PatchTST | 0.451 | 0.379 | 0.383 | 0.283 | 0.371 | 0.253 | 0.353 |
| 2 | iTransformer | 0.450 | 0.380 | 0.413 | 0.302 | 0.361 | 0.261 | 0.361 |
| 3 | SIMS-TS (ours) | 0.750 | 0.459 | 0.506 | 0.317 | 0.469 | 0.325 | 0.471 |
| 4 | CSDI | 0.558 | 0.661 | 0.519 | 0.432 | 0.658 | 0.285 | 0.519 |
| 5 | Chronos-Bolt | 0.525 | 0.425 | 1.033 | 0.352 | 0.368 | 0.413 | 0.520 |
| 6 | Chronos-2 | 0.587 | 0.452 | 0.998 | 0.390 | 0.374 | 0.356 | 0.526 |
| Rank | Model | Mean MSE | Std. across seeds |
|---|---|---|---|
| 1 | PatchTST | 0.357 | 0.003 |
| 2 | iTransformer | 0.362 | 0.001 |
| 3 | SIMS-TS (ours) | 0.474 | 0.016 |
| 4 | Chronos-Bolt | 0.520 | 0.000 ‡ |
| 5 | Chronos-2 | 0.526 | 0.000 ‡ |
| 6 | CSDI | 0.604 | 0.061 |
| Model | ETTh1 | ETTh2 | ETTm1 | ETTm2 | Exchange | Weather |
|---|---|---|---|---|---|---|
| PatchTST | 0.454 | 0.379 | 0.385 | 0.284 | 0.384 | 0.254 |
| iTransformer | 0.449 | 0.382 | 0.412 | 0.299 | 0.368 | 0.262 |
| SIMS-TS (ours) | 0.732 | 0.451 | 0.496 | 0.317 | 0.523 | 0.323 |
| Chronos-Bolt | 0.525 | 0.425 | 1.033 | 0.352 | 0.368 | 0.413 |
| Chronos-2 | 0.587 | 0.452 | 0.998 | 0.390 | 0.374 | 0.356 |
| CSDI | 0.570 | 0.853 | 0.512 | 0.425 | 0.980 | 0.286 |
| BC | Alberta | PA Marcellus | ||||
|---|---|---|---|---|---|---|
| Variant | MSE | Viol. | MSE | Viol. | MSE | Viol. |
| No physics (plain SIMS-TS) | 0.01713 | 99.9% | 0.01724 | 100% | 0.00913 | 100% |
| Guidance only | 0.01713 | 99.9% | 0.01721 | 100% | 0.00913 | 100% |
| Projection only | 0.01714 | 0% | 0.01726 | 0% | 0.00917 | 0% |
| Guidance + projection (Physics-SIMS-TS) | 0.01714 | 0% | 0.01723 | 0% | 0.00916 | 0% |
| BC | Alberta | PA Marcellus | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Method (5-instance) | MSE | PAV | Viol. | MSE | PAV | Viol. | MSE | PAV | Viol. |
| IDW+RF | 0.01721 | 0.01722 | 98.5% | 0.01728 | 0.01723 | 99.6% | 0.00917 | 0.00921 | 99.6% |
| PatchTST | 0.01619 | 0.01620 | 100.0% | 0.01629 | 0.01631 | 100.0% | 0.00910 | 0.00910 | 100.0% |
| iTransformer | 0.01686 | 0.01688 | 100.0% | 0.01720 | 0.01721 | 99.9% | 0.00966 | 0.00967 | 100.0% |
Appendix figures & tables4 assets
Supplementary material from the paper’s appendix.
Appendix
| ETTh1 | ETTh2 | |||||||
| Model | 96 | 192 | 336 | 720 | 96 | 192 | 336 | 720 |
| PatchTST | 0.384 | 0.437 | 0.486 | 0.496 | 0.291 | 0.371 | 0.419 | 0.434 |
| iTransformer | 0.393 | 0.442 | 0.477 | 0.486 | 0.299 | 0.382 | 0.414 | 0.423 |
| Chronos-Bolt | 0.488 | 0.511 | 0.564 | 0.536 | 0.337 | 0.432 | 0.465 | 0.468 |
| Chronos-2 | 0.468 | 0.544 | 0.633 | 0.702 | 0.340 | 0.452 | 0.490 | 0.525 |
| CSDI | 0.500 | 0.499 | 0.636 | 0.597 | 0.308 | 0.592 | 0.496 | 1.247 |
| ETTm1 | ETTm2 | |||||||
|---|---|---|---|---|---|---|---|---|
| Model | 96 | 192 | 336 | 720 | 96 | 192 | 336 | 720 |
| PatchTST | 0.324 | 0.359 | 0.392 | 0.457 | 0.177 | 0.246 | 0.308 | 0.402 |
| iTransformer | 0.340 | 0.384 | 0.419 | 0.507 | 0.187 | 0.260 | 0.340 | 0.421 |
| Chronos-Bolt | 1.007 | 1.081 | 0.984 | 1.062 | 0.242 | 0.315 | 0.372 | 0.480 |
| Chronos-2 | 0.919 | 0.974 | 0.987 | 1.111 | 0.246 | 0.336 | 0.409 | 0.570 |
| CSDI | 0.376 | 0.402 | 0.545 | 0.755 | 0.215 | 0.491 | 0.486 | 0.534 |
| Exchange | Weather | |||||||
| Model | 96 | 192 | 336 | 720 | 96 | 192 | 336 | 720 |
| PatchTST | 0.082 | 0.169 | 0.352 | 0.882 | 0.171 | 0.218 | 0.272 | 0.351 |
| iTransformer | 0.090 | 0.174 | 0.325 | 0.854 | 0.176 | 0.228 | 0.282 | 0.359 |
| Chronos-Bolt | 0.087 | 0.184 | 0.342 | 0.858 | 0.345 | 0.407 | 0.407 | 0.494 |
| Chronos-2 | 0.090 | 0.187 | 0.338 | 0.882 | 0.288 | 0.312 | 0.362 | 0.462 |
| CSDI | 0.152 | 0.260 | 0.767 | 1.451 | 0.220 | 0.242 | 0.315 | 0.362 |
| Method (5-instance) | MSE | MAE | Physics-SIMS-TS win rate | |
|---|---|---|---|---|
| Physics-SIMS-TS | 0.00868 | 0.0613 | – | – |
| IDW+RF | 0.00869 | 0.0619 | 49.9% | |
| PatchTST | 0.00886 | 0.0623 | 52.2% | |
| iTransformer | 0.00914 | 0.0631 | 53.0% |