We Gate Dating App Features Behind Message Count + Time, Not a "Trust Score"
A lot of trust/safety systems in consumer apps rely on some form of opaque scoring — a number the platform computes from signals the user can't fully see or verify. For Bonds' progression system, I wanted something different: gates defined entirely by two numbers both users can, in principle, see and understand.
The model
Eight stages, each unlocked by a specific combination of mutual message count and elapsed time. Stage 2 (voice notes) needs 20 mutual messages and 24 hours. Stage 3 (an invite into a deeper "Focus" mode) needs 75 mutual messages and 3 days. Stage 5 (video sharing) needs 7 days specifically spent inside an active Focus period. Later stages layer in additional state (whether Focus or a shared "Couple Space" is active) alongside the message/time signals.
Why two signals, not one
A single signal is easy to game. If the only gate is "20 messages," a bad actor sends 20 rapid, low-effort messages in five minutes and unlocks the same access as two people who spent real time getting to know each other. If the only gate is "24 hours," time passing alone — with zero actual conversation — unlocks the same thing.
Combining both raises the cost of gaming either one alone. You can't compress 24 real hours into less time, and you can't fake message count without actually typing messages, which itself takes non-trivial effort at 20-75 messages.
Why not a computed trust score instead
I considered a single aggregate trust score — something that could also factor in report history, account age, response patterns, etc. I chose not to, for this specific system, because I wanted the gates to be legible: a user should be able to know exactly why a feature is locked and exactly what unlocks it, without wondering what an opaque internal number is currently sitting at.
There's a real cost to this choice — a computed score could theoretically capture more nuance (report history, verified identity signals, etc.) than two raw numbers can. I think legibility was worth that cost for this specific feature, but I'd frame it as a genuine tradeoff, not a strictly superior approach.
The honest gap
Stage 8 (video calls) requires Couple Space plus what the codebase documents as an "additional flag" beyond message count and time. I don't have full visibility into exactly what that check verifies, and I'd rather say that plainly than describe a mechanism with more confidence than I actually have.
Would be interested in how others have approached the legible-gates-vs-computed-score tradeoff in trust/safety systems — particularly whether legibility held up as user bases scaled and bad-actor sophistication increased.
Top comments (0)