Method & limits

How the numbers on this site were produced, why these choices were made, and what they can't tell you. The full write-ups, with equations and 37 cited sources, are in the project repository under docs/models/.

Pipeline

  1. Collect (plain Python, no AI):
    • NEA daily operational reports (PDF)
    • NEA monthly and annual reports (PDF → tables, OCR where tables are images)
    • the NEA homepage widget
    • ERA5 weather, GloFAS river flow and its forecast
    • India customs trade and the CERC power-exchange report
    • World Bank GDP
    • a sourced register of flood-damaged plants
  2. Store in a DuckLake lakehouse (Parquet + DuckDB). Raw files are kept, every fetch is logged, and the store is time-travel queryable.
  3. Analyse: seasonality, temperature, river flow, growth, and the agreement between sources (the Analysis page).
  4. Model: a rolling-origin backtest, then model selection, then P10–P90 ranges (the Models page).
  5. Forecast: daily 1–30 days and a monthly winter outlook, adjusted for flood losses (the Forecast page).
  6. Publish: the lake is exported to Parquet, and this static site queries it in your browser with DuckDB-WASM (the SQL explorer).

Why these models

Results in one line each

Limits

Data credits

This is an educational, non-commercial project.