This paper analyzes how street space should be allocated across cars, buses, bicycles, and parking in order to maximize economic efficiency. Accordingly, we set up a nested logit model reflecting user heterogeneity, cross-congestion effects between transport modes, and relevant transport demand elasticities. Simulations are conducted for Berlin, Germany and New York City, USA. We find that re-allocating street space from cars to buses and especially bicycles improves efficiency. Effect magnitudes and the extent of optimal re-allocations vary between cities. We also shed light on the channels through which re-allocations impact on efficiency.