Abstract Sediment transport and deposition in sand–gravel bed rivers is shown to depend on dunes. The sediment mixture is vertically sorted in avalanches at the lee side of the dunes. Part of the resulting upward fining sets of the largest dunes that occur during a discharge wave, is preserved in the bed. Furthermore the sediment is entrained and deposited size selectively in the dune troughs, which results in an additional upward fining accumulation of lag deposits. This deposit is the source for sediment entrained during the next discharge wave, which will depend on the relict vertical sorting and on the depth from which it is entrained. The entrainment and deposition depth of the sediment depends on the dune trough level below the average bed level and therefore on the dune height. Thus subsequent discharge waves of decreasing magnitude will leave the upward fining cross-bedded sets at depths below the bed surface related to the concurrent dune height. This is demonstrated with flume experiments and with new vibrocores collected from the river Waal (The Netherlands).