Designing public transport networks involves tradeoffs between extensive geographic coverage, frequent service on each route, and relying on interconnections as opposed to direct service. These choices, in turn, depend on individual preferences for walking to stations, waiting for buses, and transfers. We study these tradeoffs by examining the world’s largest bus rapid transit system, in Jakarta, Indonesia, leveraging both a series of bus network expansions and a randomized bus allocation experiment. Using detailed ridership data and aggregate travel flows from smartphone data, we analyze how new direct connections, changes in bus travel time, and wait time reductions increase ridership. We then estimate a transit demand model with multi-dimensional travel costs, matching moments from the route launches. We find riders are highly sensitive to wait time. Finally, we find the optimal bus network numerically and study how its shape depends on the measured travel preference parameters.