Impacted versions:
11.0

I don't know if it is an issue, but I think is strange.

`product_qty` is in unit of `product` : https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L240
`reserved_availability` is in unit of `stock.move` : https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L295

`move.product_qty - move.reserved_availability` seems to have no sens, no ?

https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L915
https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L917
https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L924

thank for your answer

@jco-odoo 
@alnslang 


addons/stock/models/stock_move.py
moves[0].write(moves._merge_moves_fields())
            # 
            moves_to_unlink |= moves[1:]
        if moves_to_unlink:
            # 
            moves_to_unlink._clean_merged()
            moves_to_unlink._action_cancel()
            moves_to_unlink.sudo().unlink()
        return (self | self.env['stock.move'].concat(*moves_to_merge)) - moves_to_unlink
    def _get_relevant_state_among_moves(self):
        # 
        #     
        #     
        #     
        #     
        #     
        #     
        #     
        #     
        #     
        sort_map = {
            'assigned': 4,
            'waiting': 3,
            'partially_available': 2,
            'confirmed': 1,
        }
        moves_todo = self\
            .filtered(lambda move: move.state not in ['cancel', 'done'])\
            .sorted(key=lambda move: (sort_map.get(move.state, 0), move.product_uom_qty))
        #