independent Danube monitor · official sources
Live
Official sources, independent interpretation.
Dunărea collects what official institutions publish about the Danube, from Ingolstadt to Sulina: gauges from AFDJ, INHGA, PEGELONLINE, RHMZ, and Hydroinfo, the GloFAS model and the ERA5 reanalysis, satellite altimetry, the navigation network, the energy dispatcher, and the operator's own reports. Thirty-three sources feed a provenance register in which every value is labelled measured, modelled, calculated by the product, or not published, and two delivery paths for the same reading never count as two confirmations. The verdicts at the top of each page come from explicit rules, not from an AI.
I defined the product, checked the sources, wrote the deterministic detectors and the methodology dossier, and run the public deployment.
dunarea.infoProject images




What we are building
A source for every value
Every number carries its origin: measured at a gauge, modelled by GloFAS, reanalysed by ERA5, seen from orbit, or calculated here. The provenance register lists 33 sources with their kind and family, and sources from the same provider count once, so three routes to INHGA data are one piece of evidence, not three.
Seven views, separate conclusions
Now, Romania and Cernavodă, basin and history, cross-checks and sources, Iron Gates and delta, options, and missing data. The Romania page keeps the river's state, the confirmed effects at CNE Cernavodă, and the state of the energy system apart instead of merging them into one alarm.
What it refuses to do
It never converts a stage reading into discharge, never converts gauge centimetres into sea-level metres to compare against the Cernavodă intake thresholds, never turns fresh snow into water equivalent, never separates natural from regulated flow, and never publishes an accusation against a country, operator, or institution.
The missing-data register
/date-lipsa separates a missing link from a source that is merely identified. It shows which absent data could change a conclusion, why, and which official sources were already checked; a catalogue entry or a link is not an observation.
How it works
A model is not a measurement
GloFAS gives hydrological context, and today's value is compared with the history of the same model, not with a gauge. The reference is honest about its size: 1991 was requested, the provider delivers from 1997, so every statistic states an effective window of 1997–2025, 29 years, one short of the 30 that standard climate normals require.
Nothing to trust but the standard library
The server is pure Python with zero third-party dependencies, so the supply-chain surface is nil. It listens on loopback only, answers GET and HEAD and nothing else, sends a Content Security Policy without unsafe-inline, and pins the vendored ECharts with subresource integrity. Third-party data is treated as hostile and escaped at the fetch boundary.
AI is opt-in, manual, and narrative only
The synthesis at the head of every page is deterministic. An optional LLM layer can be run by hand from the command line and produces an auditable narrative with the prompt, digest, and model on record. It never runs on refresh, and the public route cannot trigger a paid call.