Time intervals revisited

Kelly on dating
3 min readSep 4, 2021

I previously laid out how interactions on a dating app should work, with a lot of emphasis on a daily rhythm. What does ‘daily’ mean? Trying to rely on calendar days leads to the problem that not everyone is in the same time zone and there are lots of edge cases when people move between time zones. What ‘daily’ should mean in practice is that things which are required/encouraged to be done daily are given slop to slightly more than 24 hours, and things which are only allowed to happen daily are blocked from happening repeatedly in slightly less than 24 hours. (A lot of dating apps set values to exactly 24 hours, which inevitably stops whatever daily routine the person had for doing the thing.)

Let’s go through the chain of events again.

First, a man checks in to show that he’s using the app. Let’s say we send him a notification that he’s about to go inactive if he hasn’t checked in for 20 hours, and actually render him inactive if he goes 36 and send him a notification that that’s happened. Thereafter send him reminder notifications of being inactive after 2, 4, 8, etc. days or some other exponential backoff, maybe mixing up the times of day so they don’t all come in at a time of day when he’s ignoring his phone.

Second, the women swipe on the men. They’re free to do this all they want without limitation, the rate limiting sanity check comes later.

Third, men swipe on women who have said yes to them. There’s no need to rate limit this either. The men can be given a notification immediately when they’ve been said yes to and have the opportunity to respond to it immediately. It’s best to make these come in one at a time so the men actually think about whether they’re interested rather than simply saying yes to everyone like they do when they swipe first.

Fourth, the women pick a daily match to make. They should be allowed to do this 20 hours after the last time they made one, and be given reminders with exponential backoff when they haven’t. This is the rate limit on the previous two steps. There’s an interesting question of which existing double matches should be shown and in what order. It’s probably best to simply randomly pick among all existing double matches who are active and haven’t gotten a conversation started too recently. How long men should have to go after a conversation is started with them until another one can be made is your most powerful lever as a product manager and data scientist. If it’s set to too infrequently the women will have a bad experience because the high quality mens profiles won’t be prominent enough. If it’s set to too frequently the women will have a bad experience because they’ll all be trying to chat up the same guys. There’s no rule that the interval can’t vary across times and places, and you should instrument what the effects of it are and be ready to adjust it constantly, possibly putting in automatic adjustments based on real time analytics. The other numbers mentioned here are social conventions which your users will expect and adjust to so tweaking them frequently will just cause pointless confusion, but adjusting this one all the time is your job.

Finally, once a conversation is started there should be a timer on having a first message before it expires. It’s reasonable to set this to 48 hours with warnings at 24, 40, and 47 hours that the expiration is going to happen. The same expiration formula should apply to the first response as the initiating message. Once a conversation is validated by both sides having sent a first message it should be allowed to go forever without expiring, unless one side is sending repeated messages over time after apparently having been ghosted, in which case you should be merciful on them and start a timer for the conversation expiring.

--

--

Kelly on dating

Writing thoughts on dating. Because it beats going to therapy.