Skip to content

Instantly share code, notes, and snippets.

@WesleyAC
Last active August 19, 2022 14:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save WesleyAC/9da367c54aa3a49039adc1dd66bf3b92 to your computer and use it in GitHub Desktop.
Save WesleyAC/9da367c54aa3a49039adc1dd66bf3b92 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
activity_curve = [
# This first part of the activity curve comes from the average values
# from 2005-2021 This is the average of the non 2000-2004 values in [1].
# See the MetaTalk thread [2] for more details.
#
# [1]: https://hack.wesleyac.com/mefi_percent_users_active_by_join_year_normalized.png
# [2]: https://metatalk.metafilter.com/26137/MetaFilter-Usage-Statistics#1406552
1.0000, 0.7942, 0.7185, 0.6773, 0.6419, 0.6161, 0.5868, 0.5625, 0.5440, 0.5194, 0.5039, 0.4876, 0.4758, 0.4671, 0.4539, 0.4404, 0.4210, 0.3977,
# The scound part is a linear extrapolation, losing 1.735% of users per
# year, which is the average of the last four differences in the
# previous line. A linear extrapolation isn't great, but it does not
# make a large difference to the fundamental point behind this
# analysis.
0.3803, 0.3630, 0.3456, 0.3283, 0.3109, 0.2936, 0.2762, 0.2589, 0.2415, 0.2242, 0.2068, 0.1895, 0.1721, 0.1548, 0.1374, 0.1201, 0.1027, 0.0854, 0.0680, 0.0507, 0.0333, 0.0160
]
def steady_state_users(joins, first_year_rate, activity_curve):
t = 0
for remaining_percent in activity_curve:
remaining_percent = remaining_percent - (1 - first_year_rate)
if remaining_percent > 0:
t += joins * remaining_percent
return t
# This is a simulation with the numbers from 2021
print(steady_state_users(587, 0.55, activity_curve)) # == 1349.513
# And with some hypothetical improvements in first-year activity rate or new user signups
print(steady_state_users(587, 0.65, activity_curve)) # == 2378.1718
print(steady_state_users(1340, 0.51, activity_curve)) # == 2377.964
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment