You don't solve cold-start once for a whole city — you solve it inside one community, then let weak ties bridge to the next. This simulates a clustered world with heavy-tailed contacts and the shared-number "N+1" bridge, and asks: how few people in one community before the average member finds enough to do?
In a clustered community the graph snaps into one connected component at a handful of people (the tips into one scene tile) — so fragmentation isn't your problem. But you only see hangouts from friends & friends-of-friends, so "enough to do" depends on how many people you share a number with — which needs more seed and more contacts. That crossing is the real critical mass.
Contacts are heavy-tailed — published address-book samples show the spread exceeding the mean (mean ≈ 249, SD ≈ 309 in one study; a UK survey found ≈ 47). A few super-connectors collapse would-be islands. The Spread knob is that tail — widen it and the same seed reaches more people.
Cross-community contacts (the Homophily leftover) are the weak ties. Seeding one community leaves primed neighbors — people one join from a warm graph. So the number that matters is people in one community, and in a city that's a rounding error of the whole — solved once, then it spreads.
Monte-Carlo over a stochastic-block world: each user draws a log-normal contact count; each contact lands inside the community (homophily) or in a neighbor; two users are friends-of-friends when they share a saved number (the bridge needn't be on the app). "Reachable" = distinct co-members you share a number with; "hangouts/week" = reachable ÷ hosting-rate; "connected" = share of the seed in the largest component. Curves are simulated live. Data: contact-list study (n=217), UK survey, mobile-network structure survey. We'll fit these from our own contacts table once there are beta users.