Two source splits feed one downstream event-time window. Predict the downstream watermark before you move a slider: it is not an average, it is the minimum of every active split.
"Idle duration assumed" models how long a split marked idle has been silent. If it exceeds the threshold and the timeout policy is enabled, Flink excludes that split from the downstream watermark computation entirely (withIdleness()).
A downstream operator reading from multiple source splits (Kafka partitions, files, shards) cannot fire a window until it is certain no earlier event can still arrive on any of them. So it advances its own watermark to the minimum watermark reported by all splits it considers active — one slow or stalled split holds the whole window back, no matter how far ahead the others race.
max event time seen − allowed lateness. A late/old event on that same split does not move its watermark backward.labs/flink/stalled_watermark.py.WatermarkStrategy.withIdleness(timeout)) tells the downstream operator to exclude it from the min-computation once it has been silent past the timeout — trading a small correctness risk (events that split resumes emitting may now arrive "late") for progress.