Groundwater Forecast - Model Dashboard Last run: 2026-06-11 12:15

Performance statistics for the machine learning groundwater prediction model. The model trains daily on 3,363 days of data (2003–present), using a 366-day weighted rainfall window with dynamic lag shifting to predict Calculated Groundwater % up to 120 days ahead across three rainfall scenarios. The 20-day backtest reruns automatically each day at 12:15 after EA data updates.

How the Model Works

Core Formula

Each day's groundwater level is predicted using a linear formula applied to a weighted sum of the past 366 days of rainfall. Before being summed, every day’s rainfall is multiplied by two factors: a monthly factor (accounting for seasonal variation in recharge) and a lag weight (accounting for how long ago the rain fell and how much effect it still has on the aquifer).

GW %  =  −8.00  +  0.147 × WeightedRainSum

The intercept (−8.00) and slope (0.147) are currently fixed at calibrated values. The slope derives from the original Excel hydrological model (calibrated against 20+ years of EA gauge data); the intercept was recalibrated in February 2026 when the original value (−22.09) was found to underestimate groundwater levels by ~14% under current weighted rainfall conditions.

To ensure predictions start exactly at today’s measured level, an exponentially decaying correction is added. This fades to near-zero over 90 days, so the model gradually transitions from anchoring on today’s reading to trusting the formula alone:

correction(day) = Δ × e−0.02 × day

Day  0: 100% of correction
Day 35:  50% of correction
Day 90:   5% of correction
Monthly Rainfall Factors

Rain falling in different months has very different effects on groundwater recharge. Summer rain is largely lost to evapotranspiration and plant uptake; winter rain percolates into the chalk aquifer far more efficiently. Each month’s rainfall is therefore multiplied by a seasonal factor before entering the model.

These factors are loaded from the database each run (shown below are the current learned values, starting from the Excel model baseline):

Month Factor Recharge
Jan1.19High
Feb0.91Medium
Mar0.91Medium
Apr0.86Medium
May0.38Low
Jun0.38Low
Jul0.38Low
Aug0.38Low
Sep0.95Medium
Oct1.38High
Nov1.38High
Dec1.10High

Highest recharge months: Oct, Nov, Jan. Lowest recharge months: May, Jun, Jul, Aug. These factors are fixed at calibrated values derived from the Excel model. Automatic ML adjustment has been disabled as the GBM model handles seasonality internally, causing the adjustment to incorrectly push all factors toward 1.0.

Lag Weight Profile

Rain does not immediately reach the groundwater table — it must percolate through the unsaturated chalk above the aquifer. The lag weight profile describes how much influence rainfall from different periods in the past has on today’s groundwater level. The profile covers the past 366 days:

Days ago Weight Interpretation
0 – 19 0.75 Recent — partial effect, still percolating
20 – 39 1.00 Reaching water table
40 – 59 1.20 Peak influence
60 – 179 0.90 Sustained contribution
180 – 199 0.85 Fading influence
200 – 219 0.77 Diminishing
220 – 259 0.70–0.75 Background recharge
260 – 279 0.50 Minor residual
280 – 299 0.05 Negligible
300 – 365 0.00 No effect

The peak influence at 40–59 days ago reflects typical chalk percolation times in the upper Pang valley. The ML model can adjust individual weights by up to 2% per daily run, capped at 1.5× the initial value.

Dynamic Lag Shifting

When the aquifer is already full, rain reaches the water table faster because less unsaturated chalk needs to be saturated first. Conversely, when groundwater is very low, percolation takes longer. The model accounts for this by shifting the entire lag weight curve earlier or later depending on the current groundwater level.

Thresholds are based on historical quartiles from 20+ years of EA data (historical range: 3.3% – 96.6%):

GW Level Quartile Lag Shift Effect
< 26.6% Bottom 25% +40 days Much slower response
26.6 – 49.9% Lower mid +20 days Slower response
49.9 – 73.3% Upper mid 0 days Baseline (current)
> 73.3% Top 25% −20 days Faster response

At today’s level of 53.3%, the model is applying a baseline shift (normal response).

Dynamic shifting is only applied from day 30 of the forecast onwards. In the short term (days 1–29) all three scenarios use the same baseline weights to ensure they diverge smoothly and predictably based only on differing rainfall amounts.

Three rainfall scenarios are projected: average uses historical monthly means; +40% and −40% scale future rain up or down. All scenarios start identically at today’s actual reading.

11.3%
Mean Error (MAE)
20-day backtest
11.3%
RMSE
20-day backtest
-11.3%
Bias
Over-pred
0.9972
Validation R²
3,363 samples
53.3%
Today (Actual)
2026-06-11
115
Model Runs
26,049 prediction rows

Tomorrow’s Forecast

+40%
53.6%
Avg
53.6%
-40%
53.5%

Actual today: 53.3%

60-Day Forecast

+40%
49.7%
Avg
39.8%
-40%
37.6%

Blue=wet, Green=average, Orange=dry

Accuracy by Forecast Horizon

Days AheadNAvg Error %Bias %Max Error %
1700.460.440.85
2690.820.811.36
3681.171.171.92
5661.891.892.98
7642.602.603.58
10613.653.654.84
14575.015.015.97
21507.277.277.90
304111.1611.1613.54
452616.3916.3918.37
601121.4121.4121.92

Backtest History Daily 20-day results

DateMAE %RMSE %Bias %Status
2026-06-1111.2611.34-11.26Significant bias detected
2026-06-1011.0811.17-11.08Significant bias detected
2026-06-0910.8610.95-10.86Significant bias detected
2026-06-0810.6410.73-10.64Significant bias detected
2026-06-0710.4110.50-10.41Significant bias detected
2026-06-0610.1810.26-10.18Significant bias detected
2026-06-059.9510.04-9.95Significant bias detected
2026-06-049.729.81-9.72Significant bias detected
2026-06-039.489.58-9.48Significant bias detected
2026-06-029.259.34-9.25Significant bias detected
2026-06-019.029.11-9.02Significant bias detected
2026-05-318.828.91-8.82Significant bias detected
2026-05-308.628.71-8.62Significant bias detected
2026-05-298.428.51-8.42Significant bias detected
2026-05-288.228.31-8.22Significant bias detected
2026-05-278.018.09-8.01Significant bias detected
2026-05-267.817.89-7.81Significant bias detected
2026-05-257.617.68-7.61Significant bias detected
2026-05-247.427.50-7.42Significant bias detected
2026-05-237.237.31-7.23Significant bias detected
2026-05-227.037.12-7.03Significant bias detected
2026-05-216.826.92-6.82Significant bias detected
2026-05-206.596.70-6.59Significant bias detected
2026-05-196.356.47-6.35Significant bias detected
2026-05-186.116.25-6.11Significant bias detected
2026-05-175.886.03-5.88Significant bias detected
2026-05-165.655.82-5.65Significant bias detected
2026-05-155.435.61-5.43Significant bias detected
2026-05-145.225.41-5.22Significant bias detected
2026-05-134.995.21-4.99Significant bias detected

Monthly Averages Trend over time

MonthAvg MAE %Avg RMSE %Avg Bias %Days
2026-0610.1710.26-10.1711
2026-055.575.76-5.5731
2026-041.421.650.6030
2026-033.713.893.5031
2026-025.146.23-3.5812

Model Training Log Daily training metrics

DateTrain R²Val R²Tr RMSEVal RMSESamples
2026-06-11 12:151.00000.99720.0971.1403363
2026-06-10 12:151.00000.99760.0971.0593362
2026-06-09 12:151.00000.99760.0991.0503361
2026-06-08 12:151.00000.99790.0980.9963360
2026-06-07 12:151.00000.99790.0980.9973360
2026-06-06 12:151.00000.99750.0971.0903359
2026-06-05 12:151.00000.99780.0971.0063358
2026-06-04 12:151.00000.99760.0961.0573357
2026-06-03 12:151.00000.99760.0981.0673356
2026-06-02 12:151.00000.99760.0981.0673356
2026-06-01 12:151.00000.99740.0991.1123355
2026-05-31 12:151.00000.99760.0991.0603354
2026-05-30 12:151.00000.99760.0971.0533353
2026-05-29 12:151.00000.99750.0971.0793352
2026-05-28 12:151.00000.99750.0971.0803352
2026-05-27 12:151.00000.99710.0981.1713351
2026-05-26 12:151.00000.99810.0980.9543350
2026-05-25 12:151.00000.99760.0981.0703349
2026-05-24 12:151.00000.99740.0961.0943348
2026-05-23 12:151.00000.99740.0961.0953348
2026-05-22 12:151.00000.99730.0981.1163347
2026-05-21 12:151.00000.99810.0980.9383346
2026-05-20 12:151.00000.99720.0971.1463345
2026-05-19 12:151.00000.99710.0971.1583344
2026-05-18 12:151.00000.99710.0971.1583344
2026-05-17 12:151.00000.99750.0971.0733343
2026-05-16 12:151.00000.99760.0971.0513342
2026-05-15 12:151.00000.99710.0971.1643341
2026-05-14 12:151.00000.99720.0971.1473340
2026-05-13 12:151.00000.99720.0971.1483340

Historical Accuracy: Predictions Made 30 Days Ago Average scenario — comparing the 30-day "long range" forecast to what actually happened

Target DateActual %Predicted %Error %Days AheadMade On
2026-06-1153.3461.768.42282026-05-14
2026-06-1153.3461.908.56292026-05-13
2026-06-1153.3462.168.82302026-05-12
2026-06-1153.3462.288.94312026-05-11
2026-06-1153.3462.489.14322026-05-10
2026-06-1053.7262.068.34282026-05-13
2026-06-1053.7262.338.61292026-05-12
2026-06-1053.7262.458.73302026-05-11
2026-06-1053.7262.658.93312026-05-10
2026-06-1053.7262.929.20322026-05-09
2026-06-0954.0763.639.56282026-05-12
2026-06-0954.0763.769.68292026-05-11
2026-06-0954.0763.969.88302026-05-10
2026-06-0954.0764.2310.16312026-05-09
2026-06-0954.0764.5710.49322026-05-08
2026-06-0854.4363.909.47282026-05-11
2026-06-0854.4364.109.67292026-05-10
2026-06-0854.4364.389.95302026-05-09
2026-06-0854.4364.7210.29312026-05-08
2026-06-0854.4364.8910.46322026-05-07
2026-06-0754.7864.329.54282026-05-10
2026-06-0754.7864.609.82292026-05-09
2026-06-0754.7864.9410.16302026-05-08
2026-06-0754.7865.1210.34312026-05-07
2026-06-0754.7865.2910.51322026-05-06
2026-06-0655.1964.659.46282026-05-09
2026-06-0655.1965.009.81292026-05-08
2026-06-0655.1965.179.98302026-05-07
2026-06-0655.1965.3410.15312026-05-06
2026-06-0655.1965.7110.52322026-05-05
2026-06-0555.5465.099.54282026-05-08
2026-06-0555.5465.279.72292026-05-07
2026-06-0555.5465.449.89302026-05-06
2026-06-0555.5465.8110.27312026-05-05
2026-06-0555.5466.0710.53322026-05-04
2026-06-0455.9765.319.34282026-05-07
2026-06-0455.9765.499.51292026-05-06
2026-06-0455.9765.879.89302026-05-05
2026-06-0455.9766.1310.15312026-05-04
2026-06-0455.9766.3910.42322026-05-03
2026-06-0356.2965.719.43282026-05-06
2026-06-0356.2966.109.81292026-05-05
2026-06-0356.2966.3610.08302026-05-04
2026-06-0356.2966.6310.35312026-05-03
2026-06-0356.2966.8710.58322026-05-02
2026-06-0256.6766.329.65282026-05-05
2026-06-0256.6766.589.91292026-05-04
2026-06-0256.6766.8610.19302026-05-03
2026-06-0256.6767.1010.43312026-05-02
2026-06-0256.6767.4510.78322026-05-01
2026-06-0156.9966.799.80282026-05-04
2026-06-0156.9967.0710.09292026-05-03
2026-06-0156.9967.3210.33302026-05-02
2026-06-0156.9967.6710.69312026-05-01
2026-06-0156.9968.1511.16322026-04-30
2026-05-3157.3767.199.82282026-05-03
2026-05-3157.3767.4410.07292026-05-02
2026-05-3157.3767.8010.43302026-05-01
2026-05-3157.3768.2710.90312026-04-30
2026-05-3157.3768.5911.22322026-04-29

* This table filters for predictions where the horizon was approximately 30 days. It will begin populating once the model has been running with the new snapshot storage for at least 30 days.

Recent Predictions vs Actuals Average scenario — where actual data now exists

DateActual %Predicted %Error %Days AheadMade On
2026-06-1053.7277.2223.50702026-04-01 00:00:00
2026-06-1053.7276.9623.24692026-04-02 00:00:00
2026-06-1053.7276.7323.01682026-04-03 00:00:00
2026-06-1053.7276.5422.82672026-04-04 00:00:00
2026-06-1053.7276.3422.62662026-04-05 00:00:00
2026-06-1053.7276.2722.55652026-04-06 00:00:00
2026-06-1053.7276.1222.40642026-04-07 00:00:00
2026-06-1053.7275.8722.15632026-04-08 00:00:00
2026-06-1053.7275.6121.89622026-04-09 00:00:00
2026-06-1053.7275.3021.58612026-04-10 00:00:00
2026-06-1053.7275.1721.45602026-04-11 00:00:00
2026-06-1053.7274.9921.27592026-04-12 00:00:00
2026-06-1053.7274.8621.14582026-04-13 00:00:00
2026-06-1053.7274.6520.93572026-04-14 00:00:00
2026-06-1053.7274.2920.57562026-04-15 00:00:00
2026-06-1053.7274.2920.57552026-04-16 00:00:00
2026-06-1053.7274.1320.41542026-04-17 00:00:00
2026-06-1053.7269.1215.40532026-04-18 00:00:00
2026-06-1053.7268.8415.12522026-04-19 00:00:00
2026-06-1053.7268.6014.88512026-04-20 00:00:00
2026-06-1053.7268.3314.61502026-04-21 00:00:00
2026-06-1053.7267.9114.19492026-04-22 00:00:00
2026-06-1053.7267.5613.84482026-04-23 00:00:00
2026-06-1053.7267.1813.46472026-04-24 00:00:00
2026-06-1053.7266.9513.22462026-04-25 00:00:00
2026-06-1053.7266.6612.94452026-04-26 00:00:00
2026-06-1053.7266.3112.59442026-04-27 00:00:00
2026-06-1053.7265.9812.26432026-04-28 00:00:00
2026-06-1053.7265.7412.02422026-04-29 00:00:00
2026-06-1053.7265.4211.70412026-04-30 00:00:00
2026-06-1053.7264.9211.20402026-05-01 00:00:00
2026-06-1053.7264.5910.87392026-05-02 00:00:00
2026-06-1053.7264.4010.68382026-05-03 00:00:00
2026-06-1053.7264.1810.46372026-05-04 00:00:00
2026-06-1053.7263.9410.22362026-05-05 00:00:00
2026-06-1053.7263.599.87352026-05-06 00:00:00
2026-06-1053.7263.429.70342026-05-07 00:00:00
2026-06-1053.7263.259.53332026-05-08 00:00:00
2026-06-1053.7262.929.20322026-05-09 00:00:00
2026-06-1053.7262.658.93312026-05-10 00:00:00
2026-06-1053.7262.458.73302026-05-11 00:00:00
2026-06-1053.7262.338.61292026-05-12 00:00:00
2026-06-1053.7262.068.34282026-05-13 00:00:00
2026-06-1053.7261.928.20272026-05-14 00:00:00
2026-06-1053.7261.647.92262026-05-15 00:00:00
2026-06-1053.7261.297.57252026-05-16 00:00:00
2026-06-1053.7260.947.22242026-05-17 00:00:00
2026-06-1053.7260.556.83232026-05-18 00:00:00
2026-06-1053.7260.166.44222026-05-19 00:00:00
2026-06-1053.7260.166.44212026-05-20 00:00:00
2026-06-1053.7260.066.34202026-05-21 00:00:00
2026-06-1053.7259.655.93192026-05-22 00:00:00
2026-06-1053.7259.255.53182026-05-23 00:00:00
2026-06-1053.7258.775.05172026-05-24 00:00:00
2026-06-1053.7258.274.55162026-05-25 00:00:00
2026-06-1053.7257.824.10152026-05-26 00:00:00
2026-06-1053.7257.523.80142026-05-27 00:00:00
2026-06-1053.7257.213.49132026-05-28 00:00:00
2026-06-1053.7256.823.10122026-05-29 00:00:00
2026-06-1053.7256.412.69112026-05-30 00:00:00

Forward Predictions — All Scenarios Made on 2026-06-11 00:00

DateAverage %+40% Rain %-40% Rain %Range %
2026-06-1153.3453.3453.340.00
2026-06-1253.5853.6453.520.11
2026-06-1353.8453.9353.760.17
2026-06-1453.9954.1053.870.23
2026-06-1554.1854.3254.040.29
2026-06-1654.1554.3353.980.34
2026-06-1753.5853.7853.380.40
2026-06-1853.4653.6953.230.46
2026-06-1953.3653.6253.100.52
2026-06-2053.1053.3952.810.57
2026-06-2153.1453.4652.820.63
2026-06-2253.3953.7353.040.69
2026-06-2353.6554.0253.280.75
2026-06-2453.8154.2153.410.80
2026-06-2553.9754.4053.540.86
2026-06-2654.2854.7453.820.92
2026-06-2754.2554.7353.760.98
2026-06-2854.5355.0454.011.03
2026-06-2954.6155.1654.071.09
2026-06-3054.6555.2254.071.15
2026-07-0154.7855.3954.171.22
2026-07-0254.9755.6254.331.29
2026-07-0355.1555.8354.471.36
2026-07-0455.2555.9754.541.43
2026-07-0555.2956.0454.541.50
2026-07-0654.7355.5253.951.57
2026-07-0753.9754.7953.151.64
2026-07-0854.0854.9453.231.71
2026-07-0954.0554.9453.161.78
2026-07-1053.1654.0952.241.85
2026-07-1153.3054.2552.341.92
2026-07-1253.2754.2752.281.99
2026-07-1353.5154.5352.482.06
2026-07-1453.5854.6552.522.13
2026-07-1553.6954.7952.592.20
2026-07-1653.8955.0352.762.27
2026-07-1753.9855.1552.812.34
2026-07-1853.9655.1752.762.41
2026-07-1953.5654.8052.322.48
2026-07-2053.5054.7852.232.55
2026-07-2153.5954.9152.272.63
2026-07-2253.7855.1352.422.72
2026-07-2353.9255.3252.522.80
2026-07-2454.0355.4752.592.88
2026-07-2554.1655.6552.682.96
2026-07-2653.0154.5451.493.05
2026-07-2751.1752.7349.603.13
2026-07-2851.2152.8141.4411.38
2026-07-2951.1152.7641.2311.53
2026-07-3050.9352.6241.2211.40
2026-07-3150.5252.2540.6011.65
2026-08-0149.7151.4938.7312.76
2026-08-0240.5351.4638.5312.92
2026-08-0340.6051.3938.5712.82
2026-08-0440.5051.3838.4312.95
2026-08-0540.4251.1938.3212.87
2026-08-0639.7851.0937.6313.45
2026-08-0739.8550.7837.6713.11
2026-08-0839.8449.6937.6212.07
2026-08-0939.3741.6337.114.51
2026-08-1039.3141.6137.014.59
2026-08-1139.3941.7237.054.67
2026-08-1239.2741.6536.904.75
2026-08-1338.9141.3236.494.83
2026-08-1438.8141.2636.364.90
2026-08-1538.0840.5735.594.98
2026-08-1637.4740.0034.945.06
2026-08-1737.5340.1034.965.14
2026-08-1837.1739.7734.565.21
2026-08-1937.1039.7434.455.29
2026-08-2037.0739.7534.385.37
2026-08-2136.7039.4333.985.45
2026-08-2236.4539.2233.685.53
2026-08-2336.4239.2233.615.61
2026-08-2436.1839.0333.335.69
2026-08-2536.0938.9733.205.78
2026-08-2635.3738.3032.445.86
2026-08-2735.4938.4632.525.94
2026-08-2835.5538.5632.546.02
2026-08-2935.3838.4332.336.10
2026-08-3035.3638.4532.276.18
2026-08-3135.4538.5832.326.26
2026-09-0135.3038.5532.066.49
2026-09-0234.7738.1331.416.72
2026-09-0334.9138.3931.436.95
2026-09-0433.3736.9629.787.19
2026-09-0533.2536.9529.547.42
2026-09-0633.4337.2629.617.65
2026-09-0733.5137.4529.577.88
2026-09-0833.6537.7029.598.11
2026-09-0933.8538.0229.688.34
2026-09-1033.9838.2629.698.56
2026-09-1134.0838.4829.698.79
2026-09-1233.8838.3929.379.02
2026-09-1334.0238.6429.409.24
2026-09-1434.0338.7629.309.47
2026-09-1534.2139.0529.369.69
2026-09-1634.4739.4329.519.92
2026-09-1734.4639.5329.3910.14
2026-09-1834.1539.3428.9710.37
2026-09-1933.9939.2928.6910.60
2026-09-2034.1739.5828.7610.82
2026-09-2134.2139.7528.6711.08
2026-09-2234.2739.9328.6011.33
2026-09-2334.3240.1128.5211.59
2026-09-2433.6939.6127.7711.84
2026-09-2533.1939.2427.1412.10
2026-09-2633.3339.5127.1612.35
2026-09-2733.3439.6527.0412.61
2026-09-2833.3739.8026.9412.87
2026-09-2933.5640.1227.0013.12
2026-09-3033.5340.2226.8413.38
2026-10-0133.6240.5326.7113.82
2026-10-0233.0440.1725.9114.26
2026-10-0333.1940.5514.7925.76
2026-10-0432.9540.5214.2526.27
2026-10-0533.3341.1314.1726.96
2026-10-0633.7541.7614.2327.54
2026-10-0733.6041.8314.4327.40
2026-10-0832.6941.1414.0927.05

Cron Log Last modified: 2026-06-11 11:15:28

Using learned parameters: intercept=-8.0000, slope=0.147000
Today's actual: 53.340, formula predicts: 65.678, adjustment: -12.338
Day 0: GW=53.3%, lag_shift=+0, weighted_sum=501.2, adj=-12.34, pred=53.340
Day 10: GW=53.1%, lag_shift=+0, weighted_sum=484.6, adj=-10.10, pred=53.141
Day 20: GW=54.6%, lag_shift=+0, weighted_sum=483.3, adj=-8.27, pred=54.782
Day 30: GW=53.2%, lag_shift=+0, weighted_sum=463.0, adj=-6.77, pred=53.295
Day 40: GW=53.5%, lag_shift=+0, weighted_sum=456.7, adj=-5.54, pred=53.590
Day 50: GW=50.9%, lag_shift=+0, weighted_sum=429.0, adj=-4.54, pred=50.522
Day 60: GW=39.4%, lag_shift=+20, weighted_sum=347.1, adj=-3.72, pred=39.309
Day 70: GW=37.1%, lag_shift=+20, weighted_sum=327.3, adj=-3.04, pred=37.065
Day 80: GW=35.4%, lag_shift=+20, weighted_sum=311.9, adj=-2.49, pred=35.357
Day 90: GW=33.6%, lag_shift=+20, weighted_sum=298.6, adj=-2.04, pred=33.851
Day 100: GW=34.2%, lag_shift=+20, weighted_sum=297.0, adj=-1.67, pred=33.991
Day 110: GW=33.4%, lag_shift=+20, weighted_sum=292.0, adj=-1.37, pred=33.563
Predicted range: 32.688 to 55.289
Generating predictions for scenario: +40%
Predicting calc_gw from 2026-06-11 00:00:00 (level: 53.340)
Using learned parameters: intercept=-8.0000, slope=0.147000
Today's actual: 53.340, formula predicts: 65.678, adjustment: -12.338
Day 0: GW=53.3%, lag_shift=+0, weighted_sum=501.2, adj=-12.34, pred=53.340
Day 10: GW=53.4%, lag_shift=+0, weighted_sum=486.8, adj=-10.10, pred=53.456
Day 20: GW=55.2%, lag_shift=+0, weighted_sum=487.5, adj=-8.27, pred=55.390
Day 30: GW=54.1%, lag_shift=+0, weighted_sum=469.6, adj=-6.77, pred=54.254
Day 40: GW=54.8%, lag_shift=+0, weighted_sum=465.6, adj=-5.54, pred=54.906
Day 50: GW=52.6%, lag_shift=+0, weighted_sum=440.8, adj=-4.54, pred=52.254
Day 60: GW=41.6%, lag_shift=+20, weighted_sum=362.7, adj=-3.72, pred=41.606
Day 70: GW=39.7%, lag_shift=+20, weighted_sum=345.5, adj=-3.04, pred=39.750
Day 80: GW=38.4%, lag_shift=+20, weighted_sum=332.9, adj=-2.49, pred=38.448
Day 90: GW=37.7%, lag_shift=+20, weighted_sum=326.9, adj=-2.04, pred=38.020
Day 100: GW=39.3%, lag_shift=+20, weighted_sum=333.0, adj=-1.67, pred=39.288
Day 110: GW=39.8%, lag_shift=+20, weighted_sum=336.7, adj=-1.37, pred=40.124
Predicted range: 36.953 to 56.038
Generating predictions for scenario: -40%
Predicting calc_gw from 2026-06-11 00:00:00 (level: 53.340)
Using learned parameters: intercept=-8.0000, slope=0.147000
Today's actual: 53.340, formula predicts: 65.678, adjustment: -12.338
Day 0: GW=53.3%, lag_shift=+0, weighted_sum=501.2, adj=-12.34, pred=53.340
Day 10: GW=52.8%, lag_shift=+0, weighted_sum=482.5, adj=-10.10, pred=52.825
Day 20: GW=54.1%, lag_shift=+0, weighted_sum=479.2, adj=-8.27, pred=54.173
Day 30: GW=52.2%, lag_shift=+0, weighted_sum=456.5, adj=-6.77, pred=52.336
Day 40: GW=52.2%, lag_shift=+0, weighted_sum=447.7, adj=-5.54, pred=52.274
Day 50: GW=41.2%, lag_shift=+20, weighted_sum=361.5, adj=-4.54, pred=40.602
Day 60: GW=37.1%, lag_shift=+20, weighted_sum=331.5, adj=-3.72, pred=37.013
Day 70: GW=34.5%, lag_shift=+20, weighted_sum=309.0, adj=-3.04, pred=34.380
Day 80: GW=32.3%, lag_shift=+20, weighted_sum=290.9, adj=-2.49, pred=32.266
Day 90: GW=29.6%, lag_shift=+20, weighted_sum=270.2, adj=-2.04, pred=29.682
Day 100: GW=29.0%, lag_shift=+20, weighted_sum=261.0, adj=-1.67, pred=28.693
Day 110: GW=26.9%, lag_shift=+20, weighted_sum=247.4, adj=-1.37, pred=27.003
Predicted range: 14.094 to 54.540
✓ Saved calc_gw predictions to database
============================================================
SUCCESS: Daily update completed
============================================================
============================================================
PREDICTION SUMMARY
============================================================
CALC_GW:
average: 53.340 (day 1) → 32.688 (day 60)
+40%: 53.340 (day 1) → 41.145 (day 60)
-40%: 53.340 (day 1) → 14.094 (day 60)