Comparing models - ranks vs weights

Hi guys.
I am trying to compare 3 pymc models. One doing exponential regression, one with inverted s-shape regression and one with linear regression. The arviz compare gives me the following outcome

                         rank   elpd_loo     p_loo    weight        se  warning scale
s_regression_model          0 -74.675459  4.038866  0.733810  5.034438    False   log
linear_regression_model     1 -75.797628  3.434888  0.057797  5.323788    False   log
exp_regression_model        2 -80.965069  5.353204  0.208393  8.190495    False   log

What i find strange is that the weight of linear model which is second in rank is smaller than the weight of the exponential model which is third in rank. Shouldn’t the weights be “analogous” to the ranks?
But if i compare linear to exponential model (just these two) then indeed the weight of the linear model is bigger than the weight of the exponential model.

                         rank   elpd_loo     p_loo    weight        se  warning scale
linear_regression_model     0 -75.797628  3.434888  0.784209  5.323788    False   log
exp_regression_model        1 -80.965069  5.353204  0.215791  8.190495    False   log

My question is, if the rank of the model in a 3-model comparison is higher shouldn’t the weight be bigger also? Am I missing something here? Is it ok this outcome?
Thanks a lot in advance.

Note that the weight correspond to stacking weights by default (see the docs). So no, the weights do not have to be in the same order as the rank. There is more information in this paper, but you can also use one of the there options for the method.

Thanks a lot for the answer. I changed the method from the default stacking to ‘BB-pseudo-BMA’ and the weights now correspond to the ranks. I am not quite sure about the differences in the various methods (and one is not recommended) so I will look into it.