  In this paper we revisit the notion of simplicity in mechanisms. We consider
a seller of $m$ items, facing a single buyer with valuation $v$. We observe
that previous attempts to define complexity measures often fail to classify
mechanisms that are intuitively considered simple (e.g., the "selling
separately" mechanism) as such. We suggest to view a menu as simple if a bundle
that maximizes the buyer's profit can be found by conducting a few primitive
operations that are considered simple. The \emph{primitive complexity of a
menu} is the number of primitive operations needed to (adaptively) find a
profit-maximizing entry in the menu. In this paper, the primitive operation
that we study is essentially computing the outcome of the "selling separately"
mechanism.
  Does the primitive complexity capture the simplicity of other auctions that
are intuitively simple? We consider \emph{bundle-size pricing}, a common
pricing method in which the price of a bundle depends only on its size. Our
main technical contribution is determining the primitive complexity of
bundle-size pricing menus in various settings. We show that for any
distribution $\cal D$ over weighted matroid rank valuations, even distributions
with arbitrary correlation among their values, there is always a bundle-size
pricing menu with low primitive complexity that achieves almost the same
revenue as the optimal bundle-size pricing menu. As part of this proof we
provide a randomized algorithm that for any weighted matroid rank valuation $v$
and integer $k$, finds the most valuable set of size $k$ with only a
poly-logarithmic number of demand and value queries. We show that this result
is essentially tight in several aspects. For example, if the valuation $v$ is
submodular, then finding the most valuable set of size $k$ requires
exponentially many queries (this solves an open question of Badanidiyuru et al.
[EC'12]).
