The allocation of scarce shelf space among competing products is a central problem in retailing. Space allocation affects store profitability through both the demand function, where both main and cross space elasticities have to be considered, and through the cost function (procurement, carrying and out-of-stock costs). A model is developed which uniquely incorporates both effects. A case study is used to estimate the parameters and the problem is solved within a geometrical programming framework. An extensive comparison with alternative procedures suggests this general model leads to significantly different allocation rules and superior profit performance.