Executive scientific verdict
GFIS remains a methane-yield prediction and decision-support system. Gate 3 adds a reproducible public-data experiment chain, but DS-03 evaluates total-biogas dynamics rather than measured methane. On that dataset, the current LSTM is not promoted: persistence won two of three rolling-origin folds. The LSTM remains a short-window challenger while methane-specific external validation continues separately.
Fold wins: persistence 2, LSTM 1. Selection was locked before the final test was opened.
This boundary applies only to the evaluator-suggested public dataset: methane fraction is 99.66% missing, so its total-biogas target is not relabelled as methane. GFIS methane prediction remains implemented and is demonstrated separately in the simulator evidence section.
Evaluator-suggested dataset: experimental impact
Gate 3 selected the catalogue's rank-1 public source—Mendeley DS-03, farm-scale digester process and weather data—in direct response to the evaluation requirement for real/open evidence and temperature sensitivity. The evaluator guidance motivated the source category and experiment; it does not imply that the evaluator authored the dataset.
Guidance
Use real/open anaerobic-digestion data, disclose limitations, test temperature sensitivity, compare LSTM with strong baselines, and keep claims traceable.
Gate 3 experiment
Immutable DS-03 ingestion → quality audit → rolling-origin persistence/XGBoost/LSTM comparison → natural drift study → locked test.
Changed understanding
Real farm-scale evidence did not justify promoting the LSTM. It exposed target and metadata limits, regime instability, and the need for a second licensed methane-rich dataset.
Before DS-03
- Synthetic evidence could demonstrate workflow, not field validity.
- “Biogas” risked being discussed too loosely as methane.
- A favourable aggregate score could hide unstable regimes.
- Temperature robustness and experiment replay were not evidenced end to end.
After DS-03
- Four reactor identities and 51,766 measured weather records are traceable.
- The evaluated target is explicitly total biogas; methane is 99.66% missing.
- Three chronological folds reveal persistence wins two folds and LSTM one.
- Natural drift, repeated seeds, checksums, predictions, epochs and checkpoints are retained.
Experiment-to-learning traceability
| Experiment or audit | Evidence produced | What it changed in GFIS understanding |
|---|---|---|
| Source and schema audit | Four farm-scale reactors; mixed Excel dates; duplicates, gaps and structural missingness documented. | Catalogue descriptions must be verified against files. GFIS now repairs dates transparently, flags exclusions and preserves reactor identity. |
| Target audit | Daily/interval total-biogas field usable; methane fraction 99.66% missing; VFA/ALK and required VS/BMP fields unavailable. | DS-03 cannot validate methane yield, VFA/ALK soft sensing or methane physics loss. Physics-violation rate is unavailable—not zero. |
| Leakage-safe rolling comparison | Persistence wins folds 1 and 3; LSTM wins fold 2; all models use identical chronological splits. | Temporal learning is regime-dependent. GFIS keeps persistence as the DS-03 champion and the compact LSTM only as a challenger. |
| Sequence windows 3/7/14/28 | Window differences are small relative to fold-to-fold dispersion. | No evidence supports a larger model zoo or Transformer. Short memory is the defensible current choice. |
| Natural temperature drift | RMSE degradation is −21.2%, +29.3% and −21.2% across folds. | Temperature association is inconsistent; Gate 3 makes no causal temperature claim and labels observed versus synthetic stress separately. |
| Locked test and experiment memory | Checksummed data, split version, seeds, epochs, predictions, environment, checkpoints and replay artifacts. | A single favourable final score cannot override rolling evidence; every dissertation claim can now be replayed and audited. |
Input provenance and integrity
The selected source is Mendeley Data V1, DOI 10.17632/gk3f363sfg.1, contributed by Daniel Mulat and licensed CC BY 4.0.
Immutable source package
Title: Process monitoring and weather datasets on farm-scale biogas digesters
Archive: 12,005,187 bytes
Archive SHA-256
ee88e12be5acd05d0c1ec08bcebdfb4f72f15789c91dfddfc4f96277826adbf3Canonical output
Schema: gfis-gate3-ds03-v1
Processed SHA-256
66d7dfc303f6197d3c5b96eaffb9bfbe5c351b0929461db7c13fe69a8f7e5654Raw files are preserved; processing is additive.
Open input and processing artifacts
| Artifact | Size | SHA-256 | Action |
|---|---|---|---|
| Raw Mendeley archive | 12,005,187 B | ee88e12be5acd05d0c1ec08bcebdfb4f72f15789c91dfddfc4f96277826adbf3 | Open ↗ |
| Canonical processed CSV | 174,638 B | 66d7dfc303f6197d3c5b96eaffb9bfbe5c351b0929461db7c13fe69a8f7e5654 | Open ↗ |
| Processing manifest | 3,544 B | 840a429d766a189fa858b5ef2cd6fb50d88605e999d6b03ac3e42caec5a54202 | Open ↗ |
Figure 1. Four reactor histories and naturally observed air-temperature trajectories. Reactor identity is retained throughout.
| reactor | rows | start | end | duplicate_timestamps | non_daily_intervals | temperature_missing | methane_fraction_observations | date_repairs |
|---|---|---|---|---|---|---|---|---|
| R1 | 306 | 2024-01-04 | 2025-01-14 | 0 | 55 | 0 | 1 | 0 |
| R2 | 306 | 2024-01-04 | 2025-01-14 | 0 | 54 | 0 | 1 | 0 |
| R3 | 279 | 2024-01-10 | 2025-01-14 | 6 | 50 | 10 | 1 | 23 |
| R4 | 276 | 2024-01-10 | 2025-01-14 | 5 | 48 | 8 | 1 | 32 |
Data quality and target audit
Figure 2. Predictor and target-field missingness. Methane coverage is scientifically unusable.
Acceptance rules
- One-day intervals only for comparable daily forecasting.
- Duplicate reactor timestamps excluded.
- Targets are never imputed.
- Predictor imputation and scaling are fitted within each training fold.
- R1–R4 identity is retained with group-aware sequence creation.
- Mixed Excel dates are repaired monotonically and flagged.
View complete processing-manifest quality payload
{
"rows": 1167,
"reactors": [
"R1",
"R2",
"R3",
"R4"
],
"timestamp_start": "2024-01-04 00:00:00",
"timestamp_end": "2025-01-14 00:00:00",
"target_definition": "Total biogas meter increment between recorded observations, source-labelled mL",
"target_is_methane": false,
"by_reactor": {
"R1": {
"rows": 306,
"start": "2024-01-04",
"end": "2025-01-14",
"duplicate_timestamps": 0,
"non_daily_intervals": 55,
"median_interval_days": 1.0,
"target_missing": 1,
"temperature_missing": 0,
"digester_temperature_missing": 3,
"methane_fraction_observations": 1,
"date_repairs": 0
},
"R2": {
"rows": 306,
"start": "2024-01-04",
"end": "2025-01-14",
"duplicate_timestamps": 0,
"non_daily_intervals": 54,
"median_interval_days": 1.0,
"target_missing": 1,
"temperature_missing": 0,
"digester_temperature_missing": 7,
"methane_fraction_observations": 1,
"date_repairs": 0
},
"R3": {
"rows": 279,
"start": "2024-01-10",
"end": "2025-01-14",
"duplicate_timestamps": 6,
"non_daily_intervals": 50,
"median_interval_days": 1.0,
"target_missing": 1,
"temperature_missing": 10,
"digester_temperature_missing": 279,
"methane_fraction_observations": 1,
"date_repairs": 23
},
"R4": {
"rows": 276,
"start": "2024-01-10",
"end": "2025-01-14",
"duplicate_timestamps": 5,
"non_daily_intervals": 48,
"median_interval_days": 1.0,
"target_missing": 1,
"temperature_missing": 8,
"digester_temperature_missing": 276,
"methane_fraction_observations": 1,
"date_repairs": 32
}
},
"missing_fraction": {
"total_biogas_interval_ml": 0.003427592116538132,
"air_temperature_c": 0.015424164524421594,
"digester_temperature_c": 0.48414738646101113,
"manure_fed_kg": 0.01456726649528706,
"methane_fraction_percent": 0.9965724078834619
}
}Integrated processing and evaluation flow
Chronological split
Split version: ds03-chronological-v1
Final test: 2024-11-20 to 2025-01-14
The last 15% of dates stayed sealed during architecture selection.
| fold | train_end_exclusive | validation_start | validation_end_exclusive |
|---|---|---|---|
| 1 | 2024-08-02 | 2024-08-02 | 2024-09-08 |
| 2 | 2024-09-08 | 2024-09-08 | 2024-10-11 |
| 3 | 2024-10-11 | 2024-10-11 | 2024-11-20 |
Past-only features
- Prior total-biogas value
- Past 3-observation mean and standard deviation
- Feed and water values
- Observed air temperature
- Calendar sine/cosine
- Explicit reactor identity
No future target or future-fitted preprocessing enters a fold.
Equations, derivations, and statistical definitions
These equations define exactly what the Gate 3 code computes. Symbols are indexed by reactor r, observation time t, rolling fold k, and random seed s.
1. Target construction and eligibility
B is the cumulative biogas-meter reading. The source workbook supplies this difference as “Daily Biogas (mL).” Gate 3 interprets it as interval total biogas and accepts it as daily only when Δt = 1 day.
Only observations with 𝓔 = 1 enter model evaluation. Missing targets are never imputed.
2. Past-only temporal features
The most recently observed total-biogas interval.
Three-observation past-only rolling mean.
Sample rolling standard deviation. The current or future target never enters these features.
Cyclic calendar encoding prevents an artificial discontinuity between 31 December and 1 January.
3. Fold-local preprocessing derivation
The imputation median m, mean μ, and standard deviation σ are estimated only from the current training fold. Validation and test observations are transformed but never used to fit preprocessing.
4. Persistence baseline
A temporal model must outperform this operationally meaningful baseline on leakage-safe validation before an improvement claim is accepted.
5. XGBoost objective
Each tree fits residual structure from the current ensemble; Ω regularizes tree complexity. All lag and rolling predictors remain past-only.
6. Current LSTM state derivation
ft = σ(Wxfxt + Whfht−1 + bf)
gt = tanh(Wxgxt + Whght−1 + bg)
ot = σ(Wxoxt + Whoht−1 + bo)
ct = ft ⊙ ct−1 + it ⊙ gt
ht = ot ⊙ tanh(ct)
ŷt = wyTht + by
σ is the logistic sigmoid and ⊙ is element-wise multiplication. Gate 3 uses one layer, hidden size 32, no random shuffling, and windows of 3, 7, 14, and 28 observations.
Targets are standardized from training data only. Adam minimizes scaled MSE; early stopping retains the state with lowest validation MSE.
7. Reported error metrics
sMAPE terms with a zero denominator are excluded. Negative R² means the model is worse than predicting the evaluation-period mean.
8. Repeated-seed aggregation and dispersion
S = 3 seeds (17, 29, 43). The report presents mean and sample standard deviation across fold/seed observations.
9. Natural temperature-drift definition
Positive degradation means worse error in naturally outlying temperature conditions. This is an association test, not a causal temperature derivation.
10. Robust architecture-selection rule
Ties are resolved by median fold RMSE and then dispersion. The rule was applied before opening the final test. Persistence won two folds; LSTM won one.
11. Future methane-physics formulation — not evaluated here
This residual/physics loss requires measured methane, substrate VS/BMP, and stability variables. DS-03 lacks them, so Gate 3 does not compute, tune, or claim this loss.
Rolling-origin model evidence
A single mean score would conceal the extreme second regime. Model selection therefore uses fold wins, then median fold RMSE and dispersion.
Figure 3. Fold-level RMSE on a logarithmic axis. Persistence is strongest in folds 1 and 3; LSTM is strongest only in fold 2.
Figure 4. Sequence-window changes are negligible relative to fold-to-fold dispersion.
Complete model-window rolling summary
| Model | Window | RMSE mean | RMSE SD | MAE mean | R² mean |
|---|---|---|---|---|---|
| lstm | 3 | 22,036.865 | 31,653.674 | 7,888.023 | -8.247 |
| lstm | 7 | 21,974.337 | 31,561.129 | 8,250.821 | -7.988 |
| lstm | 14 | 21,985.184 | 31,575.850 | 8,261.796 | -8.227 |
| lstm | 28 | 22,041.158 | 31,505.673 | 8,364.877 | -10.393 |
| persistence | 3 | 30,585.725 | 52,451.814 | 12,999.159 | -0.541 |
| persistence | 7 | 30,585.725 | 52,451.814 | 12,999.159 | -0.541 |
| persistence | 14 | 30,585.725 | 52,451.814 | 12,999.159 | -0.541 |
| persistence | 28 | 30,585.725 | 52,451.814 | 12,999.159 | -0.541 |
| xgboost | 3 | 36,949.411 | 29,335.792 | 15,980.197 | -4,300.392 |
| xgboost | 7 | 37,920.000 | 29,605.812 | 16,662.618 | -5,103.333 |
| xgboost | 14 | 38,008.514 | 29,286.710 | 16,516.972 | -4,982.804 |
| xgboost | 28 | 42,435.957 | 32,661.801 | 19,397.180 | -6,991.630 |
Locked final-period comparison
Figure 5. The LSTM has slightly lower final-test RMSE, but much worse sMAPE and was not the rolling-validation champion.
| Model | MAE mean | RMSE mean | R² mean | sMAPE mean |
|---|---|---|---|---|
| lstm | 3,918.765 | 23,316.775 | 0.013 | 106.351 |
| persistence | 3,968.208 | 33,272.249 | -1.009 | 30.311 |
| xgboost | 2,694.391 | 23,616.635 | -0.012 | 63.119 |
Figure 6. Seed-averaged final-period predictions. Symlog scaling exposes both normal and extreme intervals.
Training sessions and epoch evidence
Every LSTM epoch is retained with run, fold, seed, window, training loss, and validation loss. Final-fit LSTM and XGBoost checkpoints are checksum-registered.
Figure 7. Window-3 rolling LSTM validation traces across all folds and seeds.
Experiment scale
84 fold/seed/model/window metric records
399 epoch records
8,512 rolling prediction rows
1,113 final prediction rows
Model configuration
Click to inspect model and training configuration
{
"experiment_id": "G3-E01",
"dataset_id": "DS-03",
"processed_schema": "gfis-gate3-ds03-v1",
"target": "total_biogas_interval_ml",
"target_semantics": "total biogas meter increment between observations; not methane",
"test_fraction_by_time": 0.15,
"rolling_folds": 3,
"sequence_windows": [
3,
7,
14,
28
],
"seeds": [
17,
29,
43
],
"lstm": {
"hidden_size": 32,
"num_layers": 1,
"epochs": 30,
"patience": 6,
"learning_rate": 0.003,
"batch_size": 64
},
"xgboost": {
"n_estimators": 250,
"max_depth": 4,
"learning_rate": 0.04,
"subsample": 0.9,
"colsample_bytree": 0.9
},
"temperature_drift": {
"natural_only": true,
"low_quantile": 0.1,
"high_quantile": 0.9
},
"physics_violation": {
"status": "unavailable",
"reason": "methane fraction and substrate VS required for a methane-yield bound are absent"
}
}Open source code and configuration
| Artifact | Size | SHA-256 | Action |
|---|---|---|---|
| Canonical data pipeline | 9,366 B | b7f7769b5a8e2be336fcaba736b52547ba775047799ed815a2797edc277b97ea | Open ↗ |
| Leakage-safe experiment engine | 19,555 B | 174562de87a54219a5490e68a0f6d0e340cf0cf0b0b4dfb144432ee59500e04c | Open ↗ |
| Dataset preparation command | 697 B | 2e0989543d8b42ff91b17ba9ffec2845714d8140350831ecac920ab643a5439d | Open ↗ |
| Training command | 853 B | 155b9ab3b7a9294ba0e53ba46c56dd6c5801c69ad48c6a554d639a3411561631 | Open ↗ |
| Integrated report generator | 66,148 B | 4bfd7a8a81630d65ad7057089889290d9b1b8de3b544bd51a44f38294bbf5369 | Open ↗ |
| Experiment configuration | 718 B | e9b04943c480a436fd4538a116dca805183e11eaa84adce6209054fc6c768cfb | Open ↗ |
Natural temperature-drift study
Drift observations fall outside each training fold's 10th–90th percentile temperature range. No artificial perturbation is presented as plant data.
Figure 8. Degradation is inconsistent across folds: −21.2%, +29.3%, and −21.2%. No causal temperature claim is supported.
| fold | natural_drift_n | stable_n | training_temperature_low_c | training_temperature_high_c | rmse_degradation_percent |
|---|---|---|---|---|---|
| 1 | 47 | 61 | 19.4 | 28.62 | -21.202 |
| 2 | 28 | 64 | 18.3 | 28.10 | 29.334 |
| 3 | 16 | 88 | 18.2 | 28.30 | -21.222 |
Persistent experiment memory
The accepted run binds source identity, checksums, Git commit, split version, seeds, windows, environment, configurations, predictions, epoch histories, plots, checkpoints, and replay instructions.
Run identity
G3-E01-20260724T1530Z-ds03-v3
Git commit: d7318a3f86743fb6ddd00783990808e30cb0470e
Run manifest SHA-256: cf04430551daaf04e0dd585e00219faab0c547c6163bcc3b11d31b865f869bd0
Environment
Click to inspect package and runtime versions
{
"python": "3.13.5 (v3.13.5:6cb20a219a8, Jun 11 2025, 12:23:45) [Clang 16.0.0 (clang-1600.0.26.6)]",
"platform": "macOS-26.5.2-arm64-arm-64bit-Mach-O",
"numpy": "2.2.6",
"pandas": "2.2.2",
"scikit_learn": "1.8.0",
"xgboost": "2.0.1",
"torch": "2.9.1"
}Complete clickable artifact inventory and checksums
| Artifact | Size | SHA-256 | Action |
|---|---|---|---|
| checkpoints/lstm_seed_17.pt | 26,769 B | 8a562c8b931b9a155735ea69b01d629cc9986850ba9dec338f5eef95beef2a13 | Open ↗ |
| checkpoints/lstm_seed_29.pt | 26,769 B | 38a82f214ea7e2142b4087c509c7bc3fb61e9b5b735a139100555a4a423a5b9b | Open ↗ |
| checkpoints/lstm_seed_43.pt | 26,769 B | a8e08c5f241c5344d21bb6e460e9232da8dc843dc07083129ae0e8d62a705801 | Open ↗ |
| checkpoints/xgboost_seed_17.joblib | 382,652 B | bc3ed6ad8ccae92ff1ba11443f785ca5c25a93c612b5fad6098d3fd62ae6ad3f | Open ↗ |
| checkpoints/xgboost_seed_29.joblib | 378,716 B | 49fac2d01d39ffbfea638ad2738a9706ffce4f1aa41cb294dc1264b19694a48c | Open ↗ |
| checkpoints/xgboost_seed_43.joblib | 380,412 B | cbb1371d14926771c4896bbebc3b607b4d359ed3d8ce004294d1e76f37f046de | Open ↗ |
| config.yaml | 718 B | e9b04943c480a436fd4538a116dca805183e11eaa84adce6209054fc6c768cfb | Open ↗ |
| environment.json | 268 B | 8e5897c2452c3c470a8ed51133f18d1a3da933de792038f9b35cd51e9519649b | Open ↗ |
| final_test_metrics.csv | 700 B | 6f2b5c8fc31a75dff8e4eb51f4055605ed0d0d43a660073033305366d8bc5109 | Open ↗ |
| fold_metrics.csv | 8,015 B | 651636fb5313986ed14c0b81d5bc30d080485fca4e788a906ee9a58c5a20c742 | Open ↗ |
| logs/epoch_history.csv | 21,993 B | cb51b40c9f28371c79bc6776cf83ff52a977fc299323320ed9ac1288f907bba3 | Open ↗ |
| plots/window_rmse.png | 54,316 B | 0ea3d858386bf77fc5890e708c3fc4a5944c9463ef62b664c5eb76503f656ce7 | Open ↗ |
| predictions/final_test_predictions.csv | 60,863 B | 031b0f8b1743c9ba0b944252293b0851545c10a2c64a34150725405ee07bddce | Open ↗ |
| predictions/rolling_predictions.csv | 484,748 B | 562f617f8488cdb3c4796586e9070200d3931988b4a1303fc1644268311f0bc3 | Open ↗ |
| rolling_summary.csv | 1,999 B | 6e44dd5c6ddfc94805cc4502c3d51744c5c9456c784596fb4269b917432e56ea | Open ↗ |
| scientific_decision.json | 732 B | 8851ffa78c806e32c0e5fafce62c527a58903178db64b8135b001a1c6db08d54 | Open ↗ |
| split_manifest.json | 756 B | a3089f12eaa4b0c3bef0ef0a8254fd4b603a8d9861f74cf4c3fe42ab30cd29fa | Open ↗ |
| temperature_drift.json | 1,659 B | a75e80c79777490905364db9aaef3548e56cb007596169784ca14f97b87b6935 | Open ↗ |
Exact replay
The accepted run was replayed. Fold metrics, summaries, final-test metrics, scientific decision, drift results, prediction files, and epoch history matched byte-for-byte.
Click to view exact replay commands
PYTHONPATH=01_Product_Source/GFIS_Project python3 \
01_Product_Source/GFIS_Project/scripts/gate3_prepare_dataset.py \
--workbook "03_Datasets/01_Raw_Public_Datasets/DS03_Mendeley_gk3f363sfg_v1/extracted/Farm-scale_Biodigester_Perfromance_dataset/Farm-scale Biodigester 2024_Performance.xlsx" \
--weather-workbook "03_Datasets/01_Raw_Public_Datasets/DS03_Mendeley_gk3f363sfg_v1/extracted/Farm-scale_Biodigester_Perfromance_dataset/Mazingira main(z6-02152)-1729245757_weather_data.xlsx" \
--output 03_Datasets/05_Processed_Final/DS03/gfis_ds03_canonical_v1.csv \
--manifest 03_Datasets/05_Processed_Final/DS03/processing_manifest_v1.json
PYTHONPATH=01_Product_Source/GFIS_Project python3 \
01_Product_Source/GFIS_Project/scripts/gate3_run_experiment.py \
--run-id G3-E01-20260724T1530Z-ds03-v3-replayGFIS capabilities working end to end
The simulator evidence below is not a conceptual mock-up. The trained GFIS service bundle was loaded and executed for 9 controlled scenarios × 48 hours, producing 432 hour-indexed output rows. UI screenshots show the corresponding Control Room, scenario handoff, alarm state and experiment-memory surfaces.
Fresh Version 2 replay
Run: V2-SIM-20260724T2220Z
Trained model bundle loaded: true
Model SHA-256:
008e25cea87e740a3b9ce5a909d859aa4e4fb82d64d54e8b9bd038c8c5e67602Evidence label: synthetic controlled simulator replay; not plant validation
What “working” means here
- Python service executed predictions and stateful 48-hour traces.
- VFA/ALK warning states changed under overload stress.
- A low-VS boundary challenge triggered and recorded the physics constraint.
- Every output row, configuration identity and checksum is retained.
- This is controlled synthetic replay evidence—not measured plant validation.
Figure 9. Fresh Version 2 backend replay. Methane trajectories, VFA/ALK responses and the VS-dependent physics ceiling are plotted directly from the preserved 432-row simulator output.
Executed scenario results
| Scenario | Hours | Mean methane yield | Max VFA/ALK | Warning/Critical hours | Physics violation hours |
|---|---|---|---|---|---|
| Nominal mesophilic operation | 48 | 199.342 | 0.197 | 0 | 0 |
| Organic overload | 48 | 200.932 | 0.335 | 48 | 0 |
| pH acidification shock | 48 | 152.935 | 0.284 | 0 | 0 |
| Low-temperature disturbance | 48 | 183.397 | 0.227 | 0 | 0 |
| Reduced HRT washout risk | 48 | 194.579 | 0.278 | 0 | 0 |
| High-solids feedstock | 48 | 213.273 | 0.251 | 0 | 0 |
| Corrective recovery operation | 48 | 196.719 | 0.152 | 0 | 0 |
| Critical acidification boundary stress | 48 | 148.083 | 0.331 | 48 | 0 |
| Low-VS physics-bound challenge | 48 | 180.278 | 0.332 | 48 | 1 |
Figure 10. Localhost Control Room evidence captured 9 July 2026: process controls, methane/physics/VFA outputs, 48-hour handoff, and CSV/JSON/report experiment-memory export. The historical panel's model-status message is superseded by the fresh Version 2 replay above, which confirms the trained bundle loaded.
Figure 11. Localhost scenario-handoff evidence captured 9 July 2026: the industrial simulator imports OLR, pH, temperature, HRT, TS and VS, detects VFA/ALK stress, raises warning/critical UI states, and records the operator-applied process state.
Figure 12. Localhost industrial-simulator memory evidence captured 9 July 2026: scenario variables, action/effect records, VFA/ALK warning state, physics message and CSV/report export controls remain visible in one audit surface.
Open replayable simulator evidence
| Artifact | Size | SHA-256 | Action |
|---|---|---|---|
| V2 simulator run metadata | 769 B | ba2c5c244164c65dd16276b5d5eac3d31046001d6f704c8cbc4a9a01fdd1db67 | Open ↗ |
| Nine-scenario summary | 1,806 B | 146c77173f7b99a292cdce1cd518c8bebee07fc2fee646fe288cf8a4b325637a | Open ↗ |
| Complete 432-row 48-hour traces | 51,716 B | 933d36b9245fe084fb492af2e5e5826a235c06a2ec2f3f5cb2369e8e4cef0dd7 | Open ↗ |
| Simulator artifact manifest | 751 B | 374369eafbee87946043516e07595960167a673f7b2e0ea3cfc572fbde0de55c | Open ↗ |
| Replay evidence generator | 7,491 B | f7a7d366bddb9219653b32eb2eb99f30a843d254138cc36e16b78c117f4062fd | Open ↗ |
Click to view the simulator replay command template
PYTHONPATH=01_Product_Source/GFIS_Project python3 01_Product_Source/GFIS_Project/scripts/generate_v2_simulator_evidence.py --run-id <NEW_UNIQUE_RUN_ID> --hours 48Capability conclusion
This evidence supports the statement that GFIS implements and executes continuous multi-hour methane simulation, VFA/ALK soft sensing, VS-based feasibility checking, scenario coordination and persistent experiment export. It does not convert controlled replay into an industrial-plant accuracy claim; that remains the next external-validation layer.
Implemented GFIS capability versus external validation
These are not missing product ideas. They already exist in the GFIS prototype and simulator. Gate 3's limitation is narrower: DS-03 cannot independently validate every capability because it provides total biogas with almost no measured methane and lacks the required VFA/ALK and VS/BMP targets.
| GFIS capability | Implemented evidence now | Validation boundary | Next evidence upgrade |
|---|---|---|---|
| Continuous methane forecasting | Trained methane predictor, temporal inputs and deterministic 48-hour plant trace with feedback history. | Demonstrated on synthetic/scenario data; DS-03 does not contain a usable continuous methane target. | Replay on a licensed timestamped methane dataset and compare chronologically against persistence and XGBoost. |
| VFA/ALK virtual soft sensor | Random-forest soft sensor, stability thresholds, overload/acidification scenarios, API output and simulator alarms. | Functional prototype evidence; no independent measured VFA/ALK labels in DS-03. | Validate classification and regression against laboratory VFA and alkalinity samples, including lead-time to warning. |
| VS-based physics guidance | VS-dependent methane ceiling, violation flag, post-prediction correction and scenario violation memory. | The current implementation is a feasibility constraint/post-processing layer—not yet a trained physics-loss experiment on measured methane/VS/BMP. | Add an ablation-controlled loss term and report accuracy, violation rate and yield-bound calibration. |
| Temporal memory | LSTM branch, lag/rolling history, sequence-window experiments and complete epoch logs/checkpoints. | On DS-03, longer windows do not improve rolling-origin robustness and persistence wins two of three folds. | Keep the compact LSTM challenger; retest only when a longer, methane-rich series provides adequate memory evidence. |
| Industrial digital-twin workflow | Control Room, 48-hour industrial simulator, scenario handoff, optimization, warnings and JSON/CSV/report memory export. | Product workflow is demonstrable; it is not yet a field-performance claim from a commissioned industrial plant. | Run shadow-mode pilot validation with sensor mapping, calibration records, uptime, error and operator-decision metrics. |
Defensible Version 2 statement
GFIS implements and demonstrates methane prediction, VFA/ALK soft sensing, VS-based feasibility checking, temporal modelling, and a memory-enabled industrial simulator. The validation level is explicitly labelled as synthetic, public-dataset, or future plant validation for each result.
Recommended temporal architecture
Keep persistence as the safe DS-03 champion. Retain the compact 3–7 observation LSTM as challenger. Advance the physics-guided methane architecture when a licensed continuous dataset supplies reactor identity, measured methane, temperature, feed/VS or BMP, and preferably VFA/ALK.
Open prediction and 48-hour simulation service Open LSTM and physics-constraint models Open controlled scenario evidence